@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
package/dist/registry.js CHANGED
@@ -2524,7 +2524,7 @@ function AboutStartupTeam({
2524
2524
  if (sidebarSlot) return null;
2525
2525
  if (!effectiveTabs || effectiveTabs.length === 0) return null;
2526
2526
  if (!teamMembers || teamMembers.length === 0) return null;
2527
- return /* @__PURE__ */ jsx("nav", { className: "flex gap-2 overflow-x-auto pb-2 lg:hidden", children: effectiveTabs.map((link, idx) => /* @__PURE__ */ jsx(
2527
+ return /* @__PURE__ */ jsx("div", { className: "w-full min-w-0 max-w-[calc(100vw-1rem)] overflow-hidden sm:max-w-[calc(100vw-2rem)] lg:hidden", children: /* @__PURE__ */ jsx("nav", { className: "-mx-2 flex gap-2 overflow-x-auto px-2 pb-2", children: effectiveTabs.map((link, idx) => /* @__PURE__ */ jsx(
2528
2528
  Pressable,
2529
2529
  {
2530
2530
  componentType: "button",
@@ -2536,7 +2536,7 @@ function AboutStartupTeam({
2536
2536
  children: link.label
2537
2537
  },
2538
2538
  idx
2539
- )) });
2539
+ )) }) });
2540
2540
  }, [sidebarSlot, effectiveTabs, activeTab]);
2541
2541
  return /* @__PURE__ */ jsx(
2542
2542
  Section,
@@ -32052,15 +32052,22 @@ function BlogGridAuthorCardsComponent({
32052
32052
  postCardClassName,
32053
32053
  viewAllClassName,
32054
32054
  optixFlowConfig,
32055
- background = "white",
32056
- spacing = "xl",
32055
+ background,
32056
+ spacing,
32057
32057
  pattern,
32058
32058
  patternOpacity
32059
32059
  }) {
32060
32060
  const viewAllActionContent = React52.useMemo(() => {
32061
32061
  if (viewAllSlot) return viewAllSlot;
32062
32062
  if (!viewAllAction) return null;
32063
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = viewAllAction;
32063
+ const {
32064
+ label,
32065
+ icon,
32066
+ iconAfter,
32067
+ children,
32068
+ className: actionClassName,
32069
+ ...pressableProps
32070
+ } = viewAllAction;
32064
32071
  return /* @__PURE__ */ jsx(
32065
32072
  Pressable,
32066
32073
  {
@@ -32127,11 +32134,38 @@ function BlogGridAuthorCardsComponent({
32127
32134
  patternOpacity,
32128
32135
  children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
32129
32136
  (heading || description) && /* @__PURE__ */ jsxs("div", { className: cn("mb-8 md:mb-14 lg:mb-16", headerClassName), children: [
32130
- /* @__PURE__ */ jsx("div", { className: "flex items-start justify-between gap-8", children: /* @__PURE__ */ jsx("div", { children: heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("mb-4 w-full text-4xl font-medium md:mb-5 md:text-5xl lg:mb-6 lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })) }) }),
32137
+ /* @__PURE__ */ jsx("div", { className: "flex items-start justify-between gap-8", children: /* @__PURE__ */ jsx("div", { children: heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
32138
+ "h2",
32139
+ {
32140
+ className: cn(
32141
+ "mb-4 w-full text-4xl font-medium md:mb-5 md:text-5xl lg:mb-6 lg:text-6xl",
32142
+ headingClassName
32143
+ ),
32144
+ children: heading
32145
+ }
32146
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })) }) }),
32131
32147
  description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: descriptionClassName, children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
32132
32148
  ] }),
32133
- /* @__PURE__ */ jsx("div", { className: cn("grid gap-x-4 gap-y-8 md:grid-cols-2 lg:gap-x-6 lg:gap-y-12 2xl:grid-cols-3", postsClassName), children: postsContent }),
32134
- (viewAllSlot || viewAllAction) && /* @__PURE__ */ jsx("div", { className: cn("mt-8 flex flex-col items-center py-2 md:hidden", viewAllClassName), children: viewAllActionContent })
32149
+ /* @__PURE__ */ jsx(
32150
+ "div",
32151
+ {
32152
+ className: cn(
32153
+ "grid gap-x-4 gap-y-8 md:grid-cols-2 lg:gap-x-6 lg:gap-y-12 2xl:grid-cols-3",
32154
+ postsClassName
32155
+ ),
32156
+ children: postsContent
32157
+ }
32158
+ ),
32159
+ (viewAllSlot || viewAllAction) && /* @__PURE__ */ jsx(
32160
+ "div",
32161
+ {
32162
+ className: cn(
32163
+ "mt-8 flex flex-col items-center py-2 md:hidden",
32164
+ viewAllClassName
32165
+ ),
32166
+ children: viewAllActionContent
32167
+ }
32168
+ )
32135
32169
  ] })
32136
32170
  }
32137
32171
  );
@@ -32155,19 +32189,30 @@ function BlogCardsTaglineCta({
32155
32189
  postsClassName,
32156
32190
  postCardClassName,
32157
32191
  optixFlowConfig,
32158
- background = "white",
32159
- spacing = "xl",
32192
+ background,
32193
+ spacing,
32160
32194
  pattern,
32161
32195
  patternOpacity
32162
32196
  }) {
32163
32197
  const ctaActionContent = React52.useMemo(() => {
32164
32198
  if (ctaSlot) return ctaSlot;
32165
32199
  if (!ctaAction) return null;
32166
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = ctaAction;
32200
+ const {
32201
+ label,
32202
+ icon,
32203
+ iconAfter,
32204
+ children,
32205
+ className: actionClassName,
32206
+ ...pressableProps
32207
+ } = ctaAction;
32167
32208
  return /* @__PURE__ */ jsx(
32168
32209
  Pressable,
32169
32210
  {
32170
- className: cn("w-full sm:w-auto inline-flex items-center", actionClassName, ctaClassName),
32211
+ className: cn(
32212
+ "w-full sm:w-auto inline-flex items-center",
32213
+ actionClassName,
32214
+ ctaClassName
32215
+ ),
32171
32216
  ...pressableProps,
32172
32217
  children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
32173
32218
  icon,
@@ -32188,7 +32233,10 @@ function BlogCardsTaglineCta({
32188
32233
  return /* @__PURE__ */ jsxs(
32189
32234
  Card,
32190
32235
  {
32191
- className: cn("grid grid-rows-[auto_auto_1fr_auto] overflow-hidden pt-0", postCardClassName),
32236
+ className: cn(
32237
+ "grid grid-rows-[auto_auto_1fr_auto] overflow-hidden pt-0",
32238
+ postCardClassName
32239
+ ),
32192
32240
  children: [
32193
32241
  post.image && /* @__PURE__ */ jsx("div", { className: "aspect-video w-full", children: /* @__PURE__ */ jsx(
32194
32242
  Pressable,
@@ -32240,15 +32288,51 @@ function BlogCardsTaglineCta({
32240
32288
  className: cn(className),
32241
32289
  pattern,
32242
32290
  patternOpacity,
32243
- children: /* @__PURE__ */ jsxs("div", { className: cn("container mx-auto flex flex-col items-center gap-16 lg:px-16", containerClassName), children: [
32244
- /* @__PURE__ */ jsxs("div", { className: cn("text-center", headerClassName), children: [
32245
- badge && (typeof badge === "string" ? /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: cn("mb-6", badgeClassName), children: badge }) : /* @__PURE__ */ jsx("div", { className: cn("mb-6", badgeClassName), children: badge })),
32246
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("mb-3 text-3xl font-semibold text-pretty md:mb-4 md:text-4xl lg:mb-6 lg:max-w-3xl lg:text-5xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
32247
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-muted-foreground md:text-base lg:max-w-2xl lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
32248
- ctaActionContent
32249
- ] }),
32250
- /* @__PURE__ */ jsx("div", { className: cn("grid gap-6 md:grid-cols-2 lg:grid-cols-3 lg:gap-8", postsClassName), children: postsContent })
32251
- ] })
32291
+ children: /* @__PURE__ */ jsxs(
32292
+ "div",
32293
+ {
32294
+ className: cn(
32295
+ "container mx-auto flex flex-col items-center gap-16 lg:px-16",
32296
+ containerClassName
32297
+ ),
32298
+ children: [
32299
+ /* @__PURE__ */ jsxs("div", { className: cn("text-center", headerClassName), children: [
32300
+ badge && (typeof badge === "string" ? /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: cn("mb-6", badgeClassName), children: badge }) : /* @__PURE__ */ jsx("div", { className: cn("mb-6", badgeClassName), children: badge })),
32301
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
32302
+ "h2",
32303
+ {
32304
+ className: cn(
32305
+ "mb-3 text-3xl font-semibold text-pretty md:mb-4 md:text-4xl lg:mb-6 lg:max-w-3xl lg:text-5xl",
32306
+ headingClassName
32307
+ ),
32308
+ children: heading
32309
+ }
32310
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
32311
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
32312
+ "p",
32313
+ {
32314
+ className: cn(
32315
+ "mb-8 text-muted-foreground md:text-base lg:max-w-2xl lg:text-lg",
32316
+ descriptionClassName
32317
+ ),
32318
+ children: description
32319
+ }
32320
+ ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
32321
+ ctaActionContent
32322
+ ] }),
32323
+ /* @__PURE__ */ jsx(
32324
+ "div",
32325
+ {
32326
+ className: cn(
32327
+ "grid gap-6 md:grid-cols-2 lg:grid-cols-3 lg:gap-8",
32328
+ postsClassName
32329
+ ),
32330
+ children: postsContent
32331
+ }
32332
+ )
32333
+ ]
32334
+ }
32335
+ )
32252
32336
  }
32253
32337
  );
32254
32338
  }
@@ -32270,28 +32354,27 @@ function BlogCardsReadTime({
32270
32354
  postCardClassName,
32271
32355
  viewAllClassName,
32272
32356
  optixFlowConfig,
32273
- background = "white",
32274
- spacing = "xl",
32357
+ background,
32358
+ spacing,
32275
32359
  pattern,
32276
32360
  patternOpacity
32277
32361
  }) {
32278
32362
  const renderedViewAllAction = React52.useMemo(() => {
32279
32363
  if (viewAllSlot) return viewAllSlot;
32280
32364
  if (!viewAllAction) return null;
32281
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = viewAllAction;
32282
- return /* @__PURE__ */ jsx(
32283
- Pressable,
32284
- {
32285
- asButton: true,
32286
- className: actionClassName,
32287
- ...pressableProps,
32288
- children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
32289
- icon,
32290
- label,
32291
- iconAfter
32292
- ] })
32293
- }
32294
- );
32365
+ const {
32366
+ label,
32367
+ icon,
32368
+ iconAfter,
32369
+ children,
32370
+ className: actionClassName,
32371
+ ...pressableProps
32372
+ } = viewAllAction;
32373
+ return /* @__PURE__ */ jsx(Pressable, { asButton: true, className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
32374
+ icon,
32375
+ label,
32376
+ iconAfter
32377
+ ] }) });
32295
32378
  }, [viewAllSlot, viewAllAction]);
32296
32379
  const renderedPosts = React52.useMemo(() => {
32297
32380
  if (postsSlot) return postsSlot;
@@ -32320,7 +32403,13 @@ function BlogCardsReadTime({
32320
32403
  /* @__PURE__ */ jsx(Separator, { className: "my-5" }),
32321
32404
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-4", children: [
32322
32405
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
32323
- /* @__PURE__ */ jsx(Avatar, { className: "size-9 rounded-full ring-1 ring-input", children: post.authorAvatar && /* @__PURE__ */ jsx(AvatarImage, { src: post.authorAvatar, alt: typeof post.author === "string" ? post.author : "Author" }) }),
32406
+ /* @__PURE__ */ jsx(Avatar, { className: "size-9 rounded-full ring-1 ring-input", children: post.authorAvatar && /* @__PURE__ */ jsx(
32407
+ AvatarImage,
32408
+ {
32409
+ src: post.authorAvatar,
32410
+ alt: typeof post.author === "string" ? post.author : "Author"
32411
+ }
32412
+ ) }),
32324
32413
  post.author && /* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: post.author })
32325
32414
  ] }),
32326
32415
  post.readTime && /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: "h-fit", children: post.readTime })
@@ -32341,16 +32430,50 @@ function BlogCardsReadTime({
32341
32430
  pattern,
32342
32431
  patternOpacity,
32343
32432
  children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
32344
- /* @__PURE__ */ jsxs("div", { className: cn("mx-auto flex max-w-3xl flex-col items-center gap-4 text-center", headerClassName), children: [
32345
- badge && /* @__PURE__ */ jsx("div", { className: badgeClassName, children: typeof badge === "string" ? /* @__PURE__ */ jsxs(Badge, { variant: "outline", className: "gap-1 py-1", children: [
32346
- /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/file-text", size: 16, className: "h-full w-4" }),
32347
- " ",
32348
- badge
32349
- ] }) : badge }),
32350
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl font-semibold text-balance", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
32351
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
32352
- ] }),
32353
- /* @__PURE__ */ jsx("div", { className: cn("mt-20 grid gap-4 md:grid-cols-2 lg:grid-cols-3", postsClassName), children: renderedPosts }),
32433
+ /* @__PURE__ */ jsxs(
32434
+ "div",
32435
+ {
32436
+ className: cn(
32437
+ "mx-auto flex max-w-3xl flex-col items-center gap-4 text-center",
32438
+ headerClassName
32439
+ ),
32440
+ children: [
32441
+ badge && /* @__PURE__ */ jsx("div", { className: badgeClassName, children: typeof badge === "string" ? /* @__PURE__ */ jsxs(Badge, { variant: "outline", className: "gap-1 py-1", children: [
32442
+ /* @__PURE__ */ jsx(
32443
+ DynamicIcon,
32444
+ {
32445
+ name: "lucide/file-text",
32446
+ size: 16,
32447
+ className: "h-full w-4"
32448
+ }
32449
+ ),
32450
+ " ",
32451
+ badge
32452
+ ] }) : badge }),
32453
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
32454
+ "h1",
32455
+ {
32456
+ className: cn(
32457
+ "text-4xl font-semibold text-balance",
32458
+ headingClassName
32459
+ ),
32460
+ children: heading
32461
+ }
32462
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
32463
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
32464
+ ]
32465
+ }
32466
+ ),
32467
+ /* @__PURE__ */ jsx(
32468
+ "div",
32469
+ {
32470
+ className: cn(
32471
+ "mt-20 grid gap-4 md:grid-cols-2 lg:grid-cols-3",
32472
+ postsClassName
32473
+ ),
32474
+ children: renderedPosts
32475
+ }
32476
+ ),
32354
32477
  (viewAllSlot || viewAllAction) && /* @__PURE__ */ jsx("div", { className: cn("mt-10 flex justify-center", viewAllClassName), children: renderedViewAllAction })
32355
32478
  ] })
32356
32479
  }
@@ -32376,19 +32499,30 @@ function BlogCategoryOverlay({
32376
32499
  postCardClassName,
32377
32500
  categoryBadgeClassName,
32378
32501
  optixFlowConfig,
32379
- background = "white",
32380
- spacing = "xl",
32502
+ background,
32503
+ spacing,
32381
32504
  pattern,
32382
32505
  patternOpacity
32383
32506
  }) {
32384
32507
  const viewAllActionContent = React52.useMemo(() => {
32385
32508
  if (viewAllSlot) return viewAllSlot;
32386
32509
  if (!viewAllAction) return null;
32387
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = viewAllAction;
32510
+ const {
32511
+ label,
32512
+ icon,
32513
+ iconAfter,
32514
+ children,
32515
+ className: actionClassName,
32516
+ ...pressableProps
32517
+ } = viewAllAction;
32388
32518
  return /* @__PURE__ */ jsx(
32389
32519
  Pressable,
32390
32520
  {
32391
- className: cn("flex items-center gap-1 text-sm font-semibold", actionClassName, viewAllClassName),
32521
+ className: cn(
32522
+ "flex items-center gap-1 text-sm font-semibold",
32523
+ actionClassName,
32524
+ viewAllClassName
32525
+ ),
32392
32526
  ...pressableProps,
32393
32527
  children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
32394
32528
  icon,
@@ -32419,7 +32553,10 @@ function BlogCategoryOverlay({
32419
32553
  Badge,
32420
32554
  {
32421
32555
  variant: "secondary",
32422
- className: cn("absolute top-4 right-4 bg-background/70 px-3 py-1 text-sm backdrop-blur-sm", categoryBadgeClassName),
32556
+ className: cn(
32557
+ "absolute top-4 right-4 bg-background/70 px-3 py-1 text-sm backdrop-blur-sm",
32558
+ categoryBadgeClassName
32559
+ ),
32423
32560
  children: post.category || post.label
32424
32561
  }
32425
32562
  )
@@ -32428,18 +32565,39 @@ function BlogCategoryOverlay({
32428
32565
  post.title && (typeof post.title === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-5 text-xl font-semibold", children: post.title }) : /* @__PURE__ */ jsx("div", { className: "mb-5 text-xl font-semibold", children: post.title })),
32429
32566
  /* @__PURE__ */ jsxs("div", { className: "flex justify-between gap-6 text-sm", children: [
32430
32567
  (post.date || post.published) && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1 text-muted-foreground", children: [
32431
- /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/calendar", size: 16, className: "h-4 w-4" }),
32568
+ /* @__PURE__ */ jsx(
32569
+ DynamicIcon,
32570
+ {
32571
+ name: "lucide/calendar",
32572
+ size: 16,
32573
+ className: "h-4 w-4"
32574
+ }
32575
+ ),
32432
32576
  post.date || post.published
32433
32577
  ] }),
32434
32578
  readMoreText && /* @__PURE__ */ jsxs(Pressable, { href: postHref, className: "flex items-center gap-1", children: [
32435
32579
  readMoreText,
32436
- /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 12, className: "h-full w-3" })
32580
+ /* @__PURE__ */ jsx(
32581
+ DynamicIcon,
32582
+ {
32583
+ name: "lucide/chevron-right",
32584
+ size: 12,
32585
+ className: "h-full w-3"
32586
+ }
32587
+ )
32437
32588
  ] })
32438
32589
  ] })
32439
32590
  ] })
32440
32591
  ] }, postId);
32441
32592
  });
32442
- }, [postsSlot, posts, postCardClassName, categoryBadgeClassName, optixFlowConfig, readMoreText]);
32593
+ }, [
32594
+ postsSlot,
32595
+ posts,
32596
+ postCardClassName,
32597
+ categoryBadgeClassName,
32598
+ optixFlowConfig,
32599
+ readMoreText
32600
+ ]);
32443
32601
  return /* @__PURE__ */ jsx(
32444
32602
  Section,
32445
32603
  {
@@ -32449,13 +32607,40 @@ function BlogCategoryOverlay({
32449
32607
  pattern,
32450
32608
  patternOpacity,
32451
32609
  children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
32452
- /* @__PURE__ */ jsxs("div", { className: cn("mx-auto flex max-w-3xl flex-col items-center gap-6 text-center", headerClassName), children: [
32453
- badge && /* @__PURE__ */ jsx("div", { className: badgeClassName, children: typeof badge === "string" ? /* @__PURE__ */ jsx(Badge, { variant: "outline", children: badge }) : badge }),
32454
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl font-semibold text-balance", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
32455
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
32456
- viewAllActionContent
32457
- ] }),
32458
- /* @__PURE__ */ jsx("div", { className: cn("mt-20 grid gap-6 md:grid-cols-2 lg:grid-cols-3", postsClassName), children: postsContent })
32610
+ /* @__PURE__ */ jsxs(
32611
+ "div",
32612
+ {
32613
+ className: cn(
32614
+ "mx-auto flex max-w-3xl flex-col items-center gap-6 text-center",
32615
+ headerClassName
32616
+ ),
32617
+ children: [
32618
+ badge && /* @__PURE__ */ jsx("div", { className: badgeClassName, children: typeof badge === "string" ? /* @__PURE__ */ jsx(Badge, { variant: "outline", children: badge }) : badge }),
32619
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
32620
+ "h1",
32621
+ {
32622
+ className: cn(
32623
+ "text-4xl font-semibold text-balance",
32624
+ headingClassName
32625
+ ),
32626
+ children: heading
32627
+ }
32628
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
32629
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
32630
+ viewAllActionContent
32631
+ ]
32632
+ }
32633
+ ),
32634
+ /* @__PURE__ */ jsx(
32635
+ "div",
32636
+ {
32637
+ className: cn(
32638
+ "mt-20 grid gap-6 md:grid-cols-2 lg:grid-cols-3",
32639
+ postsClassName
32640
+ ),
32641
+ children: postsContent
32642
+ }
32643
+ )
32459
32644
  ] })
32460
32645
  }
32461
32646
  );
@@ -32479,8 +32664,8 @@ function BlogFeaturedPopular({
32479
32664
  postsClassName,
32480
32665
  postCardClassName,
32481
32666
  optixFlowConfig,
32482
- background = "white",
32483
- spacing = "xl",
32667
+ background,
32668
+ spacing,
32484
32669
  pattern,
32485
32670
  patternOpacity
32486
32671
  }) {
@@ -32495,7 +32680,10 @@ function BlogFeaturedPopular({
32495
32680
  return /* @__PURE__ */ jsxs(
32496
32681
  PostWrapper,
32497
32682
  {
32498
- className: cn("my-16 grid grid-cols-1 items-center gap-8 md:grid-cols-2 lg:gap-16", featuredClassName),
32683
+ className: cn(
32684
+ "my-16 grid grid-cols-1 items-center gap-8 md:grid-cols-2 lg:gap-16",
32685
+ featuredClassName
32686
+ ),
32499
32687
  ...wrapperProps,
32500
32688
  children: [
32501
32689
  featuredPost.image && /* @__PURE__ */ jsx(
@@ -32503,19 +32691,38 @@ function BlogFeaturedPopular({
32503
32691
  {
32504
32692
  src: featuredPost.image,
32505
32693
  alt: typeof featuredPost.title === "string" ? featuredPost.title : "Featured post",
32506
- className: cn("aspect-video rounded-lg object-cover", featuredImageClassName),
32694
+ className: cn(
32695
+ "aspect-video rounded-lg object-cover",
32696
+ featuredImageClassName
32697
+ ),
32507
32698
  optixFlowConfig
32508
32699
  }
32509
32700
  ),
32510
- /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-start gap-4", featuredContentClassName), children: [
32511
- (featuredPost.category || featuredPost.label) && /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: "shrink", children: featuredPost.category || featuredPost.label }),
32512
- featuredPost.title && (typeof featuredPost.title === "string" ? /* @__PURE__ */ jsx("h2", { className: "text-2xl font-semibold text-balance md:max-w-lg lg:text-3xl", children: featuredPost.title }) : /* @__PURE__ */ jsx("div", { className: "text-2xl font-semibold text-balance md:max-w-lg lg:text-3xl", children: featuredPost.title })),
32513
- (featuredPost.description || featuredPost.summary) && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground md:max-w-lg", children: featuredPost.description || featuredPost.summary })
32514
- ] })
32701
+ /* @__PURE__ */ jsxs(
32702
+ "div",
32703
+ {
32704
+ className: cn(
32705
+ "flex flex-col items-start gap-4",
32706
+ featuredContentClassName
32707
+ ),
32708
+ children: [
32709
+ (featuredPost.category || featuredPost.label) && /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: "shrink", children: featuredPost.category || featuredPost.label }),
32710
+ featuredPost.title && (typeof featuredPost.title === "string" ? /* @__PURE__ */ jsx("h2", { className: "text-2xl font-semibold text-balance md:max-w-lg lg:text-3xl", children: featuredPost.title }) : /* @__PURE__ */ jsx("div", { className: "text-2xl font-semibold text-balance md:max-w-lg lg:text-3xl", children: featuredPost.title })),
32711
+ (featuredPost.description || featuredPost.summary) && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground md:max-w-lg", children: featuredPost.description || featuredPost.summary })
32712
+ ]
32713
+ }
32714
+ )
32515
32715
  ]
32516
32716
  }
32517
32717
  );
32518
- }, [featuredSlot, featuredPost, featuredClassName, featuredImageClassName, featuredContentClassName, optixFlowConfig]);
32718
+ }, [
32719
+ featuredSlot,
32720
+ featuredPost,
32721
+ featuredClassName,
32722
+ featuredImageClassName,
32723
+ featuredContentClassName,
32724
+ optixFlowConfig
32725
+ ]);
32519
32726
  const renderedPopularPosts = React52.useMemo(() => {
32520
32727
  if (postsSlot) return postsSlot;
32521
32728
  if (!popularPosts || popularPosts.length === 0) return null;
@@ -32558,19 +32765,55 @@ function BlogFeaturedPopular({
32558
32765
  patternOpacity,
32559
32766
  children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
32560
32767
  (heading || description) && /* @__PURE__ */ jsxs("div", { className: cn("mb-16 text-center", headerClassName), children: [
32561
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-5xl font-medium md:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
32562
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto mt-4 max-w-xl text-lg text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
32563
- ] }),
32564
- /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-7xl", children: [
32565
- renderedFeaturedPost,
32566
- popularHeading && (typeof popularHeading === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-2xl font-medium md:text-3xl", popularHeadingClassName), children: popularHeading }) : /* @__PURE__ */ jsx("div", { className: popularHeadingClassName, children: popularHeading })),
32567
- renderedPopularPosts && /* @__PURE__ */ jsx("div", { className: cn("mt-8 grid grid-cols-1 gap-10 md:grid-cols-3 md:gap-6", postsClassName), children: renderedPopularPosts })
32568
- ] })
32569
- ] })
32570
- }
32571
- );
32572
- }
32573
- function BlogRelatedArticles({
32768
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
32769
+ "h1",
32770
+ {
32771
+ className: cn(
32772
+ "text-5xl font-medium md:text-6xl",
32773
+ headingClassName
32774
+ ),
32775
+ children: heading
32776
+ }
32777
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
32778
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
32779
+ "p",
32780
+ {
32781
+ className: cn(
32782
+ "mx-auto mt-4 max-w-xl text-lg text-muted-foreground",
32783
+ descriptionClassName
32784
+ ),
32785
+ children: description
32786
+ }
32787
+ ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
32788
+ ] }),
32789
+ /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-7xl", children: [
32790
+ renderedFeaturedPost,
32791
+ popularHeading && (typeof popularHeading === "string" ? /* @__PURE__ */ jsx(
32792
+ "p",
32793
+ {
32794
+ className: cn(
32795
+ "text-2xl font-medium md:text-3xl",
32796
+ popularHeadingClassName
32797
+ ),
32798
+ children: popularHeading
32799
+ }
32800
+ ) : /* @__PURE__ */ jsx("div", { className: popularHeadingClassName, children: popularHeading })),
32801
+ renderedPopularPosts && /* @__PURE__ */ jsx(
32802
+ "div",
32803
+ {
32804
+ className: cn(
32805
+ "mt-8 grid grid-cols-1 gap-10 md:grid-cols-3 md:gap-6",
32806
+ postsClassName
32807
+ ),
32808
+ children: renderedPopularPosts
32809
+ }
32810
+ )
32811
+ ] })
32812
+ ] })
32813
+ }
32814
+ );
32815
+ }
32816
+ function BlogRelatedArticles({
32574
32817
  heading,
32575
32818
  seeAllAction,
32576
32819
  seeAllSlot,
@@ -32583,20 +32826,31 @@ function BlogRelatedArticles({
32583
32826
  seeAllClassName,
32584
32827
  articlesClassName,
32585
32828
  articleCardClassName,
32586
- background = "white",
32587
- spacing = "xl",
32829
+ background,
32830
+ spacing,
32588
32831
  pattern,
32589
32832
  patternOpacity
32590
32833
  }) {
32591
32834
  const renderedSeeAllAction = React52.useMemo(() => {
32592
32835
  if (seeAllSlot) return seeAllSlot;
32593
32836
  if (!seeAllAction) return null;
32594
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = seeAllAction;
32837
+ const {
32838
+ label,
32839
+ icon,
32840
+ iconAfter,
32841
+ children,
32842
+ className: actionClassName,
32843
+ ...pressableProps
32844
+ } = seeAllAction;
32595
32845
  return /* @__PURE__ */ jsx(
32596
32846
  Pressable,
32597
32847
  {
32598
32848
  asButton: true,
32599
- className: cn("md:h-10 md:px-4 md:py-2", actionClassName, seeAllClassName),
32849
+ className: cn(
32850
+ "md:h-10 md:px-4 md:py-2",
32851
+ actionClassName,
32852
+ seeAllClassName
32853
+ ),
32600
32854
  ...pressableProps,
32601
32855
  children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
32602
32856
  icon,
@@ -32637,11 +32891,38 @@ function BlogRelatedArticles({
32637
32891
  pattern,
32638
32892
  patternOpacity,
32639
32893
  children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
32640
- /* @__PURE__ */ jsxs("div", { className: cn("mb-8 flex flex-wrap items-center justify-between gap-1", headerClassName), children: [
32641
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-2xl font-semibold md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
32642
- renderedSeeAllAction
32643
- ] }),
32644
- /* @__PURE__ */ jsx("div", { className: cn("grid grid-cols-1 gap-16 md:grid-cols-2 lg:grid-cols-4 lg:gap-10", articlesClassName), children: renderedArticles })
32894
+ /* @__PURE__ */ jsxs(
32895
+ "div",
32896
+ {
32897
+ className: cn(
32898
+ "mb-8 flex flex-wrap items-center justify-between gap-1",
32899
+ headerClassName
32900
+ ),
32901
+ children: [
32902
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
32903
+ "h1",
32904
+ {
32905
+ className: cn(
32906
+ "text-2xl font-semibold md:text-4xl",
32907
+ headingClassName
32908
+ ),
32909
+ children: heading
32910
+ }
32911
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
32912
+ renderedSeeAllAction
32913
+ ]
32914
+ }
32915
+ ),
32916
+ /* @__PURE__ */ jsx(
32917
+ "div",
32918
+ {
32919
+ className: cn(
32920
+ "grid grid-cols-1 gap-16 md:grid-cols-2 lg:grid-cols-4 lg:gap-10",
32921
+ articlesClassName
32922
+ ),
32923
+ children: renderedArticles
32924
+ }
32925
+ )
32645
32926
  ] })
32646
32927
  }
32647
32928
  );
@@ -32667,20 +32948,31 @@ function BlogTechInsights({
32667
32948
  secondaryPostsClassName,
32668
32949
  secondaryPostItemClassName,
32669
32950
  optixFlowConfig,
32670
- background = "white",
32671
- spacing = "xl",
32951
+ background,
32952
+ spacing,
32672
32953
  pattern,
32673
32954
  patternOpacity
32674
32955
  }) {
32675
32956
  const readMoreActionContent = useMemo$1(() => {
32676
32957
  if (readMoreSlot) return readMoreSlot;
32677
32958
  if (!readMoreAction) return null;
32678
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = readMoreAction;
32959
+ const {
32960
+ label,
32961
+ icon,
32962
+ iconAfter,
32963
+ children,
32964
+ className: actionClassName,
32965
+ ...pressableProps
32966
+ } = readMoreAction;
32679
32967
  return /* @__PURE__ */ jsx(
32680
32968
  Pressable,
32681
32969
  {
32682
32970
  asButton: true,
32683
- className: cn("ml-auto rounded-full border-foreground text-foreground", actionClassName, readMoreClassName),
32971
+ className: cn(
32972
+ "ml-auto rounded-full border-foreground text-foreground",
32973
+ actionClassName,
32974
+ readMoreClassName
32975
+ ),
32684
32976
  ...pressableProps,
32685
32977
  children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
32686
32978
  icon,
@@ -32697,7 +32989,10 @@ function BlogTechInsights({
32697
32989
  featuredPost.image && /* @__PURE__ */ jsx(
32698
32990
  Img,
32699
32991
  {
32700
- className: cn("w-full rounded-lg object-cover", featuredImageClassName),
32992
+ className: cn(
32993
+ "w-full rounded-lg object-cover",
32994
+ featuredImageClassName
32995
+ ),
32701
32996
  src: featuredPost.image,
32702
32997
  alt: typeof featuredPost.title === "string" ? featuredPost.title : "Featured item",
32703
32998
  optixFlowConfig
@@ -32712,7 +33007,13 @@ function BlogTechInsights({
32712
33007
  ] })
32713
33008
  ] })
32714
33009
  ] });
32715
- }, [featuredSlot, featuredPost, featuredClassName, featuredImageClassName, optixFlowConfig]);
33010
+ }, [
33011
+ featuredSlot,
33012
+ featuredPost,
33013
+ featuredClassName,
33014
+ featuredImageClassName,
33015
+ optixFlowConfig
33016
+ ]);
32716
33017
  const secondaryPostsContent = useMemo$1(() => {
32717
33018
  if (secondaryPostsSlot) return secondaryPostsSlot;
32718
33019
  if (!secondaryPosts || secondaryPosts.length === 0) return null;
@@ -32721,7 +33022,10 @@ function BlogTechInsights({
32721
33022
  return /* @__PURE__ */ jsxs(
32722
33023
  "div",
32723
33024
  {
32724
- className: cn("flex items-start gap-4 border-b pb-6 last:border-b-0", secondaryPostItemClassName),
33025
+ className: cn(
33026
+ "flex items-start gap-4 border-b pb-6 last:border-b-0",
33027
+ secondaryPostItemClassName
33028
+ ),
32725
33029
  children: [
32726
33030
  /* @__PURE__ */ jsx("div", { className: "w-1/4 shrink-0 md:w-1/5", children: post.image && /* @__PURE__ */ jsx(
32727
33031
  Img,
@@ -32738,7 +33042,12 @@ function BlogTechInsights({
32738
33042
  postId
32739
33043
  );
32740
33044
  });
32741
- }, [secondaryPostsSlot, secondaryPosts, secondaryPostItemClassName, optixFlowConfig]);
33045
+ }, [
33046
+ secondaryPostsSlot,
33047
+ secondaryPosts,
33048
+ secondaryPostItemClassName,
33049
+ optixFlowConfig
33050
+ ]);
32742
33051
  return /* @__PURE__ */ jsx(
32743
33052
  Section,
32744
33053
  {
@@ -32749,16 +33058,52 @@ function BlogTechInsights({
32749
33058
  patternOpacity,
32750
33059
  children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
32751
33060
  /* @__PURE__ */ jsxs("div", { className: cn("mb-8", headerClassName), children: [
32752
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-3xl font-bold text-foreground md:text-4xl lg:text-5xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
33061
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
33062
+ "h1",
33063
+ {
33064
+ className: cn(
33065
+ "text-3xl font-bold text-foreground md:text-4xl lg:text-5xl",
33066
+ headingClassName
33067
+ ),
33068
+ children: heading
33069
+ }
33070
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
32753
33071
  /* @__PURE__ */ jsxs("div", { className: "mt-4 flex justify-start", children: [
32754
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("span", { className: cn("mt-2 block text-sm text-muted-foreground md:text-base", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
33072
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
33073
+ "span",
33074
+ {
33075
+ className: cn(
33076
+ "mt-2 block text-sm text-muted-foreground md:text-base",
33077
+ descriptionClassName
33078
+ ),
33079
+ children: description
33080
+ }
33081
+ ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
32755
33082
  readMoreActionContent
32756
33083
  ] })
32757
33084
  ] }),
32758
- /* @__PURE__ */ jsxs("div", { className: cn("mt-12 grid grid-cols-1 gap-8 md:grid-cols-2 lg:gap-12", contentClassName), children: [
32759
- featuredPostContent,
32760
- /* @__PURE__ */ jsx("div", { className: cn("space-y-6 text-foreground md:space-y-8", secondaryPostsClassName), children: secondaryPostsContent })
32761
- ] })
33085
+ /* @__PURE__ */ jsxs(
33086
+ "div",
33087
+ {
33088
+ className: cn(
33089
+ "mt-12 grid grid-cols-1 gap-8 md:grid-cols-2 lg:gap-12",
33090
+ contentClassName
33091
+ ),
33092
+ children: [
33093
+ featuredPostContent,
33094
+ /* @__PURE__ */ jsx(
33095
+ "div",
33096
+ {
33097
+ className: cn(
33098
+ "space-y-6 text-foreground md:space-y-8",
33099
+ secondaryPostsClassName
33100
+ ),
33101
+ children: secondaryPostsContent
33102
+ }
33103
+ )
33104
+ ]
33105
+ }
33106
+ )
32762
33107
  ] })
32763
33108
  }
32764
33109
  );
@@ -32782,15 +33127,22 @@ function BlogHorizontalCards({
32782
33127
  postCardClassName,
32783
33128
  ctaClassName,
32784
33129
  optixFlowConfig,
32785
- background = "white",
32786
- spacing = "xl",
33130
+ background,
33131
+ spacing,
32787
33132
  pattern,
32788
33133
  patternOpacity
32789
33134
  }) {
32790
33135
  const ctaContent = React52.useMemo(() => {
32791
33136
  if (ctaSlot) return ctaSlot;
32792
33137
  if (!ctaAction) return null;
32793
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = ctaAction;
33138
+ const {
33139
+ label,
33140
+ icon,
33141
+ iconAfter,
33142
+ children,
33143
+ className: actionClassName,
33144
+ ...pressableProps
33145
+ } = ctaAction;
32794
33146
  return /* @__PURE__ */ jsx(
32795
33147
  Pressable,
32796
33148
  {
@@ -32818,7 +33170,10 @@ function BlogHorizontalCards({
32818
33170
  return /* @__PURE__ */ jsx(
32819
33171
  Card,
32820
33172
  {
32821
- className: cn("overflow-hidden border-0 bg-transparent shadow-none", postCardClassName),
33173
+ className: cn(
33174
+ "overflow-hidden border-0 bg-transparent shadow-none",
33175
+ postCardClassName
33176
+ ),
32822
33177
  children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6 sm:flex-row", children: [
32823
33178
  post.image && /* @__PURE__ */ jsx("div", { className: "shrink-0", children: /* @__PURE__ */ jsx(
32824
33179
  Pressable,
@@ -32880,8 +33235,26 @@ function BlogHorizontalCards({
32880
33235
  children: /* @__PURE__ */ jsxs("div", { className: cn("container mx-auto", containerClassName), children: [
32881
33236
  /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-3xl text-center", headerClassName), children: [
32882
33237
  badge && (typeof badge === "string" ? /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: cn("mb-6", badgeClassName), children: badge }) : /* @__PURE__ */ jsx("div", { className: cn("mb-6", badgeClassName), children: badge })),
32883
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("mb-3 text-3xl font-semibold text-pretty md:mb-4 md:text-5xl lg:mb-6", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
32884
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-12 text-muted-foreground md:text-base lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
33238
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
33239
+ "h2",
33240
+ {
33241
+ className: cn(
33242
+ "mb-3 text-3xl font-semibold text-pretty md:mb-4 md:text-5xl lg:mb-6",
33243
+ headingClassName
33244
+ ),
33245
+ children: heading
33246
+ }
33247
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
33248
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
33249
+ "p",
33250
+ {
33251
+ className: cn(
33252
+ "mb-12 text-muted-foreground md:text-base lg:text-lg",
33253
+ descriptionClassName
33254
+ ),
33255
+ children: description
33256
+ }
33257
+ ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
32885
33258
  ] }),
32886
33259
  /* @__PURE__ */ jsx("div", { className: cn("mx-auto max-w-5xl space-y-12", postsClassName), children: postsContent }),
32887
33260
  (ctaSlot || ctaAction) && /* @__PURE__ */ jsx("div", { className: cn("mt-16 text-center", ctaClassName), children: ctaContent })
@@ -32966,7 +33339,11 @@ function BreadcrumbSeparator({
32966
33339
  );
32967
33340
  }
32968
33341
  var POSTS_PER_PAGE = 6;
32969
- var BlogCard = React52.memo(function BlogCard2({ post, optixFlowConfig, className }) {
33342
+ var BlogCard = React52.memo(function BlogCard2({
33343
+ post,
33344
+ optixFlowConfig,
33345
+ className
33346
+ }) {
32970
33347
  const postHref = post.href || post.url || post.link || "#";
32971
33348
  const postImage = post.thumbnail || post.image;
32972
33349
  const postTitle = typeof post.title === "string" ? post.title : "Content item";
@@ -33000,28 +33377,36 @@ var FilterForm = React52.memo(function FilterForm2({
33000
33377
  onCategoryChange,
33001
33378
  className
33002
33379
  }) {
33003
- return /* @__PURE__ */ jsx("div", { className: cn("flex w-full flex-wrap items-center gap-2.5", className), children: categories.map((category) => {
33004
- const isChecked = selectedCategories.includes(category.value);
33005
- return /* @__PURE__ */ jsxs(
33006
- Label,
33007
- {
33008
- className: "flex cursor-pointer items-center gap-2.5 rounded-full bg-muted px-2.5 py-1.5",
33009
- children: [
33010
- /* @__PURE__ */ jsx("div", { children: category.label }),
33011
- /* @__PURE__ */ jsx(
33012
- Checkbox,
33013
- {
33014
- checked: isChecked,
33015
- onCheckedChange: (checked) => onCategoryChange(category.value, !!checked)
33016
- }
33017
- )
33018
- ]
33019
- },
33020
- category.value
33021
- );
33022
- }) });
33380
+ return /* @__PURE__ */ jsx(
33381
+ "div",
33382
+ {
33383
+ className: cn("flex w-full flex-wrap items-center gap-2.5", className),
33384
+ children: categories.map((category) => {
33385
+ const isChecked = selectedCategories.includes(category.value);
33386
+ return /* @__PURE__ */ jsxs(
33387
+ Label,
33388
+ {
33389
+ className: "flex cursor-pointer items-center gap-2.5 rounded-full bg-muted px-2.5 py-1.5",
33390
+ children: [
33391
+ /* @__PURE__ */ jsx("div", { children: category.label }),
33392
+ /* @__PURE__ */ jsx(
33393
+ Checkbox,
33394
+ {
33395
+ checked: isChecked,
33396
+ onCheckedChange: (checked) => onCategoryChange(category.value, !!checked)
33397
+ }
33398
+ )
33399
+ ]
33400
+ },
33401
+ category.value
33402
+ );
33403
+ })
33404
+ }
33405
+ );
33023
33406
  });
33024
- var BreadcrumbBlog = React52.memo(function BreadcrumbBlog2({ breadcrumb }) {
33407
+ var BreadcrumbBlog = React52.memo(function BreadcrumbBlog2({
33408
+ breadcrumb
33409
+ }) {
33025
33410
  return /* @__PURE__ */ jsx(Breadcrumb, { children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumb.map((item, i) => {
33026
33411
  const labelKey = typeof item.label === "string" ? item.label : `breadcrumb-${i}`;
33027
33412
  return /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -33057,8 +33442,8 @@ function BlogFilteredResultsComponent({
33057
33442
  postCardClassName,
33058
33443
  loadMoreClassName,
33059
33444
  optixFlowConfig,
33060
- background = "white",
33061
- spacing = "xl",
33445
+ background,
33446
+ spacing,
33062
33447
  pattern,
33063
33448
  patternOpacity
33064
33449
  }) {
@@ -33109,7 +33494,14 @@ function BlogFilteredResultsComponent({
33109
33494
  const primaryPostContent = React52.useMemo(() => {
33110
33495
  if (primaryPostSlot) return primaryPostSlot;
33111
33496
  if (!primaryPost) return null;
33112
- return /* @__PURE__ */ jsx(BlogCard, { post: primaryPost, optixFlowConfig, className: postCardClassName });
33497
+ return /* @__PURE__ */ jsx(
33498
+ BlogCard,
33499
+ {
33500
+ post: primaryPost,
33501
+ optixFlowConfig,
33502
+ className: postCardClassName
33503
+ }
33504
+ );
33113
33505
  }, [primaryPostSlot, primaryPost, optixFlowConfig, postCardClassName]);
33114
33506
  const categoriesContent = React52.useMemo(() => {
33115
33507
  if (categoriesSlot) return categoriesSlot;
@@ -33123,7 +33515,13 @@ function BlogFilteredResultsComponent({
33123
33515
  className: categoriesClassName
33124
33516
  }
33125
33517
  );
33126
- }, [categoriesSlot, categories, selectedCategories, handleCategoryChange, categoriesClassName]);
33518
+ }, [
33519
+ categoriesSlot,
33520
+ categories,
33521
+ selectedCategories,
33522
+ handleCategoryChange,
33523
+ categoriesClassName
33524
+ ]);
33127
33525
  const postsContent = React52.useMemo(() => {
33128
33526
  if (postsSlot) return postsSlot;
33129
33527
  return postsToDisplay.slice(0, visibleCount).map((post) => {
@@ -33138,11 +33536,24 @@ function BlogFilteredResultsComponent({
33138
33536
  postKey
33139
33537
  );
33140
33538
  });
33141
- }, [postsSlot, postsToDisplay, visibleCount, optixFlowConfig, postCardClassName]);
33539
+ }, [
33540
+ postsSlot,
33541
+ postsToDisplay,
33542
+ visibleCount,
33543
+ optixFlowConfig,
33544
+ postCardClassName
33545
+ ]);
33142
33546
  const loadMoreContent = React52.useMemo(() => {
33143
33547
  if (loadMoreSlot) return loadMoreSlot;
33144
33548
  if (!loadMoreAction || !hasMore) return null;
33145
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = loadMoreAction;
33549
+ const {
33550
+ label,
33551
+ icon,
33552
+ iconAfter,
33553
+ children,
33554
+ className: actionClassName,
33555
+ ...pressableProps
33556
+ } = loadMoreAction;
33146
33557
  return /* @__PURE__ */ jsx(
33147
33558
  Pressable,
33148
33559
  {
@@ -33167,22 +33578,67 @@ function BlogFilteredResultsComponent({
33167
33578
  pattern,
33168
33579
  patternOpacity,
33169
33580
  children: [
33170
- /* @__PURE__ */ jsx("div", { className: cn("bg-muted bg-size-[3.125rem_3.125rem] bg-repeat", heroClassName), children: /* @__PURE__ */ jsxs("div", { className: "container flex flex-col items-start justify-start gap-16 py-20 lg:flex-row lg:items-center lg:justify-between", children: [
33171
- /* @__PURE__ */ jsx("div", { className: "flex w-full flex-col justify-between gap-12", children: /* @__PURE__ */ jsxs("div", { className: "flex w-full max-w-xl flex-col gap-8", children: [
33172
- breadcrumbContent,
33173
- /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col gap-5", children: [
33174
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-[2.5rem] leading-[1.2] font-semibold md:text-5xl lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
33175
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-xl leading-[1.4] text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
33581
+ /* @__PURE__ */ jsx(
33582
+ "div",
33583
+ {
33584
+ className: cn(
33585
+ "bg-muted bg-size-[3.125rem_3.125rem] bg-repeat",
33586
+ heroClassName
33587
+ ),
33588
+ children: /* @__PURE__ */ jsxs("div", { className: "container flex flex-col items-start justify-start gap-16 py-20 lg:flex-row lg:items-center lg:justify-between", children: [
33589
+ /* @__PURE__ */ jsx("div", { className: "flex w-full flex-col justify-between gap-12", children: /* @__PURE__ */ jsxs("div", { className: "flex w-full max-w-xl flex-col gap-8", children: [
33590
+ breadcrumbContent,
33591
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col gap-5", children: [
33592
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
33593
+ "h1",
33594
+ {
33595
+ className: cn(
33596
+ "text-[2.5rem] leading-[1.2] font-semibold md:text-5xl lg:text-6xl",
33597
+ headingClassName
33598
+ ),
33599
+ children: heading
33600
+ }
33601
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
33602
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
33603
+ "p",
33604
+ {
33605
+ className: cn(
33606
+ "text-xl leading-[1.4] text-muted-foreground",
33607
+ descriptionClassName
33608
+ ),
33609
+ children: description
33610
+ }
33611
+ ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
33612
+ ] })
33613
+ ] }) }),
33614
+ (primaryPostSlot || primaryPost) && /* @__PURE__ */ jsx("div", { className: cn("w-full max-w-110", primaryPostClassName), children: primaryPostContent })
33176
33615
  ] })
33177
- ] }) }),
33178
- (primaryPostSlot || primaryPost) && /* @__PURE__ */ jsx("div", { className: cn("w-full max-w-110", primaryPostClassName), children: primaryPostContent })
33179
- ] }) }),
33616
+ }
33617
+ ),
33180
33618
  /* @__PURE__ */ jsx("div", { className: cn("py-20", allContentClassName), children: /* @__PURE__ */ jsxs("div", { className: "container flex flex-col gap-8", children: [
33181
- allContentHeading && (typeof allContentHeading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-[1.75rem] leading-none font-medium md:text-[2.25rem] lg:text-[2rem]", allContentHeadingClassName), children: allContentHeading }) : /* @__PURE__ */ jsx("div", { className: allContentHeadingClassName, children: allContentHeading })),
33619
+ allContentHeading && (typeof allContentHeading === "string" ? /* @__PURE__ */ jsx(
33620
+ "h2",
33621
+ {
33622
+ className: cn(
33623
+ "text-[1.75rem] leading-none font-medium md:text-[2.25rem] lg:text-[2rem]",
33624
+ allContentHeadingClassName
33625
+ ),
33626
+ children: allContentHeading
33627
+ }
33628
+ ) : /* @__PURE__ */ jsx("div", { className: allContentHeadingClassName, children: allContentHeading })),
33182
33629
  /* @__PURE__ */ jsxs("div", { children: [
33183
33630
  categoriesContent,
33184
33631
  /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col gap-4 py-8 lg:gap-8", children: [
33185
- /* @__PURE__ */ jsx("div", { className: cn("grid gap-10 md:grid-cols-2 lg:grid-cols-3", postsClassName), children: postsContent }),
33632
+ /* @__PURE__ */ jsx(
33633
+ "div",
33634
+ {
33635
+ className: cn(
33636
+ "grid gap-10 md:grid-cols-2 lg:grid-cols-3",
33637
+ postsClassName
33638
+ ),
33639
+ children: postsContent
33640
+ }
33641
+ ),
33186
33642
  /* @__PURE__ */ jsx("div", { className: cn("flex justify-center", loadMoreClassName), children: loadMoreContent })
33187
33643
  ] })
33188
33644
  ] })
@@ -33204,8 +33660,8 @@ function BlogMasonryFeaturedComponent({
33204
33660
  featuredImageClassName,
33205
33661
  postCardClassName,
33206
33662
  optixFlowConfig,
33207
- background = "white",
33208
- spacing = "xl",
33663
+ background,
33664
+ spacing,
33209
33665
  pattern,
33210
33666
  patternOpacity
33211
33667
  }) {
@@ -33213,61 +33669,87 @@ function BlogMasonryFeaturedComponent({
33213
33669
  const otherPosts = posts?.slice(1);
33214
33670
  const featuredPostContent = React52.useMemo(() => {
33215
33671
  if (featuredSlot) return featuredSlot;
33216
- if (!featuredPost) return null;
33217
- const postHref = featuredPost.href || featuredPost.url || featuredPost.link || "#";
33218
- return /* @__PURE__ */ jsx("div", { className: cn("relative md:row-span-2 lg:col-span-2", featuredClassName), children: /* @__PURE__ */ jsxs(
33219
- Pressable,
33220
- {
33221
- href: postHref,
33222
- className: "block h-fit rounded-lg p-3 md:top-0",
33223
- children: [
33224
- featuredPost.image && /* @__PURE__ */ jsx(
33225
- Img,
33226
- {
33227
- src: featuredPost.image,
33228
- alt: typeof featuredPost.title === "string" ? featuredPost.title : "Featured content",
33229
- className: cn("h-48 w-full rounded-lg object-cover hover:opacity-80 md:h-80 lg:h-96", featuredImageClassName),
33230
- optixFlowConfig
33231
- }
33232
- ),
33233
- /* @__PURE__ */ jsxs("div", { className: "mt-5", children: [
33234
- /* @__PURE__ */ jsxs("div", { className: "mb-2.5 flex items-center gap-1 text-sm text-muted-foreground", children: [
33235
- (featuredPost.date || featuredPost.published) && /* @__PURE__ */ jsx("time", { children: featuredPost.date || featuredPost.published }),
33236
- (featuredPost.date || featuredPost.published) && featuredPost.author && "\xB7",
33237
- featuredPost.author && /* @__PURE__ */ jsx("span", { children: featuredPost.author })
33238
- ] }),
33239
- featuredPost.title && (typeof featuredPost.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-lg md:text-3xl lg:text-4xl", children: featuredPost.title }) : /* @__PURE__ */ jsx("div", { className: "text-lg md:text-3xl lg:text-4xl", children: featuredPost.title })),
33240
- (featuredPost.description || featuredPost.summary) && /* @__PURE__ */ jsx("p", { className: "mt-4 text-muted-foreground", children: featuredPost.description || featuredPost.summary })
33241
- ] })
33242
- ]
33672
+ if (!featuredPost) return null;
33673
+ const postHref = featuredPost.href || featuredPost.url || featuredPost.link || "#";
33674
+ return /* @__PURE__ */ jsx(
33675
+ "div",
33676
+ {
33677
+ className: cn(
33678
+ "relative md:row-span-2 lg:col-span-2",
33679
+ featuredClassName
33680
+ ),
33681
+ children: /* @__PURE__ */ jsxs(
33682
+ Pressable,
33683
+ {
33684
+ href: postHref,
33685
+ className: "block h-fit rounded-lg p-3 md:top-0",
33686
+ children: [
33687
+ featuredPost.image && /* @__PURE__ */ jsx(
33688
+ Img,
33689
+ {
33690
+ src: featuredPost.image,
33691
+ alt: typeof featuredPost.title === "string" ? featuredPost.title : "Featured content",
33692
+ className: cn(
33693
+ "h-48 w-full rounded-lg object-cover hover:opacity-80 md:h-80 lg:h-96",
33694
+ featuredImageClassName
33695
+ ),
33696
+ optixFlowConfig
33697
+ }
33698
+ ),
33699
+ /* @__PURE__ */ jsxs("div", { className: "mt-5", children: [
33700
+ /* @__PURE__ */ jsxs("div", { className: "mb-2.5 flex items-center gap-1 text-sm text-muted-foreground", children: [
33701
+ (featuredPost.date || featuredPost.published) && /* @__PURE__ */ jsx("time", { children: featuredPost.date || featuredPost.published }),
33702
+ (featuredPost.date || featuredPost.published) && featuredPost.author && "\xB7",
33703
+ featuredPost.author && /* @__PURE__ */ jsx("span", { children: featuredPost.author })
33704
+ ] }),
33705
+ featuredPost.title && (typeof featuredPost.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-lg md:text-3xl lg:text-4xl", children: featuredPost.title }) : /* @__PURE__ */ jsx("div", { className: "text-lg md:text-3xl lg:text-4xl", children: featuredPost.title })),
33706
+ (featuredPost.description || featuredPost.summary) && /* @__PURE__ */ jsx("p", { className: "mt-4 text-muted-foreground", children: featuredPost.description || featuredPost.summary })
33707
+ ] })
33708
+ ]
33709
+ }
33710
+ )
33243
33711
  }
33244
- ) });
33245
- }, [featuredSlot, featuredPost, featuredClassName, featuredImageClassName, optixFlowConfig]);
33712
+ );
33713
+ }, [
33714
+ featuredSlot,
33715
+ featuredPost,
33716
+ featuredClassName,
33717
+ featuredImageClassName,
33718
+ optixFlowConfig
33719
+ ]);
33246
33720
  const otherPostsContent = React52.useMemo(() => {
33247
33721
  if (postsSlot) return postsSlot;
33248
33722
  if (!otherPosts || otherPosts.length === 0) return null;
33249
33723
  return otherPosts.map((post) => {
33250
33724
  const postHref = post.href || post.url || post.link || "#";
33251
33725
  const postId = post.id || String(post.title) || Math.random().toString();
33252
- return /* @__PURE__ */ jsxs(Pressable, { href: postHref, className: cn("rounded-lg p-3", postCardClassName), children: [
33253
- post.image && /* @__PURE__ */ jsx(
33254
- Img,
33255
- {
33256
- src: post.image,
33257
- alt: typeof post.title === "string" ? post.title : "Content item",
33258
- className: "h-48 w-full rounded-lg object-cover hover:opacity-80",
33259
- optixFlowConfig
33260
- }
33261
- ),
33262
- /* @__PURE__ */ jsxs("div", { className: "mt-5", children: [
33263
- /* @__PURE__ */ jsxs("div", { className: "mb-2.5 flex items-center gap-1 text-sm text-muted-foreground", children: [
33264
- (post.date || post.published) && /* @__PURE__ */ jsx("time", { children: post.date || post.published }),
33265
- (post.date || post.published) && post.author && "\xB7",
33266
- post.author && /* @__PURE__ */ jsx("span", { children: post.author })
33267
- ] }),
33268
- post.title && (typeof post.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-lg", children: post.title }) : /* @__PURE__ */ jsx("div", { className: "text-lg", children: post.title }))
33269
- ] })
33270
- ] }, postId);
33726
+ return /* @__PURE__ */ jsxs(
33727
+ Pressable,
33728
+ {
33729
+ href: postHref,
33730
+ className: cn("rounded-lg p-3", postCardClassName),
33731
+ children: [
33732
+ post.image && /* @__PURE__ */ jsx(
33733
+ Img,
33734
+ {
33735
+ src: post.image,
33736
+ alt: typeof post.title === "string" ? post.title : "Content item",
33737
+ className: "h-48 w-full rounded-lg object-cover hover:opacity-80",
33738
+ optixFlowConfig
33739
+ }
33740
+ ),
33741
+ /* @__PURE__ */ jsxs("div", { className: "mt-5", children: [
33742
+ /* @__PURE__ */ jsxs("div", { className: "mb-2.5 flex items-center gap-1 text-sm text-muted-foreground", children: [
33743
+ (post.date || post.published) && /* @__PURE__ */ jsx("time", { children: post.date || post.published }),
33744
+ (post.date || post.published) && post.author && "\xB7",
33745
+ post.author && /* @__PURE__ */ jsx("span", { children: post.author })
33746
+ ] }),
33747
+ post.title && (typeof post.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-lg", children: post.title }) : /* @__PURE__ */ jsx("div", { className: "text-lg", children: post.title }))
33748
+ ] })
33749
+ ]
33750
+ },
33751
+ postId
33752
+ );
33271
33753
  });
33272
33754
  }, [postsSlot, otherPosts, postCardClassName, optixFlowConfig]);
33273
33755
  return /* @__PURE__ */ jsx(
@@ -33279,11 +33761,29 @@ function BlogMasonryFeaturedComponent({
33279
33761
  pattern,
33280
33762
  patternOpacity,
33281
33763
  children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
33282
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("mb-12 text-center text-4xl font-medium md:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
33283
- /* @__PURE__ */ jsxs("div", { className: cn("xs:grid-cols-1 mt-24 grid gap-4 sm:grid-cols-2 lg:grid-cols-4", postsClassName), children: [
33284
- featuredPostContent,
33285
- otherPostsContent
33286
- ] })
33764
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
33765
+ "h1",
33766
+ {
33767
+ className: cn(
33768
+ "mb-12 text-center text-4xl font-medium md:text-7xl",
33769
+ headingClassName
33770
+ ),
33771
+ children: heading
33772
+ }
33773
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
33774
+ /* @__PURE__ */ jsxs(
33775
+ "div",
33776
+ {
33777
+ className: cn(
33778
+ "xs:grid-cols-1 mt-24 grid gap-4 sm:grid-cols-2 lg:grid-cols-4",
33779
+ postsClassName
33780
+ ),
33781
+ children: [
33782
+ featuredPostContent,
33783
+ otherPostsContent
33784
+ ]
33785
+ }
33786
+ )
33287
33787
  ] })
33288
33788
  }
33289
33789
  );
@@ -33301,8 +33801,8 @@ function BlogHorizontalTimelineComponent({
33301
33801
  postImageClassName,
33302
33802
  postCardClassName,
33303
33803
  optixFlowConfig,
33304
- background = "white",
33305
- spacing = "xl",
33804
+ background,
33805
+ spacing,
33306
33806
  pattern,
33307
33807
  patternOpacity
33308
33808
  }) {
@@ -33318,17 +33818,29 @@ function BlogHorizontalTimelineComponent({
33318
33818
  return /* @__PURE__ */ jsxs(
33319
33819
  "div",
33320
33820
  {
33321
- className: cn("flex flex-col items-center gap-16 md:flex-row", postItemClassName),
33821
+ className: cn(
33822
+ "flex flex-col items-center gap-16 md:flex-row",
33823
+ postItemClassName
33824
+ ),
33322
33825
  children: [
33323
- post.image && /* @__PURE__ */ jsx("div", { className: cn("flex h-80 w-full items-center justify-center overflow-hidden rounded-3xl bg-muted md:w-140", postImageClassName), children: /* @__PURE__ */ jsx(
33324
- Img,
33826
+ post.image && /* @__PURE__ */ jsx(
33827
+ "div",
33325
33828
  {
33326
- src: post.image,
33327
- className: "h-full w-full object-cover",
33328
- alt: postImageAlt,
33329
- optixFlowConfig
33829
+ className: cn(
33830
+ "flex h-80 w-full items-center justify-center overflow-hidden rounded-3xl bg-muted md:w-140",
33831
+ postImageClassName
33832
+ ),
33833
+ children: /* @__PURE__ */ jsx(
33834
+ Img,
33835
+ {
33836
+ src: post.image,
33837
+ className: "h-full w-full object-cover",
33838
+ alt: postImageAlt,
33839
+ optixFlowConfig
33840
+ }
33841
+ )
33330
33842
  }
33331
- ) }),
33843
+ ),
33332
33844
  /* @__PURE__ */ jsx(Card, { className: cn("border-none shadow-none", postCardClassName), children: /* @__PURE__ */ jsx(CardContent, { className: "p-0", children: /* @__PURE__ */ jsxs(
33333
33845
  "div",
33334
33846
  {
@@ -33364,7 +33876,15 @@ function BlogHorizontalTimelineComponent({
33364
33876
  postId
33365
33877
  );
33366
33878
  });
33367
- }, [postsSlot, posts, postItemClassName, postImageClassName, postCardClassName, optixFlowConfig, readText]);
33879
+ }, [
33880
+ postsSlot,
33881
+ posts,
33882
+ postItemClassName,
33883
+ postImageClassName,
33884
+ postCardClassName,
33885
+ optixFlowConfig,
33886
+ readText
33887
+ ]);
33368
33888
  return /* @__PURE__ */ jsx(
33369
33889
  Section,
33370
33890
  {
@@ -33374,7 +33894,16 @@ function BlogHorizontalTimelineComponent({
33374
33894
  pattern,
33375
33895
  patternOpacity,
33376
33896
  children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
33377
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("mb-12 max-w-lg font-sans text-5xl font-extrabold tracking-tight text-foreground md:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: cn("mb-12", headingClassName), children: heading })),
33897
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
33898
+ "h1",
33899
+ {
33900
+ className: cn(
33901
+ "mb-12 max-w-lg font-sans text-5xl font-extrabold tracking-tight text-foreground md:text-7xl",
33902
+ headingClassName
33903
+ ),
33904
+ children: heading
33905
+ }
33906
+ ) : /* @__PURE__ */ jsx("div", { className: cn("mb-12", headingClassName), children: heading })),
33378
33907
  /* @__PURE__ */ jsx("div", { className: cn("flex flex-col", postsClassName), children: renderPosts })
33379
33908
  ] })
33380
33909
  }
@@ -33396,15 +33925,22 @@ function BlogGridNinePosts({
33396
33925
  postCardClassName,
33397
33926
  ctaClassName,
33398
33927
  optixFlowConfig,
33399
- background = "white",
33400
- spacing = "xl",
33928
+ background,
33929
+ spacing,
33401
33930
  pattern,
33402
33931
  patternOpacity
33403
33932
  }) {
33404
33933
  const renderedCtaAction = React52.useMemo(() => {
33405
33934
  if (ctaSlot) return ctaSlot;
33406
33935
  if (!ctaAction) return null;
33407
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = ctaAction;
33936
+ const {
33937
+ label,
33938
+ icon,
33939
+ iconAfter,
33940
+ children,
33941
+ className: actionClassName,
33942
+ ...pressableProps
33943
+ } = ctaAction;
33408
33944
  return /* @__PURE__ */ jsx(
33409
33945
  Pressable,
33410
33946
  {
@@ -33470,11 +34006,38 @@ function BlogGridNinePosts({
33470
34006
  patternOpacity,
33471
34007
  children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
33472
34008
  /* @__PURE__ */ jsxs("div", { className: cn("mb-8 md:mb-14 lg:mb-16", headerClassName), children: [
33473
- /* @__PURE__ */ jsx("div", { className: "flex items-start justify-between gap-8", children: /* @__PURE__ */ jsx("div", { children: heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("mb-4 w-full text-4xl font-medium md:mb-5 md:text-5xl lg:mb-6 lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })) }) }),
34009
+ /* @__PURE__ */ jsx("div", { className: "flex items-start justify-between gap-8", children: /* @__PURE__ */ jsx("div", { children: heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
34010
+ "h2",
34011
+ {
34012
+ className: cn(
34013
+ "mb-4 w-full text-4xl font-medium md:mb-5 md:text-5xl lg:mb-6 lg:text-6xl",
34014
+ headingClassName
34015
+ ),
34016
+ children: heading
34017
+ }
34018
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })) }) }),
33474
34019
  description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: descriptionClassName, children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
33475
34020
  ] }),
33476
- /* @__PURE__ */ jsx("div", { className: cn("grid gap-x-4 gap-y-8 md:grid-cols-2 lg:gap-x-6 lg:gap-y-12 2xl:grid-cols-3", postsClassName), children: renderedPosts }),
33477
- (ctaSlot || ctaAction) && /* @__PURE__ */ jsx("div", { className: cn("mt-8 flex flex-col items-center py-2 md:hidden", ctaClassName), children: renderedCtaAction })
34021
+ /* @__PURE__ */ jsx(
34022
+ "div",
34023
+ {
34024
+ className: cn(
34025
+ "grid gap-x-4 gap-y-8 md:grid-cols-2 lg:gap-x-6 lg:gap-y-12 2xl:grid-cols-3",
34026
+ postsClassName
34027
+ ),
34028
+ children: renderedPosts
34029
+ }
34030
+ ),
34031
+ (ctaSlot || ctaAction) && /* @__PURE__ */ jsx(
34032
+ "div",
34033
+ {
34034
+ className: cn(
34035
+ "mt-8 flex flex-col items-center py-2 md:hidden",
34036
+ ctaClassName
34037
+ ),
34038
+ children: renderedCtaAction
34039
+ }
34040
+ )
33478
34041
  ] })
33479
34042
  }
33480
34043
  );
@@ -33767,7 +34330,7 @@ function BlogCarouselAppleComponent({
33767
34330
  },
33768
34331
  `carousel-card-${index}`
33769
34332
  );
33770
- }).filter(Boolean);
34333
+ }).filter((element) => element !== null);
33771
34334
  }, [
33772
34335
  carouselCards,
33773
34336
  posts,
@@ -33801,122 +34364,6 @@ function BlogCarouselAppleComponent({
33801
34364
  }
33802
34365
  );
33803
34366
  }
33804
- var alertVariants = cva(
33805
- "relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
33806
- {
33807
- variants: {
33808
- variant: {
33809
- default: "bg-card text-card-foreground",
33810
- destructive: "text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90"
33811
- }
33812
- },
33813
- defaultVariants: {
33814
- variant: "default"
33815
- }
33816
- }
33817
- );
33818
- function Alert({
33819
- className,
33820
- variant,
33821
- ...props
33822
- }) {
33823
- return /* @__PURE__ */ jsx(
33824
- "div",
33825
- {
33826
- "data-slot": "alert",
33827
- role: "alert",
33828
- className: cn(alertVariants({ variant }), className),
33829
- ...props
33830
- }
33831
- );
33832
- }
33833
- function AlertTitle({ className, ...props }) {
33834
- return /* @__PURE__ */ jsx(
33835
- "div",
33836
- {
33837
- "data-slot": "alert-title",
33838
- className: cn(
33839
- "col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",
33840
- className
33841
- ),
33842
- ...props
33843
- }
33844
- );
33845
- }
33846
- function AlertDescription({
33847
- className,
33848
- ...props
33849
- }) {
33850
- return /* @__PURE__ */ jsx(
33851
- "div",
33852
- {
33853
- "data-slot": "alert-description",
33854
- className: cn(
33855
- "text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",
33856
- className
33857
- ),
33858
- ...props
33859
- }
33860
- );
33861
- }
33862
- var defaultArticleContent = (optixFlowConfig) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
33863
- /* @__PURE__ */ jsx("h2", { className: "text-3xl font-extrabold", children: "The Great Joke Tax" }),
33864
- /* @__PURE__ */ jsx("p", { className: "mt-2 text-lg text-muted-foreground", children: "In a kingdom far away, where laughter once flowed freely, a peculiar tale unfolded about a king who decided to tax the very essence of joy itself - jokes and jest." }),
33865
- /* @__PURE__ */ jsx("h2", { children: "How the Tax System Works" }),
33866
- /* @__PURE__ */ jsx("p", { children: "The king, seeing how much happier his subjects were, realized the error of his ways and repealed the joke tax. Jokester was declared a hero, and the kingdom lived happily ever after." }),
33867
- /* @__PURE__ */ jsxs(Alert, { children: [
33868
- /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/lightbulb", size: 16 }),
33869
- /* @__PURE__ */ jsx(AlertTitle, { children: "Royal Decree!" }),
33870
- /* @__PURE__ */ jsx(AlertDescription, { children: "Remember, all jokes must be registered at the Royal Jest Office before telling them" })
33871
- ] }),
33872
- /* @__PURE__ */ jsx("h2", { children: "The People's Rebellion" }),
33873
- /* @__PURE__ */ jsx("p", { children: "The people of the kingdom, feeling uplifted by the laughter, started to tell jokes and puns again, and soon the entire kingdom was in on the joke." }),
33874
- /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs("table", { children: [
33875
- /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
33876
- /* @__PURE__ */ jsx("th", { children: "King's Treasury" }),
33877
- /* @__PURE__ */ jsx("th", { children: "People's happiness" })
33878
- ] }) }),
33879
- /* @__PURE__ */ jsxs("tbody", { children: [
33880
- /* @__PURE__ */ jsxs("tr", { children: [
33881
- /* @__PURE__ */ jsx("td", { children: "Empty" }),
33882
- /* @__PURE__ */ jsx("td", { children: "Overflowing" })
33883
- ] }),
33884
- /* @__PURE__ */ jsxs("tr", { className: "m-0 border-t p-0 even:bg-muted", children: [
33885
- /* @__PURE__ */ jsx("td", { children: "Modest" }),
33886
- /* @__PURE__ */ jsx("td", { children: "Satisfied" })
33887
- ] }),
33888
- /* @__PURE__ */ jsxs("tr", { className: "m-0 border-t p-0 even:bg-muted", children: [
33889
- /* @__PURE__ */ jsx("td", { children: "Full" }),
33890
- /* @__PURE__ */ jsx("td", { children: "Ecstatic" })
33891
- ] })
33892
- ] })
33893
- ] }) }),
33894
- /* @__PURE__ */ jsx("p", { children: "The king, seeing how much happier his subjects were, realized the error of his ways and repealed the joke tax. Jokester was declared a hero, and the kingdom lived happily ever after." }),
33895
- /* @__PURE__ */ jsx("h2", { children: "The King's Plan" }),
33896
- /* @__PURE__ */ jsx(
33897
- Img,
33898
- {
33899
- src: imagePlaceholders[1],
33900
- alt: "Article content image",
33901
- className: "my-8 aspect-video w-full rounded-md object-cover",
33902
- optixFlowConfig
33903
- }
33904
- ),
33905
- /* @__PURE__ */ jsxs("p", { children: [
33906
- "The king thought long and hard, and finally came up with",
33907
- " ",
33908
- /* @__PURE__ */ jsx(Pressable, { href: "#", children: "a brilliant plan" }),
33909
- ": he would tax the jokes in the kingdom."
33910
- ] }),
33911
- /* @__PURE__ */ jsx("blockquote", { children: "\u201CAfter all,\u201D he said, \u201Ceveryone enjoys a good joke, so it's only fair that they should pay for the privilege.\u201D" }),
33912
- /* @__PURE__ */ jsx("p", { children: "The king's subjects were not amused. They grumbled and complained, but the king was firm:" }),
33913
- /* @__PURE__ */ jsxs("ul", { children: [
33914
- /* @__PURE__ */ jsx("li", { children: "1st level of puns: 5 gold coins" }),
33915
- /* @__PURE__ */ jsx("li", { children: "2nd level of jokes: 10 gold coins" }),
33916
- /* @__PURE__ */ jsx("li", { children: "3rd level of one-liners : 20 gold coins" })
33917
- ] }),
33918
- /* @__PURE__ */ jsx("p", { children: "As a result, people stopped telling jokes, and the kingdom fell into a gloom. But there was one person who refused to let the king's foolishness get him down: a court jester named Jokester." })
33919
- ] });
33920
34367
  function ArticleHeroProseComponent({
33921
34368
  post,
33922
34369
  className,
@@ -33931,7 +34378,11 @@ function ArticleHeroProseComponent({
33931
34378
  authorSlot,
33932
34379
  children,
33933
34380
  dateFormat = "MMMM d, yyyy",
33934
- optixFlowConfig
34381
+ optixFlowConfig,
34382
+ background,
34383
+ spacing,
34384
+ pattern,
34385
+ patternOpacity
33935
34386
  }) {
33936
34387
  const { title, authorName, authorHref, image, pubDate, description, authorImage } = post ?? {};
33937
34388
  const authorContent = React52.useMemo(() => {
@@ -33964,38 +34415,26 @@ function ArticleHeroProseComponent({
33964
34415
  }
33965
34416
  );
33966
34417
  }, [heroMediaSlot, image, heroImageClassName, optixFlowConfig]);
33967
- return /* @__PURE__ */ jsxs("section", { className: cn("py-32", className), children: [
33968
- /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("mx-auto flex max-w-5xl flex-col items-center gap-4 text-center", headerClassName), children: [
33969
- title && /* @__PURE__ */ jsx("h1", { className: cn("max-w-3xl text-5xl font-semibold text-pretty md:text-6xl", titleClassName), children: title }),
33970
- description && /* @__PURE__ */ jsx("h3", { className: cn("max-w-3xl text-lg text-muted-foreground md:text-xl", descriptionClassName), children: description }),
33971
- authorContent,
33972
- heroMediaContent
33973
- ] }) }),
33974
- /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsx("div", { className: cn("mx-auto prose max-w-3xl dark:prose-invert", proseClassName), children: children || defaultArticleContent(optixFlowConfig) }) })
33975
- ] });
33976
- }
33977
- var defaultArticleContent2 = (optixFlowConfig) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
33978
- /* @__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." }),
33979
- /* @__PURE__ */ jsx("h2", { children: "Understanding the Fundamentals" }),
33980
- /* @__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." }),
33981
- /* @__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." }),
33982
- /* @__PURE__ */ jsx("h2", { children: "The Rise of Component-Based Architecture" }),
33983
- /* @__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." }),
33984
- /* @__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" }),
33985
- /* @__PURE__ */ jsx("h2", { children: "Performance Optimization" }),
33986
- /* @__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." }),
33987
- /* @__PURE__ */ jsx(
33988
- Img,
34418
+ return /* @__PURE__ */ jsxs(
34419
+ Section,
33989
34420
  {
33990
- src: imagePlaceholders[3],
33991
- alt: "Performance optimization illustration",
33992
- className: "my-8 aspect-video w-full rounded-lg object-cover",
33993
- optixFlowConfig
34421
+ background,
34422
+ spacing,
34423
+ pattern,
34424
+ patternOpacity,
34425
+ className,
34426
+ children: [
34427
+ /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("mx-auto flex max-w-5xl flex-col items-center gap-4 text-center", headerClassName), children: [
34428
+ title && /* @__PURE__ */ jsx("h1", { className: cn("max-w-3xl text-5xl font-semibold text-pretty md:text-6xl", titleClassName), children: title }),
34429
+ description && /* @__PURE__ */ jsx("h3", { className: cn("max-w-3xl text-lg text-muted-foreground md:text-xl", descriptionClassName), children: description }),
34430
+ authorContent,
34431
+ heroMediaContent
34432
+ ] }) }),
34433
+ children && /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsx("div", { className: cn("mx-auto prose max-w-3xl dark:prose-invert", proseClassName), children }) })
34434
+ ]
33994
34435
  }
33995
- ),
33996
- /* @__PURE__ */ jsx("h2", { children: "Looking Ahead" }),
33997
- /* @__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." })
33998
- ] });
34436
+ );
34437
+ }
33999
34438
  function ArticleSidebarStickyComponent({
34000
34439
  className,
34001
34440
  containerClassName,
@@ -34019,7 +34458,11 @@ function ArticleSidebarStickyComponent({
34019
34458
  heroImageAlt,
34020
34459
  heroMediaSlot,
34021
34460
  children,
34022
- optixFlowConfig
34461
+ optixFlowConfig,
34462
+ background,
34463
+ spacing,
34464
+ pattern,
34465
+ patternOpacity
34023
34466
  }) {
34024
34467
  const backLinkContent = React52.useMemo(() => {
34025
34468
  if (backLinkSlot) return backLinkSlot;
@@ -34054,74 +34497,40 @@ function ArticleSidebarStickyComponent({
34054
34497
  const heroMediaContent = React52.useMemo(() => {
34055
34498
  if (heroMediaSlot) return heroMediaSlot;
34056
34499
  if (!heroImageSrc) return null;
34057
- return /* @__PURE__ */ jsx(
34058
- Img,
34059
- {
34060
- src: heroImageSrc,
34061
- alt: heroImageAlt,
34062
- className: cn("my-8 aspect-video w-full rounded-lg object-cover", heroImageClassName),
34063
- optixFlowConfig
34064
- }
34065
- );
34066
- }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
34067
- 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: [
34068
- /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxs("div", { className: "sticky top-8 space-y-6", children: [
34069
- backLinkContent,
34070
- /* @__PURE__ */ jsx("div", { className: "space-y-4", children: renderAuthor(false) })
34071
- ] }) }),
34072
- /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
34073
- /* @__PURE__ */ jsx("div", { className: "mb-8 lg:hidden", children: backLinkContent }),
34074
- 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 })),
34075
- /* @__PURE__ */ jsx("div", { className: "mt-4 lg:hidden", children: renderAuthor(true) }),
34076
- heroMediaContent,
34077
- children || defaultArticleContent2(optixFlowConfig)
34078
- ] })
34079
- ] }) }) });
34080
- }
34081
- var defaultArticleContent3 = (optixFlowConfig) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
34082
- /* @__PURE__ */ jsxs("section", { id: "introduction", children: [
34083
- /* @__PURE__ */ jsx("h2", { children: "Introduction" }),
34084
- /* @__PURE__ */ jsx("p", { children: "Building scalable applications requires careful consideration of architecture, design patterns, and infrastructure. In this guide, we'll explore the key principles that enable applications to grow gracefully with increasing demand." }),
34085
- /* @__PURE__ */ jsxs(Alert, { children: [
34086
- /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/lightbulb", size: 16 }),
34087
- /* @__PURE__ */ jsx(AlertTitle, { children: "Pro Tip" }),
34088
- /* @__PURE__ */ jsx(AlertDescription, { children: "Start with a simple architecture and evolve it as your needs grow. Premature optimization can lead to unnecessary complexity." })
34089
- ] })
34090
- ] }),
34091
- /* @__PURE__ */ jsxs("section", { id: "getting-started", children: [
34092
- /* @__PURE__ */ jsx("h2", { children: "Getting Started" }),
34093
- /* @__PURE__ */ jsx("p", { children: "Before diving into complex architectural patterns, ensure you have a solid understanding of your application's requirements. Consider factors like expected traffic, data volume, and team expertise." }),
34094
- /* @__PURE__ */ jsx("p", { children: "A well-designed system starts with clear requirements and constraints. Document your assumptions and validate them with stakeholders before making architectural decisions." })
34095
- ] }),
34096
- /* @__PURE__ */ jsxs("section", { id: "core-concepts", children: [
34097
- /* @__PURE__ */ jsx("h2", { children: "Core Concepts" }),
34098
- /* @__PURE__ */ jsx("p", { children: "Scalability encompasses both horizontal and vertical scaling strategies. Horizontal scaling adds more machines to handle load, while vertical scaling increases the capacity of existing machines." }),
34099
- /* @__PURE__ */ jsx(
34500
+ return /* @__PURE__ */ jsx(
34100
34501
  Img,
34101
34502
  {
34102
- src: imagePlaceholders[5],
34103
- alt: "Architecture diagram",
34104
- className: "my-8 aspect-video w-full rounded-lg object-cover",
34503
+ src: heroImageSrc,
34504
+ alt: heroImageAlt,
34505
+ className: cn("my-8 aspect-video w-full rounded-lg object-cover", heroImageClassName),
34105
34506
  optixFlowConfig
34106
34507
  }
34107
- ),
34108
- /* @__PURE__ */ jsx("p", { children: "Key concepts include load balancing, caching, database sharding, and microservices architecture. Each approach has trade-offs that must be carefully evaluated." })
34109
- ] }),
34110
- /* @__PURE__ */ jsxs("section", { id: "best-practices", children: [
34111
- /* @__PURE__ */ jsx("h2", { children: "Best Practices" }),
34112
- /* @__PURE__ */ jsx("p", { children: "Follow these best practices to ensure your application scales effectively:" }),
34113
- /* @__PURE__ */ jsxs("ul", { children: [
34114
- /* @__PURE__ */ jsx("li", { children: "Design for failure and implement graceful degradation" }),
34115
- /* @__PURE__ */ jsx("li", { children: "Use caching strategically at multiple levels" }),
34116
- /* @__PURE__ */ jsx("li", { children: "Implement proper monitoring and alerting" }),
34117
- /* @__PURE__ */ jsx("li", { children: "Automate deployment and scaling processes" })
34118
- ] })
34119
- ] }),
34120
- /* @__PURE__ */ jsxs("section", { id: "conclusion", children: [
34121
- /* @__PURE__ */ jsx("h2", { children: "Conclusion" }),
34122
- /* @__PURE__ */ jsx("p", { children: "Building scalable applications is both an art and a science. By understanding the fundamental principles and applying them thoughtfully, you can create systems that grow with your business needs." })
34123
- ] })
34124
- ] });
34508
+ );
34509
+ }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
34510
+ return /* @__PURE__ */ jsx(
34511
+ Section,
34512
+ {
34513
+ background,
34514
+ spacing,
34515
+ pattern,
34516
+ patternOpacity,
34517
+ className,
34518
+ children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: "grid gap-10 lg:grid-cols-[1fr_minmax(0,2fr)]", children: [
34519
+ /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxs("div", { className: "sticky top-8 space-y-6", children: [
34520
+ backLinkContent,
34521
+ /* @__PURE__ */ jsx("div", { className: "space-y-4", children: renderAuthor(false) })
34522
+ ] }) }),
34523
+ /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
34524
+ /* @__PURE__ */ jsx("div", { className: "mb-8 lg:hidden", children: backLinkContent }),
34525
+ 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 })),
34526
+ /* @__PURE__ */ jsx("div", { className: "mt-4 lg:hidden", children: renderAuthor(true) }),
34527
+ heroMediaContent,
34528
+ children
34529
+ ] })
34530
+ ] }) })
34531
+ }
34532
+ );
34533
+ }
34125
34534
  function ArticleTocSidebarComponent({
34126
34535
  className,
34127
34536
  containerClassName,
@@ -34158,7 +34567,11 @@ function ArticleTocSidebarComponent({
34158
34567
  ctaSlot,
34159
34568
  children,
34160
34569
  enableTocTracking = true,
34161
- optixFlowConfig
34570
+ optixFlowConfig,
34571
+ background,
34572
+ spacing,
34573
+ pattern,
34574
+ patternOpacity
34162
34575
  }) {
34163
34576
  const ctaActions = ctaActionsProp ?? (ctaButtonText ? [{ label: ctaButtonText, href: ctaButtonHref || "#", variant: "default", className: "w-full" }] : []);
34164
34577
  const [activeSection, setActiveSection] = React52.useState(
@@ -34270,72 +34683,33 @@ function ArticleTocSidebarComponent({
34270
34683
  }) })
34271
34684
  ] });
34272
34685
  }, [ctaSlot, ctaTitle, ctaDescription, ctaActions, ctaClassName]);
34273
- 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-[minmax(0,1fr)_300px]", children: [
34274
- /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
34275
- /* @__PURE__ */ jsxs("div", { className: cn("mb-8 not-prose", headerClassName), children: [
34276
- categoryContent,
34277
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("mt-4 text-4xl font-bold tracking-tight md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", titleClassName), children: title })),
34278
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", descriptionClassName), children: description })),
34279
- authorContent
34280
- ] }),
34281
- heroMediaContent,
34282
- children || defaultArticleContent3(optixFlowConfig)
34283
- ] }),
34284
- /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxs("div", { className: "sticky top-8 space-y-6", children: [
34285
- tocContent,
34286
- ctaContent
34287
- ] }) })
34288
- ] }) }) });
34289
- }
34290
- var defaultArticleContent4 = (optixFlowConfig) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
34291
- /* @__PURE__ */ jsx(
34292
- Img,
34686
+ return /* @__PURE__ */ jsx(
34687
+ Section,
34293
34688
  {
34294
- src: imagePlaceholders[6],
34295
- alt: "Article hero",
34296
- className: "my-8 aspect-video w-full rounded-lg object-cover",
34297
- optixFlowConfig
34689
+ background,
34690
+ spacing,
34691
+ pattern,
34692
+ patternOpacity,
34693
+ className,
34694
+ children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,1fr)_300px]", children: [
34695
+ /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
34696
+ /* @__PURE__ */ jsxs("div", { className: cn("mb-8 not-prose", headerClassName), children: [
34697
+ categoryContent,
34698
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("mt-4 text-4xl font-bold tracking-tight md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", titleClassName), children: title })),
34699
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", descriptionClassName), children: description })),
34700
+ authorContent
34701
+ ] }),
34702
+ heroMediaContent,
34703
+ children
34704
+ ] }),
34705
+ /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxs("div", { className: "sticky top-8 space-y-6", children: [
34706
+ tocContent,
34707
+ ctaContent
34708
+ ] }) })
34709
+ ] }) })
34298
34710
  }
34299
- ),
34300
- /* @__PURE__ */ jsxs("section", { id: "overview", children: [
34301
- /* @__PURE__ */ jsx("h2", { children: "Overview" }),
34302
- /* @__PURE__ */ 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." }),
34303
- /* @__PURE__ */ 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." })
34304
- ] }),
34305
- /* @__PURE__ */ jsxs("section", { id: "key-features", children: [
34306
- /* @__PURE__ */ jsx("h2", { children: "Key Features" }),
34307
- /* @__PURE__ */ jsx("p", { children: "Modern performance optimization encompasses several key areas:" }),
34308
- /* @__PURE__ */ jsxs("ul", { children: [
34309
- /* @__PURE__ */ jsx("li", { children: "Code splitting and lazy loading" }),
34310
- /* @__PURE__ */ jsx("li", { children: "Image optimization and responsive images" }),
34311
- /* @__PURE__ */ jsx("li", { children: "Caching strategies and CDN utilization" }),
34312
- /* @__PURE__ */ jsx("li", { children: "Bundle size optimization" })
34313
- ] }),
34314
- /* @__PURE__ */ jsx(
34315
- Img,
34316
- {
34317
- src: imagePlaceholders[7],
34318
- alt: "Performance metrics",
34319
- className: "my-8 aspect-video w-full rounded-lg object-cover",
34320
- optixFlowConfig
34321
- }
34322
- )
34323
- ] }),
34324
- /* @__PURE__ */ jsxs("section", { id: "implementation", children: [
34325
- /* @__PURE__ */ jsx("h2", { children: "Implementation" }),
34326
- /* @__PURE__ */ jsx("p", { children: "Implementing performance optimizations requires a systematic approach. Start by measuring your current performance using tools like Lighthouse, WebPageTest, or Chrome DevTools." }),
34327
- /* @__PURE__ */ jsx("blockquote", { children: "\u201CYou can't improve what you don't measure.\u201D - Peter Drucker" }),
34328
- /* @__PURE__ */ jsx("p", { children: "Once you have baseline metrics, prioritize optimizations based on their potential impact and implementation effort." })
34329
- ] }),
34330
- /* @__PURE__ */ jsxs("section", { id: "performance", children: [
34331
- /* @__PURE__ */ jsx("h2", { children: "Performance Metrics" }),
34332
- /* @__PURE__ */ 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." })
34333
- ] }),
34334
- /* @__PURE__ */ jsxs("section", { id: "summary", children: [
34335
- /* @__PURE__ */ jsx("h2", { children: "Summary" }),
34336
- /* @__PURE__ */ 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." })
34337
- ] })
34338
- ] });
34711
+ );
34712
+ }
34339
34713
  function ArticleBreadcrumbSocialComponent({
34340
34714
  className,
34341
34715
  containerClassName,
@@ -34370,7 +34744,11 @@ function ArticleBreadcrumbSocialComponent({
34370
34744
  children,
34371
34745
  enableTocTracking,
34372
34746
  enableBackToTop,
34373
- optixFlowConfig
34747
+ optixFlowConfig,
34748
+ background,
34749
+ spacing,
34750
+ pattern,
34751
+ patternOpacity
34374
34752
  }) {
34375
34753
  const author = authorProp ?? (authorName ? { name: authorName, image: authorImage, role: authorRole } : void 0);
34376
34754
  const platformLabels = {
@@ -34507,65 +34885,44 @@ function ArticleBreadcrumbSocialComponent({
34507
34885
  )) })
34508
34886
  ] });
34509
34887
  }, [shareSlot, socialLinks, shareClassName]);
34510
- return /* @__PURE__ */ jsxs("section", { className: cn("py-32", className), children: [
34511
- /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
34512
- breadcrumbsContent,
34513
- /* @__PURE__ */ jsxs("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,1fr)_280px]", children: [
34514
- /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
34515
- 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 })),
34516
- authorContent,
34517
- /* @__PURE__ */ jsx(Separator, { className: "my-8" }),
34518
- heroMediaContent,
34519
- children || defaultArticleContent4(optixFlowConfig)
34888
+ return /* @__PURE__ */ jsxs(
34889
+ Section,
34890
+ {
34891
+ background,
34892
+ spacing,
34893
+ pattern,
34894
+ patternOpacity,
34895
+ className,
34896
+ children: [
34897
+ /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
34898
+ breadcrumbsContent,
34899
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,1fr)_280px]", children: [
34900
+ children && /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
34901
+ 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 })),
34902
+ authorContent,
34903
+ /* @__PURE__ */ jsx(Separator, { className: "my-8" }),
34904
+ heroMediaContent,
34905
+ children
34906
+ ] }),
34907
+ /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxs("div", { className: "sticky top-8 space-y-6", children: [
34908
+ tocContent,
34909
+ shareButtonsContent
34910
+ ] }) })
34911
+ ] })
34520
34912
  ] }),
34521
- /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxs("div", { className: "sticky top-8 space-y-6", children: [
34522
- tocContent,
34523
- shareButtonsContent
34524
- ] }) })
34525
- ] })
34526
- ] }),
34527
- enableBackToTop && showBackToTop && /* @__PURE__ */ jsx(
34528
- "button",
34529
- {
34530
- onClick: scrollToTop,
34531
- 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",
34532
- "aria-label": "Back to top",
34533
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-up", size: 20 })
34534
- }
34535
- )
34536
- ] });
34913
+ enableBackToTop && showBackToTop && /* @__PURE__ */ jsx(
34914
+ "button",
34915
+ {
34916
+ onClick: scrollToTop,
34917
+ 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",
34918
+ "aria-label": "Back to top",
34919
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-up", size: 20 })
34920
+ }
34921
+ )
34922
+ ]
34923
+ }
34924
+ );
34537
34925
  }
34538
- var defaultArticleContent5 = () => /* @__PURE__ */ jsxs(Fragment$1, { children: [
34539
- /* @__PURE__ */ jsxs("section", { id: "introduction", children: [
34540
- /* @__PURE__ */ jsx("h2", { children: "Introduction" }),
34541
- /* @__PURE__ */ jsx("p", { children: "Understanding user behavior is fundamental to creating effective web applications. This study examines patterns in user interaction and provides insights for improving user experience." }),
34542
- /* @__PURE__ */ jsx("p", { children: "Our research focuses on identifying key factors that influence user engagement and satisfaction in modern web applications." })
34543
- ] }),
34544
- /* @__PURE__ */ jsxs("section", { id: "methodology", children: [
34545
- /* @__PURE__ */ jsx("h2", { children: "Methodology" }),
34546
- /* @__PURE__ */ jsx("p", { children: "We employed a mixed-methods approach combining quantitative analytics with qualitative user interviews. Data was collected from over 10,000 users across diverse demographics." }),
34547
- /* @__PURE__ */ jsx("p", { children: "Statistical analysis was performed using industry-standard tools to ensure reliability and validity of our findings." })
34548
- ] }),
34549
- /* @__PURE__ */ jsxs("section", { id: "results", children: [
34550
- /* @__PURE__ */ jsx("h2", { children: "Results" }),
34551
- /* @__PURE__ */ jsx("p", { children: "Our findings reveal several key patterns in user behavior:" }),
34552
- /* @__PURE__ */ jsxs("ul", { children: [
34553
- /* @__PURE__ */ jsx("li", { children: "Users prefer intuitive navigation over complex menus" }),
34554
- /* @__PURE__ */ jsx("li", { children: "Page load time significantly impacts engagement" }),
34555
- /* @__PURE__ */ jsx("li", { children: "Mobile-first design improves overall satisfaction" }),
34556
- /* @__PURE__ */ jsx("li", { children: "Clear calls-to-action increase conversion rates" })
34557
- ] })
34558
- ] }),
34559
- /* @__PURE__ */ jsxs("section", { id: "discussion", children: [
34560
- /* @__PURE__ */ jsx("h2", { children: "Discussion" }),
34561
- /* @__PURE__ */ jsx("p", { children: "These results align with existing literature while providing new insights into emerging user expectations. The implications for web development practices are significant." }),
34562
- /* @__PURE__ */ jsx("blockquote", { children: "\u201CUser experience is not just about usability\u2014it's about creating meaningful interactions that resonate with users.\u201D" })
34563
- ] }),
34564
- /* @__PURE__ */ jsxs("section", { id: "conclusion", children: [
34565
- /* @__PURE__ */ jsx("h2", { children: "Conclusion" }),
34566
- /* @__PURE__ */ jsx("p", { children: "This study provides actionable insights for developers and designers seeking to improve user experience. Future research should explore the impact of emerging technologies on user behavior patterns." })
34567
- ] })
34568
- ] });
34569
34926
  function ArticleCompactTocComponent({
34570
34927
  className,
34571
34928
  containerClassName,
@@ -34595,7 +34952,11 @@ function ArticleCompactTocComponent({
34595
34952
  heroMediaSlot,
34596
34953
  children,
34597
34954
  enableTocTracking = true,
34598
- optixFlowConfig
34955
+ optixFlowConfig,
34956
+ background,
34957
+ spacing,
34958
+ pattern,
34959
+ patternOpacity
34599
34960
  }) {
34600
34961
  const [activeSection, setActiveSection] = React52.useState(
34601
34962
  sections?.[0]?.id || ""
@@ -34707,77 +35068,37 @@ function ArticleCompactTocComponent({
34707
35068
  }
34708
35069
  );
34709
35070
  }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
34710
- return /* @__PURE__ */ jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
34711
- breadcrumbsContent,
34712
- /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-3xl", contentClassName), children: [
34713
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
34714
- (authorName || publishDate || readTime) && /* @__PURE__ */ jsxs("div", { className: cn("mt-4 flex flex-wrap items-center gap-4 text-sm text-muted-foreground", metaClassName), children: [
34715
- authorName && (authorHref ? /* @__PURE__ */ jsx(Pressable, { href: authorHref, className: "hover:underline", children: authorName }) : /* @__PURE__ */ jsx("span", { children: authorName })),
34716
- authorName && publishDate && /* @__PURE__ */ jsx(Separator, { orientation: "vertical", className: "h-4" }),
34717
- publishDate && /* @__PURE__ */ jsx("span", { children: publishDate }),
34718
- publishDate && readTime && /* @__PURE__ */ jsx(Separator, { orientation: "vertical", className: "h-4" }),
34719
- readTime && /* @__PURE__ */ jsx("span", { children: readTime })
34720
- ] }),
34721
- shareContent,
34722
- /* @__PURE__ */ jsx(Separator, { className: "my-8" }),
34723
- tocContent,
34724
- /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
34725
- heroMediaContent,
34726
- children ?? defaultArticleContent5()
34727
- ] })
34728
- ] })
34729
- ] }) });
34730
- }
34731
- var defaultArticleContent6 = (optixFlowConfig) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
34732
- /* @__PURE__ */ jsx(
34733
- Img,
35071
+ return /* @__PURE__ */ jsx(
35072
+ Section,
34734
35073
  {
34735
- src: imagePlaceholders[0],
34736
- alt: "Article hero",
34737
- className: "my-8 aspect-video w-full rounded-lg object-cover",
34738
- optixFlowConfig
35074
+ background,
35075
+ spacing,
35076
+ pattern,
35077
+ patternOpacity,
35078
+ className,
35079
+ children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
35080
+ breadcrumbsContent,
35081
+ /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-3xl", contentClassName), children: [
35082
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
35083
+ (authorName || publishDate || readTime) && /* @__PURE__ */ jsxs("div", { className: cn("mt-4 flex flex-wrap items-center gap-4 text-sm text-muted-foreground", metaClassName), children: [
35084
+ authorName && (authorHref ? /* @__PURE__ */ jsx(Pressable, { href: authorHref, className: "hover:underline", children: authorName }) : /* @__PURE__ */ jsx("span", { children: authorName })),
35085
+ authorName && publishDate && /* @__PURE__ */ jsx(Separator, { orientation: "vertical", className: "h-4" }),
35086
+ publishDate && /* @__PURE__ */ jsx("span", { children: publishDate }),
35087
+ publishDate && readTime && /* @__PURE__ */ jsx(Separator, { orientation: "vertical", className: "h-4" }),
35088
+ readTime && /* @__PURE__ */ jsx("span", { children: readTime })
35089
+ ] }),
35090
+ shareContent,
35091
+ /* @__PURE__ */ jsx(Separator, { className: "my-8" }),
35092
+ tocContent,
35093
+ children && /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
35094
+ heroMediaContent,
35095
+ children
35096
+ ] })
35097
+ ] })
35098
+ ] })
34739
35099
  }
34740
- ),
34741
- /* @__PURE__ */ jsxs("section", { id: "chapter-1", children: [
34742
- /* @__PURE__ */ jsx("h2", { children: "Chapter 1: The Foundation" }),
34743
- /* @__PURE__ */ 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." }),
34744
- /* @__PURE__ */ jsx("p", { children: "Understanding the foundation of design patterns helps you recognize when and how to apply them effectively in your own projects." })
34745
- ] }),
34746
- /* @__PURE__ */ jsxs("section", { id: "chapter-2", children: [
34747
- /* @__PURE__ */ jsx("h2", { children: "Chapter 2: Building Blocks" }),
34748
- /* @__PURE__ */ jsx("p", { children: "The building blocks of design patterns include creational, structural, and behavioral patterns. Each category addresses different aspects of software design." }),
34749
- /* @__PURE__ */ jsx(
34750
- Img,
34751
- {
34752
- src: imagePlaceholders[1],
34753
- alt: "Pattern categories",
34754
- className: "my-8 aspect-video w-full rounded-lg object-cover",
34755
- optixFlowConfig
34756
- }
34757
- ),
34758
- /* @__PURE__ */ jsx("p", { children: "Creational patterns deal with object creation mechanisms, structural patterns focus on class composition, and behavioral patterns characterize object interaction." })
34759
- ] }),
34760
- /* @__PURE__ */ jsxs("section", { id: "chapter-3", children: [
34761
- /* @__PURE__ */ jsx("h2", { children: "Chapter 3: Advanced Patterns" }),
34762
- /* @__PURE__ */ jsx("p", { children: "Advanced patterns build upon the fundamentals to address more complex scenarios. These include patterns for concurrency, distributed systems, and enterprise applications." }),
34763
- /* @__PURE__ */ jsx("blockquote", { children: "\u201CPatterns are not invented, they are discovered.\u201D - Christopher Alexander" })
34764
- ] }),
34765
- /* @__PURE__ */ jsxs("section", { id: "chapter-4", children: [
34766
- /* @__PURE__ */ jsx("h2", { children: "Chapter 4: Real-World Applications" }),
34767
- /* @__PURE__ */ jsx("p", { children: "Seeing patterns in action helps solidify understanding. This chapter explores how major frameworks and libraries implement design patterns." }),
34768
- /* @__PURE__ */ jsxs("ul", { children: [
34769
- /* @__PURE__ */ jsx("li", { children: "React's use of the Observer pattern" }),
34770
- /* @__PURE__ */ jsx("li", { children: "Express.js middleware as Chain of Responsibility" }),
34771
- /* @__PURE__ */ jsx("li", { children: "Redux implementing the Flux pattern" }),
34772
- /* @__PURE__ */ jsx("li", { children: "Dependency injection in Angular" })
34773
- ] })
34774
- ] }),
34775
- /* @__PURE__ */ jsxs("section", { id: "chapter-5", children: [
34776
- /* @__PURE__ */ jsx("h2", { children: "Chapter 5: Future Directions" }),
34777
- /* @__PURE__ */ 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." }),
34778
- /* @__PURE__ */ jsx("p", { children: "The rise of functional programming, microservices, and serverless architectures has introduced new patterns and variations on classic ones." })
34779
- ] })
34780
- ] });
35100
+ );
35101
+ }
34781
35102
  function ArticleChaptersAuthorComponent({
34782
35103
  className,
34783
35104
  containerClassName,
@@ -34812,7 +35133,11 @@ function ArticleChaptersAuthorComponent({
34812
35133
  conclusionSlot,
34813
35134
  children,
34814
35135
  enableChapterTracking = true,
34815
- optixFlowConfig
35136
+ optixFlowConfig,
35137
+ background,
35138
+ spacing,
35139
+ pattern,
35140
+ patternOpacity
34816
35141
  }) {
34817
35142
  const conclusionActions = conclusionActionsProp ?? (conclusionButtonText ? [{ label: conclusionButtonText, href: conclusionButtonHref || "#", variant: "default" }] : []);
34818
35143
  const [activeChapter, setActiveChapter] = React52.useState(
@@ -34976,24 +35301,34 @@ function ArticleChaptersAuthorComponent({
34976
35301
  }) })
34977
35302
  ] });
34978
35303
  }, [conclusionSlot, conclusionTitle, conclusionDescription, conclusionActions, conclusionClassName]);
34979
- return /* @__PURE__ */ jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
34980
- breadcrumbsContent,
34981
- /* @__PURE__ */ jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
34982
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
34983
- subtitle && (typeof subtitle === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg text-muted-foreground md:text-xl", subtitleClassName), children: subtitle }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", subtitleClassName), children: subtitle }))
34984
- ] }),
34985
- /* @__PURE__ */ jsxs("div", { className: "grid gap-10 lg:grid-cols-[280px_minmax(0,1fr)]", children: [
34986
- /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxs("div", { className: "sticky top-8 space-y-6", children: [
34987
- chaptersNavContent,
34988
- authorCardContent
34989
- ] }) }),
34990
- /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
34991
- heroMediaContent,
34992
- children || defaultArticleContent6(optixFlowConfig),
34993
- conclusionContent
35304
+ return /* @__PURE__ */ jsx(
35305
+ Section,
35306
+ {
35307
+ background,
35308
+ spacing,
35309
+ pattern,
35310
+ patternOpacity,
35311
+ className,
35312
+ children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
35313
+ breadcrumbsContent,
35314
+ /* @__PURE__ */ jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
35315
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
35316
+ subtitle && (typeof subtitle === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg text-muted-foreground md:text-xl", subtitleClassName), children: subtitle }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", subtitleClassName), children: subtitle }))
35317
+ ] }),
35318
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-10 lg:grid-cols-[280px_minmax(0,1fr)]", children: [
35319
+ /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxs("div", { className: "sticky top-8 space-y-6", children: [
35320
+ chaptersNavContent,
35321
+ authorCardContent
35322
+ ] }) }),
35323
+ /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
35324
+ heroMediaContent,
35325
+ children,
35326
+ conclusionContent
35327
+ ] })
35328
+ ] })
34994
35329
  ] })
34995
- ] })
34996
- ] }) });
35330
+ }
35331
+ );
34997
35332
  }
34998
35333
  function ArticleSplitAnimatedComponent({
34999
35334
  className,
@@ -35026,7 +35361,11 @@ function ArticleSplitAnimatedComponent({
35026
35361
  ctaHref,
35027
35362
  ctaSlot,
35028
35363
  enableAnimations = true,
35029
- optixFlowConfig
35364
+ optixFlowConfig,
35365
+ background,
35366
+ spacing,
35367
+ pattern,
35368
+ patternOpacity
35030
35369
  }) {
35031
35370
  const ctaActions = ctaActionsProp ?? (ctaText ? [{ label: ctaText, href: ctaHref || "#", variant: "default", size: "lg" }] : []);
35032
35371
  const MotionWrapper = enableAnimations ? motion.div : "div";
@@ -35105,41 +35444,51 @@ function ArticleSplitAnimatedComponent({
35105
35444
  viewport: { once: true },
35106
35445
  transition: { duration: 0.5, delay: 0.1 }
35107
35446
  } : {};
35108
- return /* @__PURE__ */ jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: "grid gap-8 lg:grid-cols-2 lg:gap-12", children: [
35109
- /* @__PURE__ */ jsxs(
35110
- MotionWrapper,
35111
- {
35112
- ...imageAnimationProps,
35113
- className: cn(
35114
- "relative aspect-4/3 overflow-hidden rounded-2xl lg:aspect-auto lg:h-full",
35115
- imageContainerClassName
35447
+ return /* @__PURE__ */ jsx(
35448
+ Section,
35449
+ {
35450
+ background,
35451
+ spacing,
35452
+ pattern,
35453
+ patternOpacity,
35454
+ className,
35455
+ children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: "grid gap-8 lg:grid-cols-2 lg:gap-12", children: [
35456
+ /* @__PURE__ */ jsxs(
35457
+ MotionWrapper,
35458
+ {
35459
+ ...imageAnimationProps,
35460
+ className: cn(
35461
+ "relative aspect-4/3 overflow-hidden rounded-2xl lg:aspect-auto lg:h-full",
35462
+ imageContainerClassName
35463
+ ),
35464
+ children: [
35465
+ heroMediaContent,
35466
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-linear-to-t from-black/60 via-transparent to-transparent" }),
35467
+ /* @__PURE__ */ jsx("div", { className: "absolute bottom-0 left-0 p-6", children: categoryContent })
35468
+ ]
35469
+ }
35116
35470
  ),
35117
- children: [
35118
- heroMediaContent,
35119
- /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-linear-to-t from-black/60 via-transparent to-transparent" }),
35120
- /* @__PURE__ */ jsx("div", { className: "absolute bottom-0 left-0 p-6", children: categoryContent })
35121
- ]
35122
- }
35123
- ),
35124
- /* @__PURE__ */ jsxs(
35125
- MotionWrapper,
35126
- {
35127
- ...contentAnimationProps,
35128
- className: cn("flex flex-col justify-center", contentClassName),
35129
- children: [
35130
- (publishDate || readTime) && /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-4 text-sm text-muted-foreground", metaClassName), children: [
35131
- publishDate && /* @__PURE__ */ jsx("span", { children: publishDate }),
35132
- publishDate && readTime && /* @__PURE__ */ jsx(Separator, { orientation: "vertical", className: "h-4" }),
35133
- readTime && /* @__PURE__ */ jsx("span", { children: readTime })
35134
- ] }),
35135
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("mt-4 text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", titleClassName), children: title })),
35136
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", descriptionClassName), children: description })),
35137
- authorContent,
35138
- ctaContent
35139
- ]
35140
- }
35141
- )
35142
- ] }) }) });
35471
+ /* @__PURE__ */ jsxs(
35472
+ MotionWrapper,
35473
+ {
35474
+ ...contentAnimationProps,
35475
+ className: cn("flex flex-col justify-center", contentClassName),
35476
+ children: [
35477
+ (publishDate || readTime) && /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-4 text-sm text-muted-foreground", metaClassName), children: [
35478
+ publishDate && /* @__PURE__ */ jsx("span", { children: publishDate }),
35479
+ publishDate && readTime && /* @__PURE__ */ jsx(Separator, { orientation: "vertical", className: "h-4" }),
35480
+ readTime && /* @__PURE__ */ jsx("span", { children: readTime })
35481
+ ] }),
35482
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("mt-4 text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", titleClassName), children: title })),
35483
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", descriptionClassName), children: description })),
35484
+ authorContent,
35485
+ ctaContent
35486
+ ]
35487
+ }
35488
+ )
35489
+ ] }) })
35490
+ }
35491
+ );
35143
35492
  }
35144
35493
  function FaqSimpleAccordion({
35145
35494
  heading,