react-component-kit-ui 0.0.0-stage → 0.1.0

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 (472) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/LICENSE +21 -0
  3. package/README.md +225 -2
  4. package/dist/apexcharts.js +327 -0
  5. package/dist/app.js +21 -0
  6. package/dist/buttons.js +26 -0
  7. package/dist/cards.js +26 -0
  8. package/dist/charts.js +50 -0
  9. package/dist/chunks/ActivityHeatmapGrid-P3FP0D6z.js +416 -0
  10. package/dist/chunks/AnimatedCheckmark-CJEmTxC6.js +19 -0
  11. package/dist/chunks/AnimatedInput-Dt37HZSs.js +21 -0
  12. package/dist/chunks/AuthCard-BkWHMFho.js +1409 -0
  13. package/dist/chunks/Badge-CHkR__dT.js +11 -0
  14. package/dist/chunks/CartPageList-DvsbjjCi.js +331 -0
  15. package/dist/chunks/CartToast-UIJFD2CK.js +570 -0
  16. package/dist/chunks/ChangelogSection-eY4neMby.js +2409 -0
  17. package/dist/chunks/CountdownBanner-CcpsvvE8.js +1263 -0
  18. package/dist/chunks/CtaNewsletterSection-Cl3fLVpQ.js +75 -0
  19. package/dist/chunks/CustomRadioGroup-DAwliU9n.js +26 -0
  20. package/dist/chunks/DiagonalSectionDivider-CwOOEFbn.js +541 -0
  21. package/dist/chunks/FloatingFeedbackWidget-D_0EpalW.js +348 -0
  22. package/dist/chunks/FooterMegaSection-DG1qtKuZ.js +67 -0
  23. package/dist/chunks/HackerDecodeText-hutANQXI.js +289 -0
  24. package/dist/chunks/LogoWallGrid-BEpsn1Gt.js +433 -0
  25. package/dist/chunks/LogoWithGalaxy-q_3-9vGU.js +139 -0
  26. package/dist/chunks/ProductCardMinimal-lQi5vy3-.js +88 -0
  27. package/dist/chunks/QuickJumpDock-DZzwR0vg.js +294 -0
  28. package/dist/chunks/SegmentedBarChart-DEBZURnS.js +384 -0
  29. package/dist/chunks/ShopCategoryHero-BLlWZ-i3.js +695 -0
  30. package/dist/chunks/StackedAreaChart-DF1-3rDG.js +453 -0
  31. package/dist/chunks/StatsTrendCard--nij2Jv0.js +491 -0
  32. package/dist/chunks/StatusTimelineFeed-BRYwz08g.js +62 -0
  33. package/dist/chunks/StepBreadcrumbBar-BGXvx5NX.js +32 -0
  34. package/dist/chunks/StepperInput-Ck_9n2BL.js +30 -0
  35. package/dist/chunks/TagsAutocompleteInput-BdbVqPbF.js +467 -0
  36. package/dist/chunks/TiltGlowButton-BRHwq9Af.js +650 -0
  37. package/dist/chunks/TypingIndicator-DshBNXhx.js +373 -0
  38. package/dist/chunks/WaterfallChart-C6NFbfO0.js +1337 -0
  39. package/dist/chunks/cart-store-u-ScUvte.js +212 -0
  40. package/dist/chunks/chart-tooltip-C7pIc_Su.js +49 -0
  41. package/dist/chunks/galaxy-scene-C854qLoX.js +231 -0
  42. package/dist/data.js +28 -0
  43. package/dist/ecommerce.js +43 -0
  44. package/dist/favicon.svg +14 -0
  45. package/dist/feedback.js +28 -0
  46. package/dist/forms.js +31 -0
  47. package/dist/global.css +254 -0
  48. package/dist/index.js +397 -0
  49. package/dist/layout.js +26 -0
  50. package/dist/logo-animated.svg +46 -0
  51. package/dist/logo.svg +46 -0
  52. package/dist/navigation.js +28 -0
  53. package/dist/overlays.js +27 -0
  54. package/dist/robots.txt +4 -0
  55. package/dist/sections.js +68 -0
  56. package/dist/styles.css +1 -0
  57. package/dist/templates/ecommerce-editorial.js +481 -0
  58. package/dist/templates/ecommerce.js +556 -0
  59. package/dist/templates/saas-hotel.js +540 -0
  60. package/dist/three.js +17 -0
  61. package/dist/tsconfig.build.tsbuildinfo +1 -0
  62. package/dist/types/components/apexcharts.d.ts +3 -0
  63. package/dist/types/components/index.d.ts +15 -0
  64. package/dist/types/components/lib/AnimatedGalaxy.d.ts +8 -0
  65. package/dist/types/components/lib/Galaxy3D.d.ts +15 -0
  66. package/dist/types/components/lib/LogoWithGalaxy.d.ts +8 -0
  67. package/dist/types/components/lib/app/AppSidebar.d.ts +53 -0
  68. package/dist/types/components/lib/app/AppTopbar.d.ts +52 -0
  69. package/dist/types/components/lib/app/ArrivalsBoard.d.ts +45 -0
  70. package/dist/types/components/lib/app/AuthCard.d.ts +45 -0
  71. package/dist/types/components/lib/app/DataTable.d.ts +54 -0
  72. package/dist/types/components/lib/app/GuestProfileCard.d.ts +48 -0
  73. package/dist/types/components/lib/app/HousekeepingBoard.d.ts +38 -0
  74. package/dist/types/components/lib/app/PageHeader.d.ts +45 -0
  75. package/dist/types/components/lib/app/PlanUsageCard.d.ts +44 -0
  76. package/dist/types/components/lib/app/RoomRack.d.ts +42 -0
  77. package/dist/types/components/lib/app/SettingsSection.d.ts +34 -0
  78. package/dist/types/components/lib/app/SwitchRow.d.ts +28 -0
  79. package/dist/types/components/lib/app/TeamMembers.d.ts +33 -0
  80. package/dist/types/components/lib/app/app-icons.d.ts +37 -0
  81. package/dist/types/components/lib/app/index.d.ts +15 -0
  82. package/dist/types/components/lib/buttons/AnimatedIconButton.d.ts +22 -0
  83. package/dist/types/components/lib/buttons/BorderDrawButton.d.ts +19 -0
  84. package/dist/types/components/lib/buttons/CyberpunkButton.d.ts +23 -0
  85. package/dist/types/components/lib/buttons/DoubleBorderButton.d.ts +17 -0
  86. package/dist/types/components/lib/buttons/GhostOutlineButton.d.ts +21 -0
  87. package/dist/types/components/lib/buttons/GlassButton.d.ts +23 -0
  88. package/dist/types/components/lib/buttons/GlowButton.d.ts +19 -0
  89. package/dist/types/components/lib/buttons/LiquidButton.d.ts +19 -0
  90. package/dist/types/components/lib/buttons/LoadingButton.d.ts +20 -0
  91. package/dist/types/components/lib/buttons/MagneticButton.d.ts +21 -0
  92. package/dist/types/components/lib/buttons/MinimalPillButton.d.ts +17 -0
  93. package/dist/types/components/lib/buttons/NeonBorderButton.d.ts +19 -0
  94. package/dist/types/components/lib/buttons/NeumorphicButton.d.ts +21 -0
  95. package/dist/types/components/lib/buttons/PulseButton.d.ts +20 -0
  96. package/dist/types/components/lib/buttons/RetroArcadeButton.d.ts +17 -0
  97. package/dist/types/components/lib/buttons/RetroShadowButton.d.ts +17 -0
  98. package/dist/types/components/lib/buttons/RippleButton.d.ts +17 -0
  99. package/dist/types/components/lib/buttons/ShimmerButton.d.ts +17 -0
  100. package/dist/types/components/lib/buttons/ShinyButton.d.ts +17 -0
  101. package/dist/types/components/lib/buttons/SlideRevealButton.d.ts +20 -0
  102. package/dist/types/components/lib/buttons/ThreeDPushButton.d.ts +19 -0
  103. package/dist/types/components/lib/buttons/TiltGlowButton.d.ts +21 -0
  104. package/dist/types/components/lib/buttons/index.d.ts +22 -0
  105. package/dist/types/components/lib/cards/BlogHorizontalCard.d.ts +17 -0
  106. package/dist/types/components/lib/cards/CyberFeatureCard.d.ts +15 -0
  107. package/dist/types/components/lib/cards/EcommerceProductCard.d.ts +21 -0
  108. package/dist/types/components/lib/cards/GithubRepoCard.d.ts +25 -0
  109. package/dist/types/components/lib/cards/GlassCard.d.ts +19 -0
  110. package/dist/types/components/lib/cards/GlassEventCard.d.ts +17 -0
  111. package/dist/types/components/lib/cards/GlowPortfolioCard.d.ts +17 -0
  112. package/dist/types/components/lib/cards/InteractiveTiltCard.d.ts +13 -0
  113. package/dist/types/components/lib/cards/KanbanItemCard.d.ts +15 -0
  114. package/dist/types/components/lib/cards/MinimalLinkCard.d.ts +13 -0
  115. package/dist/types/components/lib/cards/MusicPlayerMini.d.ts +17 -0
  116. package/dist/types/components/lib/cards/NeumorphicCard.d.ts +13 -0
  117. package/dist/types/components/lib/cards/NotificationCard.d.ts +15 -0
  118. package/dist/types/components/lib/cards/PricingCard.d.ts +17 -0
  119. package/dist/types/components/lib/cards/PricingCompareMiniCard.d.ts +25 -0
  120. package/dist/types/components/lib/cards/ProfileCard.d.ts +17 -0
  121. package/dist/types/components/lib/cards/RetroGameCard.d.ts +15 -0
  122. package/dist/types/components/lib/cards/StatCard.d.ts +15 -0
  123. package/dist/types/components/lib/cards/StatsTrendCard.d.ts +19 -0
  124. package/dist/types/components/lib/cards/TaskKanbanCard.d.ts +17 -0
  125. package/dist/types/components/lib/cards/TestimonialCardClean.d.ts +17 -0
  126. package/dist/types/components/lib/cards/WeatherWidgetCard.d.ts +17 -0
  127. package/dist/types/components/lib/cards/index.d.ts +22 -0
  128. package/dist/types/components/lib/charts/ActivityRings.d.ts +26 -0
  129. package/dist/types/components/lib/charts/AreaChart.d.ts +16 -0
  130. package/dist/types/components/lib/charts/BarChart.d.ts +17 -0
  131. package/dist/types/components/lib/charts/BoxPlotChart.d.ts +26 -0
  132. package/dist/types/components/lib/charts/BubbleChart.d.ts +35 -0
  133. package/dist/types/components/lib/charts/BulletChart.d.ts +29 -0
  134. package/dist/types/components/lib/charts/BumpChart.d.ts +25 -0
  135. package/dist/types/components/lib/charts/CandlestickChart.d.ts +30 -0
  136. package/dist/types/components/lib/charts/ChartFrame.d.ts +43 -0
  137. package/dist/types/components/lib/charts/DivergingBarChart.d.ts +31 -0
  138. package/dist/types/components/lib/charts/DonutChart.d.ts +16 -0
  139. package/dist/types/components/lib/charts/DumbbellChart.d.ts +31 -0
  140. package/dist/types/components/lib/charts/ForecastLineChart.d.ts +30 -0
  141. package/dist/types/components/lib/charts/FunnelChart.d.ts +24 -0
  142. package/dist/types/components/lib/charts/GaugeChart.d.ts +29 -0
  143. package/dist/types/components/lib/charts/GoalProgressChart.d.ts +29 -0
  144. package/dist/types/components/lib/charts/GroupedBarChart.d.ts +32 -0
  145. package/dist/types/components/lib/charts/HeatmapChart.d.ts +29 -0
  146. package/dist/types/components/lib/charts/HistogramChart.d.ts +27 -0
  147. package/dist/types/components/lib/charts/HorizontalBarChart.d.ts +32 -0
  148. package/dist/types/components/lib/charts/KpiStatTile.d.ts +28 -0
  149. package/dist/types/components/lib/charts/KpiTrendGrid.d.ts +27 -0
  150. package/dist/types/components/lib/charts/LineChart.d.ts +38 -0
  151. package/dist/types/components/lib/charts/LinearProgressGauge.d.ts +19 -0
  152. package/dist/types/components/lib/charts/LollipopChart.d.ts +32 -0
  153. package/dist/types/components/lib/charts/MeterGauge.d.ts +32 -0
  154. package/dist/types/components/lib/charts/MetricDeltaTable.d.ts +36 -0
  155. package/dist/types/components/lib/charts/PieChart.d.ts +32 -0
  156. package/dist/types/components/lib/charts/PolarAreaChart.d.ts +27 -0
  157. package/dist/types/components/lib/charts/PopulationPyramid.d.ts +31 -0
  158. package/dist/types/components/lib/charts/PunchCardChart.d.ts +26 -0
  159. package/dist/types/components/lib/charts/RadarChart.d.ts +28 -0
  160. package/dist/types/components/lib/charts/RadarMetricChart.d.ts +20 -0
  161. package/dist/types/components/lib/charts/RadialBarChart.d.ts +27 -0
  162. package/dist/types/components/lib/charts/RangeAreaChart.d.ts +34 -0
  163. package/dist/types/components/lib/charts/RetentionCohortTable.d.ts +27 -0
  164. package/dist/types/components/lib/charts/SankeyChart.d.ts +30 -0
  165. package/dist/types/components/lib/charts/ScatterPlot.d.ts +35 -0
  166. package/dist/types/components/lib/charts/SegmentedBarChart.d.ts +30 -0
  167. package/dist/types/components/lib/charts/SlopeChart.d.ts +33 -0
  168. package/dist/types/components/lib/charts/SparklineChart.d.ts +24 -0
  169. package/dist/types/components/lib/charts/StackedAreaChart.d.ts +34 -0
  170. package/dist/types/components/lib/charts/StackedBarChart.d.ts +33 -0
  171. package/dist/types/components/lib/charts/SunburstChart.d.ts +33 -0
  172. package/dist/types/components/lib/charts/TreemapChart.d.ts +31 -0
  173. package/dist/types/components/lib/charts/WaffleChart.d.ts +26 -0
  174. package/dist/types/components/lib/charts/WaterfallChart.d.ts +32 -0
  175. package/dist/types/components/lib/charts/chart-tooltip.d.ts +1 -0
  176. package/dist/types/components/lib/charts/chart-utils.d.ts +46 -0
  177. package/dist/types/components/lib/charts/index.d.ts +44 -0
  178. package/dist/types/components/lib/data/AccordionGroupGlass.d.ts +6 -0
  179. package/dist/types/components/lib/data/ActivityHeatmapGrid.d.ts +13 -0
  180. package/dist/types/components/lib/data/AvatarGroupStack.d.ts +6 -0
  181. package/dist/types/components/lib/data/CalendarGridView.d.ts +6 -0
  182. package/dist/types/components/lib/data/DataChipsGroup.d.ts +6 -0
  183. package/dist/types/components/lib/data/DescriptionListHoriz.d.ts +6 -0
  184. package/dist/types/components/lib/data/FileTreeView.d.ts +6 -0
  185. package/dist/types/components/lib/data/GanttChartMinimal.d.ts +6 -0
  186. package/dist/types/components/lib/data/GlassTable.d.ts +6 -0
  187. package/dist/types/components/lib/data/KeyValuePillGroup.d.ts +6 -0
  188. package/dist/types/components/lib/data/MetricComparisonRow.d.ts +19 -0
  189. package/dist/types/components/lib/data/PriceCompareTable.d.ts +6 -0
  190. package/dist/types/components/lib/data/ProgressListSmall.d.ts +6 -0
  191. package/dist/types/components/lib/data/RatingBreakdownBar.d.ts +6 -0
  192. package/dist/types/components/lib/data/SparklineStatCard.d.ts +6 -0
  193. package/dist/types/components/lib/data/StatsGridDashboard.d.ts +6 -0
  194. package/dist/types/components/lib/data/StatusTimelineFeed.d.ts +16 -0
  195. package/dist/types/components/lib/data/StepperDataVertical.d.ts +6 -0
  196. package/dist/types/components/lib/data/TagCloudData.d.ts +6 -0
  197. package/dist/types/components/lib/data/TimelineHorizSteps.d.ts +6 -0
  198. package/dist/types/components/lib/data/TreeItemInteractive.d.ts +6 -0
  199. package/dist/types/components/lib/data/UserDirectoryItem.d.ts +6 -0
  200. package/dist/types/components/lib/data/VerticalTimeline.d.ts +6 -0
  201. package/dist/types/components/lib/data/index.d.ts +23 -0
  202. package/dist/types/components/lib/ecommerce/CartDrawer.d.ts +43 -0
  203. package/dist/types/components/lib/ecommerce/CartPageList.d.ts +36 -0
  204. package/dist/types/components/lib/ecommerce/CartToast.d.ts +34 -0
  205. package/dist/types/components/lib/ecommerce/CategoryTiles.d.ts +32 -0
  206. package/dist/types/components/lib/ecommerce/CheckoutForm.d.ts +44 -0
  207. package/dist/types/components/lib/ecommerce/CountdownBanner.d.ts +38 -0
  208. package/dist/types/components/lib/ecommerce/FilterBar.d.ts +48 -0
  209. package/dist/types/components/lib/ecommerce/FilterSidebar.d.ts +42 -0
  210. package/dist/types/components/lib/ecommerce/LiveActivityToast.d.ts +43 -0
  211. package/dist/types/components/lib/ecommerce/OrderSummary.d.ts +39 -0
  212. package/dist/types/components/lib/ecommerce/ProductBuyBox.d.ts +39 -0
  213. package/dist/types/components/lib/ecommerce/ProductCardMinimal.d.ts +38 -0
  214. package/dist/types/components/lib/ecommerce/ProductGallery.d.ts +29 -0
  215. package/dist/types/components/lib/ecommerce/ProductGrid.d.ts +41 -0
  216. package/dist/types/components/lib/ecommerce/ProductMedia.d.ts +30 -0
  217. package/dist/types/components/lib/ecommerce/ProductRating.d.ts +23 -0
  218. package/dist/types/components/lib/ecommerce/ProductToolbar.d.ts +35 -0
  219. package/dist/types/components/lib/ecommerce/PromoBar.d.ts +29 -0
  220. package/dist/types/components/lib/ecommerce/StockIndicator.d.ts +29 -0
  221. package/dist/types/components/lib/ecommerce/StoreHeader.d.ts +54 -0
  222. package/dist/types/components/lib/ecommerce/StoreHero.d.ts +48 -0
  223. package/dist/types/components/lib/ecommerce/StoreProductCard.d.ts +40 -0
  224. package/dist/types/components/lib/ecommerce/TrustBadges.d.ts +24 -0
  225. package/dist/types/components/lib/ecommerce/VariantPicker.d.ts +37 -0
  226. package/dist/types/components/lib/ecommerce/cart-store.d.ts +31 -0
  227. package/dist/types/components/lib/ecommerce/catalog-filter.d.ts +12 -0
  228. package/dist/types/components/lib/ecommerce/index.d.ts +30 -0
  229. package/dist/types/components/lib/ecommerce/product-icons.d.ts +20 -0
  230. package/dist/types/components/lib/ecommerce/types.d.ts +61 -0
  231. package/dist/types/components/lib/feedback/AnimatedCheckmark.d.ts +14 -0
  232. package/dist/types/components/lib/feedback/Badge.d.ts +17 -0
  233. package/dist/types/components/lib/feedback/CircleProgress.d.ts +18 -0
  234. package/dist/types/components/lib/feedback/ConfettiFeedback.d.ts +18 -0
  235. package/dist/types/components/lib/feedback/CyberGlitchAlert.d.ts +14 -0
  236. package/dist/types/components/lib/feedback/EmptyStateCard.d.ts +20 -0
  237. package/dist/types/components/lib/feedback/GlassAlert.d.ts +15 -0
  238. package/dist/types/components/lib/feedback/GlassModal.d.ts +24 -0
  239. package/dist/types/components/lib/feedback/GlassProgress.d.ts +14 -0
  240. package/dist/types/components/lib/feedback/IndicatorBadgeMinimal.d.ts +17 -0
  241. package/dist/types/components/lib/feedback/NeonSpinner.d.ts +16 -0
  242. package/dist/types/components/lib/feedback/ProgressRingCounter.d.ts +22 -0
  243. package/dist/types/components/lib/feedback/PulseDot.d.ts +14 -0
  244. package/dist/types/components/lib/feedback/RatingPill.d.ts +15 -0
  245. package/dist/types/components/lib/feedback/ShakeErrorGroup.d.ts +17 -0
  246. package/dist/types/components/lib/feedback/SimpleTooltip.d.ts +15 -0
  247. package/dist/types/components/lib/feedback/SkeletonList.d.ts +12 -0
  248. package/dist/types/components/lib/feedback/Spotlight.d.ts +15 -0
  249. package/dist/types/components/lib/feedback/StepProgress.d.ts +16 -0
  250. package/dist/types/components/lib/feedback/ToastNotif.d.ts +18 -0
  251. package/dist/types/components/lib/feedback/ToastNotificationGroup.d.ts +22 -0
  252. package/dist/types/components/lib/feedback/TypingIndicator.d.ts +14 -0
  253. package/dist/types/components/lib/feedback/index.d.ts +22 -0
  254. package/dist/types/components/lib/forms/AnimatedInput.d.ts +23 -0
  255. package/dist/types/components/lib/forms/ChipInput.d.ts +17 -0
  256. package/dist/types/components/lib/forms/ColorPickerInput.d.ts +17 -0
  257. package/dist/types/components/lib/forms/CurrencyInput.d.ts +21 -0
  258. package/dist/types/components/lib/forms/CustomRadioGroup.d.ts +21 -0
  259. package/dist/types/components/lib/forms/CyberpunkCheckbox.d.ts +17 -0
  260. package/dist/types/components/lib/forms/DragDropUpload.d.ts +19 -0
  261. package/dist/types/components/lib/forms/ErrorInput.d.ts +19 -0
  262. package/dist/types/components/lib/forms/FloatingPassword.d.ts +17 -0
  263. package/dist/types/components/lib/forms/FormGroupVertical.d.ts +21 -0
  264. package/dist/types/components/lib/forms/GlassInlineToggleGroup.d.ts +21 -0
  265. package/dist/types/components/lib/forms/GlassSlider.d.ts +23 -0
  266. package/dist/types/components/lib/forms/GlassTextarea.d.ts +21 -0
  267. package/dist/types/components/lib/forms/ModernSelect.d.ts +23 -0
  268. package/dist/types/components/lib/forms/NeumorphicSwitch.d.ts +17 -0
  269. package/dist/types/components/lib/forms/OTPInput.d.ts +17 -0
  270. package/dist/types/components/lib/forms/PasswordStrengthInput.d.ts +19 -0
  271. package/dist/types/components/lib/forms/PhoneCountryInput.d.ts +19 -0
  272. package/dist/types/components/lib/forms/RatingStars.d.ts +17 -0
  273. package/dist/types/components/lib/forms/SearchReveal.d.ts +15 -0
  274. package/dist/types/components/lib/forms/SegmentedControl.d.ts +19 -0
  275. package/dist/types/components/lib/forms/SimpleFileInput.d.ts +17 -0
  276. package/dist/types/components/lib/forms/StepperInput.d.ts +23 -0
  277. package/dist/types/components/lib/forms/TagsAutocompleteInput.d.ts +19 -0
  278. package/dist/types/components/lib/forms/index.d.ts +24 -0
  279. package/dist/types/components/lib/galaxy-scene.d.ts +5 -0
  280. package/dist/types/components/lib/layout/BentoGrid3.d.ts +14 -0
  281. package/dist/types/components/lib/layout/CenterFixedBox.d.ts +11 -0
  282. package/dist/types/components/lib/layout/CenteredContainer.d.ts +27 -0
  283. package/dist/types/components/lib/layout/ClusterHorizontal.d.ts +13 -0
  284. package/dist/types/components/lib/layout/DiagonalSectionDivider.d.ts +17 -0
  285. package/dist/types/components/lib/layout/FeatureHero.d.ts +35 -0
  286. package/dist/types/components/lib/layout/FooterCenteredMinimal.d.ts +23 -0
  287. package/dist/types/components/lib/layout/FullBleedSection.d.ts +11 -0
  288. package/dist/types/components/lib/layout/GalleryGrid4.d.ts +11 -0
  289. package/dist/types/components/lib/layout/GlassCardGrid.d.ts +16 -0
  290. package/dist/types/components/lib/layout/GlassSectionHeader.d.ts +30 -0
  291. package/dist/types/components/lib/layout/HolyGrailGrid.d.ts +23 -0
  292. package/dist/types/components/lib/layout/LandingSectionSplit.d.ts +14 -0
  293. package/dist/types/components/lib/layout/MasonryGrid.d.ts +13 -0
  294. package/dist/types/components/lib/layout/MinimalFooterGrid.d.ts +10 -0
  295. package/dist/types/components/lib/layout/ScrollSnapSection.d.ts +12 -0
  296. package/dist/types/components/lib/layout/SectionDividerText.d.ts +23 -0
  297. package/dist/types/components/lib/layout/SidebarLayoutWrapper.d.ts +33 -0
  298. package/dist/types/components/lib/layout/SplitScreenLayout.d.ts +12 -0
  299. package/dist/types/components/lib/layout/StepLayoutVertical.d.ts +9 -0
  300. package/dist/types/components/lib/layout/StickySidebarWrapper.d.ts +35 -0
  301. package/dist/types/components/lib/layout/VerticalStack.d.ts +27 -0
  302. package/dist/types/components/lib/layout/index.d.ts +22 -0
  303. package/dist/types/components/lib/navigation/AnchorSideNav.d.ts +6 -0
  304. package/dist/types/components/lib/navigation/BottomNavMobile.d.ts +6 -0
  305. package/dist/types/components/lib/navigation/BreadcrumbsMinimal.d.ts +6 -0
  306. package/dist/types/components/lib/navigation/BurgerMorphIcon.d.ts +6 -0
  307. package/dist/types/components/lib/navigation/CommandPaletteUI.d.ts +6 -0
  308. package/dist/types/components/lib/navigation/DotNavigationSlider.d.ts +6 -0
  309. package/dist/types/components/lib/navigation/FloatingTabBar.d.ts +6 -0
  310. package/dist/types/components/lib/navigation/GlassNavbar.d.ts +12 -0
  311. package/dist/types/components/lib/navigation/LangSwitcherPill.d.ts +6 -0
  312. package/dist/types/components/lib/navigation/MegaMenuGlass.d.ts +6 -0
  313. package/dist/types/components/lib/navigation/MinimalSidebar.d.ts +6 -0
  314. package/dist/types/components/lib/navigation/PaginationGlass.d.ts +6 -0
  315. package/dist/types/components/lib/navigation/PaginationInfiniteUI.d.ts +6 -0
  316. package/dist/types/components/lib/navigation/QuickJumpDock.d.ts +15 -0
  317. package/dist/types/components/lib/navigation/RadialIconMenu.d.ts +6 -0
  318. package/dist/types/components/lib/navigation/RetroArcadeMenu.d.ts +6 -0
  319. package/dist/types/components/lib/navigation/ScrollProgressTop.d.ts +6 -0
  320. package/dist/types/components/lib/navigation/SimpleFooterGlass.d.ts +6 -0
  321. package/dist/types/components/lib/navigation/StepBreadcrumbBar.d.ts +16 -0
  322. package/dist/types/components/lib/navigation/SubNavbarPills.d.ts +18 -0
  323. package/dist/types/components/lib/navigation/TabUnderline.d.ts +6 -0
  324. package/dist/types/components/lib/navigation/UserProfileNav.d.ts +6 -0
  325. package/dist/types/components/lib/navigation/VerticalTabs.d.ts +6 -0
  326. package/dist/types/components/lib/navigation/index.d.ts +23 -0
  327. package/dist/types/components/lib/overlays/AgeVerificationOverlay.d.ts +6 -0
  328. package/dist/types/components/lib/overlays/BackdropBlurMask.d.ts +6 -0
  329. package/dist/types/components/lib/overlays/BottomSheetMobile.d.ts +6 -0
  330. package/dist/types/components/lib/overlays/CommandDialog.d.ts +6 -0
  331. package/dist/types/components/lib/overlays/ContextMenuOverlay.d.ts +6 -0
  332. package/dist/types/components/lib/overlays/CookieBannerGlass.d.ts +6 -0
  333. package/dist/types/components/lib/overlays/CookiePreferencesDrawer.d.ts +13 -0
  334. package/dist/types/components/lib/overlays/ExitIntentOverlay.d.ts +6 -0
  335. package/dist/types/components/lib/overlays/FloatingFeedbackWidget.d.ts +13 -0
  336. package/dist/types/components/lib/overlays/FloatingTrayActions.d.ts +6 -0
  337. package/dist/types/components/lib/overlays/HelpBubbleOverlay.d.ts +6 -0
  338. package/dist/types/components/lib/overlays/ImageCompareSlider.d.ts +19 -0
  339. package/dist/types/components/lib/overlays/LightboxOverlay.d.ts +6 -0
  340. package/dist/types/components/lib/overlays/LoadingOverlayFull.d.ts +6 -0
  341. package/dist/types/components/lib/overlays/MobileNavOverlay.d.ts +6 -0
  342. package/dist/types/components/lib/overlays/OverlayModal.d.ts +6 -0
  343. package/dist/types/components/lib/overlays/PopoverMenuGlass.d.ts +6 -0
  344. package/dist/types/components/lib/overlays/SearchOverlayFullscreen.d.ts +6 -0
  345. package/dist/types/components/lib/overlays/SideDrawerRight.d.ts +8 -0
  346. package/dist/types/components/lib/overlays/SplashIntroOverlay.d.ts +6 -0
  347. package/dist/types/components/lib/overlays/SpotlightIndicator.d.ts +6 -0
  348. package/dist/types/components/lib/overlays/ToastStackOverlay.d.ts +6 -0
  349. package/dist/types/components/lib/overlays/TooltipActionTray.d.ts +6 -0
  350. package/dist/types/components/lib/overlays/index.d.ts +23 -0
  351. package/dist/types/components/lib/sections/AgencyContactBrief.d.ts +44 -0
  352. package/dist/types/components/lib/sections/AgencyFooterCta.d.ts +46 -0
  353. package/dist/types/components/lib/sections/AgencyHeader.d.ts +37 -0
  354. package/dist/types/components/lib/sections/AgencyHeroKinetic.d.ts +45 -0
  355. package/dist/types/components/lib/sections/AgencyServicesList.d.ts +35 -0
  356. package/dist/types/components/lib/sections/AgencyTeamGrid.d.ts +45 -0
  357. package/dist/types/components/lib/sections/AgencyWorkGrid.d.ts +42 -0
  358. package/dist/types/components/lib/sections/BlogGridSection.d.ts +35 -0
  359. package/dist/types/components/lib/sections/ButtonsShowcase.d.ts +8 -0
  360. package/dist/types/components/lib/sections/CardsShowcase.d.ts +8 -0
  361. package/dist/types/components/lib/sections/CareersOpenings.d.ts +37 -0
  362. package/dist/types/components/lib/sections/ChangelogSection.d.ts +37 -0
  363. package/dist/types/components/lib/sections/ContactGlassForm.d.ts +16 -0
  364. package/dist/types/components/lib/sections/ContactSplitMap.d.ts +36 -0
  365. package/dist/types/components/lib/sections/CtaAppDownload.d.ts +16 -0
  366. package/dist/types/components/lib/sections/CtaGlowBanner.d.ts +20 -0
  367. package/dist/types/components/lib/sections/CtaNewsletterSection.d.ts +28 -0
  368. package/dist/types/components/lib/sections/CtaSplitImage.d.ts +39 -0
  369. package/dist/types/components/lib/sections/DataShowcase.d.ts +8 -0
  370. package/dist/types/components/lib/sections/FaqAccordionSection.d.ts +16 -0
  371. package/dist/types/components/lib/sections/FaqTwoColumn.d.ts +32 -0
  372. package/dist/types/components/lib/sections/FeatureAlternatingRows.d.ts +29 -0
  373. package/dist/types/components/lib/sections/FeatureBentoGrid.d.ts +16 -0
  374. package/dist/types/components/lib/sections/FeatureIconGrid.d.ts +33 -0
  375. package/dist/types/components/lib/sections/FeatureTabsShowcase.d.ts +30 -0
  376. package/dist/types/components/lib/sections/FeatureTimelineFlow.d.ts +16 -0
  377. package/dist/types/components/lib/sections/FeedbackShowcase.d.ts +8 -0
  378. package/dist/types/components/lib/sections/FooterMegaSection.d.ts +40 -0
  379. package/dist/types/components/lib/sections/FormsShowcase.d.ts +8 -0
  380. package/dist/types/components/lib/sections/HeroDashboardPreview.d.ts +32 -0
  381. package/dist/types/components/lib/sections/HeroGlass.d.ts +8 -0
  382. package/dist/types/components/lib/sections/HeroGradient.d.ts +8 -0
  383. package/dist/types/components/lib/sections/HeroMinimalCentered.d.ts +36 -0
  384. package/dist/types/components/lib/sections/HeroShowcaseSplit.d.ts +25 -0
  385. package/dist/types/components/lib/sections/HeroSplit.d.ts +8 -0
  386. package/dist/types/components/lib/sections/HeroTerminal.d.ts +35 -0
  387. package/dist/types/components/lib/sections/HeroWaitlist.d.ts +30 -0
  388. package/dist/types/components/lib/sections/HowItWorksSteps.d.ts +32 -0
  389. package/dist/types/components/lib/sections/IntegrationsGrid.d.ts +28 -0
  390. package/dist/types/components/lib/sections/LayoutShowcase.d.ts +8 -0
  391. package/dist/types/components/lib/sections/LogoCloudSection.d.ts +16 -0
  392. package/dist/types/components/lib/sections/LogoWallGrid.d.ts +28 -0
  393. package/dist/types/components/lib/sections/NavigationShowcase.d.ts +8 -0
  394. package/dist/types/components/lib/sections/OverlaysShowcase.d.ts +8 -0
  395. package/dist/types/components/lib/sections/PricingComparisonMatrix.d.ts +16 -0
  396. package/dist/types/components/lib/sections/PricingSinglePlan.d.ts +37 -0
  397. package/dist/types/components/lib/sections/PricingTierCards.d.ts +16 -0
  398. package/dist/types/components/lib/sections/PricingToggleCards.d.ts +36 -0
  399. package/dist/types/components/lib/sections/ShopCategoryHero.d.ts +41 -0
  400. package/dist/types/components/lib/sections/ShopCollectionMosaic.d.ts +37 -0
  401. package/dist/types/components/lib/sections/ShopFooterWordmark.d.ts +38 -0
  402. package/dist/types/components/lib/sections/ShopHeaderEditorial.d.ts +61 -0
  403. package/dist/types/components/lib/sections/ShopHeroEditorial.d.ts +45 -0
  404. package/dist/types/components/lib/sections/ShopLookbook.d.ts +47 -0
  405. package/dist/types/components/lib/sections/ShopNewsletterEditorial.d.ts +33 -0
  406. package/dist/types/components/lib/sections/ShopProductRail.d.ts +41 -0
  407. package/dist/types/components/lib/sections/ShopReviewsEditorial.d.ts +34 -0
  408. package/dist/types/components/lib/sections/ShopValuesMarquee.d.ts +28 -0
  409. package/dist/types/components/lib/sections/StatsCounterBand.d.ts +30 -0
  410. package/dist/types/components/lib/sections/StatsDashboardSection.d.ts +31 -0
  411. package/dist/types/components/lib/sections/StatsMetricShowcase.d.ts +16 -0
  412. package/dist/types/components/lib/sections/TeamGridSection.d.ts +16 -0
  413. package/dist/types/components/lib/sections/TestimonialCarousel.d.ts +26 -0
  414. package/dist/types/components/lib/sections/TestimonialFeatured.d.ts +34 -0
  415. package/dist/types/components/lib/sections/TestimonialGridSection.d.ts +15 -0
  416. package/dist/types/components/lib/sections/TestimonialWallGlass.d.ts +16 -0
  417. package/dist/types/components/lib/sections/TypographyShowcase.d.ts +8 -0
  418. package/dist/types/components/lib/sections/index.d.ts +60 -0
  419. package/dist/types/components/lib/templates/ecommerce/StoreCategoryPage.d.ts +28 -0
  420. package/dist/types/components/lib/templates/ecommerce/StoreCheckoutPage.d.ts +25 -0
  421. package/dist/types/components/lib/templates/ecommerce/StoreHomePage.d.ts +25 -0
  422. package/dist/types/components/lib/templates/ecommerce/StoreLayout.d.ts +41 -0
  423. package/dist/types/components/lib/templates/ecommerce/StoreProductPage.d.ts +28 -0
  424. package/dist/types/components/lib/templates/ecommerce/data.d.ts +49 -0
  425. package/dist/types/components/lib/templates/ecommerce/index.d.ts +7 -0
  426. package/dist/types/components/lib/templates/ecommerce-editorial/EditorialBagPage.d.ts +25 -0
  427. package/dist/types/components/lib/templates/ecommerce-editorial/EditorialCheckoutPage.d.ts +25 -0
  428. package/dist/types/components/lib/templates/ecommerce-editorial/EditorialHomePage.d.ts +25 -0
  429. package/dist/types/components/lib/templates/ecommerce-editorial/EditorialLayout.d.ts +36 -0
  430. package/dist/types/components/lib/templates/ecommerce-editorial/EditorialProductPage.d.ts +29 -0
  431. package/dist/types/components/lib/templates/ecommerce-editorial/EditorialShopPage.d.ts +28 -0
  432. package/dist/types/components/lib/templates/ecommerce-editorial/data.d.ts +50 -0
  433. package/dist/types/components/lib/templates/ecommerce-editorial/index.d.ts +8 -0
  434. package/dist/types/components/lib/templates/saas-hotel/AppLayout.d.ts +30 -0
  435. package/dist/types/components/lib/templates/saas-hotel/DashboardPage.d.ts +20 -0
  436. package/dist/types/components/lib/templates/saas-hotel/GuestsPage.d.ts +20 -0
  437. package/dist/types/components/lib/templates/saas-hotel/LandingPage.d.ts +24 -0
  438. package/dist/types/components/lib/templates/saas-hotel/ReportsPage.d.ts +20 -0
  439. package/dist/types/components/lib/templates/saas-hotel/ReservationsPage.d.ts +20 -0
  440. package/dist/types/components/lib/templates/saas-hotel/RoomsPage.d.ts +20 -0
  441. package/dist/types/components/lib/templates/saas-hotel/SettingsPage.d.ts +21 -0
  442. package/dist/types/components/lib/templates/saas-hotel/SignInPage.d.ts +23 -0
  443. package/dist/types/components/lib/templates/saas-hotel/data.d.ts +224 -0
  444. package/dist/types/components/lib/templates/saas-hotel/index.d.ts +11 -0
  445. package/dist/types/components/lib/typography/AnimatedCounterText.d.ts +19 -0
  446. package/dist/types/components/lib/typography/AnimatedUnderlineLink.d.ts +9 -0
  447. package/dist/types/components/lib/typography/BackgroundClipMask.d.ts +8 -0
  448. package/dist/types/components/lib/typography/CodeInlineGlass.d.ts +8 -0
  449. package/dist/types/components/lib/typography/CurvedPathHeading.d.ts +15 -0
  450. package/dist/types/components/lib/typography/CyberpunkGlitchText.d.ts +7 -0
  451. package/dist/types/components/lib/typography/DropCapParagraph.d.ts +8 -0
  452. package/dist/types/components/lib/typography/FadedVerticalText.d.ts +8 -0
  453. package/dist/types/components/lib/typography/FloatingTextLabel.d.ts +8 -0
  454. package/dist/types/components/lib/typography/GlassBlockQuote.d.ts +8 -0
  455. package/dist/types/components/lib/typography/GlassTextReveal.d.ts +8 -0
  456. package/dist/types/components/lib/typography/GradientHeading.d.ts +11 -0
  457. package/dist/types/components/lib/typography/GradientTextMarquee.d.ts +15 -0
  458. package/dist/types/components/lib/typography/GradientUnderlineLink.d.ts +8 -0
  459. package/dist/types/components/lib/typography/HackerDecodeText.d.ts +15 -0
  460. package/dist/types/components/lib/typography/KbdIndicator.d.ts +8 -0
  461. package/dist/types/components/lib/typography/LetterSpacingWide.d.ts +8 -0
  462. package/dist/types/components/lib/typography/MinimalListMarkers.d.ts +8 -0
  463. package/dist/types/components/lib/typography/MonospaceStatLine.d.ts +8 -0
  464. package/dist/types/components/lib/typography/NeonTextHighlight.d.ts +8 -0
  465. package/dist/types/components/lib/typography/ShadowRevealText.d.ts +8 -0
  466. package/dist/types/components/lib/typography/StrokeHeadingOutline.d.ts +8 -0
  467. package/dist/types/components/lib/typography/Text3DLayer.d.ts +8 -0
  468. package/dist/types/components/lib/typography/TypewriterText.d.ts +8 -0
  469. package/dist/types/components/lib/typography/index.d.ts +24 -0
  470. package/dist/types/components/three.d.ts +1 -0
  471. package/dist/typography.js +28 -0
  472. package/package.json +237 -4
@@ -0,0 +1,1337 @@
1
+ "use client";
2
+ import { jsx as a, Fragment as I, jsxs as v } from "react/jsx-runtime";
3
+ import { d as H, C as O, c as J, n as q, q as Y, s as T, h as X, i as ta, P as K, N as Z, f as E, j as oa, l as la, e as G, K as da, p as j, g as ra, b as ia, k as ha } from "./StackedAreaChart-DF1-3rDG.js";
4
+ function ma($) {
5
+ const y = {};
6
+ for (const r of String($ ?? "").split(";")) {
7
+ const d = r.indexOf(":");
8
+ if (d < 0) continue;
9
+ const s = r.slice(0, d).trim();
10
+ s && (y[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (g, M) => M.toUpperCase())] = r.slice(d + 1).trim());
11
+ }
12
+ return y;
13
+ }
14
+ function Na({
15
+ title: $ = "System Capabilities",
16
+ data: y = [
17
+ { axis: "Speed", value: 95 },
18
+ { axis: "A11y", value: 98 },
19
+ { axis: "SEO", value: 100 },
20
+ { axis: "Design", value: 92 },
21
+ { axis: "Zero-JS", value: 96 },
22
+ { axis: "Security", value: 90 }
23
+ ],
24
+ color: r = "#d4a017",
25
+ size: d = 320
26
+ }) {
27
+ const s = d / 2, g = (d - 70) / 2, M = y.length, _ = Math.PI * 2 / M, C = [0.2, 0.4, 0.6, 0.8, 1].map((x) => y.map((p, i) => {
28
+ const l = g * x, o = s + l * Math.cos(_ * i - Math.PI / 2), h = s + l * Math.sin(_ * i - Math.PI / 2);
29
+ return `${o},${h}`;
30
+ }).join(" ")), S = y.map((x, p) => {
31
+ const i = g * (Math.min(100, Math.max(0, x.value)) / 100), l = s + i * Math.cos(_ * p - Math.PI / 2), o = s + i * Math.sin(_ * p - Math.PI / 2);
32
+ return `${l},${o}`;
33
+ }).join(" ");
34
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ v("div", { className: "radar-card", style: ma(`--radar-size: ${d}px; --radar-color: ${r};`), "data-rk-5aa1c8": "", children: [
35
+ $ && /* @__PURE__ */ a("h5", { className: "radar-card__title", "data-rk-5aa1c8": "", children: $ }),
36
+ /* @__PURE__ */ a("div", { className: "radar-card__wrap", "data-rk-5aa1c8": "", children: /* @__PURE__ */ v("svg", { width: d, height: d, className: "radar-card__svg", "data-rk-5aa1c8": "", children: [
37
+ C.map((x, p) => /* @__PURE__ */ a("polygon", { points: x, className: "radar-web", "data-rk-5aa1c8": "" }, p)),
38
+ y.map((x, p) => {
39
+ const i = s + g * Math.cos(_ * p - Math.PI / 2), l = s + g * Math.sin(_ * p - Math.PI / 2);
40
+ return /* @__PURE__ */ a("line", { x1: s, y1: s, x2: i, y2: l, className: "radar-spoke", "data-rk-5aa1c8": "" }, p);
41
+ }),
42
+ /* @__PURE__ */ a("polygon", { points: S, className: "radar-data", "data-rk-5aa1c8": "" }),
43
+ y.map((x, p) => {
44
+ const i = g * (x.value / 100), l = s + i * Math.cos(_ * p - Math.PI / 2), o = s + i * Math.sin(_ * p - Math.PI / 2);
45
+ return /* @__PURE__ */ a("circle", { cx: l, cy: o, r: "4", className: "radar-node", "data-rk-5aa1c8": "" }, p);
46
+ }),
47
+ y.map((x, p) => {
48
+ const i = g + 22, l = s + i * Math.cos(_ * p - Math.PI / 2), o = s + i * Math.sin(_ * p - Math.PI / 2);
49
+ return /* @__PURE__ */ v("text", { x: l, y: o, className: "radar-label", textAnchor: "middle", dominantBaseline: "central", "data-rk-5aa1c8": "", children: [
50
+ x.axis,
51
+ " (",
52
+ x.value,
53
+ ")"
54
+ ] }, p);
55
+ })
56
+ ] }) })
57
+ ] }) });
58
+ }
59
+ function ca($) {
60
+ const y = {};
61
+ for (const r of String($ ?? "").split(";")) {
62
+ const d = r.indexOf(":");
63
+ if (d < 0) continue;
64
+ const s = r.slice(0, d).trim();
65
+ s && (y[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (g, M) => M.toUpperCase())] = r.slice(d + 1).trim());
66
+ }
67
+ return y;
68
+ }
69
+ function wa({
70
+ title: $ = "System Resource Allocation",
71
+ segments: y = [
72
+ { label: "SSR Execution", value: 45, color: "#d4a017" },
73
+ { label: "Asset Caching", value: 25, color: "#38bdf8" },
74
+ { label: "Edge Worker", value: 15, color: "#a855f7" },
75
+ { label: "Free Headroom", value: 15, color: "rgb(var(--ink-rgb, 255 255 255) / 0.1)" }
76
+ ],
77
+ total: r = "100%"
78
+ }) {
79
+ const d = y.reduce((s, g) => s + g.value, 0) || 100;
80
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ v("div", { className: "linear-gauge", "data-rk-4f95ee": "", children: [
81
+ /* @__PURE__ */ v("div", { className: "linear-gauge__header", "data-rk-4f95ee": "", children: [
82
+ /* @__PURE__ */ a("span", { className: "linear-gauge__title", "data-rk-4f95ee": "", children: $ }),
83
+ /* @__PURE__ */ a("span", { className: "linear-gauge__total", "data-rk-4f95ee": "", children: r })
84
+ ] }),
85
+ /* @__PURE__ */ a("div", { className: "linear-gauge__bar", role: "progressbar", "aria-valuemax": 100, "aria-valuemin": 0, "data-rk-4f95ee": "", children: y.map((s, g) => {
86
+ const M = s.value / d * 100;
87
+ return /* @__PURE__ */ a("div", { className: "linear-gauge__chunk", style: ca(`width: ${M}%; background-color: ${s.color};`), title: `${s.label}: ${s.value}%`, "data-rk-4f95ee": "" }, g);
88
+ }) }),
89
+ /* @__PURE__ */ a("div", { className: "linear-gauge__legend", "data-rk-4f95ee": "", children: y.map((s, g) => /* @__PURE__ */ v("div", { className: "legend-item", "data-rk-4f95ee": "", children: [
90
+ /* @__PURE__ */ a("span", { className: "legend-item__dot", style: ca(`background-color: ${s.color};`), "data-rk-4f95ee": "" }),
91
+ /* @__PURE__ */ a("span", { className: "legend-item__name", "data-rk-4f95ee": "", children: s.label }),
92
+ /* @__PURE__ */ v("span", { className: "legend-item__val", "data-rk-4f95ee": "", children: [
93
+ s.value,
94
+ "%"
95
+ ] })
96
+ ] }, g)) })
97
+ ] }) });
98
+ }
99
+ function ba($) {
100
+ const y = {};
101
+ for (const r of String($ ?? "").split(";")) {
102
+ const d = r.indexOf(":");
103
+ if (d < 0) continue;
104
+ const s = r.slice(0, d).trim();
105
+ s && (y[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (g, M) => M.toUpperCase())] = r.slice(d + 1).trim());
106
+ }
107
+ return y;
108
+ }
109
+ function Wa({
110
+ title: $ = "Today",
111
+ subtitle: y = "Daily goals",
112
+ rings: r = [
113
+ { label: "Focus time", value: 5.2, goal: 6, unit: "h" },
114
+ { label: "Tasks done", value: 11, goal: 8 },
115
+ { label: "Reviews", value: 3, goal: 5 }
116
+ ],
117
+ colors: d = ["var(--chart-5, #d55181)", "var(--chart-3, #199e70)", "var(--chart-1, #3987e5)"],
118
+ variant: s = "glass",
119
+ size: g = "md",
120
+ className: M = ""
121
+ }) {
122
+ const S = r.slice(0, 4).map((x, p) => {
123
+ const i = 96 - p * 24, l = x.value / (x.goal || 1);
124
+ return { ...x, radius: i, pct: l, color: H(p, d) };
125
+ });
126
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: s, size: g, className: M, table: { headers: ["Goal", "Value", "Target", "Progress"], rows: S.map((x) => [x.label, `${x.value}${x.unit ?? ""}`, `${x.goal}${x.unit ?? ""}`, `${Math.round(x.pct * 100)}%`]) }, children: /* @__PURE__ */ v("div", { className: "ar", "data-rk-2006ec": "", children: [
127
+ /* @__PURE__ */ a("svg", { viewBox: "0 0 220 220", role: "img", "aria-label": `${$}: ${S.map((x) => `${x.label} ${Math.round(x.pct * 100)}%`).join(", ")}`, "data-rk-2006ec": "", children: S.map((x, p) => {
128
+ const i = Math.min(x.pct, 0.9999), l = x.pct > 1 ? Math.min(x.pct - 1, 0.9999) : 0;
129
+ return /* @__PURE__ */ v("g", { "data-rk-2006ec": "", children: [
130
+ /* @__PURE__ */ a("circle", { cx: 110, cy: 110, r: x.radius, fill: "none", stroke: x.color, strokeOpacity: "0.16", strokeWidth: 20, "data-rk-2006ec": "" }),
131
+ i > 0 && /* @__PURE__ */ a("path", { className: "ar__arc", d: J(110, 110, x.radius, 0, Math.PI * 2 * i), fill: "none", stroke: x.color, strokeWidth: 20, strokeLinecap: "round", "data-rk-2006ec": "" }),
132
+ l > 0 && /* @__PURE__ */ a("path", { d: J(110, 110, x.radius, 0, Math.PI * 2 * l), fill: "none", stroke: x.color, strokeWidth: 20, strokeLinecap: "round", style: { filter: "drop-shadow(0 0 3px rgba(0,0,0,0.6)) brightness(1.15)" }, "data-rk-2006ec": "" })
133
+ ] }, p);
134
+ }) }),
135
+ /* @__PURE__ */ a("ul", { className: "ar__list", "data-rk-2006ec": "", children: S.map((x, p) => /* @__PURE__ */ v("li", { "data-rk-2006ec": "", children: [
136
+ /* @__PURE__ */ v("span", { className: "ar__label", "data-rk-2006ec": "", children: [
137
+ /* @__PURE__ */ a("i", { style: ba(`background:${x.color}`), "aria-hidden": "true", "data-rk-2006ec": "" }),
138
+ x.label
139
+ ] }),
140
+ /* @__PURE__ */ v("span", { className: "ar__value", "data-rk-2006ec": "", children: [
141
+ x.value,
142
+ x.unit ?? "",
143
+ /* @__PURE__ */ v("small", { "data-rk-2006ec": "", children: [
144
+ "/",
145
+ x.goal,
146
+ x.unit ?? ""
147
+ ] })
148
+ ] }),
149
+ /* @__PURE__ */ v("span", { className: "ar__pct", "data-rk-2006ec": "", children: [
150
+ Math.round(x.pct * 100),
151
+ "%",
152
+ x.pct >= 1 && /* @__PURE__ */ a("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", "aria-label": "goal met", "data-rk-2006ec": "", children: /* @__PURE__ */ a("path", { d: "M20 6 9 17l-5-5", "data-rk-2006ec": "" }) })
153
+ ] })
154
+ ] }, p)) })
155
+ ] }) }) });
156
+ }
157
+ const V = ($, y, r, d) => Array.from({ length: y }, (s, g) => {
158
+ const M = Math.sin((g + 1) * $) * 9999, _ = Math.sin((g + 3) * $ * 1.7) * 9999;
159
+ return Math.round(r + (M - Math.floor(M) + (_ - Math.floor(_)) - 1) * d);
160
+ });
161
+ function _a({
162
+ title: $ = "Response time by region",
163
+ subtitle: y = "Distribution of p50 latency, ms",
164
+ groups: r = [
165
+ { label: "us-east", values: [...V(1.3, 40, 82, 40), 190] },
166
+ { label: "us-west", values: V(2.7, 40, 95, 45) },
167
+ { label: "eu-central", values: [...V(4.1, 40, 70, 30), 160, 172] },
168
+ { label: "ap-south", values: V(5.9, 40, 140, 70) },
169
+ { label: "sa-east", values: V(8.3, 40, 160, 55) }
170
+ ],
171
+ suffix: d = "ms",
172
+ height: s = 290,
173
+ color: g = "var(--chart-1, #3987e5)",
174
+ variant: M = "glass",
175
+ size: _ = "md",
176
+ className: w = ""
177
+ }) {
178
+ const C = r.map((c) => {
179
+ const e = [...c.values].sort((k, P) => k - P), u = Y(e, 0.25), f = Y(e, 0.5), A = Y(e, 0.75), N = A - u, W = e.find((k) => k >= u - 1.5 * N) ?? e[0], b = [...e].reverse().find((k) => k <= A + 1.5 * N) ?? e[e.length - 1], m = e.filter((k) => k < W || k > b);
180
+ return { label: c.label, q1: u, med: f, q3: A, lo: W, hi: b, outliers: m, n: e.length };
181
+ }), S = 640, x = s, p = { t: 14, r: 12, b: 30, l: 48 }, i = r.flatMap((c) => c.values), l = q(Math.min(...i), Math.max(...i), 4), o = T(l[0], l[l.length - 1], x - p.b, p.t), h = (S - p.l - p.r) / r.length, t = Math.min(56, h * 0.45), n = (c) => `${Math.round(c)}${d}`;
182
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: M, size: _, className: w, table: { headers: ["Group", "Min", "Q1", "Median", "Q3", "Max", "Outliers"], rows: C.map((c) => [c.label, n(c.lo), n(c.q1), n(c.med), n(c.q3), n(c.hi), c.outliers.length]) }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 ${S} ${x}`, role: "img", "aria-label": `${$}: box plot of ${r.length} groups`, children: [
183
+ l.map((c, e) => /* @__PURE__ */ v("g", { children: [
184
+ /* @__PURE__ */ a("line", { className: "cf-grid", x1: p.l, x2: S - p.r, y1: o(c), y2: o(c) }),
185
+ /* @__PURE__ */ a("text", { className: "cf-label", x: p.l - 8, y: o(c) + 4, textAnchor: "end", children: n(c) })
186
+ ] }, e)),
187
+ C.map((c, e) => {
188
+ const u = p.l + e * h + h / 2;
189
+ return /* @__PURE__ */ v("g", { className: "cf-mark cf-dim", tabIndex: 0, role: "img", "aria-label": `${c.label}: median ${n(c.med)}, IQR ${n(c.q1)}–${n(c.q3)}, range ${n(c.lo)}–${n(c.hi)}, ${c.outliers.length} outliers`, "data-tip-title": c.label, "data-tip": `Max: ${n(c.hi)}|Q3: ${n(c.q3)}|${g}::Median: ${n(c.med)}|Q1: ${n(c.q1)}|Min: ${n(c.lo)}${c.outliers.length ? `|Outliers: ${c.outliers.length}` : ""}`, children: [
190
+ /* @__PURE__ */ a("rect", { x: u - h / 2, y: p.t, width: h, height: x - p.t - p.b, fill: "transparent" }),
191
+ /* @__PURE__ */ a("line", { x1: u, x2: u, y1: o(c.hi), y2: o(c.q3), stroke: "var(--c-text-2, #a3a3a3)", strokeWidth: "1.5" }),
192
+ /* @__PURE__ */ a("line", { x1: u, x2: u, y1: o(c.q1), y2: o(c.lo), stroke: "var(--c-text-2, #a3a3a3)", strokeWidth: "1.5" }),
193
+ /* @__PURE__ */ a("line", { x1: u - t / 4, x2: u + t / 4, y1: o(c.hi), y2: o(c.hi), stroke: "var(--c-text-2, #a3a3a3)", strokeWidth: "1.5" }),
194
+ /* @__PURE__ */ a("line", { x1: u - t / 4, x2: u + t / 4, y1: o(c.lo), y2: o(c.lo), stroke: "var(--c-text-2, #a3a3a3)", strokeWidth: "1.5" }),
195
+ /* @__PURE__ */ a("rect", { x: u - t / 2, y: o(c.q3), width: t, height: Math.max(1, o(c.q1) - o(c.q3)), rx: "4", fill: g, fillOpacity: "0.3", stroke: g, strokeWidth: "1.5" }),
196
+ /* @__PURE__ */ a("line", { x1: u - t / 2, x2: u + t / 2, y1: o(c.med), y2: o(c.med), stroke: "var(--c-text-1, #fff)", strokeWidth: "2.5" }),
197
+ c.outliers.map((f, A) => /* @__PURE__ */ a("circle", { cx: u, cy: o(f), r: "3.5", fill: "none", stroke: g, strokeWidth: "1.5" }, A)),
198
+ /* @__PURE__ */ a("text", { className: "cf-label", x: u, y: x - 10, textAnchor: "middle", children: c.label })
199
+ ] }, e);
200
+ })
201
+ ] }) }) });
202
+ }
203
+ function Sa({
204
+ title: $ = "Market opportunity",
205
+ subtitle: y = "Growth vs margin, bubble = revenue",
206
+ items: r = [
207
+ { label: "Analytics", x: 34, y: 62, z: 120, group: 0 },
208
+ { label: "Payments", x: 18, y: 41, z: 260, group: 0 },
209
+ { label: "CRM", x: 9, y: 55, z: 180, group: 1 },
210
+ { label: "Hosting", x: 22, y: 28, z: 90, group: 1 },
211
+ { label: "AI tools", x: 71, y: 48, z: 70, group: 2 },
212
+ { label: "Security", x: 27, y: 72, z: 140, group: 2 },
213
+ { label: "Email", x: 6, y: 66, z: 60, group: 1 },
214
+ { label: "Design", x: 41, y: 58, z: 85, group: 0 }
215
+ ],
216
+ groups: d = ["Core", "Mature", "Emerging"],
217
+ xLabel: s = "YoY growth (%)",
218
+ yLabel: g = "Gross margin (%)",
219
+ zLabel: M = "Revenue ($M)",
220
+ height: _ = 320,
221
+ colors: w,
222
+ variant: C = "glass",
223
+ size: S = "md",
224
+ className: x = ""
225
+ }) {
226
+ const i = _, l = { t: 20, r: 24, b: 40, l: 48 }, o = q(0, Math.max(...r.map((f) => f.x)), 5), h = q(0, Math.max(...r.map((f) => f.y)), 4), t = T(o[0], o[o.length - 1], l.l, 640 - l.r), n = T(h[0], h[h.length - 1], i - l.b, l.t), c = Math.max(...r.map((f) => f.z)) || 1, e = (f) => 6 + Math.sqrt(f / c) * 30, u = [...r].sort((f, A) => A.z - f.z);
227
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: C, size: S, className: x, legend: d.slice(0, 3).map((f, A) => ({ label: f, color: H(A, w) })), table: { headers: ["Item", "Group", s, g, M], rows: r.map((f) => [f.label, d[f.group ?? 0] ?? "—", f.x, f.y, f.z]) }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 640 ${i}`, role: "img", "aria-label": `${$}: bubble chart of ${r.length} items`, children: [
228
+ h.map((f, A) => /* @__PURE__ */ v("g", { children: [
229
+ /* @__PURE__ */ a("line", { className: "cf-grid", x1: l.l, x2: 640 - l.r, y1: n(f), y2: n(f) }),
230
+ /* @__PURE__ */ a("text", { className: "cf-label", x: l.l - 8, y: n(f) + 4, textAnchor: "end", children: X(f) })
231
+ ] }, A)),
232
+ o.map((f, A) => /* @__PURE__ */ a("text", { className: "cf-label", x: t(f), y: i - l.b + 16, textAnchor: "middle", children: X(f) }, A)),
233
+ /* @__PURE__ */ a("text", { className: "cf-label", x: (l.l + 640 - l.r) / 2, y: i - 4, textAnchor: "middle", children: s }),
234
+ /* @__PURE__ */ a("text", { className: "cf-label", transform: `translate(12 ${(l.t + i - l.b) / 2}) rotate(-90)`, textAnchor: "middle", children: g }),
235
+ u.map((f, A) => {
236
+ const N = H(f.group ?? 0, w), W = e(f.z);
237
+ return /* @__PURE__ */ v("g", { className: "cf-mark cf-dim", tabIndex: 0, role: "img", "aria-label": `${f.label}: ${s} ${f.x}, ${g} ${f.y}, ${M} ${f.z}`, "data-tip-title": f.label, "data-tip": `${N}::${d[f.group ?? 0] ?? ""}|${s}: ${f.x}|${g}: ${f.y}|${M}: ${f.z}`, children: [
238
+ /* @__PURE__ */ a("circle", { cx: t(f.x), cy: n(f.y), r: W, fill: N, fillOpacity: "0.55", stroke: N, strokeWidth: "1.5" }),
239
+ W > 18 && /* @__PURE__ */ a("text", { x: t(f.x), y: n(f.y) + 4, textAnchor: "middle", fill: "#fff", fontSize: "11", fontWeight: "600", children: f.label })
240
+ ] }, A);
241
+ })
242
+ ] }) }) });
243
+ }
244
+ function Q($) {
245
+ const y = {};
246
+ for (const r of String($ ?? "").split(";")) {
247
+ const d = r.indexOf(":");
248
+ if (d < 0) continue;
249
+ const s = r.slice(0, d).trim();
250
+ s && (y[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (g, M) => M.toUpperCase())] = r.slice(d + 1).trim());
251
+ }
252
+ return y;
253
+ }
254
+ function Aa({
255
+ title: $ = "Quarterly targets",
256
+ subtitle: y = "Measure vs target with performance bands",
257
+ metrics: r = [
258
+ { label: "Revenue ($k)", value: 270, target: 250, ranges: [150, 225, 300] },
259
+ { label: "Profit", value: 23, target: 26, ranges: [20, 25, 30], unit: "%" },
260
+ { label: "New customers", value: 1650, target: 2100, ranges: [1400, 2e3, 2500] },
261
+ { label: "NPS", value: 54, target: 50, ranges: [30, 50, 70] }
262
+ ],
263
+ color: d = "var(--c-text-1, #fff)",
264
+ variant: s = "glass",
265
+ size: g = "md",
266
+ className: M = ""
267
+ }) {
268
+ const _ = (w, C) => `${Math.min(100, w / C * 100)}%`;
269
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: s, size: g, className: M, table: { headers: ["Metric", "Value", "Target", "Status"], rows: r.map((w) => [w.label, `${w.value}${w.unit ?? ""}`, `${w.target}${w.unit ?? ""}`, w.value >= w.target ? "On target" : "Below target"]) }, children: /* @__PURE__ */ a("div", { className: "bc", "data-rk-d2b72d": "", children: r.map((w, C) => {
270
+ const S = w.ranges[2], x = w.value >= w.target;
271
+ return /* @__PURE__ */ v("div", { className: "bc__row cf-mark", tabIndex: 0, role: "meter", "aria-valuemin": 0, "aria-valuemax": S, "aria-valuenow": w.value, "aria-label": `${w.label}: ${w.value}${w.unit ?? ""} of target ${w.target}${w.unit ?? ""}`, "data-tip-title": w.label, "data-tip": `Value: ${w.value}${w.unit ?? ""}|Target: ${w.target}${w.unit ?? ""}|${x ? "var(--chart-pos)::On target" : "var(--chart-neg)::Below target"}`, "data-rk-d2b72d": "", children: [
272
+ /* @__PURE__ */ v("div", { className: "bc__meta", "data-rk-d2b72d": "", children: [
273
+ /* @__PURE__ */ a("span", { className: "bc__label", "data-rk-d2b72d": "", children: w.label }),
274
+ /* @__PURE__ */ v("span", { className: "bc__value", "data-rk-d2b72d": "", children: [
275
+ w.value,
276
+ w.unit ?? "",
277
+ /* @__PURE__ */ v("span", { className: `bc__status ${x ? "bc__status--ok" : "bc__status--bad"}`, "data-rk-d2b72d": "", children: [
278
+ /* @__PURE__ */ a("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", "aria-hidden": "true", "data-rk-d2b72d": "", children: x ? /* @__PURE__ */ a("path", { d: "M20 6 9 17l-5-5", "data-rk-d2b72d": "" }) : /* @__PURE__ */ v(I, { children: [
279
+ /* @__PURE__ */ a("circle", { cx: "12", cy: "12", r: "9", "data-rk-d2b72d": "" }),
280
+ /* @__PURE__ */ a("path", { d: "M12 8v4M12 16h.01", "data-rk-d2b72d": "" })
281
+ ] }) }),
282
+ x ? "On target" : "Below"
283
+ ] })
284
+ ] })
285
+ ] }),
286
+ /* @__PURE__ */ v("div", { className: "bc__track", "aria-hidden": "true", "data-rk-d2b72d": "", children: [
287
+ /* @__PURE__ */ a("span", { className: "bc__band", style: Q(`width:${_(w.ranges[2], S)}; opacity:0.07`), "data-rk-d2b72d": "" }),
288
+ /* @__PURE__ */ a("span", { className: "bc__band", style: Q(`width:${_(w.ranges[1], S)}; opacity:0.11`), "data-rk-d2b72d": "" }),
289
+ /* @__PURE__ */ a("span", { className: "bc__band", style: Q(`width:${_(w.ranges[0], S)}; opacity:0.16`), "data-rk-d2b72d": "" }),
290
+ /* @__PURE__ */ a("span", { className: "bc__measure", style: Q(`width:${_(w.value, S)}; background:${d}`), "data-rk-d2b72d": "" }),
291
+ /* @__PURE__ */ a("span", { className: "bc__target", style: Q(`left:${_(w.target, S)}`), "data-rk-d2b72d": "" })
292
+ ] })
293
+ ] }, C);
294
+ }) }) }) });
295
+ }
296
+ function Ca({
297
+ title: $ = "Framework popularity rank",
298
+ subtitle: y = "Developer survey position by year",
299
+ periods: r = ["2021", "2022", "2023", "2024", "2025", "2026"],
300
+ series: d = [
301
+ { name: "React", ranks: [5, 4, 3, 2, 1, 1] },
302
+ { name: "Next", ranks: [1, 1, 1, 1, 2, 2] },
303
+ { name: "Svelte", ranks: [3, 2, 2, 3, 3, 4] },
304
+ { name: "Nuxt", ranks: [2, 3, 4, 4, 5, 3] },
305
+ { name: "Remix", ranks: [4, 5, 5, 5, 4, 5] }
306
+ ],
307
+ colors: s,
308
+ variant: g = "glass",
309
+ size: M = "md",
310
+ className: _ = ""
311
+ }) {
312
+ const C = Math.max(...d.flatMap((t) => t.ranks)), S = 44, x = C * S + 36, p = { t: 30, l: 80, r: 80 }, i = r.length, l = (t) => p.l + t / Math.max(1, i - 1) * (640 - p.l - p.r), o = (t) => p.t + (t - 1) * S + 8, h = d.slice(0, 8).map((t, n) => ({
313
+ ...t,
314
+ color: H(n, s),
315
+ pts: t.ranks.map((c, e) => [l(e), o(c)])
316
+ }));
317
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: g, size: M, className: _, legend: h.map((t) => ({ label: t.name, color: t.color })), table: { headers: ["Name", ...r], rows: d.map((t) => [t.name, ...t.ranks.map((n) => `#${n}`)]) }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 640 ${x}`, role: "img", "aria-label": `${$}: bump chart of ranks over ${i} periods`, children: [
318
+ r.map((t, n) => /* @__PURE__ */ v("g", { children: [
319
+ /* @__PURE__ */ a("line", { className: "cf-grid", x1: l(n), x2: l(n), y1: p.t - 6, y2: x - 10 }),
320
+ /* @__PURE__ */ a("text", { className: "cf-label", x: l(n), y: 14, textAnchor: "middle", children: t })
321
+ ] }, n)),
322
+ h.map((t, n) => /* @__PURE__ */ v("g", { className: "cf-mark cf-dim", tabIndex: 0, role: "img", "aria-label": `${t.name}: ${t.ranks.map((c, e) => `${r[e]} #${c}`).join(", ")}`, "data-tip-title": t.name, "data-tip": t.ranks.map((c, e) => `${r[e]}: #${c}`).join("|"), children: [
323
+ /* @__PURE__ */ a("path", { d: ta(t.pts), fill: "none", stroke: t.color, strokeWidth: "3", strokeLinecap: "round" }),
324
+ /* @__PURE__ */ a("path", { d: ta(t.pts), fill: "none", stroke: "transparent", strokeWidth: "16" }),
325
+ t.pts.map(([c, e], u) => /* @__PURE__ */ v("g", { children: [
326
+ /* @__PURE__ */ a("circle", { cx: c, cy: e, r: "11", fill: t.color, stroke: "var(--chart-surface, #0d0d0f)", strokeWidth: "2" }),
327
+ /* @__PURE__ */ a("text", { x: c, y: e + 4, textAnchor: "middle", fontSize: "10", fontWeight: "700", fill: "#fff", children: t.ranks[u] })
328
+ ] }, u)),
329
+ /* @__PURE__ */ a("text", { className: "cf-label cf-label--strong", x: p.l - 18, y: t.pts[0][1] + 4, textAnchor: "end", children: t.name }),
330
+ /* @__PURE__ */ a("text", { className: "cf-label cf-label--strong", x: 640 - p.r + 18, y: t.pts[i - 1][1] + 4, children: t.name })
331
+ ] }, n))
332
+ ] }) }) });
333
+ }
334
+ const ua = (() => {
335
+ let $ = 182;
336
+ return Array.from({ length: 22 }, (y, r) => {
337
+ const d = Math.sin(r * 4.7) * 0.5 + Math.sin(r * 1.3) * 0.5, s = Math.abs(Math.sin(r * 9.1)), g = $, M = Math.round(($ + d * 6 + 0.6) * 100) / 100, _ = Math.round((Math.max(g, M) + s * 3 + 0.4) * 100) / 100, w = Math.round((Math.min(g, M) - (1 - s) * 3 - 0.4) * 100) / 100;
338
+ return $ = M, { label: `Oct ${r + 6}`, open: g, high: _, low: w, close: M };
339
+ });
340
+ })();
341
+ function Pa({
342
+ title: $ = "ACME / USD",
343
+ subtitle: y = "Daily candles",
344
+ candles: r = ua,
345
+ prefix: d = "$",
346
+ height: s = 300,
347
+ variant: g = "glass",
348
+ size: M = "md",
349
+ className: _ = ""
350
+ }) {
351
+ const C = s, S = { t: 12, r: 52, b: 28, l: 12 }, x = q(Math.min(...r.map((e) => e.low)), Math.max(...r.map((e) => e.high)), 5), p = T(x[0], x[x.length - 1], C - S.b, S.t), i = (640 - S.l - S.r) / r.length, l = Math.max(3, i * 0.6), o = (e) => `${d}${e.toFixed(2)}`, h = r[r.length - 1], t = r[0], n = (h.close - t.open) / t.open * 100, c = Math.ceil(r.length / 6);
352
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, value: o(h.close), delta: `${n >= 0 ? "+" : ""}${n.toFixed(2)}%`, deltaPositive: n >= 0, variant: g, size: M, className: _, legend: [{ label: "Up (hollow)", color: K }, { label: "Down (filled)", color: Z }], table: { headers: ["Date", "Open", "High", "Low", "Close"], rows: r.map((e) => [e.label, o(e.open), o(e.high), o(e.low), o(e.close)]) }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 640 ${C}`, role: "img", "aria-label": `${$}: candlestick chart, ${r.length} periods, ${n.toFixed(1)}% change`, children: [
353
+ x.map((e, u) => /* @__PURE__ */ v("g", { children: [
354
+ /* @__PURE__ */ a("line", { className: "cf-grid", x1: S.l, x2: 640 - S.r, y1: p(e), y2: p(e) }),
355
+ /* @__PURE__ */ a("text", { className: "cf-label", x: 640 - S.r + 8, y: p(e) + 4, children: o(e) })
356
+ ] }, u)),
357
+ r.map((e, u) => {
358
+ const f = S.l + u * i + i / 2, A = e.close >= e.open, N = A ? K : Z, W = p(Math.max(e.open, e.close)), b = Math.max(1.5, Math.abs(p(e.open) - p(e.close)));
359
+ return /* @__PURE__ */ v("g", { className: "cf-mark cf-dim", tabIndex: 0, role: "img", "aria-label": `${e.label}: open ${o(e.open)}, high ${o(e.high)}, low ${o(e.low)}, close ${o(e.close)}`, "data-tip-title": e.label, "data-tip": `${N}::${A ? "Up" : "Down"} ${((e.close - e.open) / e.open * 100).toFixed(2)}%|O ${o(e.open)} · H ${o(e.high)}|L ${o(e.low)} · C ${o(e.close)}`, children: [
360
+ /* @__PURE__ */ a("rect", { x: f - i / 2, y: S.t, width: i, height: C - S.t - S.b, fill: "transparent" }),
361
+ /* @__PURE__ */ a("line", { x1: f, x2: f, y1: p(e.high), y2: p(e.low), stroke: N, strokeWidth: "1.5" }),
362
+ /* @__PURE__ */ a("rect", { x: f - l / 2, y: W, width: l, height: b, rx: "1.5", fill: A ? "var(--chart-surface, #0d0d0f)" : N, stroke: N, strokeWidth: "1.5" }),
363
+ u % c === 0 && /* @__PURE__ */ a("text", { className: "cf-label", x: f, y: C - 8, textAnchor: "middle", children: e.label })
364
+ ] }, u);
365
+ }),
366
+ /* @__PURE__ */ a("line", { x1: S.l, x2: 640 - S.r, y1: p(h.close), y2: p(h.close), stroke: "var(--c-text-1, #fff)", strokeOpacity: "0.3", strokeDasharray: "3 4", "aria-hidden": "true" })
367
+ ] }) }) });
368
+ }
369
+ function Ia({
370
+ title: $ = "Budget variance by team",
371
+ subtitle: y = "Actual minus plan, Q3",
372
+ items: r = [
373
+ { label: "Engineering", value: -42 },
374
+ { label: "Marketing", value: 28 },
375
+ { label: "Sales", value: 64 },
376
+ { label: "Support", value: -12 },
377
+ { label: "Design", value: 9 },
378
+ { label: "Ops", value: -31 }
379
+ ],
380
+ positiveLabel: d = "Under budget",
381
+ negativeLabel: s = "Over budget",
382
+ prefix: g = "$",
383
+ suffix: M = "k",
384
+ positiveColor: _ = "var(--chart-1, #3987e5)",
385
+ negativeColor: w = "var(--chart-2, #d95926)",
386
+ variant: C = "glass",
387
+ size: S = "md",
388
+ className: x = ""
389
+ }) {
390
+ const l = { t: 8, r: 56, b: 26, l: 110 }, o = r.length * 34 + l.t + l.b, h = Math.max(...r.map((e) => Math.abs(e.value))), t = q(-h, h, 4), n = T(t[0], t[t.length - 1], l.l, 640 - l.r), c = (e) => `${e > 0 ? "+" : e < 0 ? "−" : ""}${E(Math.abs(e), g, M)}`;
391
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: C, size: S, className: x, legend: [{ label: d, color: _ }, { label: s, color: w }], table: { headers: ["Item", "Value"], rows: r.map((e) => [e.label, c(e.value)]) }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 640 ${o}`, role: "img", "aria-label": `${$}: diverging bar chart`, children: [
392
+ t.map((e, u) => /* @__PURE__ */ v("g", { children: [
393
+ /* @__PURE__ */ a("line", { className: e === 0 ? "cf-axis" : "cf-grid", x1: n(e), x2: n(e), y1: l.t, y2: o - l.b }),
394
+ /* @__PURE__ */ a("text", { className: "cf-label", x: n(e), y: o - 8, textAnchor: "middle", children: e === 0 ? "0" : c(e) })
395
+ ] }, u)),
396
+ r.map((e, u) => {
397
+ const f = l.t + u * 34 + 17, A = e.value >= 0, N = n(0), W = n(e.value), b = A ? _ : w, m = Math.abs(W - N);
398
+ return /* @__PURE__ */ v("g", { children: [
399
+ /* @__PURE__ */ a("text", { className: "cf-label", x: l.l - 10, y: f + 4, textAnchor: "end", children: e.label }),
400
+ /* @__PURE__ */ a("rect", { className: "cf-mark cf-dim", x: Math.min(N, W), y: f - 9, width: Math.max(1, m), height: "18", rx: "4", fill: b, tabIndex: 0, role: "img", "aria-label": `${e.label}: ${c(e.value)}`, "data-tip-title": e.label, "data-tip": `${b}::${A ? d : s}: ${c(e.value)}` }),
401
+ /* @__PURE__ */ a("text", { className: "cf-label cf-label--strong", x: A ? W + 6 : W - 6, y: f + 4, textAnchor: A ? "start" : "end", children: c(e.value) })
402
+ ] }, u);
403
+ })
404
+ ] }) }) });
405
+ }
406
+ function Ba({
407
+ title: $ = "Time to first value",
408
+ subtitle: y = "Minutes, before vs after onboarding redesign",
409
+ items: r = [
410
+ { label: "Solo devs", a: 34, b: 12 },
411
+ { label: "Startups", a: 41, b: 18 },
412
+ { label: "Agencies", a: 52, b: 26 },
413
+ { label: "Mid-market", a: 63, b: 37 },
414
+ { label: "Enterprise", a: 88, b: 54 }
415
+ ],
416
+ aLabel: d = "Before",
417
+ bLabel: s = "After",
418
+ prefix: g = "",
419
+ suffix: M = "m",
420
+ colors: _,
421
+ variant: w = "glass",
422
+ size: C = "md",
423
+ className: S = ""
424
+ }) {
425
+ const i = { t: 8, r: 24, b: 26, l: 110 }, l = r.length * 40 + i.t + i.b, o = q(0, Math.max(...r.flatMap((e) => [e.a, e.b])), 5), h = T(0, o[o.length - 1], i.l, 640 - i.r), t = H(0, _), n = H(1, _), c = (e) => E(e, g, M);
426
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: w, size: C, className: S, legend: [{ label: d, color: t }, { label: s, color: n }], table: { headers: ["Item", d, s, "Difference"], rows: r.map((e) => [e.label, c(e.a), c(e.b), c(e.b - e.a)]) }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 640 ${l}`, role: "img", "aria-label": `${$}: dumbbell chart comparing ${d} and ${s}`, children: [
427
+ o.map((e, u) => /* @__PURE__ */ v("g", { children: [
428
+ /* @__PURE__ */ a("line", { className: "cf-grid", x1: h(e), x2: h(e), y1: i.t, y2: l - i.b }),
429
+ /* @__PURE__ */ a("text", { className: "cf-label", x: h(e), y: l - 8, textAnchor: "middle", children: c(e) })
430
+ ] }, u)),
431
+ r.map((e, u) => {
432
+ const f = i.t + u * 40 + 20;
433
+ return /* @__PURE__ */ v("g", { className: "cf-mark cf-dim", tabIndex: 0, role: "img", "aria-label": `${e.label}: ${d} ${c(e.a)}, ${s} ${c(e.b)}`, "data-tip-title": e.label, "data-tip": `${t}::${d}: ${c(e.a)}|${n}::${s}: ${c(e.b)}|Δ ${c(e.b - e.a)}`, children: [
434
+ /* @__PURE__ */ a("rect", { x: i.l, y: f - 40 / 2, width: 640 - i.l - i.r, height: 40, fill: "transparent" }),
435
+ /* @__PURE__ */ a("text", { className: "cf-label", x: i.l - 10, y: f + 4, textAnchor: "end", children: e.label }),
436
+ /* @__PURE__ */ a("line", { x1: h(e.a), x2: h(e.b), y1: f, y2: f, stroke: "rgb(var(--ink-rgb, 255 255 255) / 0.22)", strokeWidth: "4", strokeLinecap: "round" }),
437
+ /* @__PURE__ */ a("circle", { cx: h(e.a), cy: f, r: "7", fill: t, stroke: "var(--chart-surface, #0d0d0f)", strokeWidth: "2" }),
438
+ /* @__PURE__ */ a("circle", { cx: h(e.b), cy: f, r: "7", fill: n, stroke: "var(--chart-surface, #0d0d0f)", strokeWidth: "2" })
439
+ ] }, u);
440
+ })
441
+ ] }) }) });
442
+ }
443
+ function Ra({
444
+ title: $ = "Q4 bookings goal",
445
+ subtitle: y = "Cumulative vs. linear pace",
446
+ periods: r = ["W1", "W2", "W3", "W4", "W5", "W6", "W7", "W8", "W9", "W10", "W11", "W12", "W13"],
447
+ values: d = [22, 31, 28, 40, 36, 44, 51, 39],
448
+ goal: s = 520,
449
+ prefix: g = "$",
450
+ suffix: M = "k",
451
+ height: _ = 270,
452
+ color: w = "var(--chart-1, #3987e5)",
453
+ variant: C = "glass",
454
+ size: S = "md",
455
+ className: x = ""
456
+ }) {
457
+ const i = _, l = { t: 14, r: 16, b: 28, l: 48 }, o = r.length, h = [];
458
+ d.forEach((m, k) => h.push((h[k - 1] ?? 0) + m));
459
+ const t = h[h.length - 1] ?? 0, n = s / o * d.length, c = t >= n, e = q(0, Math.max(s, t), 4), u = T(0, e[e.length - 1], i - l.b, l.t), f = (m) => l.l + (m + 1) / o * (640 - l.l - l.r), A = l.l, N = [[A, u(0)], ...h.map((m, k) => [f(k), u(m)])], W = (m) => E(m, g, M), b = t / s * 100;
460
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, value: `${W(t)} / ${W(s)}`, delta: `${c ? "Ahead of" : "Behind"} pace by ${W(Math.abs(t - n))}`, deltaPositive: c, variant: C, size: S, className: x, legend: [{ label: "Achieved", color: w }, { label: "Linear pace", color: "var(--c-text-3, #8a8a8a)" }], table: { headers: ["Period", "Amount", "Cumulative", "Pace"], rows: r.map((m, k) => [m, d[k] !== void 0 ? W(d[k]) : "—", h[k] !== void 0 ? W(h[k]) : "—", W(s / o * (k + 1))]) }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 640 ${i}`, role: "img", "aria-label": `${$}: ${W(t)} of ${W(s)} (${b.toFixed(0)}%), ${c ? "ahead of" : "behind"} pace`, children: [
461
+ e.map((m, k) => /* @__PURE__ */ v("g", { children: [
462
+ /* @__PURE__ */ a("line", { className: "cf-grid", x1: l.l, x2: 640 - l.r, y1: u(m), y2: u(m) }),
463
+ /* @__PURE__ */ a("text", { className: "cf-label", x: l.l - 8, y: u(m) + 4, textAnchor: "end", children: W(m) })
464
+ ] }, k)),
465
+ r.map((m, k) => k % 2 === 0 && /* @__PURE__ */ a("text", { className: "cf-label", x: f(k), y: i - 8, textAnchor: "middle", children: m })),
466
+ /* @__PURE__ */ a("line", { x1: l.l, x2: 640 - l.r, y1: u(s), y2: u(s), stroke: "var(--chart-4, #c98500)", strokeWidth: "1.5", "aria-hidden": "true" }),
467
+ /* @__PURE__ */ v("text", { className: "cf-label cf-label--strong", x: 640 - l.r, y: u(s) - 6, textAnchor: "end", children: [
468
+ "Goal ",
469
+ W(s)
470
+ ] }),
471
+ /* @__PURE__ */ a("line", { x1: A, y1: u(0), x2: f(o - 1), y2: u(s), stroke: "var(--c-text-3, #8a8a8a)", strokeWidth: "1.5", strokeDasharray: "5 5", "aria-hidden": "true" }),
472
+ /* @__PURE__ */ a("path", { d: oa(N, u(0), "linear"), fill: w, fillOpacity: "0.15", "aria-hidden": "true" }),
473
+ /* @__PURE__ */ a("path", { d: la(N), fill: "none", stroke: w, strokeWidth: "2.5", strokeLinejoin: "round", "aria-hidden": "true" }),
474
+ h.map((m, k) => /* @__PURE__ */ a("circle", { className: "cf-mark", cx: f(k), cy: u(m), r: k === h.length - 1 ? 6 : 3.5, fill: w, stroke: "var(--chart-surface, #0d0d0f)", strokeWidth: "2", tabIndex: 0, role: "img", "aria-label": `${r[k]}: cumulative ${W(m)}`, "data-tip-title": r[k], "data-tip": `${w}::Cumulative: ${W(m)}|This period: ${W(d[k])}|Pace: ${W(s / o * (k + 1))}` }, k))
475
+ ] }) }) });
476
+ }
477
+ const fa = Array.from({ length: 240 }, ($, y) => {
478
+ const r = Math.sin(y * 12.9898) * 43758.5453, d = Math.sin(y * 78.233) * 12345.678, s = r - Math.floor(r), g = d - Math.floor(d);
479
+ return Math.round((0.6 + Math.abs(Math.sqrt(-2 * Math.log(s + 1e-9)) * Math.cos(2 * Math.PI * g)) * 0.9) * 100) / 100;
480
+ });
481
+ function Oa({
482
+ title: $ = "Page load time",
483
+ subtitle: y = "240 sessions, seconds",
484
+ values: r = fa,
485
+ bins: d = 14,
486
+ showStats: s = !0,
487
+ unit: g = "s",
488
+ height: M = 260,
489
+ color: _ = "var(--chart-1, #3987e5)",
490
+ variant: w = "glass",
491
+ size: C = "md",
492
+ className: S = ""
493
+ }) {
494
+ const p = M, i = { t: 22, r: 12, b: 30, l: 40 }, l = [...r].sort((W, b) => W - b), o = l[0], h = l[l.length - 1], t = (h - o) / d || 1, n = Array.from({ length: d }, () => 0);
495
+ r.forEach((W) => {
496
+ n[Math.min(d - 1, Math.floor((W - o) / t))] += 1;
497
+ });
498
+ const c = q(0, Math.max(...n), 4), e = T(0, c[c.length - 1], p - i.b, i.t), u = T(o, h, i.l, 640 - i.r), f = G(r) / r.length, A = Y(l, 0.5), N = (W) => (o + W * t).toFixed(1);
499
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, value: `${A.toFixed(2)}${g}`, delta: "median", variant: w, size: C, className: S, table: { headers: ["Bucket", "Count"], rows: n.map((W, b) => [`${N(b)}–${N(b + 1)}${g}`, W]) }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 640 ${p}`, role: "img", "aria-label": `${$}: histogram of ${r.length} values, median ${A.toFixed(2)}${g}`, children: [
500
+ c.map((W, b) => /* @__PURE__ */ v("g", { children: [
501
+ /* @__PURE__ */ a("line", { className: W === 0 ? "cf-axis" : "cf-grid", x1: i.l, x2: 640 - i.r, y1: e(W), y2: e(W) }),
502
+ /* @__PURE__ */ a("text", { className: "cf-label", x: i.l - 8, y: e(W) + 4, textAnchor: "end", children: W })
503
+ ] }, b)),
504
+ n.map((W, b) => {
505
+ const m = u(o + b * t) + 1, k = u(o + (b + 1) * t) - u(o + b * t) - 2;
506
+ return /* @__PURE__ */ a("rect", { className: "cf-mark cf-dim", x: m, y: e(W), width: Math.max(1, k), height: Math.max(0, e(0) - e(W)), rx: "2", fill: _, tabIndex: 0, role: "img", "aria-label": `${N(b)} to ${N(b + 1)}${g}: ${W} values`, "data-tip-title": `${N(b)}–${N(b + 1)}${g}`, "data-tip": `${_}::${W} values · ${(W / r.length * 100).toFixed(1)}%` }, b);
507
+ }),
508
+ Array.from({ length: d + 1 }, (W, b) => b).filter((W) => W % 2 === 0).map((W, b) => /* @__PURE__ */ a("text", { className: "cf-label", x: u(o + W * t), y: p - 10, textAnchor: "middle", children: N(W) }, b)),
509
+ s && /* @__PURE__ */ v("g", { "aria-hidden": "true", children: [
510
+ /* @__PURE__ */ a("line", { x1: u(A), x2: u(A), y1: i.t - 6, y2: p - i.b, stroke: "var(--c-text-1, #fff)", strokeWidth: "1.5" }),
511
+ /* @__PURE__ */ a("text", { className: "cf-label cf-label--strong", x: u(A) + 5, y: i.t, children: "Median" }),
512
+ /* @__PURE__ */ a("line", { x1: u(f), x2: u(f), y1: i.t + 10, y2: p - i.b, stroke: "var(--chart-2, #d95926)", strokeWidth: "1.5" }),
513
+ /* @__PURE__ */ v("text", { className: "cf-label", x: u(f) + 5, y: i.t + 16, children: [
514
+ "Mean ",
515
+ f.toFixed(2),
516
+ g
517
+ ] })
518
+ ] })
519
+ ] }) }) });
520
+ }
521
+ function Fa({
522
+ title: $ = "Overview",
523
+ metrics: y = [
524
+ { label: "Revenue", value: "$128.4k", change: 9.2, trend: [80, 84, 90, 88, 96, 102, 110, 118, 128] },
525
+ { label: "Active users", value: "24,812", change: 4.1, trend: [20, 21, 21.5, 22, 22.8, 23.1, 23.9, 24.2, 24.8] },
526
+ { label: "Churn", value: "2.3%", change: -0.6, invert: !0, trend: [3.1, 3, 2.9, 2.8, 2.7, 2.6, 2.5, 2.4, 2.3] },
527
+ { label: "Avg. response", value: "182ms", change: 7.8, invert: !0, trend: [150, 160, 158, 170, 165, 175, 172, 180, 182] }
528
+ ],
529
+ period: r = "vs previous 30 days",
530
+ variant: d = "glass",
531
+ size: s = "md",
532
+ className: g = ""
533
+ }) {
534
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ v("section", { className: `kg ${g}`, "aria-label": $, "data-rk-1cf6fc": "", children: [
535
+ $ && /* @__PURE__ */ a("h2", { className: "kg__title", "data-rk-1cf6fc": "", children: $ }),
536
+ /* @__PURE__ */ a("div", { className: "kg__grid", "data-rk-1cf6fc": "", children: y.map((M, _) => /* @__PURE__ */ a(da, { label: M.label, value: M.value, change: M.change, trend: M.trend, invert: M.invert, period: r, variant: d, size: s }, _)) })
537
+ ] }) });
538
+ }
539
+ function Ha({
540
+ title: $ = "Lighthouse performance",
541
+ subtitle: y = "Score per page template",
542
+ items: r = [
543
+ { label: "Home", value: 98 },
544
+ { label: "Docs", value: 96 },
545
+ { label: "Blog", value: 91 },
546
+ { label: "Pricing", value: 88 },
547
+ { label: "Dashboard", value: 74 },
548
+ { label: "Checkout", value: 81 },
549
+ { label: "Search", value: 69 }
550
+ ],
551
+ target: d = 90,
552
+ targetLabel: s = "Goal",
553
+ prefix: g = "",
554
+ suffix: M = "",
555
+ height: _ = 270,
556
+ color: w = "var(--chart-1, #3987e5)",
557
+ variant: C = "glass",
558
+ size: S = "md",
559
+ className: x = ""
560
+ }) {
561
+ const i = _, l = { t: 16, r: 12, b: 30, l: 40 }, o = q(0, Math.max(...r.map((c) => c.value), d ?? 0), 4), h = T(0, o[o.length - 1], i - l.b, l.t), t = (640 - l.l - l.r) / r.length, n = (c) => E(c, g, M);
562
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: C, size: S, className: x, table: { headers: ["Item", "Value", s], rows: r.map((c) => [c.label, n(c.value), d !== void 0 ? c.value >= d ? "Met" : "Below" : "—"]) }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 640 ${i}`, role: "img", "aria-label": `${$}: lollipop chart`, children: [
563
+ o.map((c, e) => /* @__PURE__ */ v("g", { children: [
564
+ /* @__PURE__ */ a("line", { className: c === 0 ? "cf-axis" : "cf-grid", x1: l.l, x2: 640 - l.r, y1: h(c), y2: h(c) }),
565
+ /* @__PURE__ */ a("text", { className: "cf-label", x: l.l - 8, y: h(c) + 4, textAnchor: "end", children: n(c) })
566
+ ] }, e)),
567
+ d !== void 0 && /* @__PURE__ */ v("g", { "aria-hidden": "true", children: [
568
+ /* @__PURE__ */ a("line", { x1: l.l, x2: 640 - l.r, y1: h(d), y2: h(d), stroke: "var(--c-text-1, #fff)", strokeOpacity: "0.55", strokeWidth: "1", strokeDasharray: "4 4" }),
569
+ /* @__PURE__ */ v("text", { className: "cf-label", x: 640 - l.r, y: h(d) - 6, textAnchor: "end", children: [
570
+ s,
571
+ " ",
572
+ n(d)
573
+ ] })
574
+ ] }),
575
+ r.map((c, e) => {
576
+ const u = l.l + e * t + t / 2, f = d !== void 0 && d > c.value;
577
+ return /* @__PURE__ */ v("g", { className: "cf-mark cf-dim", tabIndex: 0, role: "img", "aria-label": `${c.label}: ${n(c.value)}${f ? ", below goal" : ""}`, "data-tip-title": c.label, "data-tip": `${w}::${n(c.value)}${d !== void 0 ? `|${f ? "Below" : "Meets"} ${s.toLowerCase()}` : ""}`, children: [
578
+ /* @__PURE__ */ a("line", { x1: u, x2: u, y1: h(0), y2: h(c.value), stroke: w, strokeWidth: "2", strokeOpacity: f ? 0.5 : 1 }),
579
+ /* @__PURE__ */ a("circle", { cx: u, cy: h(c.value), r: "7", fill: f ? "var(--chart-surface, #0d0d0f)" : w, stroke: w, strokeWidth: "2.5" }),
580
+ /* @__PURE__ */ a("rect", { x: u - t / 2, y: l.t, width: t, height: i - l.t - l.b, fill: "transparent" }),
581
+ /* @__PURE__ */ a("text", { className: "cf-label", x: u, y: i - 10, textAnchor: "middle", children: c.label })
582
+ ] }, e);
583
+ })
584
+ ] }) }) });
585
+ }
586
+ function pa($) {
587
+ const y = {};
588
+ for (const r of String($ ?? "").split(";")) {
589
+ const d = r.indexOf(":");
590
+ if (d < 0) continue;
591
+ const s = r.slice(0, d).trim();
592
+ s && (y[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (g, M) => M.toUpperCase())] = r.slice(d + 1).trim());
593
+ }
594
+ return y;
595
+ }
596
+ function Ta({
597
+ title: $ = "CPU load",
598
+ subtitle: y = "Cluster average, live",
599
+ value: r = 68,
600
+ min: d = 0,
601
+ max: s = 100,
602
+ zones: g = [
603
+ { to: 60, label: "Healthy", tone: "good" },
604
+ { to: 85, label: "Elevated", tone: "warn" },
605
+ { to: 100, label: "Critical", tone: "bad" }
606
+ ],
607
+ unit: M = "%",
608
+ variant: _ = "glass",
609
+ size: w = "md",
610
+ className: C = ""
611
+ }) {
612
+ const S = { good: "var(--chart-pos, #34c38f)", warn: "var(--chart-4, #c98500)", bad: "var(--chart-neg, #f06a6a)" }, x = 280, p = 170, i = x / 2, l = 150, o = 112, h = Math.PI * 4 / 3, t = -h / 2, n = (W) => t + (Math.min(s, Math.max(d, W)) - d) / (s - d || 1) * h;
613
+ let c = d;
614
+ const e = g.map((W) => {
615
+ const b = J(i, l - 20, o, n(c) + 0.015, n(W.to) - 0.015);
616
+ return c = W.to, { ...W, d: b };
617
+ }), u = g.find((W) => r <= W.to) ?? g[g.length - 1], [f, A] = j(i, l - 20, o - 24, n(r)), N = [d, d + (s - d) / 2, s];
618
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: _, size: w, className: C, table: { headers: ["Zone", "Up to"], rows: g.map((W) => [W.label, `${W.to}${M}`]) }, children: /* @__PURE__ */ v("div", { className: "mg", role: "meter", "aria-valuemin": d, "aria-valuemax": s, "aria-valuenow": r, "aria-valuetext": `${r}${M}, ${u.label}`, "aria-label": $, "data-rk-fff4b2": "", children: [
619
+ /* @__PURE__ */ v("svg", { viewBox: `0 0 ${x} ${p}`, "aria-hidden": "true", "data-rk-fff4b2": "", children: [
620
+ e.map((W, b) => /* @__PURE__ */ a("path", { d: W.d, fill: "none", stroke: S[W.tone], strokeWidth: "14", strokeLinecap: "butt", opacity: W.label === u.label ? 1 : 0.3, "data-rk-fff4b2": "" }, b)),
621
+ N.map((W, b) => {
622
+ const [m, k] = j(i, l - 20, o + 18, n(W));
623
+ return /* @__PURE__ */ a("text", { className: "cf-label", x: m, y: k + 4, textAnchor: "middle", "data-rk-fff4b2": "", children: W }, b);
624
+ }),
625
+ /* @__PURE__ */ a("line", { className: "mg__needle", x1: i, y1: l - 20, x2: f, y2: A, stroke: "var(--c-text-1, #fff)", strokeWidth: "3", strokeLinecap: "round", "data-rk-fff4b2": "" }),
626
+ /* @__PURE__ */ a("circle", { cx: i, cy: l - 20, r: "7", fill: "var(--c-text-1, #fff)", "data-rk-fff4b2": "" }),
627
+ /* @__PURE__ */ a("circle", { cx: i, cy: l - 20, r: "3", fill: "var(--chart-surface, #0d0d0f)", "data-rk-fff4b2": "" })
628
+ ] }),
629
+ /* @__PURE__ */ v("div", { className: "mg__readout", "data-rk-fff4b2": "", children: [
630
+ /* @__PURE__ */ v("span", { className: "mg__value", "data-rk-fff4b2": "", children: [
631
+ r,
632
+ /* @__PURE__ */ a("small", { "data-rk-fff4b2": "", children: M })
633
+ ] }),
634
+ /* @__PURE__ */ v("span", { className: "mg__zone", style: pa(`--mg-c:${S[u.tone]}`), "data-rk-fff4b2": "", children: [
635
+ /* @__PURE__ */ a("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", "aria-hidden": "true", "data-rk-fff4b2": "", children: u.tone === "good" ? /* @__PURE__ */ a("path", { d: "M20 6 9 17l-5-5", "data-rk-fff4b2": "" }) : /* @__PURE__ */ v(I, { children: [
636
+ /* @__PURE__ */ a("circle", { cx: "12", cy: "12", r: "9", "data-rk-fff4b2": "" }),
637
+ /* @__PURE__ */ a("path", { d: "M12 8v4M12 16h.01", "data-rk-fff4b2": "" })
638
+ ] }) }),
639
+ u.label
640
+ ] })
641
+ ] })
642
+ ] }) }) });
643
+ }
644
+ function Da({
645
+ title: $ = "Orders by month",
646
+ subtitle: y = "Seasonality at a glance",
647
+ items: r = [
648
+ { label: "Jan", value: 320 },
649
+ { label: "Feb", value: 280 },
650
+ { label: "Mar", value: 360 },
651
+ { label: "Apr", value: 410 },
652
+ { label: "May", value: 470 },
653
+ { label: "Jun", value: 520 },
654
+ { label: "Jul", value: 490 },
655
+ { label: "Aug", value: 450 },
656
+ { label: "Sep", value: 430 },
657
+ { label: "Oct", value: 510 },
658
+ { label: "Nov", value: 690 },
659
+ { label: "Dec", value: 820 }
660
+ ],
661
+ color: d = "var(--chart-7, #9085e9)",
662
+ prefix: s = "",
663
+ suffix: g = "",
664
+ variant: M = "glass",
665
+ size: _ = "md",
666
+ className: w = ""
667
+ }) {
668
+ const p = Math.max(...r.map((t) => t.value)) || 1, i = Math.min(r.length, 12), l = Math.PI * 2 / i, o = [0.25, 0.5, 0.75, 1], h = (t) => E(t, s, g);
669
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: M, size: _, className: w, table: { headers: ["Item", "Value"], rows: r.map((t) => [t.label, h(t.value)]) }, children: /* @__PURE__ */ a("div", { className: "pa", "data-rk-5b5eb9": "", children: /* @__PURE__ */ v("svg", { viewBox: "0 0 320 320", role: "img", "aria-label": `${$}: polar area chart of ${i} categories`, "data-rk-5b5eb9": "", children: [
670
+ o.map((t, n) => /* @__PURE__ */ a("circle", { className: "cf-grid", cx: 160, cy: 160, r: 134 * Math.sqrt(t), fill: "none", "data-rk-5b5eb9": "" }, n)),
671
+ r.slice(0, i).map((t, n) => {
672
+ const c = 134 * Math.sqrt(t.value / p), e = n * l + 0.012, u = (n + 1) * l - 0.012, [f, A] = j(160, 160, 148, n * l + l / 2), N = t.value === p;
673
+ return /* @__PURE__ */ v("g", { "data-rk-5b5eb9": "", children: [
674
+ /* @__PURE__ */ a("path", { className: "cf-mark cf-dim", d: ra(160, 160, c, 0, e, u), fill: d, fillOpacity: 0.35 + 0.6 * (t.value / p), tabIndex: 0, role: "img", "aria-label": `${t.label}: ${h(t.value)}`, "data-tip-title": t.label, "data-tip": `${d}::${h(t.value)}`, "data-rk-5b5eb9": "" }),
675
+ /* @__PURE__ */ a("text", { className: N ? "cf-label cf-label--strong" : "cf-label", x: f, y: A + 4, textAnchor: "middle", "data-rk-5b5eb9": "", children: t.label })
676
+ ] }, n);
677
+ })
678
+ ] }) }) }) });
679
+ }
680
+ function na($) {
681
+ const y = {};
682
+ for (const r of String($ ?? "").split(";")) {
683
+ const d = r.indexOf(":");
684
+ if (d < 0) continue;
685
+ const s = r.slice(0, d).trim();
686
+ s && (y[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (g, M) => M.toUpperCase())] = r.slice(d + 1).trim());
687
+ }
688
+ return y;
689
+ }
690
+ function qa({
691
+ title: $ = "Audience by age",
692
+ subtitle: y = "Share of users per age band",
693
+ bands: r = ["65+", "55–64", "45–54", "35–44", "25–34", "18–24"],
694
+ left: d = [2.1, 4.8, 8.2, 12.6, 15.4, 7.9],
695
+ right: s = [1.7, 4.1, 7.4, 11.8, 16.2, 8.8],
696
+ leftLabel: g = "Women",
697
+ rightLabel: M = "Men",
698
+ prefix: _ = "",
699
+ suffix: w = "%",
700
+ colors: C,
701
+ variant: S = "glass",
702
+ size: x = "md",
703
+ className: p = ""
704
+ }) {
705
+ const i = Math.max(...d, ...s) || 1, l = H(0, C), o = H(1, C), h = (t) => E(t, _, w);
706
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: S, size: x, className: p, legend: [{ label: g, color: l }, { label: M, color: o }], table: { headers: ["Band", g, M], rows: r.map((t, n) => [t, h(d[n]), h(s[n])]) }, children: /* @__PURE__ */ a("div", { className: "pp", role: "list", "data-rk-b22a54": "", children: r.map((t, n) => /* @__PURE__ */ v("div", { className: "pp__row", role: "listitem", "data-rk-b22a54": "", children: [
707
+ /* @__PURE__ */ v("div", { className: "pp__side pp__side--l", "data-rk-b22a54": "", children: [
708
+ /* @__PURE__ */ a("span", { className: "pp__val", "data-rk-b22a54": "", children: h(d[n]) }),
709
+ /* @__PURE__ */ a("span", { className: "pp__bar cf-mark", tabIndex: 0, style: na(`width:${d[n] / i * 100}%; background:${l}`), "aria-label": `${t}, ${g}: ${h(d[n])}`, "data-tip-title": `${t} · ${g}`, "data-tip": `${l}::${h(d[n])}`, "data-rk-b22a54": "" })
710
+ ] }),
711
+ /* @__PURE__ */ a("span", { className: "pp__band", "data-rk-b22a54": "", children: t }),
712
+ /* @__PURE__ */ v("div", { className: "pp__side pp__side--r", "data-rk-b22a54": "", children: [
713
+ /* @__PURE__ */ a("span", { className: "pp__bar cf-mark", tabIndex: 0, style: na(`width:${s[n] / i * 100}%; background:${o}`), "aria-label": `${t}, ${M}: ${h(s[n])}`, "data-tip-title": `${t} · ${M}`, "data-tip": `${o}::${h(s[n])}`, "data-rk-b22a54": "" }),
714
+ /* @__PURE__ */ a("span", { className: "pp__val", "data-rk-b22a54": "", children: h(s[n]) })
715
+ ] })
716
+ ] }, n)) }) }) });
717
+ }
718
+ const xa = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22], ga = [0.1, 0.05, 0.02, 0.1, 0.6, 0.95, 0.8, 1, 0.9, 0.55, 0.35, 0.2], $a = [0.9, 1, 1, 0.95, 0.75, 0.25, 0.2];
719
+ function Ea({
720
+ title: $ = "Deploy activity",
721
+ subtitle: y = "Deploys by weekday and hour (UTC)",
722
+ days: r = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
723
+ hours: d = xa,
724
+ values: s = $a.map((S, x) => ga.map((p, i) => Math.round(S * p * 42 + (x * 7 + i * 3) % 5))),
725
+ unit: g = "deploys",
726
+ color: M = "var(--chart-3, #199e70)",
727
+ variant: _ = "glass",
728
+ size: w = "md",
729
+ className: C = ""
730
+ }) {
731
+ const x = { t: 10, r: 10, b: 26, l: 46 }, p = d.length, i = (640 - x.l - x.r) / p, l = 34, o = x.t + r.length * l + x.b, h = Math.max(...s.flat()) || 1, t = Math.min(i, l) / 2 - 2, n = (e) => `${String(e).padStart(2, "0")}:00`, c = s.flat().reduce((e, u) => e + u, 0);
732
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, value: c.toLocaleString("en-US"), delta: `total ${g}`, variant: _, size: w, className: C, table: { headers: ["Day", ...d.map(n)], rows: r.map((e, u) => [e, ...s[u]]) }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 640 ${o}`, role: "img", "aria-label": `${$}: punch card of ${g} by day and hour`, children: [
733
+ r.map((e, u) => /* @__PURE__ */ v("g", { children: [
734
+ /* @__PURE__ */ a("line", { className: "cf-grid", x1: x.l, x2: 640 - x.r, y1: x.t + u * l + l / 2, y2: x.t + u * l + l / 2 }),
735
+ /* @__PURE__ */ a("text", { className: "cf-label", x: x.l - 10, y: x.t + u * l + l / 2 + 4, textAnchor: "end", children: e })
736
+ ] }, u)),
737
+ d.map((e, u) => /* @__PURE__ */ a("text", { className: "cf-label", x: x.l + u * i + i / 2, y: o - 8, textAnchor: "middle", children: n(e) }, u)),
738
+ r.map((e, u) => d.map((f, A) => {
739
+ var k;
740
+ const N = ((k = s[u]) == null ? void 0 : k[A]) ?? 0, W = N ? 2 + Math.sqrt(N / h) * (t - 2) : 0, b = x.l + A * i + i / 2, m = x.t + u * l + l / 2;
741
+ return /* @__PURE__ */ v("g", { className: "cf-mark cf-dim", tabIndex: 0, role: "img", "aria-label": `${e} ${n(f)}: ${N} ${g}`, "data-tip-title": `${e} · ${n(f)}`, "data-tip": `${M}::${N} ${g}`, children: [
742
+ /* @__PURE__ */ a("rect", { x: b - i / 2, y: m - l / 2, width: i, height: l, fill: "transparent" }),
743
+ W > 0 && /* @__PURE__ */ a("circle", { cx: b, cy: m, r: W, fill: M, fillOpacity: 0.35 + N / h * 0.65 })
744
+ ] }, A);
745
+ }))
746
+ ] }) }) });
747
+ }
748
+ function Ua({
749
+ title: $ = "Framework comparison",
750
+ subtitle: y = "Scored 0–10 by the team",
751
+ axes: r = ["Performance", "DX", "Ecosystem", "SEO", "Learning curve", "Flexibility"],
752
+ series: d = [
753
+ { name: "React", data: [9.5, 8.5, 7, 9.5, 8.5, 8] },
754
+ { name: "Next", data: [7.5, 8, 9.5, 8, 6.5, 8.5] }
755
+ ],
756
+ max: s = 10,
757
+ colors: g,
758
+ variant: M = "glass",
759
+ size: _ = "md",
760
+ className: w = ""
761
+ }) {
762
+ const p = r.length, i = (h) => h / p * Math.PI * 2, l = [0.25, 0.5, 0.75, 1], o = d.slice(0, 3).map((h, t) => {
763
+ const n = h.data.map((c, e) => j(170, 170, 116 * Math.max(0, Math.min(1, c / s)), i(e)));
764
+ return { ...h, pts: n, d: `${la(n)} Z`, color: H(t, g) };
765
+ });
766
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: M, size: _, className: w, legend: o.map((h) => ({ label: h.name, color: h.color })), table: { headers: ["Axis", ...d.map((h) => h.name)], rows: r.map((h, t) => [h, ...d.map((n) => n.data[t])]) }, children: /* @__PURE__ */ a("div", { className: "rd", "data-rk-b100db": "", children: /* @__PURE__ */ v("svg", { viewBox: "0 0 340 340", role: "img", "aria-label": `${$}: radar chart across ${p} axes`, "data-rk-b100db": "", children: [
767
+ l.map((h, t) => /* @__PURE__ */ a("path", { className: "cf-grid", fill: "none", d: `${la(r.map((n, c) => j(170, 170, 116 * h, i(c))))} Z`, "data-rk-b100db": "" }, t)),
768
+ r.map((h, t) => {
769
+ const [n, c] = j(170, 170, 116, i(t)), [e, u] = j(170, 170, 134, i(t)), f = 4 > Math.abs(e - 170) ? "middle" : e > 170 ? "start" : "end";
770
+ return /* @__PURE__ */ v("g", { "data-rk-b100db": "", children: [
771
+ /* @__PURE__ */ a("line", { className: "cf-grid", x1: 170, y1: 170, x2: n, y2: c, "data-rk-b100db": "" }),
772
+ /* @__PURE__ */ a("text", { className: "cf-label", x: e, y: u + 4, textAnchor: f, "data-rk-b100db": "", children: h })
773
+ ] }, t);
774
+ }),
775
+ o.map((h, t) => /* @__PURE__ */ a("path", { d: h.d, fill: h.color, fillOpacity: "0.18", stroke: h.color, strokeWidth: "2", strokeLinejoin: "round", "aria-hidden": "true", "data-rk-b100db": "" }, t)),
776
+ o.map((h) => h.pts.map(([t, n], c) => /* @__PURE__ */ a("circle", { className: "cf-mark", cx: t, cy: n, r: "4.5", fill: h.color, stroke: "var(--chart-surface, #0d0d0f)", strokeWidth: "2", tabIndex: 0, role: "img", "aria-label": `${h.name}, ${r[c]}: ${h.data[c]} of ${s}`, "data-tip-title": r[c], "data-tip": o.map((e) => `${e.color}::${e.name}: ${e.data[c]}`).join("|"), "data-rk-b100db": "" }, c)))
777
+ ] }) }) }) });
778
+ }
779
+ function va($) {
780
+ const y = {};
781
+ for (const r of String($ ?? "").split(";")) {
782
+ const d = r.indexOf(":");
783
+ if (d < 0) continue;
784
+ const s = r.slice(0, d).trim();
785
+ s && (y[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (g, M) => M.toUpperCase())] = r.slice(d + 1).trim());
786
+ }
787
+ return y;
788
+ }
789
+ function Ga({
790
+ title: $ = "Feature adoption",
791
+ subtitle: y = "Share of active workspaces",
792
+ items: r = [
793
+ { label: "Dashboards", value: 86 },
794
+ { label: "Alerts", value: 64 },
795
+ { label: "API", value: 47 },
796
+ { label: "SSO", value: 29 }
797
+ ],
798
+ sweep: d = 270,
799
+ colors: s,
800
+ variant: g = "glass",
801
+ size: M = "md",
802
+ className: _ = ""
803
+ }) {
804
+ const l = Math.min(360, Math.max(180, d)) * Math.PI / 180, o = -l / 2 - 0, h = r.slice(0, 8).map((t, n) => {
805
+ const c = 136 - n * 24, e = Math.max(0, Math.min(1, t.value / (t.max ?? 100)));
806
+ return { ...t, r: c, pct: e, color: H(n, s) };
807
+ });
808
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: g, size: M, className: _, table: { headers: ["Item", "Value"], rows: r.map((t) => [t.label, `${t.value}${t.max ? ` / ${t.max}` : "%"}`]) }, children: /* @__PURE__ */ v("div", { className: "rb", "data-rk-fa001b": "", children: [
809
+ /* @__PURE__ */ a("svg", { viewBox: "0 0 300 300", role: "img", "aria-label": `${$}: radial bar chart`, "data-rk-fa001b": "", children: h.map((t, n) => /* @__PURE__ */ v("g", { className: "cf-mark cf-dim", tabIndex: 0, role: "img", "aria-label": `${t.label}: ${Math.round(t.pct * 100)}%`, "data-tip-title": t.label, "data-tip": `${t.color}::${t.value}${t.max ? ` / ${t.max}` : "%"}`, "data-rk-fa001b": "", children: [
810
+ /* @__PURE__ */ a("path", { d: J(150, 150, t.r, o, o + l), fill: "none", stroke: "rgb(var(--ink-rgb, 255 255 255) / 0.06)", strokeWidth: 16, strokeLinecap: "round", "data-rk-fa001b": "" }),
811
+ t.pct > 0 && /* @__PURE__ */ a("path", { className: "rb__arc", d: J(150, 150, t.r, o, o + l * t.pct), fill: "none", stroke: t.color, strokeWidth: 16, strokeLinecap: "round", "data-rk-fa001b": "" })
812
+ ] }, n)) }),
813
+ /* @__PURE__ */ a("ul", { className: "rb__labels", "aria-hidden": "true", "data-rk-fa001b": "", children: h.map((t, n) => /* @__PURE__ */ v("li", { "data-rk-fa001b": "", children: [
814
+ /* @__PURE__ */ a("span", { style: va(`background:${t.color}`), "data-rk-fa001b": "" }),
815
+ t.label,
816
+ /* @__PURE__ */ v("b", { "data-rk-fa001b": "", children: [
817
+ Math.round(t.pct * 100),
818
+ "%"
819
+ ] })
820
+ ] }, n)) })
821
+ ] }) }) });
822
+ }
823
+ function ja({
824
+ title: $ = "API latency",
825
+ subtitle: y = "p10–p90 band with median, last 10 days",
826
+ categories: r = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue", "Wed"],
827
+ min: d = [42, 45, 40, 48, 52, 38, 36, 44, 47, 41],
828
+ max: s = [120, 135, 118, 160, 172, 98, 90, 126, 140, 115],
829
+ avg: g = [74, 80, 70, 92, 101, 62, 58, 78, 86, 72],
830
+ bandLabel: M = "p10–p90",
831
+ lineLabel: _ = "Median",
832
+ prefix: w = "",
833
+ suffix: C = "ms",
834
+ height: S = 260,
835
+ color: x = "var(--chart-1, #3987e5)",
836
+ variant: p = "glass",
837
+ size: i = "md",
838
+ className: l = ""
839
+ }) {
840
+ const h = S, t = { t: 12, r: 16, b: 28, l: 48 }, n = r.length, c = q(Math.min(...d), Math.max(...s), 4), e = T(c[0], c[c.length - 1], h - t.b, t.t), u = (m) => t.l + (n <= 1 ? 0 : m / (n - 1) * (640 - t.l - t.r)), f = n > 1 ? (640 - t.l - t.r) / (n - 1) : 640, A = s.map((m, k) => [u(k), e(m)]), N = d.map((m, k) => [u(k), e(m)]), W = g.map((m, k) => [u(k), e(m)]), b = (m) => E(m, w, C);
841
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: p, size: i, className: l, legend: [{ label: M, color: `color-mix(in srgb, ${x} 35%, transparent)` }, { label: _, color: x }], table: {
842
+ headers: ["Period", "Min", _, "Max"],
843
+ rows: r.map((m, k) => [m, b(d[k]), b(g[k]), b(s[k])])
844
+ }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 640 ${h}`, role: "img", "aria-label": `${$}: range band chart`, children: [
845
+ c.map((m, k) => /* @__PURE__ */ v("g", { children: [
846
+ /* @__PURE__ */ a("line", { className: "cf-grid", x1: t.l, x2: 640 - t.r, y1: e(m), y2: e(m) }),
847
+ /* @__PURE__ */ a("text", { className: "cf-label", x: t.l - 8, y: e(m) + 4, textAnchor: "end", children: b(m) })
848
+ ] }, k)),
849
+ r.map((m, k) => /* @__PURE__ */ a("text", { className: "cf-label", x: u(k), y: h - 8, textAnchor: "middle", children: m }, k)),
850
+ /* @__PURE__ */ a("path", { d: ia(A, N), fill: x, fillOpacity: "0.18", "aria-hidden": "true" }),
851
+ /* @__PURE__ */ a("path", { d: ta(W), fill: "none", stroke: x, strokeWidth: "2", "aria-hidden": "true" }),
852
+ r.map((m, k) => /* @__PURE__ */ v("g", { className: "cf-hit-group", children: [
853
+ /* @__PURE__ */ a("line", { className: "cf-cross", x1: u(k), x2: u(k), y1: e(s[k]), y2: e(d[k]) }),
854
+ /* @__PURE__ */ a("circle", { className: "cf-cross", cx: u(k), cy: e(g[k]), r: "4.5", fill: x, stroke: "#fff", strokeWidth: "1.5" }),
855
+ /* @__PURE__ */ a("rect", { className: "cf-hit", x: u(k) - f / 2, y: t.t, width: f, height: h - t.t - t.b, tabIndex: 0, role: "img", "aria-label": `${m}: min ${b(d[k])}, ${_} ${b(g[k])}, max ${b(s[k])}`, "data-tip-title": m, "data-tip": `Max: ${b(s[k])}|${x}::${_}: ${b(g[k])}|Min: ${b(d[k])}` })
856
+ ] }, k))
857
+ ] }) }) });
858
+ }
859
+ function ka($) {
860
+ const y = {};
861
+ for (const r of String($ ?? "").split(";")) {
862
+ const d = r.indexOf(":");
863
+ if (d < 0) continue;
864
+ const s = r.slice(0, d).trim();
865
+ s && (y[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (g, M) => M.toUpperCase())] = r.slice(d + 1).trim());
866
+ }
867
+ return y;
868
+ }
869
+ function za({
870
+ title: $ = "User retention",
871
+ subtitle: y = "Monthly cohorts, % still active",
872
+ cohorts: r = [
873
+ { cohort: "May", size: 1240, retention: [100, 62, 48, 41, 37, 35] },
874
+ { cohort: "Jun", size: 1410, retention: [100, 65, 51, 44, 40] },
875
+ { cohort: "Jul", size: 1580, retention: [100, 68, 55, 47] },
876
+ { cohort: "Aug", size: 1720, retention: [100, 71, 57] },
877
+ { cohort: "Sep", size: 1890, retention: [100, 73] },
878
+ { cohort: "Oct", size: 2050, retention: [100] }
879
+ ],
880
+ periodLabel: d = "M",
881
+ color: s = "var(--chart-3, #199e70)",
882
+ variant: g = "glass",
883
+ size: M = "md",
884
+ className: _ = ""
885
+ }) {
886
+ const w = Math.max(...r.map((p) => p.retention.length)), C = Array.from({ length: w }, (p, i) => `${d}${i}`), S = (p) => `color-mix(in srgb, ${s} ${Math.round(10 + p / 100 * 85)}%, #141416)`, x = C.map((p, i) => {
887
+ const l = r.map((o) => o.retention[i]).filter((o) => o !== void 0);
888
+ return l.length ? l.reduce((o, h) => o + h, 0) / l.length : 0;
889
+ });
890
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: g, size: M, className: _, children: /* @__PURE__ */ a("div", { className: "rc", "data-rk-14b914": "", children: /* @__PURE__ */ v("table", { className: "rc__table", "data-rk-14b914": "", children: [
891
+ /* @__PURE__ */ v("caption", { className: "sr-only", "data-rk-14b914": "", children: [
892
+ $,
893
+ ": retention percentage by cohort and period"
894
+ ] }),
895
+ /* @__PURE__ */ a("thead", { "data-rk-14b914": "", children: /* @__PURE__ */ v("tr", { "data-rk-14b914": "", children: [
896
+ /* @__PURE__ */ a("th", { scope: "col", "data-rk-14b914": "", children: "Cohort" }),
897
+ /* @__PURE__ */ a("th", { scope: "col", "data-rk-14b914": "", children: "Users" }),
898
+ C.map((p, i) => /* @__PURE__ */ a("th", { scope: "col", "data-rk-14b914": "", children: p }, i))
899
+ ] }) }),
900
+ /* @__PURE__ */ a("tbody", { "data-rk-14b914": "", children: r.map((p, i) => /* @__PURE__ */ v("tr", { "data-rk-14b914": "", children: [
901
+ /* @__PURE__ */ a("th", { scope: "row", "data-rk-14b914": "", children: p.cohort }),
902
+ /* @__PURE__ */ a("td", { className: "rc__size", "data-rk-14b914": "", children: p.size.toLocaleString("en-US") }),
903
+ C.map((l, o) => {
904
+ const h = p.retention[o];
905
+ return h === void 0 ? /* @__PURE__ */ a("td", { className: "rc__empty", "aria-label": "no data yet", "data-rk-14b914": "" }) : /* @__PURE__ */ v("td", { className: "rc__cell", style: ka(`background:${S(h)}`), "data-strong": h > 55 ? "" : void 0, "data-rk-14b914": "", children: [
906
+ h,
907
+ "%"
908
+ ] });
909
+ })
910
+ ] }, i)) }),
911
+ /* @__PURE__ */ a("tfoot", { "data-rk-14b914": "", children: /* @__PURE__ */ v("tr", { "data-rk-14b914": "", children: [
912
+ /* @__PURE__ */ a("th", { scope: "row", "data-rk-14b914": "", children: "Average" }),
913
+ /* @__PURE__ */ a("td", { "data-rk-14b914": "" }),
914
+ x.map((p, i) => /* @__PURE__ */ v("td", { className: "rc__avg", "data-rk-14b914": "", children: [
915
+ p.toFixed(0),
916
+ "%"
917
+ ] }, i))
918
+ ] }) })
919
+ ] }) }) }) });
920
+ }
921
+ function Va({
922
+ title: $ = "Where signups come from",
923
+ subtitle: y = "Acquisition channel → plan chosen",
924
+ flows: r = [
925
+ { source: "Organic", target: "Free", value: 820 },
926
+ { source: "Organic", target: "Pro", value: 310 },
927
+ { source: "Organic", target: "Team", value: 90 },
928
+ { source: "Paid ads", target: "Free", value: 410 },
929
+ { source: "Paid ads", target: "Pro", value: 160 },
930
+ { source: "Referral", target: "Pro", value: 220 },
931
+ { source: "Referral", target: "Team", value: 140 },
932
+ { source: "Partners", target: "Team", value: 120 },
933
+ { source: "Partners", target: "Enterprise", value: 60 }
934
+ ],
935
+ prefix: d = "",
936
+ suffix: s = "",
937
+ height: g = 320,
938
+ colors: M,
939
+ variant: _ = "glass",
940
+ size: w = "md",
941
+ className: C = ""
942
+ }) {
943
+ const x = g, p = 12, i = 14, l = 110, o = 530 - p, h = [...new Set(r.map((m) => m.source))], t = [...new Set(r.map((m) => m.target))], n = G(r.map((m) => m.value)) || 1, c = (m) => (x - i * (m - 1)) / n, e = Math.min(c(h.length), c(t.length)), u = (m, k) => {
944
+ const P = m.reduce((R, F) => R + G(r.filter((D) => D[k] === F).map((D) => D.value)) * e, 0) + i * (m.length - 1);
945
+ let B = (x - P) / 2;
946
+ return Object.fromEntries(m.map((R) => {
947
+ const F = G(r.filter((U) => U[k] === R).map((U) => U.value)), D = { y: B, h: F * e, v: F, offset: 0 };
948
+ return B += F * e + i, [R, D];
949
+ }));
950
+ }, f = u(h, "source"), A = u(t, "target"), N = Object.fromEntries(h.map((m, k) => [m, H(k, M)])), W = r.map((m) => {
951
+ const k = f[m.source], P = A[m.target], B = m.value * e, R = k.y + k.offset + B / 2, F = P.y + P.offset + B / 2;
952
+ k.offset += B, P.offset += B;
953
+ const D = l + p, U = o, z = (D + U) / 2;
954
+ return { ...m, h: B, d: `M${D},${R} C${z},${R} ${z},${F} ${U},${F}`, color: N[m.source] };
955
+ }), b = (m) => E(m, d, s);
956
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: _, size: w, className: C, table: { headers: ["From", "To", "Value", "Share"], rows: r.map((m) => [m.source, m.target, b(m.value), `${(m.value / n * 100).toFixed(1)}%`]) }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 640 ${x}`, role: "img", "aria-label": `${$}: flow from ${h.length} sources to ${t.length} targets`, "data-rk-efc23b": "", children: [
957
+ W.map((m, k) => /* @__PURE__ */ a("path", { className: "cf-mark cf-dim sk__link", d: m.d, fill: "none", stroke: m.color, strokeOpacity: "0.38", strokeWidth: Math.max(1, m.h), tabIndex: 0, role: "img", "aria-label": `${m.source} to ${m.target}: ${b(m.value)}`, "data-tip-title": `${m.source} → ${m.target}`, "data-tip": `${m.color}::${b(m.value)} · ${(m.value / n * 100).toFixed(1)}%`, "data-rk-efc23b": "" }, k)),
958
+ h.map((m, k) => /* @__PURE__ */ v("g", { "data-rk-efc23b": "", children: [
959
+ /* @__PURE__ */ a("rect", { x: l, y: f[m].y, width: p, height: f[m].h, rx: "3", fill: N[m], "data-rk-efc23b": "" }),
960
+ /* @__PURE__ */ a("text", { className: "cf-label cf-label--strong", x: l - 8, y: f[m].y + f[m].h / 2, textAnchor: "end", "data-rk-efc23b": "", children: m }),
961
+ /* @__PURE__ */ a("text", { className: "cf-label", x: l - 8, y: f[m].y + f[m].h / 2 + 14, textAnchor: "end", "data-rk-efc23b": "", children: b(f[m].v) })
962
+ ] }, k)),
963
+ t.map((m, k) => /* @__PURE__ */ v("g", { "data-rk-efc23b": "", children: [
964
+ /* @__PURE__ */ a("rect", { x: o, y: A[m].y, width: p, height: A[m].h, rx: "3", fill: "var(--c-text-2, #a3a3a3)", "data-rk-efc23b": "" }),
965
+ /* @__PURE__ */ a("text", { className: "cf-label cf-label--strong", x: o + p + 8, y: A[m].y + A[m].h / 2, "data-rk-efc23b": "", children: m }),
966
+ /* @__PURE__ */ a("text", { className: "cf-label", x: o + p + 8, y: A[m].y + A[m].h / 2 + 14, "data-rk-efc23b": "", children: b(A[m].v) })
967
+ ] }, k))
968
+ ] }) }) });
969
+ }
970
+ const aa = ($, y, r, d, s) => Array.from({ length: y }, (g, M) => {
971
+ const _ = Math.sin((M + 1) * $) * 1e4, w = _ - Math.floor(_), C = 5 + M * 37 % 95;
972
+ return { x: C, y: Math.round(d + r * C + (w - 0.5) * s) };
973
+ });
974
+ function Qa({
975
+ title: $ = "Ad spend vs signups",
976
+ subtitle: y = "Per campaign",
977
+ groups: r = [
978
+ { name: "Search", points: aa(3.1, 16, 2.1, 20, 60) },
979
+ { name: "Social", points: aa(7.7, 14, 1.3, 10, 70) },
980
+ { name: "Video", points: aa(5.3, 10, 0.8, 30, 50) }
981
+ ],
982
+ xLabel: d = "Spend ($k)",
983
+ yLabel: s = "Signups",
984
+ trend: g = !0,
985
+ height: M = 300,
986
+ colors: _,
987
+ variant: w = "glass",
988
+ size: C = "md",
989
+ className: S = ""
990
+ }) {
991
+ const p = M, i = { t: 12, r: 16, b: 40, l: 52 }, l = r.flatMap((b) => b.points), o = q(Math.min(0, ...l.map((b) => b.x)), Math.max(...l.map((b) => b.x)), 5), h = q(Math.min(0, ...l.map((b) => b.y)), Math.max(...l.map((b) => b.y)), 4), t = T(o[0], o[o.length - 1], i.l, 640 - i.r), n = T(h[0], h[h.length - 1], p - i.b, i.t), c = l.length, e = l.reduce((b, m) => b + m.x, 0) / c, u = l.reduce((b, m) => b + m.y, 0) / c, f = l.reduce((b, m) => b + (m.x - e) * (m.y - u), 0) / (l.reduce((b, m) => b + (m.x - e) ** 2, 0) || 1), A = u - f * e, N = (() => {
992
+ const b = l.reduce((k, P) => k + (P.y - u) ** 2, 0) || 1;
993
+ return 1 - l.reduce((k, P) => k + (P.y - (A + f * P.x)) ** 2, 0) / b;
994
+ })(), W = ["circle", "square", "diamond"];
995
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: w, size: C, className: S, legend: r.slice(0, 3).map((b, m) => ({ label: b.name, color: H(m, _) })), table: { headers: ["Group", d, s], rows: r.flatMap((b) => b.points.map((m) => [m.label ? `${b.name} · ${m.label}` : b.name, m.x, m.y])) }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 640 ${p}`, role: "img", "aria-label": `${$}: scatter plot of ${c} points${g ? `, trend R² ${N.toFixed(2)}` : ""}`, children: [
996
+ h.map((b, m) => /* @__PURE__ */ v("g", { children: [
997
+ /* @__PURE__ */ a("line", { className: "cf-grid", x1: i.l, x2: 640 - i.r, y1: n(b), y2: n(b) }),
998
+ /* @__PURE__ */ a("text", { className: "cf-label", x: i.l - 8, y: n(b) + 4, textAnchor: "end", children: X(b) })
999
+ ] }, m)),
1000
+ o.map((b, m) => /* @__PURE__ */ v("g", { children: [
1001
+ /* @__PURE__ */ a("line", { className: "cf-grid", x1: t(b), x2: t(b), y1: i.t, y2: p - i.b }),
1002
+ /* @__PURE__ */ a("text", { className: "cf-label", x: t(b), y: p - i.b + 16, textAnchor: "middle", children: X(b) })
1003
+ ] }, m)),
1004
+ /* @__PURE__ */ a("text", { className: "cf-label", x: (i.l + 640 - i.r) / 2, y: p - 4, textAnchor: "middle", children: d }),
1005
+ /* @__PURE__ */ a("text", { className: "cf-label", transform: `translate(12 ${(i.t + p - i.b) / 2}) rotate(-90)`, textAnchor: "middle", children: s }),
1006
+ g && /* @__PURE__ */ v("g", { "aria-hidden": "true", children: [
1007
+ /* @__PURE__ */ a("line", { x1: t(o[0]), y1: n(A + f * o[0]), x2: t(o[o.length - 1]), y2: n(A + f * o[o.length - 1]), stroke: "var(--c-text-1, #fff)", strokeOpacity: "0.45", strokeWidth: "1.5" }),
1008
+ /* @__PURE__ */ v("text", { className: "cf-label", x: 640 - i.r, y: n(A + f * o[o.length - 1]) - 8, textAnchor: "end", children: [
1009
+ "R² ",
1010
+ N.toFixed(2)
1011
+ ] })
1012
+ ] }),
1013
+ r.slice(0, 3).map((b, m) => {
1014
+ const k = H(m, _);
1015
+ return b.points.map((P) => {
1016
+ const B = t(P.x), R = n(P.y), F = {
1017
+ class: "cf-mark cf-dim",
1018
+ fill: k,
1019
+ "fill-opacity": 0.85,
1020
+ stroke: "var(--chart-surface, #0d0d0f)",
1021
+ "stroke-width": 1.5,
1022
+ tabindex: 0,
1023
+ role: "img",
1024
+ "aria-label": `${b.name}${P.label ? ` ${P.label}` : ""}: ${d} ${P.x}, ${s} ${P.y}`,
1025
+ "data-tip-title": P.label ?? b.name,
1026
+ "data-tip": `${k}::${b.name}|${d}: ${P.x}|${s}: ${P.y}`
1027
+ };
1028
+ return W[m] === "square" ? /* @__PURE__ */ a("rect", { ...F, x: B - 5, y: R - 5, width: "10", height: "10", rx: "2" }) : W[m] === "diamond" ? /* @__PURE__ */ a("path", { ...F, d: `M${B},${R - 6.5} L${B + 6.5},${R} L${B},${R + 6.5} L${B - 6.5},${R} Z` }) : /* @__PURE__ */ a("circle", { ...F, cx: B, cy: R, r: "5.5" });
1029
+ });
1030
+ })
1031
+ ] }) }) });
1032
+ }
1033
+ function Ja({
1034
+ title: $ = "Conversion rate by plan",
1035
+ subtitle: y = "Q1 vs Q2",
1036
+ fromLabel: r = "Q1",
1037
+ toLabel: d = "Q2",
1038
+ items: s = [
1039
+ { label: "Enterprise", from: 7.8, to: 9.6 },
1040
+ { label: "Team", from: 6.1, to: 6.9 },
1041
+ { label: "Pro", from: 5.4, to: 4.6 },
1042
+ { label: "Starter", from: 3.2, to: 4.1 },
1043
+ { label: "Free trial", from: 2.4, to: 1.9 }
1044
+ ],
1045
+ highlight: g,
1046
+ prefix: M = "",
1047
+ suffix: _ = "%",
1048
+ height: w = 300,
1049
+ variant: C = "glass",
1050
+ size: S = "md",
1051
+ className: x = ""
1052
+ }) {
1053
+ const i = w, l = { t: 34, b: 20 }, o = 190, h = 450, t = s.flatMap((e) => [e.from, e.to]), n = T(Math.min(...t), Math.max(...t), i - l.b, l.t), c = (e) => E(e, M, _);
1054
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: C, size: S, className: x, table: {
1055
+ headers: ["Item", r, d, "Change"],
1056
+ rows: s.map((e) => [e.label, c(e.from), c(e.to), `${e.to >= e.from ? "+" : ""}${(e.to - e.from).toFixed(1)}`])
1057
+ }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 640 ${i}`, role: "img", "aria-label": `${$}: slope chart from ${r} to ${d}`, children: [
1058
+ /* @__PURE__ */ a("line", { className: "cf-axis", x1: o, x2: o, y1: l.t - 8, y2: i - l.b + 8 }),
1059
+ /* @__PURE__ */ a("line", { className: "cf-axis", x1: h, x2: h, y1: l.t - 8, y2: i - l.b + 8 }),
1060
+ /* @__PURE__ */ a("text", { className: "cf-label cf-label--strong", x: o, y: 14, textAnchor: "middle", children: r }),
1061
+ /* @__PURE__ */ a("text", { className: "cf-label cf-label--strong", x: h, y: 14, textAnchor: "middle", children: d }),
1062
+ s.map((e, u) => {
1063
+ const f = e.to >= e.from, A = f ? K : Z, N = g && g !== e.label;
1064
+ return /* @__PURE__ */ v("g", { className: "cf-mark cf-dim", tabIndex: 0, role: "img", opacity: N ? 0.35 : 1, "aria-label": `${e.label}: ${c(e.from)} to ${c(e.to)} (${f ? "up" : "down"})`, "data-tip-title": e.label, "data-tip": `${r}: ${c(e.from)}|${d}: ${c(e.to)}|${A}::${f ? "Up" : "Down"} ${Math.abs(e.to - e.from).toFixed(1)}`, children: [
1065
+ /* @__PURE__ */ a("line", { x1: o, y1: n(e.from), x2: h, y2: n(e.to), stroke: A, strokeWidth: "2" }),
1066
+ /* @__PURE__ */ a("line", { x1: o, y1: n(e.from), x2: h, y2: n(e.to), stroke: "transparent", strokeWidth: "14" }),
1067
+ /* @__PURE__ */ a("circle", { cx: o, cy: n(e.from), r: "4.5", fill: A, stroke: "var(--chart-surface, #0d0d0f)", strokeWidth: "2" }),
1068
+ /* @__PURE__ */ a("circle", { cx: h, cy: n(e.to), r: "4.5", fill: A, stroke: "var(--chart-surface, #0d0d0f)", strokeWidth: "2" }),
1069
+ /* @__PURE__ */ v("text", { className: "cf-label", x: o - 12, y: n(e.from) + 4, textAnchor: "end", children: [
1070
+ e.label,
1071
+ " ",
1072
+ /* @__PURE__ */ a("tspan", { className: "cf-label--strong", children: c(e.from) })
1073
+ ] }),
1074
+ /* @__PURE__ */ v("text", { className: "cf-label", x: h + 12, y: n(e.to) + 4, children: [
1075
+ /* @__PURE__ */ a("tspan", { className: "cf-label--strong", children: c(e.to) }),
1076
+ " ",
1077
+ e.label
1078
+ ] })
1079
+ ] }, u);
1080
+ })
1081
+ ] }) }) });
1082
+ }
1083
+ function Ka({
1084
+ title: $ = "Tickets by status",
1085
+ subtitle: y = "Per sprint",
1086
+ categories: r = ["S18", "S19", "S20", "S21", "S22", "S23"],
1087
+ series: d = [
1088
+ { name: "Done", data: [42, 48, 51, 46, 58, 63] },
1089
+ { name: "In review", data: [12, 9, 14, 11, 10, 8] },
1090
+ { name: "Blocked", data: [5, 7, 3, 6, 4, 2] }
1091
+ ],
1092
+ horizontal: s = !1,
1093
+ normalized: g = !1,
1094
+ prefix: M = "",
1095
+ suffix: _ = "",
1096
+ height: w = 280,
1097
+ colors: C,
1098
+ variant: S = "glass",
1099
+ size: x = "md",
1100
+ className: p = ""
1101
+ }) {
1102
+ const l = s ? Math.max(w, r.length * 40 + 40) : w, o = s ? { t: 8, r: 16, b: 24, l: 72 } : { t: 12, r: 12, b: 28, l: 44 }, h = r.map((b, m) => d.reduce((k, P) => k + (P.data[m] ?? 0), 0)), t = g ? [0, 25, 50, 75, 100] : q(0, Math.max(...h), 4), n = t[t.length - 1], c = s ? T(0, n, o.l, 640 - o.r) : T(0, n, l - o.b, o.t), e = s ? (l - o.t - o.b) / r.length : (640 - o.l - o.r) / r.length, u = e * 0.6, f = 2, A = (b) => E(b, M, _), N = (b) => g ? `${b}%` : A(b), W = r.map((b, m) => {
1103
+ let k = 0;
1104
+ const P = d.slice(0, 8).map((B, R) => {
1105
+ const F = B.data[m] ?? 0, D = g ? F / (h[m] || 1) * 100 : F, U = k;
1106
+ return k += D, { name: B.name, raw: F, val: D, start: U, end: k, color: H(R, C) };
1107
+ });
1108
+ return { c: b, ci: m, segs: P };
1109
+ });
1110
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: S, size: x, className: p, legend: d.map((b, m) => ({ label: b.name, color: H(m, C) })), table: { headers: ["Category", ...d.map((b) => b.name), "Total"], rows: r.map((b, m) => [b, ...d.map((k) => A(k.data[m])), A(h[m])]) }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 640 ${l}`, role: "img", "aria-label": `${$}: ${g ? "100% " : ""}stacked bar chart`, children: [
1111
+ t.map((b) => s ? /* @__PURE__ */ v("g", { children: [
1112
+ /* @__PURE__ */ a("line", { className: b === 0 ? "cf-axis" : "cf-grid", x1: c(b), x2: c(b), y1: o.t, y2: l - o.b }),
1113
+ /* @__PURE__ */ a("text", { className: "cf-label", x: c(b), y: l - 6, textAnchor: "middle", children: N(b) })
1114
+ ] }) : /* @__PURE__ */ v("g", { children: [
1115
+ /* @__PURE__ */ a("line", { className: b === 0 ? "cf-axis" : "cf-grid", x1: o.l, x2: 640 - o.r, y1: c(b), y2: c(b) }),
1116
+ /* @__PURE__ */ a("text", { className: "cf-label", x: o.l - 8, y: c(b) + 4, textAnchor: "end", children: N(b) })
1117
+ ] })),
1118
+ W.map(({ c: b, ci: m, segs: k }, P) => {
1119
+ const B = (s ? o.t : o.l) + m * e + (e - u) / 2;
1120
+ return /* @__PURE__ */ v("g", { children: [
1121
+ s ? /* @__PURE__ */ a("text", { className: "cf-label", x: o.l - 8, y: B + u / 2 + 4, textAnchor: "end", children: b }) : /* @__PURE__ */ a("text", { className: "cf-label", x: B + u / 2, y: l - 8, textAnchor: "middle", children: b }),
1122
+ k.map((R, F) => {
1123
+ const D = c(R.start), U = c(R.end), z = F === k.length - 1, L = Math.abs(U - D) - (z ? 0 : f);
1124
+ if (!(L > 0)) return null;
1125
+ const sa = s ? { x: D, y: B, width: L, height: u } : { x: B, y: U + (z ? 0 : f), width: u, height: L };
1126
+ return /* @__PURE__ */ a("rect", { className: "cf-mark cf-dim", ...sa, rx: z ? 3 : 0, fill: R.color, tabIndex: 0, role: "img", "aria-label": `${b}, ${R.name}: ${A(R.raw)}${g ? ` (${R.val.toFixed(0)}%)` : ""}`, "data-tip-title": b, "data-tip": `${R.color}::${R.name}: ${A(R.raw)}${g ? ` · ${R.val.toFixed(0)}%` : ""}` }, F);
1127
+ })
1128
+ ] }, P);
1129
+ })
1130
+ ] }) }) });
1131
+ }
1132
+ function Za({
1133
+ title: $ = "Cloud spend breakdown",
1134
+ subtitle: y = "Service → resource",
1135
+ data: r = [
1136
+ { label: "Compute", children: [{ label: "VMs", value: 4200 }, { label: "Functions", value: 1800 }, { label: "Containers", value: 2600 }] },
1137
+ { label: "Storage", children: [{ label: "Object", value: 1900 }, { label: "Block", value: 1100 }] },
1138
+ { label: "Network", children: [{ label: "CDN", value: 1400 }, { label: "Egress", value: 900 }] },
1139
+ { label: "Data", children: [{ label: "Postgres", value: 1600 }, { label: "Redis", value: 500 }] }
1140
+ ],
1141
+ centerLabel: d = "Monthly spend",
1142
+ prefix: s = "$",
1143
+ suffix: g = "",
1144
+ colors: M,
1145
+ variant: _ = "glass",
1146
+ size: w = "md",
1147
+ className: C = ""
1148
+ }) {
1149
+ const p = G(r.flatMap((n) => n.children.map((c) => c.value))) || 1, i = 0.01;
1150
+ let l = 0;
1151
+ const o = r.slice(0, 8).map((n, c) => {
1152
+ const e = G(n.children.map((b) => b.value)), u = l, f = e / p * Math.PI * 2;
1153
+ l += f;
1154
+ const A = H(c, M);
1155
+ let N = u;
1156
+ const W = n.children.map((b, m) => {
1157
+ const k = b.value / p * Math.PI * 2, P = N;
1158
+ N += k;
1159
+ const B = 100 - m * (40 / Math.max(1, n.children.length - 1));
1160
+ return { ...b, d: ra(150, 150, 146, 104, P + i / 2, P + k - i / 2), color: `color-mix(in srgb, ${A} ${B}%, #0d0d0f)` };
1161
+ });
1162
+ return { label: n.label, value: e, color: A, d: ra(150, 150, 100, 62, u + i / 2, u + f - i / 2), kids: W };
1163
+ }), h = (n) => E(n, s, g), t = (n) => `${(n / p * 100).toFixed(1)}%`;
1164
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: _, size: w, className: C, legend: o.map((n) => ({ label: n.label, color: n.color })), table: { headers: ["Group", "Item", "Value", "Share"], rows: o.flatMap((n) => n.kids.map((c) => [n.label, c.label, h(c.value), t(c.value)])) }, children: /* @__PURE__ */ a("div", { className: "sbt", "data-rk-355acb": "", children: /* @__PURE__ */ v("svg", { viewBox: "0 0 300 300", role: "img", "aria-label": `${$}: sunburst chart, total ${h(p)}`, "data-rk-355acb": "", children: [
1165
+ o.map((n, c) => /* @__PURE__ */ v("g", { "data-rk-355acb": "", children: [
1166
+ /* @__PURE__ */ a("path", { className: "cf-mark cf-dim", d: n.d, fill: n.color, tabIndex: 0, role: "img", "aria-label": `${n.label}: ${h(n.value)} (${t(n.value)})`, "data-tip-title": n.label, "data-tip": `${n.color}::${h(n.value)} · ${t(n.value)}`, "data-rk-355acb": "" }),
1167
+ n.kids.map((e, u) => /* @__PURE__ */ a("path", { className: "cf-mark cf-dim", d: e.d, fill: e.color, tabIndex: 0, role: "img", "aria-label": `${n.label} / ${e.label}: ${h(e.value)}`, "data-tip-title": `${n.label} › ${e.label}`, "data-tip": `${e.color}::${h(e.value)} · ${t(e.value)}`, "data-rk-355acb": "" }, u))
1168
+ ] }, c)),
1169
+ /* @__PURE__ */ a("text", { x: 150, y: 152, textAnchor: "middle", className: "sbt__total", "data-rk-355acb": "", children: h(p) }),
1170
+ /* @__PURE__ */ a("text", { x: 150, y: 170, textAnchor: "middle", className: "cf-label", "data-rk-355acb": "", children: d })
1171
+ ] }) }) }) });
1172
+ }
1173
+ function Ya({
1174
+ title: $ = "Bundle size by module",
1175
+ subtitle: y = "Gzipped KB",
1176
+ items: r = [
1177
+ { label: "react-dom", value: 42, group: 0 },
1178
+ { label: "react runtime", value: 18, group: 1 },
1179
+ { label: "charts", value: 24, group: 2 },
1180
+ { label: "date-fns", value: 12, group: 0 },
1181
+ { label: "router", value: 9, group: 1 },
1182
+ { label: "icons", value: 15, group: 2 },
1183
+ { label: "i18n", value: 7, group: 1 },
1184
+ { label: "utils", value: 5, group: 2 },
1185
+ { label: "zod", value: 11, group: 0 },
1186
+ { label: "analytics", value: 6, group: 0 }
1187
+ ],
1188
+ groups: d = ["Vendor", "Framework", "App"],
1189
+ prefix: s = "",
1190
+ suffix: g = " KB",
1191
+ height: M = 320,
1192
+ colors: _,
1193
+ variant: w = "glass",
1194
+ size: C = "md",
1195
+ className: S = ""
1196
+ }) {
1197
+ const p = M, i = ha(r.map((t) => t.value), { x: 0, y: 0, w: 640, h: p }), l = G(r.map((t) => t.value)) || 1, o = (t) => E(t, s, g, !1), h = 2;
1198
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: w, size: C, className: S, legend: d.map((t, n) => ({ label: t, color: H(n, _) })), table: { headers: ["Item", "Group", "Value", "Share"], rows: r.map((t) => [t.label, d[t.group ?? 0] ?? "—", o(t.value), `${(t.value / l * 100).toFixed(1)}%`]) }, children: /* @__PURE__ */ a("svg", { viewBox: `0 0 640 ${p}`, role: "img", "aria-label": `${$}: treemap of ${r.length} items`, children: r.map((t, n) => {
1199
+ const c = i[n], e = H(t.group ?? 0, _), u = Math.max(0, c.w - h), f = Math.max(0, c.h - h), A = u > 64 && f > 34;
1200
+ return /* @__PURE__ */ v("g", { className: "cf-mark cf-dim", tabIndex: 0, role: "img", "aria-label": `${t.label}: ${o(t.value)}`, "data-tip-title": t.label, "data-tip": `${e}::${o(t.value)} · ${(t.value / l * 100).toFixed(1)}%`, children: [
1201
+ /* @__PURE__ */ a("rect", { x: c.x + h / 2, y: c.y + h / 2, width: u, height: f, rx: "6", fill: e, fillOpacity: "0.85" }),
1202
+ A && /* @__PURE__ */ v(I, { children: [
1203
+ /* @__PURE__ */ a("text", { x: c.x + 10, y: c.y + 20, fill: "#fff", fontSize: "12", fontWeight: "650", children: t.label }),
1204
+ /* @__PURE__ */ a("text", { x: c.x + 10, y: c.y + 36, fill: "rgb(var(--ink-rgb, 255 255 255) / 0.8)", fontSize: "11", children: o(t.value) })
1205
+ ] })
1206
+ ] }, n);
1207
+ }) }) }) });
1208
+ }
1209
+ function ea($) {
1210
+ const y = {};
1211
+ for (const r of String($ ?? "").split(";")) {
1212
+ const d = r.indexOf(":");
1213
+ if (d < 0) continue;
1214
+ const s = r.slice(0, d).trim();
1215
+ s && (y[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (g, M) => M.toUpperCase())] = r.slice(d + 1).trim());
1216
+ }
1217
+ return y;
1218
+ }
1219
+ function Xa({
1220
+ title: $ = "Device share",
1221
+ subtitle: y = "Each square = 1% of sessions",
1222
+ parts: r = [
1223
+ { label: "Desktop", value: 54 },
1224
+ { label: "Mobile", value: 38 },
1225
+ { label: "Tablet", value: 8 }
1226
+ ],
1227
+ columns: d = 10,
1228
+ colors: s,
1229
+ variant: g = "glass",
1230
+ size: M = "md",
1231
+ className: _ = ""
1232
+ }) {
1233
+ const w = G(r.map((l) => l.value)) || 1, C = r.map((l) => l.value / w * 100), S = C.map(Math.floor);
1234
+ let x = 100 - G(S);
1235
+ C.map((l, o) => ({ i: o, r: l - Math.floor(l) })).sort((l, o) => o.r - l.r).forEach(({ i: l }) => {
1236
+ x > 0 && (S[l] += 1, x -= 1);
1237
+ });
1238
+ const p = S.flatMap((l, o) => Array.from({ length: l }, () => o)), i = r.slice(0, 8).map((l, o) => ({ ...l, pct: S[o], color: H(o, s) }));
1239
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: g, size: M, className: _, table: { headers: ["Part", "Share"], rows: i.map((l) => [l.label, `${l.pct}%`]) }, children: /* @__PURE__ */ v("div", { className: "wf", "data-rk-87979e": "", children: [
1240
+ /* @__PURE__ */ a("div", { className: "wf__grid", style: ea(`--wf-cols:${d}`), role: "img", "aria-label": `${$}: ${i.map((l) => `${l.label} ${l.pct}%`).join(", ")}`, "data-rk-87979e": "", children: p.map((l, o) => {
1241
+ var h, t, n, c;
1242
+ return /* @__PURE__ */ a("span", { className: "wf__cell", style: ea(`background:${(h = i[l]) == null ? void 0 : h.color}; --wf-i:${o}`), "data-tip-title": (t = i[l]) == null ? void 0 : t.label, "data-tip": `${(n = i[l]) == null ? void 0 : n.color}::${(c = i[l]) == null ? void 0 : c.pct}%`, "data-rk-87979e": "" }, o);
1243
+ }) }),
1244
+ /* @__PURE__ */ a("ul", { className: "wf__legend", "data-rk-87979e": "", children: i.map((l, o) => /* @__PURE__ */ v("li", { "data-rk-87979e": "", children: [
1245
+ /* @__PURE__ */ v("span", { className: "wf__big", "data-rk-87979e": "", children: [
1246
+ l.pct,
1247
+ /* @__PURE__ */ a("small", { "data-rk-87979e": "", children: "%" })
1248
+ ] }),
1249
+ /* @__PURE__ */ v("span", { className: "wf__name", "data-rk-87979e": "", children: [
1250
+ /* @__PURE__ */ a("i", { style: ea(`background:${l.color}`), "aria-hidden": "true", "data-rk-87979e": "" }),
1251
+ l.label
1252
+ ] })
1253
+ ] }, o)) })
1254
+ ] }) }) });
1255
+ }
1256
+ function La({
1257
+ title: $ = "ARR bridge",
1258
+ subtitle: y = "From January to June",
1259
+ startLabel: r = "Jan ARR",
1260
+ start: d = 12e5,
1261
+ steps: s = [
1262
+ { label: "New", value: 38e4 },
1263
+ { label: "Expansion", value: 21e4 },
1264
+ { label: "Contraction", value: -9e4 },
1265
+ { label: "Churn", value: -16e4 },
1266
+ { label: "Reactivation", value: 45e3 }
1267
+ ],
1268
+ endLabel: g = "Jun ARR",
1269
+ prefix: M = "$",
1270
+ suffix: _ = "",
1271
+ height: w = 290,
1272
+ variant: C = "glass",
1273
+ size: S = "md",
1274
+ className: x = ""
1275
+ }) {
1276
+ const i = w, l = { t: 22, r: 12, b: 30, l: 52 };
1277
+ let o = d;
1278
+ const h = [
1279
+ { label: r, from: 0, to: d, kind: "total", value: d },
1280
+ ...s.map((N) => {
1281
+ const W = o;
1282
+ return o += N.value, { label: N.label, from: W, to: o, kind: N.value >= 0 ? "up" : "down", value: N.value };
1283
+ }),
1284
+ { label: g, from: 0, to: o, kind: "total", value: o }
1285
+ ], t = q(0, Math.max(...h.map((N) => Math.max(N.from, N.to))), 4), n = T(0, t[t.length - 1], i - l.b, l.t), c = (640 - l.l - l.r) / h.length, e = c * 0.62, u = (N) => N === "up" ? K : N === "down" ? Z : "var(--chart-1, #3987e5)", f = (N) => E(N, M, _), A = (N) => `${N >= 0 ? "+" : "−"}${E(Math.abs(N), M, _)}`;
1286
+ return /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(O, { title: $, subtitle: y, variant: C, size: S, className: x, legend: [
1287
+ { label: "Total", color: "var(--chart-1, #3987e5)" },
1288
+ { label: "Increase", color: K },
1289
+ { label: "Decrease", color: Z }
1290
+ ], table: { headers: ["Step", "Change", "Running total"], rows: h.map((N) => [N.label, N.kind === "total" ? "—" : A(N.value), f(N.to)]) }, children: /* @__PURE__ */ v("svg", { viewBox: `0 0 640 ${i}`, role: "img", "aria-label": `${$}: waterfall chart from ${f(d)} to ${f(o)}`, children: [
1291
+ t.map((N, W) => /* @__PURE__ */ v("g", { children: [
1292
+ /* @__PURE__ */ a("line", { className: N === 0 ? "cf-axis" : "cf-grid", x1: l.l, x2: 640 - l.r, y1: n(N), y2: n(N) }),
1293
+ /* @__PURE__ */ a("text", { className: "cf-label", x: l.l - 8, y: n(N) + 4, textAnchor: "end", children: f(N) })
1294
+ ] }, W)),
1295
+ h.map((N, W) => {
1296
+ const b = l.l + W * c + (c - e) / 2, m = n(Math.max(N.from, N.to)), k = Math.max(1, Math.abs(n(N.from) - n(N.to))), P = u(N.kind), B = h[W + 1];
1297
+ return /* @__PURE__ */ v("g", { children: [
1298
+ B && /* @__PURE__ */ a("line", { className: "cf-axis", x1: b + e, x2: b + c, y1: n(N.to), y2: n(N.to), opacity: "0.7" }),
1299
+ /* @__PURE__ */ a("rect", { className: "cf-mark cf-dim", x: b, y: m, width: e, height: k, rx: "3", fill: P, tabIndex: 0, role: "img", "aria-label": `${N.label}: ${N.kind === "total" ? f(N.value) : A(N.value)}, total ${f(N.to)}`, "data-tip-title": N.label, "data-tip": N.kind === "total" ? `${P}::Total: ${f(N.value)}` : `${P}::Change: ${A(N.value)}|Running: ${f(N.to)}` }),
1300
+ /* @__PURE__ */ a("text", { className: "cf-label cf-label--strong", x: b + e / 2, y: m - 6, textAnchor: "middle", children: N.kind === "total" ? f(N.value) : A(N.value) }),
1301
+ /* @__PURE__ */ a("text", { className: "cf-label", x: b + e / 2, y: i - 10, textAnchor: "middle", children: N.label })
1302
+ ] }, W);
1303
+ })
1304
+ ] }) }) });
1305
+ }
1306
+ export {
1307
+ Wa as A,
1308
+ _a as B,
1309
+ Pa as C,
1310
+ Ia as D,
1311
+ Ra as G,
1312
+ Oa as H,
1313
+ Fa as K,
1314
+ wa as L,
1315
+ Ta as M,
1316
+ Da as P,
1317
+ Ua as R,
1318
+ Va as S,
1319
+ Ya as T,
1320
+ Xa as W,
1321
+ Sa as a,
1322
+ Aa as b,
1323
+ Ca as c,
1324
+ Ba as d,
1325
+ Ha as e,
1326
+ qa as f,
1327
+ Ea as g,
1328
+ Na as h,
1329
+ Ga as i,
1330
+ ja as j,
1331
+ za as k,
1332
+ Qa as l,
1333
+ Ja as m,
1334
+ Ka as n,
1335
+ Za as o,
1336
+ La as p
1337
+ };