blocks-dusted 0.1.9 → 0.1.11

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 (248) hide show
  1. package/README.md +35 -0
  2. package/package.json +1 -1
  3. package/src/utils/paths.js +13 -13
  4. package/templates/blocks/DD-Accordion/Component.tsx +229 -0
  5. package/templates/blocks/DD-Accordion/README.md +3 -0
  6. package/templates/blocks/DD-Accordion/config.ts +73 -0
  7. package/templates/blocks/DD-Accordion/manifest.json +75 -0
  8. package/templates/blocks/DD-AnimText/Component.tsx +788 -0
  9. package/templates/blocks/DD-AnimText/README.md +3 -0
  10. package/templates/blocks/DD-AnimText/config.ts +295 -0
  11. package/templates/blocks/DD-AnimText/manifest.json +85 -0
  12. package/templates/blocks/DD-AsideNav/Component.tsx +321 -0
  13. package/templates/blocks/DD-AsideNav/config.ts +204 -0
  14. package/templates/blocks/DD-AsideNav/manifest.json +80 -0
  15. package/templates/blocks/DD-Banner/Component.tsx +51 -0
  16. package/templates/blocks/DD-Banner/config.ts +57 -0
  17. package/templates/blocks/DD-Banner/manifest.json +72 -0
  18. package/templates/blocks/DD-BgLightning/Component.tsx +44 -0
  19. package/templates/blocks/DD-BgLightning/README.md +3 -0
  20. package/templates/blocks/DD-BgLightning/config.ts +97 -0
  21. package/templates/blocks/DD-BgLightning/manifest.json +79 -0
  22. package/templates/blocks/DD-BookCall/Component.tsx +10 -11
  23. package/templates/blocks/DD-BookCall/config.ts +238 -238
  24. package/templates/blocks/DD-ButtonPop/Component.tsx +117 -0
  25. package/templates/blocks/DD-ButtonPop/config.ts +105 -0
  26. package/templates/blocks/DD-ButtonPop/manifest.json +88 -0
  27. package/templates/blocks/DD-ButtonPop/svg-icons/Dust2.tsx +167 -0
  28. package/templates/blocks/DD-Card/Component.tsx +251 -0
  29. package/templates/blocks/DD-Card/README.md +4 -0
  30. package/templates/blocks/DD-Card/config.ts +154 -0
  31. package/templates/blocks/DD-Card/manifest.json +82 -0
  32. package/templates/blocks/DD-CardTemplate01/Component.tsx +5 -6
  33. package/templates/blocks/DD-CardTemplate01/config.ts +106 -106
  34. package/templates/blocks/DD-Carousel-A/Component.tsx +249 -249
  35. package/templates/blocks/DD-Carousel-B/Component.tsx +403 -403
  36. package/templates/blocks/DD-Chip/Component.tsx +250 -0
  37. package/templates/blocks/DD-Chip/EXAMPLES.md +313 -0
  38. package/templates/blocks/DD-Chip/README.md +202 -0
  39. package/templates/blocks/DD-Chip/config.ts +369 -0
  40. package/templates/blocks/DD-Chip/manifest.json +74 -0
  41. package/templates/blocks/DD-ComparisonTable/Component.tsx +256 -256
  42. package/templates/blocks/DD-Contact/Component.tsx +434 -434
  43. package/templates/blocks/DD-Contact/config.ts +22 -22
  44. package/templates/blocks/DD-Counter/Component.tsx +190 -0
  45. package/templates/blocks/DD-Counter/README.md +4 -0
  46. package/templates/blocks/DD-Counter/config.ts +291 -0
  47. package/templates/blocks/DD-Counter/manifest.json +74 -0
  48. package/templates/blocks/DD-CustomCSS/Component.tsx +8 -0
  49. package/templates/blocks/DD-CustomCSS/README.md +4 -0
  50. package/templates/blocks/DD-CustomCSS/addToLayout.md +5 -0
  51. package/templates/blocks/DD-CustomCSS/config.ts +22 -0
  52. package/templates/blocks/DD-CustomCSS/manifest.json +72 -0
  53. package/templates/blocks/DD-CustomCSS/renderCustomCSS.md +7 -0
  54. package/templates/blocks/DD-FeatCat/Component.tsx +302 -302
  55. package/templates/blocks/DD-FeatCat/config.ts +201 -201
  56. package/templates/blocks/DD-FeatStrip/Component.tsx +585 -585
  57. package/templates/blocks/DD-FeatStrip/config.ts +134 -134
  58. package/templates/blocks/DD-FluidBtn/ButtonsEyeCatching.tsx +628 -0
  59. package/templates/blocks/DD-FluidBtn/Component.tsx +43 -0
  60. package/templates/blocks/DD-FluidBtn/README.md +6 -0
  61. package/templates/blocks/DD-FluidBtn/config.ts +102 -0
  62. package/templates/blocks/DD-FluidBtn/manifest.json +86 -0
  63. package/templates/blocks/DD-GooeyInfo/Component.tsx +149 -0
  64. package/templates/blocks/DD-GooeyInfo/config.ts +135 -0
  65. package/templates/blocks/DD-GooeyInfo/manifest.json +72 -0
  66. package/templates/blocks/DD-Hero/Component.tsx +40 -17
  67. package/templates/blocks/DD-Hero/config.ts +267 -267
  68. package/templates/blocks/DD-HorizontalScroll/Component.tsx +4 -2
  69. package/templates/blocks/DD-HorizontalScroll/config.ts +231 -231
  70. package/templates/blocks/DD-Icon/Component.tsx +287 -0
  71. package/templates/blocks/DD-Icon/README.md +4 -0
  72. package/templates/blocks/DD-Icon/config.ts +258 -0
  73. package/templates/blocks/DD-Icon/hooks/revalidateBlockIds.ts +66 -0
  74. package/templates/blocks/DD-Icon/manifest.json +82 -0
  75. package/templates/blocks/DD-IconButton/Component.tsx +455 -0
  76. package/templates/blocks/DD-IconButton/README.md +326 -0
  77. package/templates/blocks/DD-IconButton/config.ts +239 -0
  78. package/templates/blocks/DD-IconButton/manifest.json +85 -0
  79. package/templates/blocks/DD-IdTag/Component.tsx +21 -0
  80. package/templates/blocks/DD-IdTag/README.md +4 -0
  81. package/templates/blocks/DD-IdTag/config.ts +41 -0
  82. package/templates/blocks/DD-IdTag/manifest.json +72 -0
  83. package/templates/blocks/DD-Iframe/Component.tsx +45 -0
  84. package/templates/blocks/DD-Iframe/README.md +4 -0
  85. package/templates/blocks/DD-Iframe/config.ts +47 -0
  86. package/templates/blocks/DD-Iframe/manifest.json +72 -0
  87. package/templates/blocks/DD-IframeMedia/Component.tsx +129 -0
  88. package/templates/blocks/DD-IframeMedia/README.md +4 -0
  89. package/templates/blocks/DD-IframeMedia/config.ts +79 -0
  90. package/templates/blocks/DD-IframeMedia/manifest.json +72 -0
  91. package/templates/blocks/DD-LineAnim/Component.tsx +36 -0
  92. package/templates/blocks/DD-LineAnim/README.md +4 -0
  93. package/templates/blocks/DD-LineAnim/config.ts +90 -0
  94. package/templates/blocks/DD-LineAnim/manifest.json +80 -0
  95. package/templates/blocks/DD-LinkGrid/Component.tsx +119 -0
  96. package/templates/blocks/DD-LinkGrid/README.md +4 -0
  97. package/templates/blocks/DD-LinkGrid/config.ts +51 -0
  98. package/templates/blocks/DD-LinkGrid/manifest.json +74 -0
  99. package/templates/blocks/DD-LogoMarq/Component.tsx +132 -0
  100. package/templates/blocks/DD-LogoMarq/README.md +4 -0
  101. package/templates/blocks/DD-LogoMarq/config.ts +264 -0
  102. package/templates/blocks/DD-LogoMarq/manifest.json +82 -0
  103. package/templates/blocks/DD-Lottie/Component.tsx +459 -0
  104. package/templates/blocks/DD-Lottie/README.md +4 -0
  105. package/templates/blocks/DD-Lottie/config.ts +379 -0
  106. package/templates/blocks/DD-Lottie/index.tsx +28 -0
  107. package/templates/blocks/DD-Lottie/manifest.json +83 -0
  108. package/templates/blocks/DD-MagicBento/Component.tsx +777 -0
  109. package/templates/blocks/DD-MagicBento/README.md +4 -0
  110. package/templates/blocks/DD-MagicBento/config.ts +264 -0
  111. package/templates/blocks/DD-MagicBento/manifest.json +74 -0
  112. package/templates/blocks/DD-MasonaryMedia/Component.tsx +547 -545
  113. package/templates/blocks/DD-MasonaryMedia/config.ts +2 -2
  114. package/templates/blocks/DD-MasonaryMedia/vendor.d.ts +2 -2
  115. package/templates/blocks/DD-Masonry/Component.tsx +645 -0
  116. package/templates/blocks/DD-Masonry/README.md +4 -0
  117. package/templates/blocks/DD-Masonry/config.ts +475 -0
  118. package/templates/blocks/DD-Masonry/manifest.json +82 -0
  119. package/templates/blocks/DD-Pricing/Component.tsx +372 -372
  120. package/templates/blocks/DD-Process/Component.tsx +149 -149
  121. package/templates/blocks/DD-Process/config.ts +150 -150
  122. package/templates/blocks/DD-Progress/Component.tsx +141 -0
  123. package/templates/blocks/DD-Progress/README.md +4 -0
  124. package/templates/blocks/DD-Progress/config.ts +175 -0
  125. package/templates/blocks/DD-Progress/manifest.json +74 -0
  126. package/templates/blocks/DD-ProjHeader/Component.tsx +91 -0
  127. package/templates/blocks/DD-ProjHeader/README.md +4 -0
  128. package/templates/blocks/DD-ProjHeader/config.ts +96 -0
  129. package/templates/blocks/DD-ProjHeader/manifest.json +72 -0
  130. package/templates/blocks/DD-ProjSlider/Component.tsx +123 -0
  131. package/templates/blocks/DD-ProjSlider/README.md +4 -0
  132. package/templates/blocks/DD-ProjSlider/config.ts +64 -0
  133. package/templates/blocks/DD-ProjSlider/manifest.json +72 -0
  134. package/templates/blocks/DD-ScrollText/Component.tsx +114 -0
  135. package/templates/blocks/DD-ScrollText/README.md +4 -0
  136. package/templates/blocks/DD-ScrollText/config.ts +58 -0
  137. package/templates/blocks/DD-ScrollText/manifest.json +72 -0
  138. package/templates/blocks/DD-Section/Component.tsx +266 -266
  139. package/templates/blocks/DD-Separator/Component.tsx +66 -0
  140. package/templates/blocks/DD-Separator/README.md +4 -0
  141. package/templates/blocks/DD-Separator/config.ts +58 -0
  142. package/templates/blocks/DD-Separator/manifest.json +72 -0
  143. package/templates/blocks/DD-Services/Component.tsx +176 -176
  144. package/templates/blocks/DD-Services/config.ts +149 -149
  145. package/templates/blocks/DD-ShowcaseGrid/Component.tsx +307 -307
  146. package/templates/blocks/DD-Slider-A/Component.tsx +237 -237
  147. package/templates/blocks/DD-StackCards/Component.tsx +473 -473
  148. package/templates/blocks/DD-StackCards/config.ts +399 -399
  149. package/templates/blocks/DD-Team/Component.tsx +247 -247
  150. package/templates/blocks/DD-Team/config.ts +173 -173
  151. package/templates/blocks/DD-TeamCards/Component.tsx +251 -0
  152. package/templates/blocks/DD-TeamCards/README.md +4 -0
  153. package/templates/blocks/DD-TeamCards/config.ts +302 -0
  154. package/templates/blocks/DD-TeamCards/manifest.json +74 -0
  155. package/templates/blocks/DD-TechStack/Component.tsx +168 -162
  156. package/templates/blocks/DD-TechStack/config.ts +153 -153
  157. package/templates/blocks/DD-TestMarq/Component.tsx +132 -0
  158. package/templates/blocks/DD-TestMarq/README.md +4 -0
  159. package/templates/blocks/DD-TestMarq/RowLabel.tsx +9 -0
  160. package/templates/blocks/DD-TestMarq/config.ts +88 -0
  161. package/templates/blocks/DD-TestMarq/manifest.json +72 -0
  162. package/templates/blocks/DD-Testim/Component.tsx +247 -0
  163. package/templates/blocks/DD-Testim/README.md +4 -0
  164. package/templates/blocks/DD-Testim/config.ts +101 -0
  165. package/templates/blocks/DD-Testim/manifest.json +75 -0
  166. package/templates/blocks/DD-Testim2/Component.tsx +256 -0
  167. package/templates/blocks/DD-Testim2/README.md +4 -0
  168. package/templates/blocks/DD-Testim2/config.ts +100 -0
  169. package/templates/blocks/DD-Testim2/manifest.json +74 -0
  170. package/templates/blocks/DD-Testimonials/Component.tsx +147 -147
  171. package/templates/blocks/DD-Testimonials/config.ts +120 -120
  172. package/templates/blocks/DD-TextMarq/Component.tsx +157 -0
  173. package/templates/blocks/DD-TextMarq/README.md +4 -0
  174. package/templates/blocks/DD-TextMarq/config.ts +237 -0
  175. package/templates/blocks/DD-TextMarq/manifest.json +82 -0
  176. package/templates/blocks/DD-Thanks/Component.tsx +500 -0
  177. package/templates/blocks/DD-Thanks/README.md +4 -0
  178. package/templates/blocks/DD-Thanks/config.ts +224 -0
  179. package/templates/blocks/DD-Thanks/manifest.json +72 -0
  180. package/templates/blocks/DD-VertMarq/Component.tsx +154 -0
  181. package/templates/blocks/DD-VertMarq/README.md +4 -0
  182. package/templates/blocks/DD-VertMarq/config.ts +236 -0
  183. package/templates/blocks/DD-VertMarq/dist/index.css +6 -0
  184. package/templates/blocks/DD-VertMarq/dist/index.min.css +1 -0
  185. package/templates/blocks/DD-VertMarq/manifest.json +74 -0
  186. package/templates/blocks/DD-Work/Component.tsx +318 -315
  187. package/templates/blocks/DD-Work/config.ts +165 -165
  188. package/templates/blocks/DD-Work-B/Component.tsx +294 -294
  189. package/templates/blocks/DDHG-CTASection2/Component.tsx +185 -0
  190. package/templates/blocks/DDHG-CTASection2/config.ts +140 -0
  191. package/templates/blocks/DDHG-CTASection2/manifest.json +45 -0
  192. package/templates/blocks/DDHG-HighlightArc/Component.tsx +243 -0
  193. package/templates/blocks/DDHG-HighlightArc/config.ts +85 -0
  194. package/templates/blocks/DDHG-HighlightArc/manifest.json +46 -0
  195. package/templates/blocks/DDHG-LogoMarquee/Component.tsx +93 -0
  196. package/templates/blocks/DDHG-LogoMarquee/config.ts +66 -0
  197. package/templates/blocks/DDHG-LogoMarquee/manifest.json +39 -0
  198. package/templates/blocks/DDHG-NavCodeGrid/Component.tsx +213 -0
  199. package/templates/blocks/DDHG-NavCodeGrid/config.ts +64 -0
  200. package/templates/blocks/DDHG-NavCodeGrid/manifest.json +45 -0
  201. package/templates/blocks/DDHG-ProcessSec/Component.tsx +575 -0
  202. package/templates/blocks/DDHG-ProcessSec/config.ts +170 -0
  203. package/templates/blocks/DDHG-ProcessSec/manifest.json +56 -0
  204. package/templates/blocks/DDHG-ServiceDetails/Component.tsx +164 -0
  205. package/templates/blocks/DDHG-ServiceDetails/ServiceDetailCard.tsx +394 -0
  206. package/templates/blocks/DDHG-ServiceDetails/config.ts +77 -0
  207. package/templates/blocks/DDHG-ServiceDetails/manifest.json +50 -0
  208. package/templates/blocks/DDHG-ServiceHero/Component.tsx +234 -0
  209. package/templates/blocks/DDHG-ServiceHero/config.ts +49 -0
  210. package/templates/blocks/DDHG-ServiceHero/manifest.json +26 -0
  211. package/templates/blocks/DDHG-ServiceOverview/Component.tsx +277 -0
  212. package/templates/blocks/DDHG-ServiceOverview/config.ts +64 -0
  213. package/templates/blocks/DDHG-ServiceOverview/manifest.json +44 -0
  214. package/templates/blocks/DDHG-StatsFAQ/Component.tsx +389 -0
  215. package/templates/blocks/DDHG-StatsFAQ/config.ts +204 -0
  216. package/templates/blocks/DDHG-StatsFAQ/manifest.json +45 -0
  217. package/templates/blocks/DDHG-TeamCards/Component.tsx +131 -0
  218. package/templates/blocks/DDHG-TeamCards/config.ts +48 -0
  219. package/templates/blocks/DDHG-TeamCards/manifest.json +29 -0
  220. package/templates/components/HeaderDD02/MobileBottomNav/index.tsx +352 -257
  221. package/templates/components/HeaderDD02/index.tsx +313 -229
  222. package/templates/shared/src/components/BgLightning/index.tsx +242 -0
  223. package/templates/shared/src/components/ui/ShareButton/index.tsx +80 -0
  224. package/templates/shared/src/components/ui/anims/FadeOnScroll.tsx +48 -0
  225. package/templates/shared/src/components/ui/anims/FadeUpOnInView.tsx +63 -0
  226. package/templates/shared/src/components/ui/anims/GlareHover.tsx +111 -0
  227. package/templates/shared/src/components/ui/anims/LineAnims.tsx +81 -0
  228. package/templates/shared/src/components/ui/anims/TitleAnims01.tsx +54 -0
  229. package/templates/shared/src/components/ui/anims/animation-container.tsx +29 -0
  230. package/templates/shared/src/components/ui/anims/blur-in.tsx +26 -0
  231. package/templates/shared/src/components/ui/anims/counter.tsx +53 -0
  232. package/templates/shared/src/components/ui/anims/fade.tsx +83 -0
  233. package/templates/shared/src/components/ui/anims/gradual-spacing.tsx +39 -0
  234. package/templates/shared/src/components/ui/anims/pull-up.tsx +93 -0
  235. package/templates/shared/src/components/ui/anims/reveal-text.tsx +76 -0
  236. package/templates/shared/src/components/ui/anims/rotate-words.tsx +43 -0
  237. package/templates/shared/src/components/ui/anims/shiny-text.tsx +58 -0
  238. package/templates/shared/src/components/ui/anims/shuffle-text.tsx +85 -0
  239. package/templates/shared/src/components/ui/anims/split-text.tsx +211 -0
  240. package/templates/shared/src/components/ui/anims/staggered-fade.tsx +133 -0
  241. package/templates/shared/src/components/ui/anims/text-scroll.tsx +111 -0
  242. package/templates/shared/src/components/ui/anims/typing-effect.tsx +112 -0
  243. package/templates/shared/src/components/ui/button-dusted-fluid/index.tsx +1521 -0
  244. package/templates/shared/src/components/ui/separator.tsx +85 -0
  245. package/templates/shared/src/hooks/useBodyScrollLock.ts +97 -0
  246. package/templates/shared/src/hooks/useClickOutside.ts +28 -0
  247. package/templates/shared/src/utilities/renderCustomCSS.ts +5 -0
  248. package/templates/shared/src/utilities/smoothScroll.ts +65 -0
@@ -1,403 +1,403 @@
1
- 'use client'
2
-
3
- import React, { useState, useCallback, useEffect } from 'react'
4
- import Image from 'next/image'
5
- import Link from 'next/link'
6
- import { ChevronLeft, ChevronRight } from 'lucide-react'
7
- import { cn } from '@/utilities/ui'
8
- import useEmblaCarousel from 'embla-carousel-react'
9
-
10
- type MediaObj = { url?: string | null; alt?: string | null }
11
-
12
- function isValidImageSrc(src?: string | null): src is string {
13
- return Boolean(src && src.startsWith('/api/media/file/'))
14
- }
15
-
16
- type CarouselItemB = {
17
- id?: string | null
18
- name: string
19
- category?: string | null
20
- framework?: string | null
21
- badge?: string | null
22
- image?: MediaObj | string | null
23
- imageFallbackUrl?: string | null
24
- description?: string | null
25
- href?: string | null
26
- free?: boolean | null
27
- price?: number | null
28
- }
29
-
30
- export type DDCarouselBProps = {
31
- blockType: 'DD-Carousel-B'
32
- blockName?: string | null
33
- eyebrow?: string | null
34
- heading?: string | null
35
- subtext?: string | null
36
- viewAllLabel?: string | null
37
- viewAllHref?: string | null
38
- items?: CarouselItemB[] | null
39
- sectionId?: string | null
40
- customCSS?: string | null
41
- }
42
-
43
- // ─── Card2-style card ─────────────────────────────────────────────────────────
44
- const PlaceholderSVG = () => (
45
- <svg
46
- width="57"
47
- height="63"
48
- viewBox="0 0 57 63"
49
- fill="none"
50
- xmlns="http://www.w3.org/2000/svg"
51
- style={{ opacity: 0.75 }}
52
- aria-hidden="true"
53
- >
54
- <svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
55
- <g clipPath="url(#clip0_scb_placeholder)">
56
- <g filter="url(#filter0_d_11_15869)">
57
- <path
58
- fillRule="evenodd"
59
- clipRule="evenodd"
60
- d="M13.3637 45.1903C14.5322 45.1736 15.6117 44.9574 16.4837 44.2476C16.4695 44.2362 16.4579 44.2256 16.4484 44.2169C16.4324 44.2022 16.4219 44.1927 16.4155 44.1943C15.3937 44.3995 14.3289 44.2994 13.2637 44.1993L13.2244 44.1956C12.7931 44.155 12.3636 44.1337 11.9391 44.1604C11.2208 44.2048 10.6076 44.4381 10.1212 44.901C9.35358 45.6313 8.85477 46.5077 8.82298 47.6979C8.37839 46.9398 8.10265 46.2052 7.95857 45.4475C7.71394 44.1613 7.70605 42.9033 8.0205 41.6964C8.07955 41.4684 8.07162 41.2377 8.00801 40.9983C7.69705 39.8256 7.74132 38.7159 8.17589 37.6744C8.18213 37.6596 8.19094 37.6443 8.19994 37.6287C8.23038 37.576 8.26299 37.5196 8.20586 37.4626C8.1563 37.4133 8.08878 37.4264 8.02462 37.4387C8.00589 37.4423 7.98745 37.4459 7.96983 37.4478C6.7989 37.5726 5.88891 38.4878 5.79809 39.6298C5.7969 39.644 5.79566 39.6582 5.79344 39.6724C5.78678 39.7153 5.77121 39.759 5.72194 39.8052C5.71843 39.7898 5.71472 39.7745 5.71091 39.7591L5.70118 39.72L5.68707 39.6648C5.6609 39.5636 5.63474 39.4624 5.62218 39.3614C5.36356 37.3127 5.95812 35.6806 7.67 34.6321C8.23622 34.285 8.8845 34.0598 9.57736 33.9423C9.59466 33.9394 9.61474 33.9385 9.63541 33.9376C9.70846 33.9345 9.78912 33.931 9.78241 33.836C9.77959 33.7972 9.75968 33.7734 9.732 33.7572C9.70551 33.7417 9.67189 33.733 9.63936 33.7247C9.61956 33.7196 9.60017 33.7146 9.58299 33.7082C8.15118 33.175 6.79313 33.1071 5.55339 33.7785C5.54517 33.783 5.53337 33.7824 5.50749 33.7811C5.4902 33.7802 5.46665 33.7789 5.43374 33.7787C5.48292 33.7109 5.52845 33.6446 5.57262 33.5804L5.57371 33.5788C5.62594 33.5028 5.67631 33.4296 5.72838 33.3599C5.76893 33.3057 5.81053 33.2535 5.85499 33.2039C6.84014 32.1032 8.02016 31.2683 9.60154 30.9985C10.1231 30.9096 10.6637 30.9136 11.209 30.9538C11.2168 30.9543 11.2252 30.9554 11.2338 30.9569L11.244 30.9588L11.2489 30.9598L11.2731 30.9649L11.2739 30.965L11.2746 30.9652C11.2854 30.9676 11.2967 30.9701 11.3074 30.9721C11.34 30.9782 11.3712 30.981 11.3941 30.9703C11.4092 30.9633 11.4207 30.9504 11.4267 30.9286C11.4499 30.8448 11.3704 30.8016 11.2989 30.7627L11.298 30.7623C11.282 30.7536 11.2666 30.7451 11.2527 30.7365C10.254 30.1131 9.17843 29.7292 8.07517 29.4331L8.0674 29.4311C7.97959 29.4074 7.89094 29.3836 7.79202 29.2986C7.89144 29.2948 7.99076 29.2901 8.09012 29.2854C8.32957 29.274 8.56916 29.2627 8.81056 29.2629C9.15636 29.2629 9.50431 29.2748 9.85296 29.3009C9.96114 29.3089 10.0695 29.3182 10.1781 29.3287C10.2726 29.3378 10.3671 29.3479 10.4616 29.3587C10.5482 29.3687 10.6348 29.3793 10.7213 29.3906C10.7912 29.3997 10.861 29.4092 10.9307 29.4191C11.1671 29.4526 11.4035 29.4965 11.6709 29.5461C11.7948 29.5692 11.9254 29.5934 12.0657 29.6184C11.5415 29.089 11.1555 28.5815 10.8177 28.0437C10.676 27.818 10.5436 27.5894 10.4265 27.3547H8.1736V10.4696H15.065C16.8543 10.4696 18.4341 10.8314 19.8043 11.5551C21.1745 12.2627 22.2385 13.2597 22.9961 14.5462C23.7538 15.8166 24.1326 17.2719 24.1326 18.9122C24.1326 20.5525 23.7538 22.0158 22.9961 23.3023C22.2385 24.5727 21.1745 25.5697 19.8043 26.2934C18.4341 27.001 16.8543 27.3547 15.065 27.3547H11.1365C12.3905 28.3263 13.8202 28.8632 15.373 29.0576C16.8259 29.2389 18.226 29.1241 19.5697 28.7671C19.8241 28.6995 19.9663 28.6167 19.9394 28.2888C19.8863 27.6372 20.466 27.1227 21.1627 27.1708C21.4095 27.1877 21.5266 27.0999 21.6496 26.9498C22.457 25.9638 22.9261 25.3919 23.3775 24.8418C23.8791 24.2305 24.3585 23.6461 25.2554 22.5501C25.3117 22.4814 25.3714 22.4179 25.4356 22.3611L25.4815 22.3054C25.6084 22.1507 25.6501 22.0102 25.5938 21.7874C25.3988 21.0133 25.8471 20.384 26.6335 20.3236C26.8273 20.3086 26.832 20.2019 26.8371 20.0866L26.8378 20.0696L26.8388 20.052C26.8902 19.2076 26.7543 18.3595 26.475 17.5191C25.6439 15.0202 24.0979 12.9489 21.8591 11.2366C22.5596 11.2381 23.2207 11.3835 23.8778 11.5788C24.5425 11.7759 25.1871 12.0454 25.8956 12.4235C25.1475 11.1113 24.6409 9.83396 24.4762 8.39412C24.5858 8.54905 24.6921 8.70246 24.7974 8.85436C25.2719 9.53906 25.7248 10.1926 26.3586 10.8132C25.9123 7.80637 27.1174 5.82188 29.6223 4.596C28.8856 5.53527 28.695 6.64612 28.9036 7.90196C30.1753 5.1413 32.5663 4.65657 35.6205 5.50789L35.6191 5.50755C34.4507 5.52434 33.3712 5.74046 32.4992 6.45034C32.5134 6.46172 32.525 6.47238 32.5346 6.48112L32.5416 6.4875C32.5538 6.4985 32.5619 6.50496 32.5674 6.50362C33.5891 6.29836 34.6539 6.39843 35.7189 6.49854L35.7585 6.50225C36.1897 6.54291 36.6192 6.56418 37.0438 6.53758C37.7621 6.49305 38.3752 6.25979 38.8617 5.79694C39.6293 5.06658 40.1281 4.19024 40.1599 3C40.6045 3.75805 40.8802 4.4927 41.0243 5.25039C41.2689 6.53659 41.2769 7.7946 40.9624 9.00153C40.9033 9.22947 40.9113 9.46019 40.9749 9.69956C41.2858 10.8723 41.2415 11.982 40.807 13.0235C40.8032 13.0325 40.7985 13.0417 40.7933 13.051C40.79 13.0571 40.7864 13.0631 40.7829 13.0692C40.7525 13.1219 40.7199 13.1784 40.777 13.2353C40.8127 13.2708 40.8577 13.274 40.9041 13.2683L40.9105 13.2675L40.9181 13.2664L40.927 13.265C40.9374 13.2633 40.9479 13.2612 40.9582 13.2592C40.9769 13.2556 40.9954 13.252 41.013 13.2501C42.184 13.1253 43.094 12.2101 43.1848 11.0681C43.1894 11.0114 43.1953 10.9543 43.2609 10.8927C43.2662 10.9157 43.2719 10.9388 43.2776 10.9619L43.2958 11.0331C43.322 11.1343 43.3481 11.2355 43.3607 11.3365C43.6193 13.3852 43.0247 15.0173 41.3129 16.0658C40.7466 16.4129 40.0984 16.6381 39.4055 16.7555C39.3882 16.7585 39.3681 16.7593 39.3475 16.7602C39.2744 16.7634 39.1937 16.7669 39.2005 16.8619C39.2059 16.9377 39.2767 16.956 39.3433 16.9732C39.3631 16.9782 39.3827 16.9833 39.3999 16.9897C40.8317 17.5229 42.1897 17.5908 43.4295 16.9194C43.4364 16.9155 43.4459 16.9154 43.4642 16.9163L43.4752 16.9168C43.4925 16.9177 43.5161 16.919 43.5491 16.9192C43.522 16.9567 43.4959 16.9937 43.4705 17.0301L43.4101 17.1176L43.4092 17.1191L43.4085 17.1203C43.3704 17.1755 43.3334 17.2292 43.2961 17.2812C43.2765 17.3084 43.2569 17.3352 43.2368 17.3614L43.2143 17.3907C43.1863 17.4261 43.1577 17.4606 43.1279 17.494C42.1427 18.5947 40.9627 19.4296 39.3813 19.6994C38.8598 19.7883 38.3192 19.7843 37.7739 19.7441C37.7544 19.7428 37.7322 19.7379 37.7095 19.7329C37.7009 19.7309 37.6922 19.729 37.6836 19.7273C37.6747 19.7255 37.6657 19.7239 37.657 19.7227C37.6439 19.7208 37.6313 19.7199 37.6196 19.7206L37.6138 19.721L37.6084 19.7217L37.6027 19.7228C37.5998 19.7235 37.597 19.7243 37.5943 19.7253C37.592 19.7261 37.5899 19.727 37.5878 19.728L37.5841 19.73L37.5805 19.7322C37.5695 19.7399 37.561 19.7517 37.5562 19.7693C37.5456 19.8073 37.5562 19.837 37.5777 19.8617C37.5966 19.8835 37.6239 19.9015 37.6526 19.9178L37.6652 19.9249L37.6742 19.9298L37.698 19.9429C37.7093 19.949 37.7202 19.9552 37.7302 19.9614C38.7289 20.5848 39.8044 20.9687 40.9077 21.2648L40.9406 21.2737L40.9526 21.277C40.9852 21.2862 41.018 21.2966 41.0517 21.3112C41.0716 21.3199 41.0919 21.3301 41.1125 21.3425C41.1276 21.3516 41.143 21.3618 41.1586 21.3734L41.1694 21.3817L41.1777 21.3883L41.1849 21.3942L41.1908 21.3993C41.0914 21.4031 40.9921 21.4078 40.8927 21.4125C40.6533 21.4239 40.4137 21.4352 40.1723 21.435C39.8265 21.435 39.4785 21.4231 39.1299 21.397C38.9797 21.3858 38.8291 21.3722 38.6784 21.3564C38.4697 21.3345 38.2607 21.3085 38.0521 21.2788C37.9927 21.2704 37.9334 21.2613 37.8735 21.2516L37.8219 21.2432L37.7718 21.2348C37.7305 21.2277 37.6888 21.2205 37.6467 21.213C37.5406 21.1942 37.4312 21.1739 37.316 21.1525L37.312 21.1518C37.188 21.1287 37.0575 21.1045 36.9171 21.0794C37.4414 21.6089 37.8274 22.1164 38.1651 22.6542C38.3801 22.9966 38.5738 23.3457 38.725 23.7124H40.9042L40.9042 40.8532H34.0128C32.2235 40.8532 30.6437 40.4859 29.2735 39.7513C27.9033 39.033 26.8394 38.0209 26.0817 36.715C25.3241 35.4253 24.9452 33.9479 24.9452 32.2828C24.9452 30.6177 25.3241 29.1322 26.0817 27.8262C26.8394 26.5366 27.9033 25.5245 29.2735 24.7899C30.6437 24.0716 32.2235 23.7124 34.0128 23.7124H38.2908C36.9342 22.5055 35.3493 21.8581 33.6098 21.6403C32.1569 21.459 30.7569 21.5738 29.4131 21.9308C29.1588 21.9984 29.0166 22.0812 29.0435 22.4091C29.0966 23.0607 28.5169 23.5752 27.8202 23.5271C27.5734 23.5102 27.4562 23.598 27.3333 23.748C26.894 24.2846 26.5549 24.6984 26.2641 25.0529L25.6054 25.8561C25.1038 26.4674 24.6244 27.0518 23.7275 28.1477C23.6711 28.2165 23.6115 28.2799 23.5472 28.3368L23.5014 28.3925C23.3745 28.5472 23.3327 28.6877 23.3891 28.9105C23.584 29.6846 23.1357 30.3139 22.3494 30.3743C22.1555 30.3893 22.1509 30.4961 22.1459 30.6113C22.1454 30.6228 22.1449 30.6344 22.1442 30.646C22.0927 31.4903 22.2285 32.3384 22.5079 33.1787C23.339 35.6777 24.885 37.749 27.1238 39.4613C26.4233 39.4598 25.7621 39.3144 25.1051 39.1191C24.4404 38.922 23.7957 38.6525 23.0873 38.2744C23.8353 39.5866 24.342 40.8639 24.5066 42.3038C24.3971 42.1488 24.2907 41.9954 24.1855 41.8435C23.711 41.1588 23.258 40.5053 22.6242 39.8847C23.0706 42.8915 21.8655 44.876 19.3606 46.1019C20.0972 45.1626 20.2878 44.0518 20.0793 42.7959C18.8076 45.5566 16.4166 46.0413 13.3624 45.19L13.3637 45.1903ZM17.1566 44.7926L17.181 44.8134L17.1905 44.8214C17.2307 44.7981 17.2712 44.7751 17.3117 44.7521L17.3165 44.7495C17.3619 44.7237 17.4073 44.6978 17.4524 44.6715C17.5037 44.6416 17.5545 44.6111 17.6044 44.5793C19.2806 43.5164 20.0254 42.0006 19.5382 39.8863C19.4442 39.4779 19.3511 39.0695 19.258 38.661C19.2008 38.4101 19.1436 38.1592 19.0862 37.9083C19.0322 37.6725 18.9781 37.4367 18.9235 37.2009C18.9177 37.1759 18.9156 37.1479 18.9134 37.1196C18.9075 37.0417 18.9014 36.9612 18.818 36.9322C18.8038 36.9273 18.7905 36.925 18.7781 36.9249C18.7649 36.9249 18.7526 36.9274 18.7411 36.9318C18.6961 36.9488 18.6626 36.9954 18.6313 37.0391L18.618 37.0575L18.6138 37.0632C18.6085 37.0703 18.6032 37.0771 18.5979 37.0834C18.1304 37.6455 17.6052 38.1485 16.9924 38.5688C16.1339 39.1567 15.1572 39.5534 14.1817 39.9497L14.1809 39.95L13.9712 40.0351C11.8822 40.8853 10.4284 42.3323 9.55939 44.3379C9.55026 44.3591 9.53855 44.38 9.52662 44.4014L9.52568 44.4031C9.4858 44.4742 9.44371 44.5492 9.48361 44.6494C9.57227 44.6457 9.61305 44.5975 9.65177 44.5518C9.66103 44.5409 9.67016 44.5301 9.67981 44.5201C10.6729 43.4861 11.9165 42.8122 13.3627 42.4209C13.4394 42.4002 13.5165 42.3805 13.594 42.3615C13.7478 42.3239 13.9028 42.2895 14.0583 42.2564C14.1875 42.229 14.3171 42.2025 14.4467 42.1761L14.4509 42.1751L14.4516 42.175C14.9282 42.0778 15.4045 41.9807 15.8618 41.8339C15.8674 41.832 15.8796 41.8436 15.8918 41.8551L15.8969 41.8598L15.9017 41.8642L15.9046 41.8667L15.9078 41.8694C15.7139 42.1702 15.4233 42.3799 14.8696 42.5651C14.0858 42.8281 13.3137 43.1135 12.553 43.4217C12.5379 43.4278 12.5197 43.4326 12.5008 43.4376C12.4381 43.4539 12.3689 43.472 12.3899 43.5473C12.4173 43.6452 12.5108 43.6428 12.592 43.6407C12.6047 43.6403 12.6171 43.6399 12.6289 43.64C13.1436 43.6449 13.6606 43.6811 14.178 43.7173L14.1807 43.7175L14.1836 43.7177C14.2992 43.7258 14.4149 43.7339 14.5306 43.7417C15.9297 43.836 17.1315 43.48 18.1094 42.6388C18.1219 42.6279 18.1337 42.6152 18.1458 42.602C18.1945 42.5493 18.2484 42.4911 18.3752 42.5337C18.1369 43.3899 17.7194 44.1294 17.1247 44.7671L17.1263 44.767L17.1566 44.7926ZM18.7403 33.5837C18.568 33.7108 18.3983 33.8386 18.2296 33.9657C17.8439 34.2565 17.4628 34.5437 17.0647 34.8102C16.2065 35.3861 15.2584 35.8243 14.3104 36.2626L14.0965 36.3615C13.9675 36.4212 13.8386 36.4812 13.7101 36.5417C13.5599 36.6124 13.4102 36.6838 13.2614 36.7566C11.8626 37.4404 10.596 38.2719 9.66689 39.4938C8.30436 41.1556 8.74398 42.7305 8.95346 43.4809C9.00838 43.6777 9.04756 43.8181 9.03411 43.8881C9.0632 43.8715 9.08511 43.8528 9.10227 43.8329C9.13452 43.7954 9.15002 43.7538 9.16488 43.7139C9.16889 43.7031 9.17305 43.6919 9.17727 43.6814C9.18013 43.6744 9.18306 43.6676 9.18621 43.6609C9.55013 42.8818 10.0196 42.1767 10.6169 41.5612C11.7183 40.4259 13.1144 39.6932 14.6359 39.1266C15.9685 38.6305 17.1648 37.956 18.0124 36.8499L18.0484 36.8031L18.1017 36.7344C18.3682 36.3918 18.647 36.0333 18.6915 35.6028C18.7295 35.2369 18.7277 34.8611 18.7259 34.4821L18.7258 34.4769C18.7249 34.2821 18.724 34.0864 18.7285 33.8908C18.731 33.7881 18.7348 33.6854 18.741 33.5828L18.7403 33.5837ZM19.5424 30.8752C18.9502 31.3 18.3578 31.7044 17.7435 32.0797C16.1158 33.0744 14.366 33.8258 12.3395 34.0381C11.4921 34.1271 10.661 34.2745 9.8324 34.4282C8.57772 34.6612 7.57497 35.2352 6.86261 36.2089C6.65691 36.4903 6.49406 36.796 6.36999 37.1938C6.59951 37.0982 6.80345 36.9823 7.00223 36.8692C7.31768 36.6897 7.62018 36.5177 7.99132 36.4464L7.5479 36.9036C8.25494 36.898 8.792 36.6103 9.32215 36.3263C9.66846 36.1407 10.0118 35.9567 10.3978 35.854C9.76591 36.3792 9.24932 36.9868 8.86098 37.7009C8.46555 38.4288 8.36488 39.2373 8.39299 40.1161C8.49303 40.0812 8.51736 40.0221 8.5393 39.9687C8.54637 39.9515 8.55324 39.9348 8.56229 39.9198C8.57372 39.9008 8.58469 39.8813 8.59545 39.8618L8.61133 39.8327C8.6209 39.8152 8.63048 39.7976 8.64031 39.7801C8.64722 39.7678 8.65424 39.7557 8.66144 39.7436L8.67295 39.7247C9.46916 38.4479 10.5793 37.4842 11.9127 36.7393C12.6166 36.3461 13.3517 36.0034 14.0868 35.6607L14.0893 35.6595L14.0927 35.6578L14.1011 35.6539C14.3489 35.5384 14.5971 35.4226 14.8437 35.3052C14.995 35.2331 15.1459 35.1603 15.2959 35.0863C16.6639 34.4123 17.9125 33.5978 18.7899 32.3676C19.1141 31.9132 19.3492 31.4074 19.5424 30.8752ZM20.7196 42.982C20.795 42.7007 20.8168 42.4067 20.8386 42.1127L20.8388 42.111L20.8389 42.1088C20.8501 41.9571 20.8614 41.8054 20.8801 41.6556C20.8921 41.5598 20.9071 41.4647 20.9271 41.3708C21.053 41.8931 21.0079 42.3917 20.9629 42.8903C20.956 42.9668 20.9491 43.0433 20.9428 43.1198C20.9349 43.2161 20.928 43.3126 20.9232 43.4093C21.4006 42.0679 21.5349 40.658 21.2619 39.1628C21.6595 40.3907 21.8087 41.6119 21.7751 42.835C21.7882 42.7706 21.8015 42.7062 21.8147 42.6418L21.8149 42.641C22.109 41.2123 22.4027 39.7848 21.4973 38.254L23.3738 39.8682L23.4423 39.8153C22.9982 39.0347 22.4976 38.2813 21.9965 37.527C21.6966 37.0756 21.3965 36.624 21.1081 36.1659C22.2139 36.9306 23.3328 37.6519 24.5158 38.2716C24.3263 38.1046 24.1349 37.9401 23.9438 37.7757L23.9419 37.7742C23.3061 37.2278 22.6728 36.6834 22.1175 36.0588C22.2479 36.1239 22.3728 36.1961 22.4972 36.2679L22.4983 36.2686L22.502 36.2707C22.5699 36.3099 22.638 36.3492 22.7064 36.387C22.7116 36.3899 22.7168 36.3929 22.7222 36.3962C22.7291 36.4004 22.7363 36.4048 22.7436 36.4094C22.7629 36.4215 22.7833 36.4344 22.8036 36.444C22.8478 36.4651 22.8923 36.4719 22.9278 36.4268C22.9671 36.3773 22.9211 36.3232 22.8798 36.2745L22.8673 36.2597L22.8611 36.2521C22.8581 36.2485 22.8554 36.2449 22.8527 36.2413C22.0108 35.1169 21.5759 33.8764 21.2716 32.5976C21.1834 32.2264 21.147 31.8567 21.1101 31.4811L21.1086 31.4662L21.1036 31.4158C21.0979 31.3582 21.0922 31.3004 21.0862 31.2424C20.8203 31.6131 20.6892 32.0452 20.5581 32.4771L20.5211 32.599C20.4718 31.937 20.6416 31.3364 20.8174 30.7146L20.8504 30.5974C20.8253 30.6015 20.8055 30.6041 20.7897 30.606L20.7717 30.6081C20.7471 30.6109 20.736 30.6125 20.7293 30.6188C20.688 30.656 20.6468 30.6949 20.6131 30.739C19.9834 31.5571 19.5682 32.4833 19.3852 33.5298C19.1352 34.9597 19.2661 36.4234 19.5908 37.9013C19.6478 38.1603 19.708 38.4191 19.7696 38.6778C19.8209 38.8932 19.8732 39.1085 19.9255 39.3239C20.1661 40.3145 20.4066 41.3052 20.5505 42.3028C20.5541 42.3276 20.5572 42.3526 20.5602 42.3776L20.567 42.436C20.5876 42.617 20.6085 42.8006 20.7186 42.9813L20.7196 42.982ZM7.65598 32.651L7.66918 32.7255C7.74741 32.7309 7.82561 32.735 7.90381 32.7391C8.06898 32.7478 8.23473 32.7566 8.40009 32.7767C8.96999 32.8462 9.5299 33.0034 10.0898 33.1607L10.1048 33.1649L10.106 33.1652C10.2503 33.2057 10.3945 33.2461 10.539 33.2851C12.1512 33.7187 13.6064 33.4367 15.005 32.9261C16.827 32.26 18.2964 31.1303 19.6916 29.9065C19.7002 29.899 19.7097 29.8916 19.7193 29.884C19.7731 29.8419 19.8336 29.7946 19.7937 29.6852C17.1895 30.3689 14.5743 29.9613 11.9458 28.7364C12.3713 29.1221 12.8507 29.422 13.3313 29.7226C13.7587 29.9899 14.187 30.2578 14.5792 30.5871L10.7986 29.827C11.6558 30.3354 12.4314 30.9271 13.2003 31.6025C13.0353 31.6381 12.9041 31.6147 12.7814 31.5927C12.7494 31.587 12.7179 31.5814 12.6866 31.5769C11.5081 31.4124 10.3421 31.3211 9.25529 31.6816C9.22986 31.6901 9.20018 31.6972 9.16965 31.7044L9.16893 31.7046L9.16822 31.7047C9.06026 31.7303 8.94187 31.7583 8.95894 31.8586C8.98008 31.9819 9.11776 32.0043 9.24253 32.0246C9.27216 32.0294 9.30102 32.0341 9.32739 32.04L9.35451 32.0461L9.35545 32.0463C9.90722 32.1676 9.91102 32.1684 10.1075 32.3226C9.24934 32.3218 8.42204 32.383 7.65598 32.651ZM21.7115 28.8737L21.7026 28.8846L21.7559 28.9274L21.8391 28.9948L21.9125 29.0544C22.0838 29.1935 22.2551 29.3326 22.431 29.4656C22.453 29.4823 22.4748 29.5045 22.4971 29.5271C22.5724 29.6036 22.6529 29.6854 22.7636 29.5795C22.8979 29.4515 22.9544 29.2827 22.7845 29.1139C22.2973 28.6301 21.7482 28.2196 21.1638 27.8604C20.9872 27.7517 20.8723 27.8846 20.791 27.9919C20.714 28.0931 20.8025 28.1538 20.8816 28.208L20.8832 28.209C20.9025 28.2224 20.9212 28.2352 20.9367 28.2483C21.1206 28.4026 21.3084 28.5522 21.4962 28.7018C21.5681 28.759 21.6399 28.8163 21.7115 28.8737ZM31.8565 5.93084L31.8363 5.91381L31.8276 5.90631L31.7924 5.87651C31.7521 5.89982 31.7116 5.9228 31.6711 5.94578L31.6663 5.9485C31.5692 6.00374 31.4722 6.05895 31.3784 6.11857C29.7023 7.18148 28.9575 8.69726 29.4446 10.8116C29.5149 11.1168 29.5847 11.422 29.6543 11.7272L29.9467 13.0079L30.0593 13.4969C30.0614 13.506 30.0631 13.5155 30.0644 13.5253L30.0656 13.5353C30.0672 13.5493 30.0683 13.5637 30.0694 13.5783C30.0753 13.6562 30.0814 13.7367 30.1649 13.7657C30.1961 13.7766 30.2228 13.7745 30.2463 13.7644C30.2891 13.746 30.3214 13.701 30.3515 13.6588L30.3663 13.6384C30.3725 13.63 30.3787 13.6219 30.3849 13.6145C30.8525 13.0524 31.3777 12.5494 31.9905 12.1291C32.849 11.5411 33.8256 11.1445 34.8013 10.7482L34.8021 10.7479L35.0117 10.6627C37.1007 9.81262 38.5544 8.36559 39.4235 6.36003C39.4326 6.33879 39.4443 6.31789 39.4563 6.29659L39.4572 6.29483C39.4764 6.26046 39.4964 6.22482 39.5072 6.18628C39.5186 6.14513 39.5199 6.10018 39.4993 6.04855C39.4107 6.05221 39.3699 6.10032 39.3312 6.146C39.3219 6.15696 39.3127 6.16781 39.3031 6.17784C38.3099 7.21175 37.0664 7.88569 35.6202 8.27696C35.2643 8.37319 34.9002 8.44752 34.5362 8.52178L34.5341 8.52229L34.5334 8.52242C34.0562 8.61974 33.579 8.71703 33.1211 8.86397C33.1202 8.86429 33.1191 8.86428 33.1179 8.86394L33.1159 8.86318C33.115 8.86275 33.114 8.86221 33.113 8.86155L33.1085 8.85848C33.1068 8.85714 33.1049 8.85557 33.103 8.8539L33.0992 8.85047L33.0912 8.84299C33.0856 8.83769 33.08 8.83244 33.075 8.82847C33.269 8.52767 33.5596 8.31803 34.1133 8.1328C34.8971 7.86974 35.6691 7.58436 36.4298 7.27622C36.445 7.27004 36.4633 7.26523 36.4822 7.26027C36.5449 7.24395 36.614 7.22594 36.593 7.1506C36.5656 7.05262 36.472 7.05512 36.3907 7.05729C36.3781 7.05763 36.3657 7.05796 36.354 7.0579C36.2654 7.05705 36.1767 7.05529 36.0879 7.05271L36.022 7.05071C35.9862 7.04956 35.9504 7.04827 35.9146 7.04688C35.7756 7.04143 35.6365 7.0344 35.4972 7.02631C35.2666 7.01294 35.0358 6.99678 34.8049 6.98058L34.6174 6.96748L34.4522 6.95623C33.0532 6.86194 31.8514 7.21794 30.8735 8.05914L30.8676 8.06444C30.864 8.06779 30.8605 8.07128 30.8569 8.07491C30.8503 8.08163 30.8437 8.08869 30.8371 8.09585C30.7883 8.14857 30.7345 8.20679 30.6077 8.16421C30.846 7.308 31.2635 6.56846 31.8582 5.93079L31.8565 5.93084ZM30.4955 16.926C30.5818 16.8613 30.6677 16.7967 30.7533 16.7322C31.139 16.4414 31.52 16.1542 31.9182 15.8877C32.7764 15.3118 33.7245 14.8735 34.6725 14.4353C35.0237 14.273 35.375 14.1107 35.7215 13.9413C37.1202 13.2575 38.3868 12.4259 39.316 11.2041C40.6785 9.54228 40.2389 7.9674 40.0294 7.21698C39.9745 7.02017 39.9353 6.87978 39.9488 6.80976C39.8648 6.85785 39.8406 6.92307 39.8178 6.98444C39.8112 7.00248 39.8046 7.02017 39.7967 7.03704C39.4327 7.81612 38.9633 8.52122 38.3659 9.13665C37.2646 10.272 35.8685 11.0047 34.347 11.5713C33.0144 12.0674 31.8181 12.7419 30.9705 13.848L30.925 13.907L30.8811 13.9634C30.6147 14.3061 30.3359 14.6646 30.2913 15.0951C30.2534 15.461 30.2552 15.8368 30.257 16.2158C30.2584 16.5144 30.2599 16.8156 30.2419 17.1151L30.2425 17.1142C30.3275 17.0516 30.4117 16.9888 30.4955 16.926ZM29.4405 19.8227C30.0327 19.3979 30.625 18.9935 31.2394 18.6182C32.867 17.6235 34.6169 16.8721 36.6433 16.6597C37.4907 16.5708 38.3218 16.4233 39.1505 16.2697C40.4051 16.0367 41.4079 15.4628 42.1203 14.489C42.326 14.2076 42.4888 13.9019 42.6129 13.5041C42.3834 13.5997 42.1794 13.7156 41.9806 13.8287C41.6652 14.0082 41.3627 14.1802 40.9915 14.2515L41.435 13.7943C40.7279 13.7999 40.1909 14.0876 39.6607 14.3716C39.3144 14.5572 38.971 14.7412 38.5851 14.8439C39.2169 14.3187 39.7335 13.7111 40.1219 12.997C40.5174 12.2691 40.618 11.4606 40.5899 10.5818C40.4898 10.6167 40.4655 10.6758 40.4436 10.7292C40.4365 10.7464 40.4296 10.7631 40.4206 10.7781C40.4032 10.8072 40.3869 10.837 40.3706 10.8669C40.351 10.9028 40.3314 10.9386 40.3099 10.9732C39.5137 12.2499 38.4036 13.2136 37.0701 13.9585C36.3662 14.3518 35.6311 14.6945 34.896 15.0372L34.8935 15.0384L34.8901 15.0401L34.6795 15.1383L34.5505 15.1986L34.3802 15.2786C34.21 15.3587 34.0401 15.4395 33.8711 15.5215C33.8096 15.5514 33.7482 15.5814 33.6869 15.6116C32.3189 16.2856 31.0704 17.1001 30.1929 18.3303C29.8688 18.7847 29.6337 19.2905 29.4405 19.8227ZM28.2633 7.71585C28.1879 7.99724 28.1661 8.2912 28.1443 8.58516L28.1442 8.58593C28.1257 8.83563 28.1072 9.08527 28.0558 9.32713C27.9299 8.80478 27.9749 8.30619 28.02 7.80755C28.0356 7.63485 28.0511 7.46216 28.0596 7.28854C27.5823 8.62999 27.448 10.0399 27.721 11.535C27.3233 10.3072 27.1741 9.086 27.2078 7.86287L27.168 8.05689C26.8739 9.48555 26.5801 10.913 27.4856 12.4439L25.609 10.8297L25.5406 10.8826C25.9847 11.6632 26.4852 12.4166 26.9864 13.1709C27.2863 13.6223 27.5863 14.0739 27.8747 14.532C26.7689 13.7673 25.6501 13.046 24.467 12.4263C24.6565 12.5932 24.8478 12.7577 25.0389 12.922L25.041 12.9237C25.6768 13.4701 26.3101 14.0145 26.8654 14.6391C26.7354 14.5743 26.611 14.5024 26.4871 14.4308L26.4857 14.43L26.4846 14.4293L26.4805 14.427C26.4128 14.3879 26.3447 14.3486 26.2764 14.3109C26.2645 14.3043 26.252 14.2965 26.239 14.2883C26.1776 14.2498 26.1069 14.2054 26.055 14.2711C26.0424 14.2872 26.0386 14.3036 26.0407 14.3203C26.0451 14.3551 26.075 14.3904 26.1029 14.4232L26.1133 14.4355C26.1193 14.4427 26.125 14.4497 26.1302 14.4566C26.972 15.581 27.407 16.8215 27.7113 18.1003C27.7994 18.4715 27.8358 18.8412 27.8728 19.2169L27.8743 19.232L27.8744 19.2331C27.8817 19.307 27.889 19.3811 27.8967 19.4555C28.1626 19.0848 28.2937 18.6527 28.4247 18.2208L28.4618 18.0989C28.5111 18.7609 28.3413 19.3615 28.1655 19.9832L28.1324 20.1005C28.166 20.095 28.1902 20.0922 28.2078 20.0902L28.2236 20.0883C28.2283 20.0877 28.2323 20.0871 28.2358 20.0864C28.2377 20.0861 28.2395 20.0857 28.2411 20.0853L28.2433 20.0847L28.2455 20.0839L28.2477 20.0831L28.2504 20.0816L28.252 20.0805L28.2536 20.0791C28.2949 20.0419 28.336 20.003 28.3697 19.9589C28.9994 19.1408 29.4147 18.2146 29.5976 17.1681C29.8476 15.7382 29.7168 14.2745 29.392 12.7966C29.2875 12.3216 29.1724 11.8474 29.0572 11.3733C28.8167 10.3829 28.5762 9.39243 28.4324 8.3951C28.4296 8.3757 28.427 8.35625 28.4247 8.33679C28.4216 8.31234 28.4188 8.28799 28.416 8.26349L28.4158 8.2619C28.3952 8.08085 28.3743 7.89726 28.2643 7.71664L28.2633 7.71585ZM41.3269 18.0469L41.3137 17.9724C41.2358 17.9671 41.158 17.963 41.0801 17.9589C41.0227 17.9558 40.9653 17.9528 40.9079 17.9493C40.7996 17.9427 40.6912 17.9344 40.5828 17.9212C40.0129 17.8517 39.453 17.6945 38.8931 17.5372L38.8778 17.5329C38.7332 17.4924 38.5887 17.4518 38.4439 17.4128C36.8317 16.9792 35.3765 17.2612 33.9778 17.7718C32.1558 18.4379 30.6864 19.5676 29.2913 20.7914L29.2858 20.7961L29.279 20.8016L29.2657 20.8122L29.2635 20.8139C29.2098 20.856 29.1492 20.9033 29.1892 21.0127C31.7934 20.3289 34.4086 20.7366 37.037 21.9615C36.6116 21.5758 36.1322 21.2759 35.6515 20.9753C35.2241 20.708 34.7958 20.4401 34.4036 20.1108C35.0669 20.244 35.7301 20.3774 36.3933 20.5108L36.429 20.518C37.0141 20.6357 37.5991 20.7533 38.1843 20.8709C37.327 20.3625 36.5514 19.7708 35.7826 19.0954C35.9476 19.0598 36.0788 19.0832 36.2014 19.1052C36.2335 19.1109 36.2649 19.1166 36.2963 19.121C37.4748 19.2855 38.6407 19.3767 39.7276 19.0163C39.753 19.0078 39.7827 19.0007 39.8132 18.9935L39.8146 18.9931C39.9226 18.9676 40.041 18.9396 40.0239 18.8393C40.0028 18.716 39.8651 18.6935 39.7403 18.6733C39.7107 18.6684 39.6818 18.6637 39.6555 18.6578L39.6283 18.6518L39.6274 18.6516C39.0756 18.5303 39.0718 18.5295 38.8753 18.3752C39.7335 18.3761 40.5608 18.3149 41.3269 18.0469ZM27.2714 21.8242L27.2803 21.8133C27.2101 21.757 27.1402 21.7002 27.0704 21.6435L26.9407 21.5384L26.88 21.4895C26.7718 21.4023 26.6628 21.3161 26.5519 21.2323C26.53 21.2157 26.5084 21.1937 26.4863 21.1712L26.4858 21.1707C26.4105 21.0943 26.3299 21.0125 26.2193 21.1183C26.085 21.2464 26.0284 21.4152 26.1984 21.584C26.6856 22.0678 27.2347 22.4784 27.8192 22.8375C27.9957 22.9462 28.1105 22.8133 28.1918 22.706C28.2689 22.6047 28.1804 22.5441 28.1013 22.4899L28.0989 22.4882C28.0905 22.4825 28.0823 22.4769 28.0745 22.4713C28.0686 22.4671 28.0629 22.4629 28.0575 22.4587C28.0535 22.4557 28.0497 22.4527 28.0461 22.4496C27.9788 22.3931 27.911 22.3373 27.8428 22.2818C27.7248 22.1858 27.6058 22.091 27.4868 21.9962C27.4151 21.9391 27.3428 21.8815 27.2714 21.8242ZM14.9683 25.811C16.4513 25.811 17.749 25.5215 18.8613 24.9426C19.9736 24.3476 20.836 23.5355 21.4486 22.5063C22.0612 21.461 22.3674 20.263 22.3674 18.9122C22.3674 17.5614 22.0612 16.3714 21.4486 15.3422C20.836 14.2969 19.9736 13.4848 18.8613 12.9059C17.749 12.3109 16.4513 12.0134 14.9683 12.0134H9.96294V25.811H14.9683ZM30.2165 26.1611C31.3288 25.5734 32.6265 25.2796 34.1096 25.2796L39.1149 25.2796L39.1149 39.2861H34.1096C32.6265 39.2861 31.3288 38.9841 30.2165 38.3801C29.1042 37.7924 28.2418 36.968 27.6292 35.9069C27.0167 34.8621 26.7104 33.6541 26.7104 32.2828C26.7104 30.9116 27.0167 29.6954 27.6292 28.6343C28.2418 27.5895 29.1042 26.7651 30.2165 26.1611Z"
61
- fill="#F0F8FF"
62
- />
63
- <path
64
- d="M23.5685 44.965C23.4519 45.4633 23.3354 45.9615 23.1728 46.4459C23.5995 45.956 23.7117 45.3494 23.6365 44.6758C23.6136 44.7721 23.591 44.8686 23.5685 44.965Z"
65
- fill="#F0F8FF"
66
- />
67
- <path
68
- d="M14.5531 47.7907C15.5638 48.2138 16.4098 47.9209 17.2345 47.5692C16.4087 47.838 15.5199 47.8153 14.6316 47.7926L14.5531 47.7907Z"
69
- fill="#F0F8FF"
70
- />
71
- <path
72
- d="M8.07588 30.8715C7.4926 31.0489 6.89919 30.9055 6.30471 30.6849C6.60808 30.663 6.9141 30.7196 7.22049 30.7763C7.50595 30.8292 7.7917 30.882 8.07588 30.8715Z"
73
- fill="#F0F8FF"
74
- />
75
- <path
76
- d="M17.9843 46.5794C17.5765 46.8668 17.0996 46.995 16.5476 46.9315C17.043 46.8591 17.527 46.758 17.9843 46.5794Z"
77
- fill="#F0F8FF"
78
- />
79
- <path
80
- d="M5.94804 35.2886C5.73842 35.6524 5.43777 35.9171 5.05634 36.0919L5.05503 36.0904L5.02743 36.0599L5 36.0302L5.49939 35.6399C5.64901 35.5229 5.79851 35.4058 5.94804 35.2886Z"
81
- fill="#F0F8FF"
82
- />
83
- <path
84
- d="M14.3368 28.0065C14.7023 28.0092 15.008 28.192 15.3135 28.3748L15.3924 28.4218C15.0697 28.3686 14.7743 28.2225 14.4804 28.0771L14.4622 28.0681L14.4612 28.0676C14.4198 28.0472 14.3782 28.0266 14.3368 28.0065Z"
85
- fill="#F0F8FF"
86
- />
87
- <path
88
- d="M25.9427 41.3053L25.96 41.3246L25.99 41.3578C26.0373 41.4102 26.085 41.463 26.1281 41.5177C26.2445 41.6642 26.356 41.8135 26.4373 41.9844C26.2045 41.7975 26.0292 41.5691 25.9238 41.2839L25.9427 41.3053Z"
89
- fill="#F0F8FF"
90
- />
91
- <path
92
- d="M43.6953 20.8295C43.1008 20.6089 42.5074 20.4654 41.9241 20.6429C42.2083 20.6324 42.494 20.6852 42.7795 20.7381C43.0859 20.7948 43.3919 20.8514 43.6953 20.8295Z"
93
- fill="#F0F8FF"
94
- />
95
- <path
96
- d="M35.367 3.72168C34.4792 3.69912 33.5908 3.67659 32.7655 3.94519C33.5902 3.59348 34.4362 3.3006 35.4469 3.72374L35.367 3.72168Z"
97
- fill="#F0F8FF"
98
- />
99
- <path
100
- d="M26.432 6.54669L26.4314 6.5496C26.4089 6.64595 26.3863 6.7423 26.3635 6.83857C26.2883 6.165 26.4005 5.55844 26.8273 5.06854C26.6649 5.55199 26.5485 6.04934 26.432 6.54669Z"
101
- fill="#F0F8FF"
102
- />
103
- <path
104
- d="M32.0157 4.93501C32.4235 4.64762 32.9004 4.51937 33.4524 4.58289C32.957 4.65531 32.473 4.7564 32.0157 4.93501Z"
105
- fill="#F0F8FF"
106
- />
107
- <path
108
- d="M44.9437 15.4225C44.5622 15.5973 44.2616 15.862 44.052 16.2258C44.3277 16.0096 44.6036 15.794 44.8797 15.5782L45 15.4842L44.9725 15.4543L44.945 15.424L44.9437 15.4225Z"
109
- fill="#F0F8FF"
110
- />
111
- <path
112
- d="M34.6863 23.1395C34.9919 23.3223 35.2976 23.5052 35.6632 23.5079C35.6307 23.4921 35.5982 23.4761 35.5657 23.46L35.5195 23.4373C35.2258 23.292 34.9301 23.1458 34.6076 23.0926L34.6863 23.1395Z"
113
- fill="#F0F8FF"
114
- />
115
- <path
116
- d="M24.0101 10.1567C24.0322 10.1812 24.0546 10.2059 24.0762 10.2305C23.9708 9.94528 23.7955 9.71686 23.5627 9.53C23.644 9.70091 23.7555 9.85014 23.8719 9.99672C23.915 10.0514 23.9623 10.1038 24.0096 10.1561L24.0101 10.1567Z"
117
- fill="#F0F8FF"
118
- />
119
- </g>
120
- </g>
121
- <defs>
122
- <filter
123
- id="filter0_d_11_15869"
124
- x="1"
125
- y="-1"
126
- width="48"
127
- height="53"
128
- filterUnits="userSpaceOnUse"
129
- colorInterpolationFilters="sRGB"
130
- >
131
- <feFlood floodOpacity="0" result="BackgroundImageFix" />
132
- <feColorMatrix
133
- in="SourceAlpha"
134
- type="matrix"
135
- values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
136
- result="hardAlpha"
137
- />
138
- <feOffset />
139
- <feGaussianBlur stdDeviation="2" />
140
- <feComposite in2="hardAlpha" operator="out" />
141
- <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" />
142
- <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_11_15869" />
143
- <feBlend
144
- mode="normal"
145
- in="SourceGraphic"
146
- in2="effect1_dropShadow_11_15869"
147
- result="shape"
148
- />
149
- </filter>
150
- <clipPath id="clip0_11_15869">
151
- <rect width="50" height="50" fill="white" />
152
- </clipPath>
153
- </defs>
154
- </svg>
155
- </svg>
156
- )
157
-
158
- function Card2Item({ item }: { item: CarouselItemB }) {
159
- const candidateImgSrc =
160
- item.image && typeof item.image === 'object' && (item.image as MediaObj).url
161
- ? (item.image as MediaObj).url!
162
- : (item.imageFallbackUrl ?? '')
163
- const imgSrc = isValidImageSrc(candidateImgSrc) ? candidateImgSrc : ''
164
-
165
- return (
166
- <article className="card-item h-full">
167
- <Link href={item.href ?? '#'} className="block h-full">
168
- <article
169
- // data-theme="dark"
170
- className="article-card group max-w-[90vw]! md:max-w-[320px]! rounded-[2.5rem] w-full border border-border overflow-clip bgTransBlur hover:cursor-pointer h-full relative hover:border-indigo-500 dark:hover:border-lime-500 transition-all hover:transition-all duration-300 hover:duration-300 hover:outline-3 hover:outline-indigo-500/30 dark:hover:outline-lime-500/30 hover:outline-solid hover:outline-offset-2 hover:-translate-y-0.5"
171
- style={{ cornerShape: 'squircle' } as React.CSSProperties}
172
- >
173
- {/* Media area */}
174
- <div
175
- className="card-media card-bottom-lit relative w-full overflow-hidden shadow-xl"
176
- style={{ cornerShape: 'squircle' } as React.CSSProperties}
177
- >
178
- {/* Image / placeholder background */}
179
- <div
180
- className="w-full bg-linear-to-br from-violet-950 to-indigo-950 flex items-center justify-center relative"
181
- style={{ aspectRatio: '16/9', minHeight: 209 }}
182
- >
183
- {imgSrc ? (
184
- <Image
185
- src={imgSrc}
186
- alt={item.name}
187
- fill
188
- sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw"
189
- className="w-full min-w-[320px]! h-full object-cover object-top absolute inset-0 group-hover:scale-105 transition-all duration-300"
190
- style={{ cornerShape: 'squircle' } as React.CSSProperties}
191
- />
192
- ) : (
193
- <PlaceholderSVG />
194
- )}
195
-
196
- {/* Free badge */}
197
- {item.free && !item.badge && (
198
- <div className="absolute top-2 left-2 z-20 border bg-lime-500/50 border-lime-500 text-stone-50 text-xs font-semibold px-2.5 py-1 rounded-full">
199
- Free
200
- </div>
201
- )}
202
-
203
- {/* Custom badge */}
204
- {item.badge && (
205
- <div className="absolute top-2 left-2 z-20 border bg-lime-800/90 backdrop-blur-2xl border-lime-500 text-stone-50 text-xs font-semibold px-2.5 py-1 rounded-full">
206
- {item.badge}
207
- </div>
208
- )}
209
-
210
- {/* Title overlay on image */}
211
- <div className="card-title-overlay absolute bottom-4 left-4 right-4 z-20">
212
- <h3 className="text-sm font-semibold text-stone-50 dark:text-stone-50 drop-shadow-lg">
213
- {item.name}
214
- </h3>
215
- </div>
216
-
217
- {/* Bottom gradient on image */}
218
- <div
219
- aria-hidden="true"
220
- className="absolute pointer-events-none left-0 bottom-0 w-full h-1/2 bg-linear-to-t from-black to-transparent"
221
- />
222
- </div>
223
- </div>
224
-
225
- {/* Card body */}
226
- <div className="card-content-wrapper -mt-2 mx-3! card-bottom-lit bg-card px-4 pt-4 pb-8 shadow-xl group-hover:shadow-2xl transition-all duration-300">
227
- <div className="card-content">
228
- <div className="flex items-center gap-2 mb-2 flex-wrap">
229
- {item.category && (
230
- <span className="text-[10.5px] text-stone-500 dark:text-stone-300 bg-stone-300/50 dark:bg-stone-900/50 px-2.5 py-0.5 rounded-full border-stone-100 border">
231
- {item.category}
232
- </span>
233
- )}
234
- {item.framework && (
235
- <span className="text-[10.5px] text-stone-300 dark:text-stone-300 bg-stone-600 px-2.5 py-0.5 rounded-full border-stone-600 border">
236
- {item.framework}
237
- </span>
238
- )}
239
- </div>
240
-
241
- <h4 className="text-lg font-bold text-stone-900 dark:text-stone-300 my-1">
242
- {item.name}
243
- </h4>
244
-
245
- {item.description && (
246
- <p className="text-xs text-stone-400 dark:text-stone-400 leading-relaxed line-clamp-2 mb-4">
247
- {item.description}
248
- </p>
249
- )}
250
-
251
- <div className="flex items-center justify-between">
252
- <span className="text-base font-semibold text-stone-900 dark:text-stone-50">
253
- {item.free ? 'Free' : item.price != null ? `$${item.price}` : ''}
254
- </span>
255
- <span
256
- className="inline-flex items-center gap-1.5 bg-stone-900 dark:bg-stone-50 text-stone-100 dark:text-stone-900 text-sm font-semibold px-3 py-1.5 rounded-lg hover:bg-indigo-800 dark:group-hover:bg-indigo-500 dark:group-hover:text-stone-50 whitespace-nowrap group-hover:-translate-y-0.5 transition-all duration-100"
257
- style={{ cornerShape: 'squircle' } as React.CSSProperties}
258
- >
259
- {item.free ? 'Download' : 'View Details'}
260
- </span>
261
- </div>
262
- </div>
263
- </div>
264
- </article>
265
- </Link>
266
- </article>
267
- )
268
- }
269
-
270
- // ─── Main Component ───────────────────────────────────────────────────────────
271
- export const DDCarouselB: React.FC<DDCarouselBProps> = ({
272
- eyebrow,
273
- heading,
274
- subtext,
275
- viewAllLabel = 'View All',
276
- viewAllHref,
277
- items: itemsProp,
278
- sectionId,
279
- customCSS,
280
- }) => {
281
- const items = itemsProp ?? []
282
- const [emblaRef, emblaApi] = useEmblaCarousel({
283
- align: 'start',
284
- slidesToScroll: 1,
285
- containScroll: 'trimSnaps',
286
- dragFree: false,
287
- })
288
- const [activeIdx, setActiveIdx] = useState(0)
289
- const [canPrev, setCanPrev] = useState(false)
290
- const [canNext, setCanNext] = useState(true)
291
-
292
- const onSelect = useCallback(() => {
293
- if (!emblaApi) return
294
- setActiveIdx(emblaApi.selectedScrollSnap())
295
- setCanPrev(emblaApi.canScrollPrev())
296
- setCanNext(emblaApi.canScrollNext())
297
- }, [emblaApi])
298
-
299
- useEffect(() => {
300
- if (!emblaApi) return
301
- onSelect()
302
- emblaApi.on('select', onSelect)
303
- emblaApi.on('reInit', onSelect)
304
- return () => {
305
- emblaApi.off('select', onSelect)
306
- emblaApi.off('reInit', onSelect)
307
- }
308
- }, [emblaApi, onSelect])
309
-
310
- const scrollPrev = useCallback(() => emblaApi?.scrollPrev(), [emblaApi])
311
- const scrollNext = useCallback(() => emblaApi?.scrollNext(), [emblaApi])
312
- const scrollTo = useCallback((i: number) => emblaApi?.scrollTo(i), [emblaApi])
313
-
314
- const snapCount = emblaApi?.scrollSnapList().length ?? 0
315
-
316
- if (!items.length) return null
317
-
318
- return (
319
- <section id={sectionId ?? undefined} className="py-20 overflow-hidden">
320
- {customCSS && <style dangerouslySetInnerHTML={{ __html: customCSS }} />}
321
- <div className="max-w-6xl lg:max-w-7xl mx-auto px-4 md:px-6">
322
- {/* Header */}#BlockName-DDCarouselB
323
- <div className="flex flex-col md:flex-row md:items-end justify-between mb-12 gap-4 px-0 md:px-4">
324
- <div>
325
- {eyebrow && (
326
- <div className="text-lime-500 text-xs font-bold uppercase tracking-widest mb-2">
327
- {eyebrow}
328
- </div>
329
- )}
330
- {heading && (
331
- <h2 className="text-4xl lg:text-5xl font-bold text-stone-900 dark:text-stone-50 leading-tight">
332
- {heading}
333
- </h2>
334
- )}
335
- {subtext && <p className="text-stone-400 mt-3 text-base max-w-xl">{subtext}</p>}
336
- </div>
337
- <div className="flex items-center gap-3 shrink-0">
338
- <button
339
- onClick={scrollPrev}
340
- disabled={!canPrev}
341
- aria-label="Previous"
342
- className="w-11 h-11 flex items-center justify-center rounded-full border-2 border-white/30 text-stone-500 dark:text-stone-50 hover:border-white hover:bg-stone-50 hover:text-stone-900 transition-all disabled:opacity-30 disabled:cursor-not-allowed cursor-pointer"
343
- >
344
- <ChevronLeft className="w-5 h-5" />
345
- </button>
346
- <button
347
- onClick={scrollNext}
348
- disabled={!canNext}
349
- aria-label="Next"
350
- className="w-11 h-11 flex items-center justify-center rounded-full bg-lime-500 text-stone-900 hover:bg-lime-400 transition-all disabled:opacity-30 disabled:cursor-not-allowed cursor-pointer"
351
- >
352
- <ChevronRight className="w-5 h-5" />
353
- </button>
354
- {viewAllHref && (
355
- <Link
356
- aria-label="hidden"
357
- href={viewAllHref}
358
- className="ml-2 text-sm font-semibold text-stone-600 dark:text-stone-300 hover:text-lime-500 transition-colors whitespace-nowrap"
359
- >
360
- {viewAllLabel} →
361
- </Link>
362
- )}
363
- </div>
364
- </div>
365
- {/* Embla viewport */}
366
- <div
367
- ref={emblaRef}
368
- className="overflow-visible select-none cursor-grab active:cursor-grabbing py-4"
369
- >
370
- <div className="flex gap-6 py-4">
371
- {items.map((item, i) => (
372
- <div key={item.id ?? i} className="flex-none w-fit min-w-70 cursor-grab">
373
- <Card2Item item={item} />
374
- </div>
375
- ))}
376
- </div>
377
- </div>
378
- {/* Dot indicators */}
379
- {snapCount > 1 && (
380
- <div className="flex justify-center gap-2 mt-0">
381
- {Array.from({ length: snapCount }).map((_, i) => (
382
- <button
383
- key={i}
384
- onClick={() => scrollTo(i)}
385
- aria-label={`Go to slide ${i + 1}`}
386
- className="flex h-11 w-11 items-center justify-center rounded-full cursor-pointer"
387
- >
388
- <span
389
- className={cn(
390
- 'block rounded-full transition-all duration-300',
391
- i === activeIdx
392
- ? 'h-2.5 w-8 bg-lime-500'
393
- : 'h-2.5 w-2.5 bg-stone-600 hover:bg-stone-400',
394
- )}
395
- />
396
- </button>
397
- ))}
398
- </div>
399
- )}
400
- </div>
401
- </section>
402
- )
403
- }
1
+ 'use client'
2
+
3
+ import React, { useState, useCallback, useEffect } from 'react'
4
+ import Image from 'next/image'
5
+ import Link from 'next/link'
6
+ import { ChevronLeft, ChevronRight } from 'lucide-react'
7
+ import { cn } from '@/utilities/ui'
8
+ import useEmblaCarousel from 'embla-carousel-react'
9
+
10
+ type MediaObj = { url?: string | null; alt?: string | null }
11
+
12
+ function isValidImageSrc(src?: string | null): src is string {
13
+ return Boolean(src && src.startsWith('/api/media/file/'))
14
+ }
15
+
16
+ type CarouselItemB = {
17
+ id?: string | null
18
+ name: string
19
+ category?: string | null
20
+ framework?: string | null
21
+ badge?: string | null
22
+ image?: MediaObj | string | null
23
+ imageFallbackUrl?: string | null
24
+ description?: string | null
25
+ href?: string | null
26
+ free?: boolean | null
27
+ price?: number | null
28
+ }
29
+
30
+ export type DDCarouselBProps = {
31
+ blockType: 'DD-Carousel-B'
32
+ blockName?: string | null
33
+ eyebrow?: string | null
34
+ heading?: string | null
35
+ subtext?: string | null
36
+ viewAllLabel?: string | null
37
+ viewAllHref?: string | null
38
+ items?: CarouselItemB[] | null
39
+ sectionId?: string | null
40
+ customCSS?: string | null
41
+ }
42
+
43
+ // ─── Card2-style card ─────────────────────────────────────────────────────────
44
+ const PlaceholderSVG = () => (
45
+ <svg
46
+ width="57"
47
+ height="63"
48
+ viewBox="0 0 57 63"
49
+ fill="none"
50
+ xmlns="http://www.w3.org/2000/svg"
51
+ style={{ opacity: 0.75 }}
52
+ aria-hidden="true"
53
+ >
54
+ <svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
55
+ <g clipPath="url(#clip0_scb_placeholder)">
56
+ <g filter="url(#filter0_d_11_15869)">
57
+ <path
58
+ fillRule="evenodd"
59
+ clipRule="evenodd"
60
+ d="M13.3637 45.1903C14.5322 45.1736 15.6117 44.9574 16.4837 44.2476C16.4695 44.2362 16.4579 44.2256 16.4484 44.2169C16.4324 44.2022 16.4219 44.1927 16.4155 44.1943C15.3937 44.3995 14.3289 44.2994 13.2637 44.1993L13.2244 44.1956C12.7931 44.155 12.3636 44.1337 11.9391 44.1604C11.2208 44.2048 10.6076 44.4381 10.1212 44.901C9.35358 45.6313 8.85477 46.5077 8.82298 47.6979C8.37839 46.9398 8.10265 46.2052 7.95857 45.4475C7.71394 44.1613 7.70605 42.9033 8.0205 41.6964C8.07955 41.4684 8.07162 41.2377 8.00801 40.9983C7.69705 39.8256 7.74132 38.7159 8.17589 37.6744C8.18213 37.6596 8.19094 37.6443 8.19994 37.6287C8.23038 37.576 8.26299 37.5196 8.20586 37.4626C8.1563 37.4133 8.08878 37.4264 8.02462 37.4387C8.00589 37.4423 7.98745 37.4459 7.96983 37.4478C6.7989 37.5726 5.88891 38.4878 5.79809 39.6298C5.7969 39.644 5.79566 39.6582 5.79344 39.6724C5.78678 39.7153 5.77121 39.759 5.72194 39.8052C5.71843 39.7898 5.71472 39.7745 5.71091 39.7591L5.70118 39.72L5.68707 39.6648C5.6609 39.5636 5.63474 39.4624 5.62218 39.3614C5.36356 37.3127 5.95812 35.6806 7.67 34.6321C8.23622 34.285 8.8845 34.0598 9.57736 33.9423C9.59466 33.9394 9.61474 33.9385 9.63541 33.9376C9.70846 33.9345 9.78912 33.931 9.78241 33.836C9.77959 33.7972 9.75968 33.7734 9.732 33.7572C9.70551 33.7417 9.67189 33.733 9.63936 33.7247C9.61956 33.7196 9.60017 33.7146 9.58299 33.7082C8.15118 33.175 6.79313 33.1071 5.55339 33.7785C5.54517 33.783 5.53337 33.7824 5.50749 33.7811C5.4902 33.7802 5.46665 33.7789 5.43374 33.7787C5.48292 33.7109 5.52845 33.6446 5.57262 33.5804L5.57371 33.5788C5.62594 33.5028 5.67631 33.4296 5.72838 33.3599C5.76893 33.3057 5.81053 33.2535 5.85499 33.2039C6.84014 32.1032 8.02016 31.2683 9.60154 30.9985C10.1231 30.9096 10.6637 30.9136 11.209 30.9538C11.2168 30.9543 11.2252 30.9554 11.2338 30.9569L11.244 30.9588L11.2489 30.9598L11.2731 30.9649L11.2739 30.965L11.2746 30.9652C11.2854 30.9676 11.2967 30.9701 11.3074 30.9721C11.34 30.9782 11.3712 30.981 11.3941 30.9703C11.4092 30.9633 11.4207 30.9504 11.4267 30.9286C11.4499 30.8448 11.3704 30.8016 11.2989 30.7627L11.298 30.7623C11.282 30.7536 11.2666 30.7451 11.2527 30.7365C10.254 30.1131 9.17843 29.7292 8.07517 29.4331L8.0674 29.4311C7.97959 29.4074 7.89094 29.3836 7.79202 29.2986C7.89144 29.2948 7.99076 29.2901 8.09012 29.2854C8.32957 29.274 8.56916 29.2627 8.81056 29.2629C9.15636 29.2629 9.50431 29.2748 9.85296 29.3009C9.96114 29.3089 10.0695 29.3182 10.1781 29.3287C10.2726 29.3378 10.3671 29.3479 10.4616 29.3587C10.5482 29.3687 10.6348 29.3793 10.7213 29.3906C10.7912 29.3997 10.861 29.4092 10.9307 29.4191C11.1671 29.4526 11.4035 29.4965 11.6709 29.5461C11.7948 29.5692 11.9254 29.5934 12.0657 29.6184C11.5415 29.089 11.1555 28.5815 10.8177 28.0437C10.676 27.818 10.5436 27.5894 10.4265 27.3547H8.1736V10.4696H15.065C16.8543 10.4696 18.4341 10.8314 19.8043 11.5551C21.1745 12.2627 22.2385 13.2597 22.9961 14.5462C23.7538 15.8166 24.1326 17.2719 24.1326 18.9122C24.1326 20.5525 23.7538 22.0158 22.9961 23.3023C22.2385 24.5727 21.1745 25.5697 19.8043 26.2934C18.4341 27.001 16.8543 27.3547 15.065 27.3547H11.1365C12.3905 28.3263 13.8202 28.8632 15.373 29.0576C16.8259 29.2389 18.226 29.1241 19.5697 28.7671C19.8241 28.6995 19.9663 28.6167 19.9394 28.2888C19.8863 27.6372 20.466 27.1227 21.1627 27.1708C21.4095 27.1877 21.5266 27.0999 21.6496 26.9498C22.457 25.9638 22.9261 25.3919 23.3775 24.8418C23.8791 24.2305 24.3585 23.6461 25.2554 22.5501C25.3117 22.4814 25.3714 22.4179 25.4356 22.3611L25.4815 22.3054C25.6084 22.1507 25.6501 22.0102 25.5938 21.7874C25.3988 21.0133 25.8471 20.384 26.6335 20.3236C26.8273 20.3086 26.832 20.2019 26.8371 20.0866L26.8378 20.0696L26.8388 20.052C26.8902 19.2076 26.7543 18.3595 26.475 17.5191C25.6439 15.0202 24.0979 12.9489 21.8591 11.2366C22.5596 11.2381 23.2207 11.3835 23.8778 11.5788C24.5425 11.7759 25.1871 12.0454 25.8956 12.4235C25.1475 11.1113 24.6409 9.83396 24.4762 8.39412C24.5858 8.54905 24.6921 8.70246 24.7974 8.85436C25.2719 9.53906 25.7248 10.1926 26.3586 10.8132C25.9123 7.80637 27.1174 5.82188 29.6223 4.596C28.8856 5.53527 28.695 6.64612 28.9036 7.90196C30.1753 5.1413 32.5663 4.65657 35.6205 5.50789L35.6191 5.50755C34.4507 5.52434 33.3712 5.74046 32.4992 6.45034C32.5134 6.46172 32.525 6.47238 32.5346 6.48112L32.5416 6.4875C32.5538 6.4985 32.5619 6.50496 32.5674 6.50362C33.5891 6.29836 34.6539 6.39843 35.7189 6.49854L35.7585 6.50225C36.1897 6.54291 36.6192 6.56418 37.0438 6.53758C37.7621 6.49305 38.3752 6.25979 38.8617 5.79694C39.6293 5.06658 40.1281 4.19024 40.1599 3C40.6045 3.75805 40.8802 4.4927 41.0243 5.25039C41.2689 6.53659 41.2769 7.7946 40.9624 9.00153C40.9033 9.22947 40.9113 9.46019 40.9749 9.69956C41.2858 10.8723 41.2415 11.982 40.807 13.0235C40.8032 13.0325 40.7985 13.0417 40.7933 13.051C40.79 13.0571 40.7864 13.0631 40.7829 13.0692C40.7525 13.1219 40.7199 13.1784 40.777 13.2353C40.8127 13.2708 40.8577 13.274 40.9041 13.2683L40.9105 13.2675L40.9181 13.2664L40.927 13.265C40.9374 13.2633 40.9479 13.2612 40.9582 13.2592C40.9769 13.2556 40.9954 13.252 41.013 13.2501C42.184 13.1253 43.094 12.2101 43.1848 11.0681C43.1894 11.0114 43.1953 10.9543 43.2609 10.8927C43.2662 10.9157 43.2719 10.9388 43.2776 10.9619L43.2958 11.0331C43.322 11.1343 43.3481 11.2355 43.3607 11.3365C43.6193 13.3852 43.0247 15.0173 41.3129 16.0658C40.7466 16.4129 40.0984 16.6381 39.4055 16.7555C39.3882 16.7585 39.3681 16.7593 39.3475 16.7602C39.2744 16.7634 39.1937 16.7669 39.2005 16.8619C39.2059 16.9377 39.2767 16.956 39.3433 16.9732C39.3631 16.9782 39.3827 16.9833 39.3999 16.9897C40.8317 17.5229 42.1897 17.5908 43.4295 16.9194C43.4364 16.9155 43.4459 16.9154 43.4642 16.9163L43.4752 16.9168C43.4925 16.9177 43.5161 16.919 43.5491 16.9192C43.522 16.9567 43.4959 16.9937 43.4705 17.0301L43.4101 17.1176L43.4092 17.1191L43.4085 17.1203C43.3704 17.1755 43.3334 17.2292 43.2961 17.2812C43.2765 17.3084 43.2569 17.3352 43.2368 17.3614L43.2143 17.3907C43.1863 17.4261 43.1577 17.4606 43.1279 17.494C42.1427 18.5947 40.9627 19.4296 39.3813 19.6994C38.8598 19.7883 38.3192 19.7843 37.7739 19.7441C37.7544 19.7428 37.7322 19.7379 37.7095 19.7329C37.7009 19.7309 37.6922 19.729 37.6836 19.7273C37.6747 19.7255 37.6657 19.7239 37.657 19.7227C37.6439 19.7208 37.6313 19.7199 37.6196 19.7206L37.6138 19.721L37.6084 19.7217L37.6027 19.7228C37.5998 19.7235 37.597 19.7243 37.5943 19.7253C37.592 19.7261 37.5899 19.727 37.5878 19.728L37.5841 19.73L37.5805 19.7322C37.5695 19.7399 37.561 19.7517 37.5562 19.7693C37.5456 19.8073 37.5562 19.837 37.5777 19.8617C37.5966 19.8835 37.6239 19.9015 37.6526 19.9178L37.6652 19.9249L37.6742 19.9298L37.698 19.9429C37.7093 19.949 37.7202 19.9552 37.7302 19.9614C38.7289 20.5848 39.8044 20.9687 40.9077 21.2648L40.9406 21.2737L40.9526 21.277C40.9852 21.2862 41.018 21.2966 41.0517 21.3112C41.0716 21.3199 41.0919 21.3301 41.1125 21.3425C41.1276 21.3516 41.143 21.3618 41.1586 21.3734L41.1694 21.3817L41.1777 21.3883L41.1849 21.3942L41.1908 21.3993C41.0914 21.4031 40.9921 21.4078 40.8927 21.4125C40.6533 21.4239 40.4137 21.4352 40.1723 21.435C39.8265 21.435 39.4785 21.4231 39.1299 21.397C38.9797 21.3858 38.8291 21.3722 38.6784 21.3564C38.4697 21.3345 38.2607 21.3085 38.0521 21.2788C37.9927 21.2704 37.9334 21.2613 37.8735 21.2516L37.8219 21.2432L37.7718 21.2348C37.7305 21.2277 37.6888 21.2205 37.6467 21.213C37.5406 21.1942 37.4312 21.1739 37.316 21.1525L37.312 21.1518C37.188 21.1287 37.0575 21.1045 36.9171 21.0794C37.4414 21.6089 37.8274 22.1164 38.1651 22.6542C38.3801 22.9966 38.5738 23.3457 38.725 23.7124H40.9042L40.9042 40.8532H34.0128C32.2235 40.8532 30.6437 40.4859 29.2735 39.7513C27.9033 39.033 26.8394 38.0209 26.0817 36.715C25.3241 35.4253 24.9452 33.9479 24.9452 32.2828C24.9452 30.6177 25.3241 29.1322 26.0817 27.8262C26.8394 26.5366 27.9033 25.5245 29.2735 24.7899C30.6437 24.0716 32.2235 23.7124 34.0128 23.7124H38.2908C36.9342 22.5055 35.3493 21.8581 33.6098 21.6403C32.1569 21.459 30.7569 21.5738 29.4131 21.9308C29.1588 21.9984 29.0166 22.0812 29.0435 22.4091C29.0966 23.0607 28.5169 23.5752 27.8202 23.5271C27.5734 23.5102 27.4562 23.598 27.3333 23.748C26.894 24.2846 26.5549 24.6984 26.2641 25.0529L25.6054 25.8561C25.1038 26.4674 24.6244 27.0518 23.7275 28.1477C23.6711 28.2165 23.6115 28.2799 23.5472 28.3368L23.5014 28.3925C23.3745 28.5472 23.3327 28.6877 23.3891 28.9105C23.584 29.6846 23.1357 30.3139 22.3494 30.3743C22.1555 30.3893 22.1509 30.4961 22.1459 30.6113C22.1454 30.6228 22.1449 30.6344 22.1442 30.646C22.0927 31.4903 22.2285 32.3384 22.5079 33.1787C23.339 35.6777 24.885 37.749 27.1238 39.4613C26.4233 39.4598 25.7621 39.3144 25.1051 39.1191C24.4404 38.922 23.7957 38.6525 23.0873 38.2744C23.8353 39.5866 24.342 40.8639 24.5066 42.3038C24.3971 42.1488 24.2907 41.9954 24.1855 41.8435C23.711 41.1588 23.258 40.5053 22.6242 39.8847C23.0706 42.8915 21.8655 44.876 19.3606 46.1019C20.0972 45.1626 20.2878 44.0518 20.0793 42.7959C18.8076 45.5566 16.4166 46.0413 13.3624 45.19L13.3637 45.1903ZM17.1566 44.7926L17.181 44.8134L17.1905 44.8214C17.2307 44.7981 17.2712 44.7751 17.3117 44.7521L17.3165 44.7495C17.3619 44.7237 17.4073 44.6978 17.4524 44.6715C17.5037 44.6416 17.5545 44.6111 17.6044 44.5793C19.2806 43.5164 20.0254 42.0006 19.5382 39.8863C19.4442 39.4779 19.3511 39.0695 19.258 38.661C19.2008 38.4101 19.1436 38.1592 19.0862 37.9083C19.0322 37.6725 18.9781 37.4367 18.9235 37.2009C18.9177 37.1759 18.9156 37.1479 18.9134 37.1196C18.9075 37.0417 18.9014 36.9612 18.818 36.9322C18.8038 36.9273 18.7905 36.925 18.7781 36.9249C18.7649 36.9249 18.7526 36.9274 18.7411 36.9318C18.6961 36.9488 18.6626 36.9954 18.6313 37.0391L18.618 37.0575L18.6138 37.0632C18.6085 37.0703 18.6032 37.0771 18.5979 37.0834C18.1304 37.6455 17.6052 38.1485 16.9924 38.5688C16.1339 39.1567 15.1572 39.5534 14.1817 39.9497L14.1809 39.95L13.9712 40.0351C11.8822 40.8853 10.4284 42.3323 9.55939 44.3379C9.55026 44.3591 9.53855 44.38 9.52662 44.4014L9.52568 44.4031C9.4858 44.4742 9.44371 44.5492 9.48361 44.6494C9.57227 44.6457 9.61305 44.5975 9.65177 44.5518C9.66103 44.5409 9.67016 44.5301 9.67981 44.5201C10.6729 43.4861 11.9165 42.8122 13.3627 42.4209C13.4394 42.4002 13.5165 42.3805 13.594 42.3615C13.7478 42.3239 13.9028 42.2895 14.0583 42.2564C14.1875 42.229 14.3171 42.2025 14.4467 42.1761L14.4509 42.1751L14.4516 42.175C14.9282 42.0778 15.4045 41.9807 15.8618 41.8339C15.8674 41.832 15.8796 41.8436 15.8918 41.8551L15.8969 41.8598L15.9017 41.8642L15.9046 41.8667L15.9078 41.8694C15.7139 42.1702 15.4233 42.3799 14.8696 42.5651C14.0858 42.8281 13.3137 43.1135 12.553 43.4217C12.5379 43.4278 12.5197 43.4326 12.5008 43.4376C12.4381 43.4539 12.3689 43.472 12.3899 43.5473C12.4173 43.6452 12.5108 43.6428 12.592 43.6407C12.6047 43.6403 12.6171 43.6399 12.6289 43.64C13.1436 43.6449 13.6606 43.6811 14.178 43.7173L14.1807 43.7175L14.1836 43.7177C14.2992 43.7258 14.4149 43.7339 14.5306 43.7417C15.9297 43.836 17.1315 43.48 18.1094 42.6388C18.1219 42.6279 18.1337 42.6152 18.1458 42.602C18.1945 42.5493 18.2484 42.4911 18.3752 42.5337C18.1369 43.3899 17.7194 44.1294 17.1247 44.7671L17.1263 44.767L17.1566 44.7926ZM18.7403 33.5837C18.568 33.7108 18.3983 33.8386 18.2296 33.9657C17.8439 34.2565 17.4628 34.5437 17.0647 34.8102C16.2065 35.3861 15.2584 35.8243 14.3104 36.2626L14.0965 36.3615C13.9675 36.4212 13.8386 36.4812 13.7101 36.5417C13.5599 36.6124 13.4102 36.6838 13.2614 36.7566C11.8626 37.4404 10.596 38.2719 9.66689 39.4938C8.30436 41.1556 8.74398 42.7305 8.95346 43.4809C9.00838 43.6777 9.04756 43.8181 9.03411 43.8881C9.0632 43.8715 9.08511 43.8528 9.10227 43.8329C9.13452 43.7954 9.15002 43.7538 9.16488 43.7139C9.16889 43.7031 9.17305 43.6919 9.17727 43.6814C9.18013 43.6744 9.18306 43.6676 9.18621 43.6609C9.55013 42.8818 10.0196 42.1767 10.6169 41.5612C11.7183 40.4259 13.1144 39.6932 14.6359 39.1266C15.9685 38.6305 17.1648 37.956 18.0124 36.8499L18.0484 36.8031L18.1017 36.7344C18.3682 36.3918 18.647 36.0333 18.6915 35.6028C18.7295 35.2369 18.7277 34.8611 18.7259 34.4821L18.7258 34.4769C18.7249 34.2821 18.724 34.0864 18.7285 33.8908C18.731 33.7881 18.7348 33.6854 18.741 33.5828L18.7403 33.5837ZM19.5424 30.8752C18.9502 31.3 18.3578 31.7044 17.7435 32.0797C16.1158 33.0744 14.366 33.8258 12.3395 34.0381C11.4921 34.1271 10.661 34.2745 9.8324 34.4282C8.57772 34.6612 7.57497 35.2352 6.86261 36.2089C6.65691 36.4903 6.49406 36.796 6.36999 37.1938C6.59951 37.0982 6.80345 36.9823 7.00223 36.8692C7.31768 36.6897 7.62018 36.5177 7.99132 36.4464L7.5479 36.9036C8.25494 36.898 8.792 36.6103 9.32215 36.3263C9.66846 36.1407 10.0118 35.9567 10.3978 35.854C9.76591 36.3792 9.24932 36.9868 8.86098 37.7009C8.46555 38.4288 8.36488 39.2373 8.39299 40.1161C8.49303 40.0812 8.51736 40.0221 8.5393 39.9687C8.54637 39.9515 8.55324 39.9348 8.56229 39.9198C8.57372 39.9008 8.58469 39.8813 8.59545 39.8618L8.61133 39.8327C8.6209 39.8152 8.63048 39.7976 8.64031 39.7801C8.64722 39.7678 8.65424 39.7557 8.66144 39.7436L8.67295 39.7247C9.46916 38.4479 10.5793 37.4842 11.9127 36.7393C12.6166 36.3461 13.3517 36.0034 14.0868 35.6607L14.0893 35.6595L14.0927 35.6578L14.1011 35.6539C14.3489 35.5384 14.5971 35.4226 14.8437 35.3052C14.995 35.2331 15.1459 35.1603 15.2959 35.0863C16.6639 34.4123 17.9125 33.5978 18.7899 32.3676C19.1141 31.9132 19.3492 31.4074 19.5424 30.8752ZM20.7196 42.982C20.795 42.7007 20.8168 42.4067 20.8386 42.1127L20.8388 42.111L20.8389 42.1088C20.8501 41.9571 20.8614 41.8054 20.8801 41.6556C20.8921 41.5598 20.9071 41.4647 20.9271 41.3708C21.053 41.8931 21.0079 42.3917 20.9629 42.8903C20.956 42.9668 20.9491 43.0433 20.9428 43.1198C20.9349 43.2161 20.928 43.3126 20.9232 43.4093C21.4006 42.0679 21.5349 40.658 21.2619 39.1628C21.6595 40.3907 21.8087 41.6119 21.7751 42.835C21.7882 42.7706 21.8015 42.7062 21.8147 42.6418L21.8149 42.641C22.109 41.2123 22.4027 39.7848 21.4973 38.254L23.3738 39.8682L23.4423 39.8153C22.9982 39.0347 22.4976 38.2813 21.9965 37.527C21.6966 37.0756 21.3965 36.624 21.1081 36.1659C22.2139 36.9306 23.3328 37.6519 24.5158 38.2716C24.3263 38.1046 24.1349 37.9401 23.9438 37.7757L23.9419 37.7742C23.3061 37.2278 22.6728 36.6834 22.1175 36.0588C22.2479 36.1239 22.3728 36.1961 22.4972 36.2679L22.4983 36.2686L22.502 36.2707C22.5699 36.3099 22.638 36.3492 22.7064 36.387C22.7116 36.3899 22.7168 36.3929 22.7222 36.3962C22.7291 36.4004 22.7363 36.4048 22.7436 36.4094C22.7629 36.4215 22.7833 36.4344 22.8036 36.444C22.8478 36.4651 22.8923 36.4719 22.9278 36.4268C22.9671 36.3773 22.9211 36.3232 22.8798 36.2745L22.8673 36.2597L22.8611 36.2521C22.8581 36.2485 22.8554 36.2449 22.8527 36.2413C22.0108 35.1169 21.5759 33.8764 21.2716 32.5976C21.1834 32.2264 21.147 31.8567 21.1101 31.4811L21.1086 31.4662L21.1036 31.4158C21.0979 31.3582 21.0922 31.3004 21.0862 31.2424C20.8203 31.6131 20.6892 32.0452 20.5581 32.4771L20.5211 32.599C20.4718 31.937 20.6416 31.3364 20.8174 30.7146L20.8504 30.5974C20.8253 30.6015 20.8055 30.6041 20.7897 30.606L20.7717 30.6081C20.7471 30.6109 20.736 30.6125 20.7293 30.6188C20.688 30.656 20.6468 30.6949 20.6131 30.739C19.9834 31.5571 19.5682 32.4833 19.3852 33.5298C19.1352 34.9597 19.2661 36.4234 19.5908 37.9013C19.6478 38.1603 19.708 38.4191 19.7696 38.6778C19.8209 38.8932 19.8732 39.1085 19.9255 39.3239C20.1661 40.3145 20.4066 41.3052 20.5505 42.3028C20.5541 42.3276 20.5572 42.3526 20.5602 42.3776L20.567 42.436C20.5876 42.617 20.6085 42.8006 20.7186 42.9813L20.7196 42.982ZM7.65598 32.651L7.66918 32.7255C7.74741 32.7309 7.82561 32.735 7.90381 32.7391C8.06898 32.7478 8.23473 32.7566 8.40009 32.7767C8.96999 32.8462 9.5299 33.0034 10.0898 33.1607L10.1048 33.1649L10.106 33.1652C10.2503 33.2057 10.3945 33.2461 10.539 33.2851C12.1512 33.7187 13.6064 33.4367 15.005 32.9261C16.827 32.26 18.2964 31.1303 19.6916 29.9065C19.7002 29.899 19.7097 29.8916 19.7193 29.884C19.7731 29.8419 19.8336 29.7946 19.7937 29.6852C17.1895 30.3689 14.5743 29.9613 11.9458 28.7364C12.3713 29.1221 12.8507 29.422 13.3313 29.7226C13.7587 29.9899 14.187 30.2578 14.5792 30.5871L10.7986 29.827C11.6558 30.3354 12.4314 30.9271 13.2003 31.6025C13.0353 31.6381 12.9041 31.6147 12.7814 31.5927C12.7494 31.587 12.7179 31.5814 12.6866 31.5769C11.5081 31.4124 10.3421 31.3211 9.25529 31.6816C9.22986 31.6901 9.20018 31.6972 9.16965 31.7044L9.16893 31.7046L9.16822 31.7047C9.06026 31.7303 8.94187 31.7583 8.95894 31.8586C8.98008 31.9819 9.11776 32.0043 9.24253 32.0246C9.27216 32.0294 9.30102 32.0341 9.32739 32.04L9.35451 32.0461L9.35545 32.0463C9.90722 32.1676 9.91102 32.1684 10.1075 32.3226C9.24934 32.3218 8.42204 32.383 7.65598 32.651ZM21.7115 28.8737L21.7026 28.8846L21.7559 28.9274L21.8391 28.9948L21.9125 29.0544C22.0838 29.1935 22.2551 29.3326 22.431 29.4656C22.453 29.4823 22.4748 29.5045 22.4971 29.5271C22.5724 29.6036 22.6529 29.6854 22.7636 29.5795C22.8979 29.4515 22.9544 29.2827 22.7845 29.1139C22.2973 28.6301 21.7482 28.2196 21.1638 27.8604C20.9872 27.7517 20.8723 27.8846 20.791 27.9919C20.714 28.0931 20.8025 28.1538 20.8816 28.208L20.8832 28.209C20.9025 28.2224 20.9212 28.2352 20.9367 28.2483C21.1206 28.4026 21.3084 28.5522 21.4962 28.7018C21.5681 28.759 21.6399 28.8163 21.7115 28.8737ZM31.8565 5.93084L31.8363 5.91381L31.8276 5.90631L31.7924 5.87651C31.7521 5.89982 31.7116 5.9228 31.6711 5.94578L31.6663 5.9485C31.5692 6.00374 31.4722 6.05895 31.3784 6.11857C29.7023 7.18148 28.9575 8.69726 29.4446 10.8116C29.5149 11.1168 29.5847 11.422 29.6543 11.7272L29.9467 13.0079L30.0593 13.4969C30.0614 13.506 30.0631 13.5155 30.0644 13.5253L30.0656 13.5353C30.0672 13.5493 30.0683 13.5637 30.0694 13.5783C30.0753 13.6562 30.0814 13.7367 30.1649 13.7657C30.1961 13.7766 30.2228 13.7745 30.2463 13.7644C30.2891 13.746 30.3214 13.701 30.3515 13.6588L30.3663 13.6384C30.3725 13.63 30.3787 13.6219 30.3849 13.6145C30.8525 13.0524 31.3777 12.5494 31.9905 12.1291C32.849 11.5411 33.8256 11.1445 34.8013 10.7482L34.8021 10.7479L35.0117 10.6627C37.1007 9.81262 38.5544 8.36559 39.4235 6.36003C39.4326 6.33879 39.4443 6.31789 39.4563 6.29659L39.4572 6.29483C39.4764 6.26046 39.4964 6.22482 39.5072 6.18628C39.5186 6.14513 39.5199 6.10018 39.4993 6.04855C39.4107 6.05221 39.3699 6.10032 39.3312 6.146C39.3219 6.15696 39.3127 6.16781 39.3031 6.17784C38.3099 7.21175 37.0664 7.88569 35.6202 8.27696C35.2643 8.37319 34.9002 8.44752 34.5362 8.52178L34.5341 8.52229L34.5334 8.52242C34.0562 8.61974 33.579 8.71703 33.1211 8.86397C33.1202 8.86429 33.1191 8.86428 33.1179 8.86394L33.1159 8.86318C33.115 8.86275 33.114 8.86221 33.113 8.86155L33.1085 8.85848C33.1068 8.85714 33.1049 8.85557 33.103 8.8539L33.0992 8.85047L33.0912 8.84299C33.0856 8.83769 33.08 8.83244 33.075 8.82847C33.269 8.52767 33.5596 8.31803 34.1133 8.1328C34.8971 7.86974 35.6691 7.58436 36.4298 7.27622C36.445 7.27004 36.4633 7.26523 36.4822 7.26027C36.5449 7.24395 36.614 7.22594 36.593 7.1506C36.5656 7.05262 36.472 7.05512 36.3907 7.05729C36.3781 7.05763 36.3657 7.05796 36.354 7.0579C36.2654 7.05705 36.1767 7.05529 36.0879 7.05271L36.022 7.05071C35.9862 7.04956 35.9504 7.04827 35.9146 7.04688C35.7756 7.04143 35.6365 7.0344 35.4972 7.02631C35.2666 7.01294 35.0358 6.99678 34.8049 6.98058L34.6174 6.96748L34.4522 6.95623C33.0532 6.86194 31.8514 7.21794 30.8735 8.05914L30.8676 8.06444C30.864 8.06779 30.8605 8.07128 30.8569 8.07491C30.8503 8.08163 30.8437 8.08869 30.8371 8.09585C30.7883 8.14857 30.7345 8.20679 30.6077 8.16421C30.846 7.308 31.2635 6.56846 31.8582 5.93079L31.8565 5.93084ZM30.4955 16.926C30.5818 16.8613 30.6677 16.7967 30.7533 16.7322C31.139 16.4414 31.52 16.1542 31.9182 15.8877C32.7764 15.3118 33.7245 14.8735 34.6725 14.4353C35.0237 14.273 35.375 14.1107 35.7215 13.9413C37.1202 13.2575 38.3868 12.4259 39.316 11.2041C40.6785 9.54228 40.2389 7.9674 40.0294 7.21698C39.9745 7.02017 39.9353 6.87978 39.9488 6.80976C39.8648 6.85785 39.8406 6.92307 39.8178 6.98444C39.8112 7.00248 39.8046 7.02017 39.7967 7.03704C39.4327 7.81612 38.9633 8.52122 38.3659 9.13665C37.2646 10.272 35.8685 11.0047 34.347 11.5713C33.0144 12.0674 31.8181 12.7419 30.9705 13.848L30.925 13.907L30.8811 13.9634C30.6147 14.3061 30.3359 14.6646 30.2913 15.0951C30.2534 15.461 30.2552 15.8368 30.257 16.2158C30.2584 16.5144 30.2599 16.8156 30.2419 17.1151L30.2425 17.1142C30.3275 17.0516 30.4117 16.9888 30.4955 16.926ZM29.4405 19.8227C30.0327 19.3979 30.625 18.9935 31.2394 18.6182C32.867 17.6235 34.6169 16.8721 36.6433 16.6597C37.4907 16.5708 38.3218 16.4233 39.1505 16.2697C40.4051 16.0367 41.4079 15.4628 42.1203 14.489C42.326 14.2076 42.4888 13.9019 42.6129 13.5041C42.3834 13.5997 42.1794 13.7156 41.9806 13.8287C41.6652 14.0082 41.3627 14.1802 40.9915 14.2515L41.435 13.7943C40.7279 13.7999 40.1909 14.0876 39.6607 14.3716C39.3144 14.5572 38.971 14.7412 38.5851 14.8439C39.2169 14.3187 39.7335 13.7111 40.1219 12.997C40.5174 12.2691 40.618 11.4606 40.5899 10.5818C40.4898 10.6167 40.4655 10.6758 40.4436 10.7292C40.4365 10.7464 40.4296 10.7631 40.4206 10.7781C40.4032 10.8072 40.3869 10.837 40.3706 10.8669C40.351 10.9028 40.3314 10.9386 40.3099 10.9732C39.5137 12.2499 38.4036 13.2136 37.0701 13.9585C36.3662 14.3518 35.6311 14.6945 34.896 15.0372L34.8935 15.0384L34.8901 15.0401L34.6795 15.1383L34.5505 15.1986L34.3802 15.2786C34.21 15.3587 34.0401 15.4395 33.8711 15.5215C33.8096 15.5514 33.7482 15.5814 33.6869 15.6116C32.3189 16.2856 31.0704 17.1001 30.1929 18.3303C29.8688 18.7847 29.6337 19.2905 29.4405 19.8227ZM28.2633 7.71585C28.1879 7.99724 28.1661 8.2912 28.1443 8.58516L28.1442 8.58593C28.1257 8.83563 28.1072 9.08527 28.0558 9.32713C27.9299 8.80478 27.9749 8.30619 28.02 7.80755C28.0356 7.63485 28.0511 7.46216 28.0596 7.28854C27.5823 8.62999 27.448 10.0399 27.721 11.535C27.3233 10.3072 27.1741 9.086 27.2078 7.86287L27.168 8.05689C26.8739 9.48555 26.5801 10.913 27.4856 12.4439L25.609 10.8297L25.5406 10.8826C25.9847 11.6632 26.4852 12.4166 26.9864 13.1709C27.2863 13.6223 27.5863 14.0739 27.8747 14.532C26.7689 13.7673 25.6501 13.046 24.467 12.4263C24.6565 12.5932 24.8478 12.7577 25.0389 12.922L25.041 12.9237C25.6768 13.4701 26.3101 14.0145 26.8654 14.6391C26.7354 14.5743 26.611 14.5024 26.4871 14.4308L26.4857 14.43L26.4846 14.4293L26.4805 14.427C26.4128 14.3879 26.3447 14.3486 26.2764 14.3109C26.2645 14.3043 26.252 14.2965 26.239 14.2883C26.1776 14.2498 26.1069 14.2054 26.055 14.2711C26.0424 14.2872 26.0386 14.3036 26.0407 14.3203C26.0451 14.3551 26.075 14.3904 26.1029 14.4232L26.1133 14.4355C26.1193 14.4427 26.125 14.4497 26.1302 14.4566C26.972 15.581 27.407 16.8215 27.7113 18.1003C27.7994 18.4715 27.8358 18.8412 27.8728 19.2169L27.8743 19.232L27.8744 19.2331C27.8817 19.307 27.889 19.3811 27.8967 19.4555C28.1626 19.0848 28.2937 18.6527 28.4247 18.2208L28.4618 18.0989C28.5111 18.7609 28.3413 19.3615 28.1655 19.9832L28.1324 20.1005C28.166 20.095 28.1902 20.0922 28.2078 20.0902L28.2236 20.0883C28.2283 20.0877 28.2323 20.0871 28.2358 20.0864C28.2377 20.0861 28.2395 20.0857 28.2411 20.0853L28.2433 20.0847L28.2455 20.0839L28.2477 20.0831L28.2504 20.0816L28.252 20.0805L28.2536 20.0791C28.2949 20.0419 28.336 20.003 28.3697 19.9589C28.9994 19.1408 29.4147 18.2146 29.5976 17.1681C29.8476 15.7382 29.7168 14.2745 29.392 12.7966C29.2875 12.3216 29.1724 11.8474 29.0572 11.3733C28.8167 10.3829 28.5762 9.39243 28.4324 8.3951C28.4296 8.3757 28.427 8.35625 28.4247 8.33679C28.4216 8.31234 28.4188 8.28799 28.416 8.26349L28.4158 8.2619C28.3952 8.08085 28.3743 7.89726 28.2643 7.71664L28.2633 7.71585ZM41.3269 18.0469L41.3137 17.9724C41.2358 17.9671 41.158 17.963 41.0801 17.9589C41.0227 17.9558 40.9653 17.9528 40.9079 17.9493C40.7996 17.9427 40.6912 17.9344 40.5828 17.9212C40.0129 17.8517 39.453 17.6945 38.8931 17.5372L38.8778 17.5329C38.7332 17.4924 38.5887 17.4518 38.4439 17.4128C36.8317 16.9792 35.3765 17.2612 33.9778 17.7718C32.1558 18.4379 30.6864 19.5676 29.2913 20.7914L29.2858 20.7961L29.279 20.8016L29.2657 20.8122L29.2635 20.8139C29.2098 20.856 29.1492 20.9033 29.1892 21.0127C31.7934 20.3289 34.4086 20.7366 37.037 21.9615C36.6116 21.5758 36.1322 21.2759 35.6515 20.9753C35.2241 20.708 34.7958 20.4401 34.4036 20.1108C35.0669 20.244 35.7301 20.3774 36.3933 20.5108L36.429 20.518C37.0141 20.6357 37.5991 20.7533 38.1843 20.8709C37.327 20.3625 36.5514 19.7708 35.7826 19.0954C35.9476 19.0598 36.0788 19.0832 36.2014 19.1052C36.2335 19.1109 36.2649 19.1166 36.2963 19.121C37.4748 19.2855 38.6407 19.3767 39.7276 19.0163C39.753 19.0078 39.7827 19.0007 39.8132 18.9935L39.8146 18.9931C39.9226 18.9676 40.041 18.9396 40.0239 18.8393C40.0028 18.716 39.8651 18.6935 39.7403 18.6733C39.7107 18.6684 39.6818 18.6637 39.6555 18.6578L39.6283 18.6518L39.6274 18.6516C39.0756 18.5303 39.0718 18.5295 38.8753 18.3752C39.7335 18.3761 40.5608 18.3149 41.3269 18.0469ZM27.2714 21.8242L27.2803 21.8133C27.2101 21.757 27.1402 21.7002 27.0704 21.6435L26.9407 21.5384L26.88 21.4895C26.7718 21.4023 26.6628 21.3161 26.5519 21.2323C26.53 21.2157 26.5084 21.1937 26.4863 21.1712L26.4858 21.1707C26.4105 21.0943 26.3299 21.0125 26.2193 21.1183C26.085 21.2464 26.0284 21.4152 26.1984 21.584C26.6856 22.0678 27.2347 22.4784 27.8192 22.8375C27.9957 22.9462 28.1105 22.8133 28.1918 22.706C28.2689 22.6047 28.1804 22.5441 28.1013 22.4899L28.0989 22.4882C28.0905 22.4825 28.0823 22.4769 28.0745 22.4713C28.0686 22.4671 28.0629 22.4629 28.0575 22.4587C28.0535 22.4557 28.0497 22.4527 28.0461 22.4496C27.9788 22.3931 27.911 22.3373 27.8428 22.2818C27.7248 22.1858 27.6058 22.091 27.4868 21.9962C27.4151 21.9391 27.3428 21.8815 27.2714 21.8242ZM14.9683 25.811C16.4513 25.811 17.749 25.5215 18.8613 24.9426C19.9736 24.3476 20.836 23.5355 21.4486 22.5063C22.0612 21.461 22.3674 20.263 22.3674 18.9122C22.3674 17.5614 22.0612 16.3714 21.4486 15.3422C20.836 14.2969 19.9736 13.4848 18.8613 12.9059C17.749 12.3109 16.4513 12.0134 14.9683 12.0134H9.96294V25.811H14.9683ZM30.2165 26.1611C31.3288 25.5734 32.6265 25.2796 34.1096 25.2796L39.1149 25.2796L39.1149 39.2861H34.1096C32.6265 39.2861 31.3288 38.9841 30.2165 38.3801C29.1042 37.7924 28.2418 36.968 27.6292 35.9069C27.0167 34.8621 26.7104 33.6541 26.7104 32.2828C26.7104 30.9116 27.0167 29.6954 27.6292 28.6343C28.2418 27.5895 29.1042 26.7651 30.2165 26.1611Z"
61
+ fill="#F0F8FF"
62
+ />
63
+ <path
64
+ d="M23.5685 44.965C23.4519 45.4633 23.3354 45.9615 23.1728 46.4459C23.5995 45.956 23.7117 45.3494 23.6365 44.6758C23.6136 44.7721 23.591 44.8686 23.5685 44.965Z"
65
+ fill="#F0F8FF"
66
+ />
67
+ <path
68
+ d="M14.5531 47.7907C15.5638 48.2138 16.4098 47.9209 17.2345 47.5692C16.4087 47.838 15.5199 47.8153 14.6316 47.7926L14.5531 47.7907Z"
69
+ fill="#F0F8FF"
70
+ />
71
+ <path
72
+ d="M8.07588 30.8715C7.4926 31.0489 6.89919 30.9055 6.30471 30.6849C6.60808 30.663 6.9141 30.7196 7.22049 30.7763C7.50595 30.8292 7.7917 30.882 8.07588 30.8715Z"
73
+ fill="#F0F8FF"
74
+ />
75
+ <path
76
+ d="M17.9843 46.5794C17.5765 46.8668 17.0996 46.995 16.5476 46.9315C17.043 46.8591 17.527 46.758 17.9843 46.5794Z"
77
+ fill="#F0F8FF"
78
+ />
79
+ <path
80
+ d="M5.94804 35.2886C5.73842 35.6524 5.43777 35.9171 5.05634 36.0919L5.05503 36.0904L5.02743 36.0599L5 36.0302L5.49939 35.6399C5.64901 35.5229 5.79851 35.4058 5.94804 35.2886Z"
81
+ fill="#F0F8FF"
82
+ />
83
+ <path
84
+ d="M14.3368 28.0065C14.7023 28.0092 15.008 28.192 15.3135 28.3748L15.3924 28.4218C15.0697 28.3686 14.7743 28.2225 14.4804 28.0771L14.4622 28.0681L14.4612 28.0676C14.4198 28.0472 14.3782 28.0266 14.3368 28.0065Z"
85
+ fill="#F0F8FF"
86
+ />
87
+ <path
88
+ d="M25.9427 41.3053L25.96 41.3246L25.99 41.3578C26.0373 41.4102 26.085 41.463 26.1281 41.5177C26.2445 41.6642 26.356 41.8135 26.4373 41.9844C26.2045 41.7975 26.0292 41.5691 25.9238 41.2839L25.9427 41.3053Z"
89
+ fill="#F0F8FF"
90
+ />
91
+ <path
92
+ d="M43.6953 20.8295C43.1008 20.6089 42.5074 20.4654 41.9241 20.6429C42.2083 20.6324 42.494 20.6852 42.7795 20.7381C43.0859 20.7948 43.3919 20.8514 43.6953 20.8295Z"
93
+ fill="#F0F8FF"
94
+ />
95
+ <path
96
+ d="M35.367 3.72168C34.4792 3.69912 33.5908 3.67659 32.7655 3.94519C33.5902 3.59348 34.4362 3.3006 35.4469 3.72374L35.367 3.72168Z"
97
+ fill="#F0F8FF"
98
+ />
99
+ <path
100
+ d="M26.432 6.54669L26.4314 6.5496C26.4089 6.64595 26.3863 6.7423 26.3635 6.83857C26.2883 6.165 26.4005 5.55844 26.8273 5.06854C26.6649 5.55199 26.5485 6.04934 26.432 6.54669Z"
101
+ fill="#F0F8FF"
102
+ />
103
+ <path
104
+ d="M32.0157 4.93501C32.4235 4.64762 32.9004 4.51937 33.4524 4.58289C32.957 4.65531 32.473 4.7564 32.0157 4.93501Z"
105
+ fill="#F0F8FF"
106
+ />
107
+ <path
108
+ d="M44.9437 15.4225C44.5622 15.5973 44.2616 15.862 44.052 16.2258C44.3277 16.0096 44.6036 15.794 44.8797 15.5782L45 15.4842L44.9725 15.4543L44.945 15.424L44.9437 15.4225Z"
109
+ fill="#F0F8FF"
110
+ />
111
+ <path
112
+ d="M34.6863 23.1395C34.9919 23.3223 35.2976 23.5052 35.6632 23.5079C35.6307 23.4921 35.5982 23.4761 35.5657 23.46L35.5195 23.4373C35.2258 23.292 34.9301 23.1458 34.6076 23.0926L34.6863 23.1395Z"
113
+ fill="#F0F8FF"
114
+ />
115
+ <path
116
+ d="M24.0101 10.1567C24.0322 10.1812 24.0546 10.2059 24.0762 10.2305C23.9708 9.94528 23.7955 9.71686 23.5627 9.53C23.644 9.70091 23.7555 9.85014 23.8719 9.99672C23.915 10.0514 23.9623 10.1038 24.0096 10.1561L24.0101 10.1567Z"
117
+ fill="#F0F8FF"
118
+ />
119
+ </g>
120
+ </g>
121
+ <defs>
122
+ <filter
123
+ id="filter0_d_11_15869"
124
+ x="1"
125
+ y="-1"
126
+ width="48"
127
+ height="53"
128
+ filterUnits="userSpaceOnUse"
129
+ colorInterpolationFilters="sRGB"
130
+ >
131
+ <feFlood floodOpacity="0" result="BackgroundImageFix" />
132
+ <feColorMatrix
133
+ in="SourceAlpha"
134
+ type="matrix"
135
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
136
+ result="hardAlpha"
137
+ />
138
+ <feOffset />
139
+ <feGaussianBlur stdDeviation="2" />
140
+ <feComposite in2="hardAlpha" operator="out" />
141
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" />
142
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_11_15869" />
143
+ <feBlend
144
+ mode="normal"
145
+ in="SourceGraphic"
146
+ in2="effect1_dropShadow_11_15869"
147
+ result="shape"
148
+ />
149
+ </filter>
150
+ <clipPath id="clip0_11_15869">
151
+ <rect width="50" height="50" fill="white" />
152
+ </clipPath>
153
+ </defs>
154
+ </svg>
155
+ </svg>
156
+ )
157
+
158
+ function Card2Item({ item }: { item: CarouselItemB }) {
159
+ const candidateImgSrc =
160
+ item.image && typeof item.image === 'object' && (item.image as MediaObj).url
161
+ ? (item.image as MediaObj).url!
162
+ : (item.imageFallbackUrl ?? '')
163
+ const imgSrc = isValidImageSrc(candidateImgSrc) ? candidateImgSrc : ''
164
+
165
+ return (
166
+ <article className="card-item h-full">
167
+ <Link href={item.href ?? '#'} className="block h-full">
168
+ <article
169
+ // data-theme="dark"
170
+ className="article-card group max-w-[90vw]! md:max-w-[320px]! rounded-[2.5rem] w-full border border-border overflow-clip bgTransBlur hover:cursor-pointer h-full relative hover:border-indigo-500 dark:hover:border-lime-500 transition-all hover:transition-all duration-300 hover:duration-300 hover:outline-3 hover:outline-indigo-500/30 dark:hover:outline-lime-500/30 hover:outline-solid hover:outline-offset-2 hover:-translate-y-0.5"
171
+ style={{ cornerShape: 'squircle' } as React.CSSProperties}
172
+ >
173
+ {/* Media area */}
174
+ <div
175
+ className="card-media card-bottom-lit relative w-full overflow-hidden shadow-xl"
176
+ style={{ cornerShape: 'squircle' } as React.CSSProperties}
177
+ >
178
+ {/* Image / placeholder background */}
179
+ <div
180
+ className="w-full bg-linear-to-br from-violet-950 to-indigo-950 flex items-center justify-center relative"
181
+ style={{ aspectRatio: '16/9', minHeight: 209 }}
182
+ >
183
+ {imgSrc ? (
184
+ <Image
185
+ src={imgSrc}
186
+ alt={item.name}
187
+ fill
188
+ sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw"
189
+ className="w-full min-w-[320px]! h-full object-cover object-top absolute inset-0 group-hover:scale-105 transition-all duration-300"
190
+ style={{ cornerShape: 'squircle' } as React.CSSProperties}
191
+ />
192
+ ) : (
193
+ <PlaceholderSVG />
194
+ )}
195
+
196
+ {/* Free badge */}
197
+ {item.free && !item.badge && (
198
+ <div className="absolute top-2 left-2 z-20 border bg-lime-500/50 border-lime-500 text-stone-50 text-xs font-semibold px-2.5 py-1 rounded-full">
199
+ Free
200
+ </div>
201
+ )}
202
+
203
+ {/* Custom badge */}
204
+ {item.badge && (
205
+ <div className="absolute top-2 left-2 z-20 border bg-lime-800/90 backdrop-blur-2xl border-lime-500 text-stone-50 text-xs font-semibold px-2.5 py-1 rounded-full">
206
+ {item.badge}
207
+ </div>
208
+ )}
209
+
210
+ {/* Title overlay on image */}
211
+ <div className="card-title-overlay absolute bottom-4 left-4 right-4 z-20">
212
+ <h3 className="text-sm font-semibold text-stone-50 dark:text-stone-50 drop-shadow-lg">
213
+ {item.name}
214
+ </h3>
215
+ </div>
216
+
217
+ {/* Bottom gradient on image */}
218
+ <div
219
+ aria-hidden="true"
220
+ className="absolute pointer-events-none left-0 bottom-0 w-full h-1/2 bg-linear-to-t from-black to-transparent"
221
+ />
222
+ </div>
223
+ </div>
224
+
225
+ {/* Card body */}
226
+ <div className="card-content-wrapper -mt-2 mx-3! card-bottom-lit bg-card px-4 pt-4 pb-8 shadow-xl group-hover:shadow-2xl transition-all duration-300">
227
+ <div className="card-content">
228
+ <div className="flex items-center gap-2 mb-2 flex-wrap">
229
+ {item.category && (
230
+ <span className="text-[10.5px] text-stone-500 dark:text-stone-300 bg-stone-300/50 dark:bg-stone-900/50 px-2.5 py-0.5 rounded-full border-stone-100 border">
231
+ {item.category}
232
+ </span>
233
+ )}
234
+ {item.framework && (
235
+ <span className="text-[10.5px] text-stone-300 dark:text-stone-300 bg-stone-600 px-2.5 py-0.5 rounded-full border-stone-600 border">
236
+ {item.framework}
237
+ </span>
238
+ )}
239
+ </div>
240
+
241
+ <h4 className="text-lg font-bold text-stone-900 dark:text-stone-300 my-1">
242
+ {item.name}
243
+ </h4>
244
+
245
+ {item.description && (
246
+ <p className="text-xs text-stone-400 dark:text-stone-400 leading-relaxed line-clamp-2 mb-4">
247
+ {item.description}
248
+ </p>
249
+ )}
250
+
251
+ <div className="flex items-center justify-between">
252
+ <span className="text-base font-semibold text-stone-900 dark:text-stone-50">
253
+ {item.free ? 'Free' : item.price != null ? `$${item.price}` : ''}
254
+ </span>
255
+ <span
256
+ className="inline-flex items-center gap-1.5 bg-stone-900 dark:bg-stone-50 text-stone-100 dark:text-stone-900 text-sm font-semibold px-3 py-1.5 rounded-lg hover:bg-indigo-800 dark:group-hover:bg-indigo-500 dark:group-hover:text-stone-50 whitespace-nowrap group-hover:-translate-y-0.5 transition-all duration-100"
257
+ style={{ cornerShape: 'squircle' } as React.CSSProperties}
258
+ >
259
+ {item.free ? 'Download' : 'View Details'}
260
+ </span>
261
+ </div>
262
+ </div>
263
+ </div>
264
+ </article>
265
+ </Link>
266
+ </article>
267
+ )
268
+ }
269
+
270
+ // ─── Main Component ───────────────────────────────────────────────────────────
271
+ export const DDCarouselB: React.FC<DDCarouselBProps> = ({
272
+ eyebrow,
273
+ heading,
274
+ subtext,
275
+ viewAllLabel = 'View All',
276
+ viewAllHref,
277
+ items: itemsProp,
278
+ sectionId,
279
+ customCSS,
280
+ }) => {
281
+ const items = itemsProp ?? []
282
+ const [emblaRef, emblaApi] = useEmblaCarousel({
283
+ align: 'start',
284
+ slidesToScroll: 1,
285
+ containScroll: 'trimSnaps',
286
+ dragFree: false,
287
+ })
288
+ const [activeIdx, setActiveIdx] = useState(0)
289
+ const [canPrev, setCanPrev] = useState(false)
290
+ const [canNext, setCanNext] = useState(true)
291
+
292
+ const onSelect = useCallback(() => {
293
+ if (!emblaApi) return
294
+ setActiveIdx(emblaApi.selectedScrollSnap())
295
+ setCanPrev(emblaApi.canScrollPrev())
296
+ setCanNext(emblaApi.canScrollNext())
297
+ }, [emblaApi])
298
+
299
+ useEffect(() => {
300
+ if (!emblaApi) return
301
+ onSelect()
302
+ emblaApi.on('select', onSelect)
303
+ emblaApi.on('reInit', onSelect)
304
+ return () => {
305
+ emblaApi.off('select', onSelect)
306
+ emblaApi.off('reInit', onSelect)
307
+ }
308
+ }, [emblaApi, onSelect])
309
+
310
+ const scrollPrev = useCallback(() => emblaApi?.scrollPrev(), [emblaApi])
311
+ const scrollNext = useCallback(() => emblaApi?.scrollNext(), [emblaApi])
312
+ const scrollTo = useCallback((i: number) => emblaApi?.scrollTo(i), [emblaApi])
313
+
314
+ const snapCount = emblaApi?.scrollSnapList().length ?? 0
315
+
316
+ if (!items.length) return null
317
+
318
+ return (
319
+ <section id={sectionId ?? undefined} className="py-20 overflow-hidden">
320
+ {customCSS && <style dangerouslySetInnerHTML={{ __html: customCSS }} />}
321
+ <div className="max-w-6xl lg:max-w-7xl mx-auto px-4 md:px-6">
322
+ {/* Header */}
323
+ <div className="flex flex-col md:flex-row md:items-end justify-between mb-12 gap-4 px-0 md:px-4">
324
+ <div>
325
+ {eyebrow && (
326
+ <div className="text-lime-500 text-xs font-bold uppercase tracking-widest mb-2">
327
+ {eyebrow}
328
+ </div>
329
+ )}
330
+ {heading && (
331
+ <h2 className="text-4xl lg:text-5xl font-bold text-stone-900 dark:text-stone-50 leading-tight">
332
+ {heading}
333
+ </h2>
334
+ )}
335
+ {subtext && <p className="text-stone-400 mt-3 text-base max-w-xl">{subtext}</p>}
336
+ </div>
337
+ <div className="flex items-center gap-3 shrink-0">
338
+ <button
339
+ onClick={scrollPrev}
340
+ disabled={!canPrev}
341
+ aria-label="Previous"
342
+ className="w-11 h-11 flex items-center justify-center rounded-full border-2 border-white/30 text-stone-500 dark:text-stone-50 hover:border-white hover:bg-stone-50 hover:text-stone-900 transition-all disabled:opacity-30 disabled:cursor-not-allowed cursor-pointer"
343
+ >
344
+ <ChevronLeft className="w-5 h-5" />
345
+ </button>
346
+ <button
347
+ onClick={scrollNext}
348
+ disabled={!canNext}
349
+ aria-label="Next"
350
+ className="w-11 h-11 flex items-center justify-center rounded-full bg-lime-500 text-stone-900 hover:bg-lime-400 transition-all disabled:opacity-30 disabled:cursor-not-allowed cursor-pointer"
351
+ >
352
+ <ChevronRight className="w-5 h-5" />
353
+ </button>
354
+ {viewAllHref && (
355
+ <Link
356
+ aria-label="hidden"
357
+ href={viewAllHref}
358
+ className="ml-2 text-sm font-semibold text-stone-600 dark:text-stone-300 hover:text-lime-500 transition-colors whitespace-nowrap"
359
+ >
360
+ {viewAllLabel} →
361
+ </Link>
362
+ )}
363
+ </div>
364
+ </div>
365
+ {/* Embla viewport */}
366
+ <div
367
+ ref={emblaRef}
368
+ className="overflow-visible select-none cursor-grab active:cursor-grabbing py-4"
369
+ >
370
+ <div className="flex gap-6 py-4">
371
+ {items.map((item, i) => (
372
+ <div key={item.id ?? i} className="flex-none w-fit min-w-70 cursor-grab">
373
+ <Card2Item item={item} />
374
+ </div>
375
+ ))}
376
+ </div>
377
+ </div>
378
+ {/* Dot indicators */}
379
+ {snapCount > 1 && (
380
+ <div className="flex justify-center gap-2 mt-0">
381
+ {Array.from({ length: snapCount }).map((_, i) => (
382
+ <button
383
+ key={i}
384
+ onClick={() => scrollTo(i)}
385
+ aria-label={`Go to slide ${i + 1}`}
386
+ className="flex h-11 w-11 items-center justify-center rounded-full cursor-pointer"
387
+ >
388
+ <span
389
+ className={cn(
390
+ 'block rounded-full transition-all duration-300',
391
+ i === activeIdx
392
+ ? 'h-2.5 w-8 bg-lime-500'
393
+ : 'h-2.5 w-2.5 bg-stone-600 hover:bg-stone-400',
394
+ )}
395
+ />
396
+ </button>
397
+ ))}
398
+ </div>
399
+ )}
400
+ </div>
401
+ </section>
402
+ )
403
+ }