@vadimcomanescu/nadicode-design-system 2.0.5 → 2.0.7

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 (177) hide show
  1. package/.agents/skills/seed/contract.md +1 -0
  2. package/.agents/skills/seed/recipes/marketing-shell.md +10 -19
  3. package/.agents/skills/seed/recipes/navigation-shell.md +5 -5
  4. package/.agents/skills/seed/recipes/service-detail.md +1 -1
  5. package/.agents/skills/seed/references/blocks.md +25 -24
  6. package/.agents/skills/seed/references/brand-override.md +3 -1
  7. package/css/tokens.css +300 -122
  8. package/dist/catalog.json +1926 -125
  9. package/dist/chunk-2BADJLMV.js +117 -0
  10. package/dist/chunk-35EX5FP5.js +106 -0
  11. package/dist/chunk-5PORR6LE.js +60 -0
  12. package/dist/chunk-5PZ4VR2D.js +142 -0
  13. package/dist/chunk-5UESKK6S.js +76 -0
  14. package/dist/chunk-6N6CSJVE.js +269 -0
  15. package/dist/chunk-AURJQZC4.js +110 -0
  16. package/dist/{chunk-DF47R6LN.js → chunk-AWIG4QN6.js} +9 -9
  17. package/dist/chunk-AYWL4IYM.js +67 -0
  18. package/dist/{chunk-SV3KZ6CB.js → chunk-DSMGCFMJ.js} +7 -2
  19. package/dist/chunk-E4L6LR6P.js +33 -0
  20. package/dist/chunk-EJNF6JLL.js +105 -0
  21. package/dist/chunk-FX23F33E.js +57 -0
  22. package/dist/chunk-GJPTPLCQ.js +52 -0
  23. package/dist/chunk-GV4PKHG4.js +147 -0
  24. package/dist/chunk-HJ3A2YNO.js +163 -0
  25. package/dist/chunk-HJZRSPWB.js +38 -0
  26. package/dist/chunk-IDKZEPWK.js +133 -0
  27. package/dist/chunk-K7NQ6ZAW.js +84 -0
  28. package/dist/chunk-LCKLZ4XK.js +60 -0
  29. package/dist/chunk-MX5FUFQR.js +205 -0
  30. package/dist/chunk-NEHCPO53.js +44 -0
  31. package/dist/chunk-OHOOQUVJ.js +113 -0
  32. package/dist/chunk-QIHA7S3A.js +36 -0
  33. package/dist/chunk-RKQPU75I.js +126 -0
  34. package/dist/chunk-RMLS2QUC.js +77 -0
  35. package/dist/chunk-TS2JSPQR.js +120 -0
  36. package/dist/chunk-TUKZKU72.js +110 -0
  37. package/dist/chunk-TZXZFSD2.js +33 -0
  38. package/dist/chunk-UGV45DH3.js +18 -0
  39. package/dist/chunk-VBZQ4DBE.js +52 -0
  40. package/dist/{chunk-LQLFA2EL.js → chunk-VDONTZZX.js} +2 -2
  41. package/dist/{chunk-RWNJ54CI.js → chunk-VN475YZS.js} +1 -1
  42. package/dist/chunk-VZCB4APK.js +94 -0
  43. package/dist/chunk-W7FXDRQJ.js +94 -0
  44. package/dist/chunk-WAVU744B.js +183 -0
  45. package/dist/{chunk-5I3FWRC5.js → chunk-WOYBVPXK.js} +10 -10
  46. package/dist/chunk-WST5NLLC.js +73 -0
  47. package/dist/chunk-X6VXWEDO.js +125 -0
  48. package/dist/chunk-ZM2NODUK.js +39 -0
  49. package/dist/components/blocks/AccountLockedBlock.js +7 -57
  50. package/dist/components/blocks/ActivityFeedBlock.js +6 -39
  51. package/dist/components/blocks/AgentConversationBlock.js +5 -33
  52. package/dist/components/blocks/AudioVisualizerBlock.d.ts +1 -1
  53. package/dist/components/blocks/AudioVisualizerBlock.js +2 -2
  54. package/dist/components/blocks/AuthSuccessBlock.js +5 -60
  55. package/dist/components/blocks/BarChartBlock.d.ts +1 -1
  56. package/dist/components/blocks/BarChartBlock.js +2 -2
  57. package/dist/components/blocks/CallToActionBlock.d.ts +1 -1
  58. package/dist/components/blocks/CallToActionBlock.js +6 -52
  59. package/dist/components/blocks/ChangelogBlock.js +8 -105
  60. package/dist/components/blocks/ChartCollectionBlock.js +2 -2
  61. package/dist/components/blocks/CodeBlock.js +7 -60
  62. package/dist/components/blocks/ComparisonBlock.js +9 -94
  63. package/dist/components/blocks/ContactBlock.js +11 -120
  64. package/dist/components/blocks/FAQBlock.js +6 -44
  65. package/dist/components/blocks/FeatureBlock.d.ts +10 -14
  66. package/dist/components/blocks/FeatureBlock.js +17 -159
  67. package/dist/components/blocks/FeatureGridBlock.d.ts +1 -1
  68. package/dist/components/blocks/FeatureGridBlock.js +2 -2
  69. package/dist/components/blocks/FooterBlock.d.ts +2 -2
  70. package/dist/components/blocks/FooterBlock.js +11 -67
  71. package/dist/components/blocks/HeaderBlock.d.ts +2 -2
  72. package/dist/components/blocks/HeaderBlock.js +1 -1
  73. package/dist/components/blocks/HeatmapChartBlock.d.ts +1 -1
  74. package/dist/components/blocks/HeatmapChartBlock.js +1 -1
  75. package/dist/components/blocks/HeroBlock.d.ts +6 -3
  76. package/dist/components/blocks/HeroBlock.js +16 -199
  77. package/dist/components/blocks/HeroSectionBlock.d.ts +1 -1
  78. package/dist/components/blocks/HeroSectionBlock.js +4 -4
  79. package/dist/components/blocks/IntegrationsBlock.d.ts +1 -1
  80. package/dist/components/blocks/IntegrationsBlock.js +4 -4
  81. package/dist/components/blocks/InteractiveAreaChartBlock.d.ts +1 -1
  82. package/dist/components/blocks/InteractiveAreaChartBlock.js +2 -2
  83. package/dist/components/blocks/NewsletterBlock.js +11 -84
  84. package/dist/components/blocks/PasswordRecoveryBlock.js +14 -142
  85. package/dist/components/blocks/PricingBlock.d.ts +1 -1
  86. package/dist/components/blocks/PricingBlock.js +11 -110
  87. package/dist/components/blocks/ProcessFlowBlock.js +10 -77
  88. package/dist/components/blocks/ResetPasswordBlock.js +11 -125
  89. package/dist/components/blocks/SignUpBlock.d.ts +1 -1
  90. package/dist/components/blocks/SignUpBlock.js +2 -2
  91. package/dist/components/blocks/SocialProofBlock.d.ts +7 -11
  92. package/dist/components/blocks/SocialProofBlock.js +8 -107
  93. package/dist/components/blocks/StatsBlock.d.ts +1 -1
  94. package/dist/components/blocks/StatsBlock.js +2 -2
  95. package/dist/components/blocks/StatsMarketingBlock.d.ts +1 -1
  96. package/dist/components/blocks/StatsMarketingBlock.js +5 -36
  97. package/dist/components/blocks/TeamBlock.d.ts +1 -1
  98. package/dist/components/blocks/TeamBlock.js +4 -52
  99. package/dist/components/blocks/TestimonialsBlock.d.ts +1 -1
  100. package/dist/components/blocks/TestimonialsBlock.js +4 -133
  101. package/dist/components/blocks/TwoFactorChallengeBlock.js +9 -94
  102. package/dist/components/blocks/TwoFactorSetupBlock.js +16 -183
  103. package/dist/components/blocks/UsageDonutBlock.d.ts +1 -1
  104. package/dist/components/blocks/UsageDonutBlock.js +2 -2
  105. package/dist/components/logos/index.js +2 -2
  106. package/dist/components/page-kits/AccountLockedPageKit.d.ts +10 -0
  107. package/dist/components/page-kits/AccountLockedPageKit.js +48 -0
  108. package/dist/components/page-kits/AgentsChatPageKit.d.ts +46 -0
  109. package/dist/components/page-kits/AgentsChatPageKit.js +289 -0
  110. package/dist/components/page-kits/AnalyticsPageKit.d.ts +49 -0
  111. package/dist/components/page-kits/AnalyticsPageKit.js +277 -0
  112. package/dist/components/page-kits/BlogContentPageKit.d.ts +64 -0
  113. package/dist/components/page-kits/BlogContentPageKit.js +296 -0
  114. package/dist/components/page-kits/CheckoutPageKit.d.ts +36 -0
  115. package/dist/components/page-kits/CheckoutPageKit.js +209 -0
  116. package/dist/components/page-kits/CompanySuitePageKit.d.ts +25 -0
  117. package/dist/components/page-kits/CompanySuitePageKit.js +240 -0
  118. package/dist/components/page-kits/CrudFormPageKit.d.ts +54 -0
  119. package/dist/components/page-kits/CrudFormPageKit.js +138 -0
  120. package/dist/components/page-kits/CrudListDetailPageKit.d.ts +70 -0
  121. package/dist/components/page-kits/CrudListDetailPageKit.js +138 -0
  122. package/dist/components/page-kits/DashboardPageKit.d.ts +39 -0
  123. package/dist/components/page-kits/DashboardPageKit.js +284 -0
  124. package/dist/components/page-kits/ErrorPageKit.d.ts +22 -0
  125. package/dist/components/page-kits/ErrorPageKit.js +55 -0
  126. package/dist/components/page-kits/KanbanBoardPageKit.d.ts +31 -0
  127. package/dist/components/page-kits/KanbanBoardPageKit.js +305 -0
  128. package/dist/components/page-kits/LandingPageKit.d.ts +29 -0
  129. package/dist/components/page-kits/LandingPageKit.js +221 -0
  130. package/dist/components/page-kits/LoginPageKit.d.ts +16 -0
  131. package/dist/components/page-kits/LoginPageKit.js +43 -0
  132. package/dist/components/page-kits/MarketingShellPageKit.d.ts +21 -0
  133. package/dist/components/page-kits/MarketingShellPageKit.js +131 -0
  134. package/dist/components/page-kits/NavigationShellPageKit.d.ts +41 -0
  135. package/dist/components/page-kits/NavigationShellPageKit.js +132 -0
  136. package/dist/components/page-kits/OnboardingPageKit.d.ts +26 -0
  137. package/dist/components/page-kits/OnboardingPageKit.js +248 -0
  138. package/dist/components/page-kits/PricingPageKit.d.ts +41 -0
  139. package/dist/components/page-kits/PricingPageKit.js +279 -0
  140. package/dist/components/page-kits/ProfileSettingsPageKit.d.ts +50 -0
  141. package/dist/components/page-kits/ProfileSettingsPageKit.js +171 -0
  142. package/dist/components/page-kits/RecoveryPageKit.d.ts +17 -0
  143. package/dist/components/page-kits/RecoveryPageKit.js +58 -0
  144. package/dist/components/page-kits/ResetPageKit.d.ts +14 -0
  145. package/dist/components/page-kits/ResetPageKit.js +52 -0
  146. package/dist/components/page-kits/ServiceSuitePageKit.d.ts +25 -0
  147. package/dist/components/page-kits/ServiceSuitePageKit.js +320 -0
  148. package/dist/components/page-kits/SettingsPageKit.d.ts +27 -0
  149. package/dist/components/page-kits/SettingsPageKit.js +11 -0
  150. package/dist/components/page-kits/SignupPageKit.d.ts +15 -0
  151. package/dist/components/page-kits/SignupPageKit.js +41 -0
  152. package/dist/components/page-kits/SuccessPageKit.d.ts +15 -0
  153. package/dist/components/page-kits/SuccessPageKit.js +146 -0
  154. package/dist/components/page-kits/TeamSettingsPageKit.d.ts +50 -0
  155. package/dist/components/page-kits/TeamSettingsPageKit.js +297 -0
  156. package/dist/components/page-kits/TwoFactorPageKit.d.ts +16 -0
  157. package/dist/components/page-kits/TwoFactorPageKit.js +156 -0
  158. package/dist/components/page-kits/VerifyEmailPageKit.d.ts +15 -0
  159. package/dist/components/page-kits/VerifyEmailPageKit.js +146 -0
  160. package/dist/components/page-kits/VoiceAgentsPageKit.d.ts +35 -0
  161. package/dist/components/page-kits/VoiceAgentsPageKit.js +246 -0
  162. package/dist/components/ui/AudioWaveform.js +2 -76
  163. package/dist/components/ui/AvatarUpload.js +1 -1
  164. package/dist/components/ui/Breadcrumb.js +4 -106
  165. package/dist/components/ui/ChartCard.js +5 -38
  166. package/dist/components/ui/CheckoutFormDemo.js +5 -6
  167. package/dist/components/ui/DataFreshness.js +2 -73
  168. package/dist/components/ui/MouseEffect.js +1 -1
  169. package/dist/components/ui/NativeSelect.js +2 -18
  170. package/dist/components/ui/Pagination.js +6 -117
  171. package/dist/components/ui/ShaderBackground.js +2 -2
  172. package/dist/hooks/use-shader-preset.js +2 -2
  173. package/dist/lib/shader-presets.js +1 -1
  174. package/dist/lib/tokens.config.d.ts +19 -0
  175. package/package.json +793 -681
  176. package/scripts/ds-check.mjs +10 -2
  177. package/src/lib/tokens.config.js +63 -41
@@ -1,51 +1,20 @@
1
1
  'use client';
2
+ export { StatsMarketingBlock } from '../../chunk-QIHA7S3A.js';
2
3
  import '../../chunk-G5EO22OR.js';
3
4
  import '../../chunk-ANBJ2OLC.js';
4
5
  import '../../chunk-LV4LBWCS.js';
5
6
  import '../../chunk-XZ3A33GP.js';
6
- import { CountingNumber } from '../../chunk-F3T2U7YL.js';
7
+ import '../../chunk-F3T2U7YL.js';
7
8
  import '../../chunk-6DYFX5IR.js';
8
9
  import '../../chunk-EB5PYS7Q.js';
9
10
  import '../../chunk-OHX2LFAH.js';
10
11
  import '../../chunk-SGI25ZJ6.js';
11
- import { StaggerChildren } from '../../chunk-DQPK2XRL.js';
12
+ import '../../chunk-DQPK2XRL.js';
12
13
  import '../../chunk-ULLTRLBD.js';
13
14
  import '../../chunk-4O6L5YWT.js';
14
- import { Heading } from '../../chunk-WI547C47.js';
15
- import { siteConfig } from '../../chunk-A7NUWD76.js';
15
+ import '../../chunk-WI547C47.js';
16
+ import '../../chunk-A7NUWD76.js';
16
17
  import '../../chunk-PD2YEH3H.js';
17
18
  import '../../chunk-CRY67BIF.js';
18
19
  import '../../chunk-HJC6U46F.js';
19
20
  import '../../chunk-QYZT24TS.js';
20
- import { jsx, jsxs } from 'react/jsx-runtime';
21
-
22
- var defaultStats = [
23
- { value: 1200, label: "Stars on GitHub", prefix: "+" },
24
- { value: 22, label: "Active Users", suffix: " Million" },
25
- { value: 500, label: "Powered Apps", prefix: "+" }
26
- ];
27
- var defaultTitle = `${siteConfig.name} in numbers`;
28
- var defaultDescription = `The numbers speak for themselves. ${siteConfig.name} powers the next generation of AI interfaces with premium design tokens, glass effects, and accessible components.`;
29
- function StatsSection({
30
- title = defaultTitle,
31
- description = defaultDescription,
32
- stats = defaultStats,
33
- className
34
- }) {
35
- return /* @__PURE__ */ jsx("section", { className: className ?? "py-12 md:py-16", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-5xl space-y-8 px-6 md:space-y-16", children: [
36
- /* @__PURE__ */ jsxs("div", { className: "relative z-10 mx-auto max-w-xl space-y-6 text-center", children: [
37
- /* @__PURE__ */ jsx(Heading, { level: 2, size: "section", className: "text-4xl lg:text-5xl", children: title }),
38
- /* @__PURE__ */ jsx("p", { className: "text-text-secondary", children: description })
39
- ] }),
40
- /* @__PURE__ */ jsx(StaggerChildren, { staggerMs: 150, className: "grid gap-12 divide-y *:text-center md:grid-cols-3 md:gap-2 md:divide-x md:divide-y-0", children: stats.map((stat) => /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
41
- /* @__PURE__ */ jsxs("div", { className: "text-5xl font-bold tabular-nums", children: [
42
- stat.prefix,
43
- /* @__PURE__ */ jsx(CountingNumber, { number: stat.value, inViewOnce: true }),
44
- stat.suffix
45
- ] }),
46
- /* @__PURE__ */ jsx("p", { children: stat.label })
47
- ] }, stat.label)) })
48
- ] }) });
49
- }
50
-
51
- export { StatsSection };
@@ -12,5 +12,5 @@ interface TeamSectionProps {
12
12
  sections?: TeamSectionDef[];
13
13
  className?: string;
14
14
  }
15
- export declare function TeamSection({ title, sections, className, }: TeamSectionProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function TeamBlock({ title, sections, className, }: TeamSectionProps): import("react/jsx-runtime").JSX.Element;
16
16
  export {};
@@ -1,57 +1,9 @@
1
1
  'use client';
2
- import { StaggerChildren } from '../../chunk-DQPK2XRL.js';
3
- import { Heading } from '../../chunk-WI547C47.js';
4
- import { ScrollFadeIn } from '../../chunk-I23DDSU7.js';
2
+ export { TeamBlock } from '../../chunk-VBZQ4DBE.js';
3
+ import '../../chunk-DQPK2XRL.js';
4
+ import '../../chunk-WI547C47.js';
5
+ import '../../chunk-I23DDSU7.js';
5
6
  import '../../chunk-PD2YEH3H.js';
6
7
  import '../../chunk-CRY67BIF.js';
7
8
  import '../../chunk-HJC6U46F.js';
8
9
  import '../../chunk-QYZT24TS.js';
9
- import Image from 'next/image';
10
- import { jsx, jsxs } from 'react/jsx-runtime';
11
-
12
- var defaultMembers = [
13
- {
14
- name: "M\xE9schac Irung",
15
- role: "Creator",
16
- avatar: "https://avatars.githubusercontent.com/u/47919550?v=4"
17
- },
18
- {
19
- name: "Th\xE9o Balick",
20
- role: "Frontend Dev",
21
- avatar: "https://avatars.githubusercontent.com/u/68236786?v=4"
22
- },
23
- {
24
- name: "Glodie Lukose",
25
- role: "Frontend Dev",
26
- avatar: "https://avatars.githubusercontent.com/u/99137927?v=4"
27
- },
28
- {
29
- name: "Bernard Ngandu",
30
- role: "Backend Dev",
31
- avatar: "https://avatars.githubusercontent.com/u/31113941?v=4"
32
- }
33
- ];
34
- var defaultSections = [
35
- { heading: "Leadership", members: defaultMembers },
36
- { heading: "Engineering", members: defaultMembers },
37
- { heading: "Marketing", members: defaultMembers }
38
- ];
39
- function TeamSection({
40
- title = "Our team",
41
- sections = defaultSections,
42
- className
43
- }) {
44
- return /* @__PURE__ */ jsx(ScrollFadeIn, { children: /* @__PURE__ */ jsx("section", { className: className ?? "py-12 md:py-32", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-3xl px-8 lg:px-0", children: [
45
- /* @__PURE__ */ jsx(Heading, { level: 2, size: "display", className: "mb-8 md:mb-16", children: title }),
46
- sections.map((section, sIdx) => /* @__PURE__ */ jsxs("div", { className: sIdx > 0 ? "mt-6" : void 0, children: [
47
- /* @__PURE__ */ jsx(Heading, { level: 3, size: "eyebrow", className: "mb-6", children: section.heading }),
48
- /* @__PURE__ */ jsx(StaggerChildren, { staggerMs: 80, className: "grid grid-cols-2 gap-4 border-t py-6 md:grid-cols-4", children: section.members.map((member, index) => /* @__PURE__ */ jsxs("div", { children: [
49
- /* @__PURE__ */ jsx("div", { className: "bg-background size-20 rounded-full border p-0.5 shadow shadow-sm", children: /* @__PURE__ */ jsx(Image, { className: "aspect-square rounded-full object-cover", src: member.avatar, alt: member.name, height: 460, width: 460 }) }),
50
- /* @__PURE__ */ jsx("span", { className: "mt-2 block text-sm truncate", children: member.name }),
51
- /* @__PURE__ */ jsx("span", { className: "text-text-tertiary block text-xs truncate", children: member.role })
52
- ] }, index)) })
53
- ] }, section.heading))
54
- ] }) }) });
55
- }
56
-
57
- export { TeamSection };
@@ -11,5 +11,5 @@ interface TestimonialsProps {
11
11
  testimonials?: TestimonialItem[];
12
12
  className?: string;
13
13
  }
14
- export declare function Testimonials({ title, description, testimonials, className, }?: TestimonialsProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function TestimonialsBlock({ title, description, testimonials, className, }?: TestimonialsProps): import("react/jsx-runtime").JSX.Element;
15
15
  export {};
@@ -1,138 +1,9 @@
1
1
  'use client';
2
- import { Heading } from '../../chunk-WI547C47.js';
3
- import { Card, CardHeader, CardContent } from '../../chunk-AH6YSYYT.js';
4
- import { Avatar, AvatarImage, AvatarFallback } from '../../chunk-NAAU5IWU.js';
2
+ export { TestimonialsBlock } from '../../chunk-IDKZEPWK.js';
3
+ import '../../chunk-WI547C47.js';
4
+ import '../../chunk-AH6YSYYT.js';
5
+ import '../../chunk-NAAU5IWU.js';
5
6
  import '../../chunk-PD2YEH3H.js';
6
7
  import '../../chunk-CRY67BIF.js';
7
8
  import '../../chunk-HJC6U46F.js';
8
9
  import '../../chunk-QYZT24TS.js';
9
- import * as React from 'react';
10
- import { jsx, jsxs } from 'react/jsx-runtime';
11
-
12
- var defaultTestimonials = [
13
- {
14
- quote: "Tailus has transformed the way I develop web applications. Their extensive collection of UI components, blocks, and templates has significantly accelerated my workflow. The flexibility to customize every aspect allows me to create unique user experiences. Tailus is a game-changer for modern web development",
15
- author: "M\xE9schac Irung",
16
- role: "Creator",
17
- avatar: "https://avatars.githubusercontent.com/u/47919550?v=4",
18
- featured: true
19
- },
20
- {
21
- quote: "Tailus is really extraordinary and very practical, no need to break your head. A real gold mine.",
22
- author: "Th\xE9o Balick",
23
- role: "Frontend Dev",
24
- avatar: "https://avatars.githubusercontent.com/u/68236786?v=4"
25
- },
26
- {
27
- quote: "Great work on tailfolio template. This is one of the best personal website that I have seen so far!",
28
- author: "Glodie Lukose",
29
- role: "Frontend Dev",
30
- avatar: "https://avatars.githubusercontent.com/u/99137927?v=4"
31
- },
32
- {
33
- quote: "Great work on tailfolio template. This is one of the best personal website that I have seen so far!",
34
- author: "Bernard Ngandu",
35
- role: "Backend Dev",
36
- avatar: "https://avatars.githubusercontent.com/u/31113941?v=4"
37
- }
38
- ];
39
- function getInitials(name) {
40
- return name.split(" ").map((w) => w[0]).join("").toUpperCase().slice(0, 2);
41
- }
42
- function Testimonials({
43
- title = "Build by makers, loved by thousand developers",
44
- description = "Gemini is evolving to be more than just the models. It supports an entire to the APIs and platforms helping developers and businesses innovate.",
45
- testimonials = defaultTestimonials,
46
- className
47
- } = {}) {
48
- const featured = React.useMemo(() => testimonials.find((t) => t.featured) ?? testimonials[0], [testimonials]);
49
- const rest = React.useMemo(() => testimonials.filter((t) => t !== featured), [testimonials, featured]);
50
- return /* @__PURE__ */ jsx("section", { className: className ?? "py-16 md:py-32", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-6xl space-y-8 px-6 md:space-y-16", children: [
51
- /* @__PURE__ */ jsxs("div", { className: "relative z-10 mx-auto max-w-xl space-y-6 text-center md:space-y-12", children: [
52
- /* @__PURE__ */ jsx(Heading, { level: 2, size: "section", className: "text-4xl lg:text-5xl", children: title }),
53
- /* @__PURE__ */ jsx("p", { children: description })
54
- ] }),
55
- /* @__PURE__ */ jsxs("div", { className: "grid gap-4 sm:grid-cols-2 md:grid-cols-4 lg:grid-rows-2", children: [
56
- !!featured && /* @__PURE__ */ jsxs(Card, { className: "grid grid-rows-[auto_1fr] gap-8 sm:col-span-2 sm:p-6 lg:row-span-2", children: [
57
- /* @__PURE__ */ jsx(CardHeader, { children: /* @__PURE__ */ jsx(
58
- "img",
59
- {
60
- className: "h-6 w-fit dark:invert",
61
- src: "https://html.tailus.io/blocks/customers/nike.svg",
62
- alt: "Nike Logo",
63
- height: "24",
64
- width: "auto"
65
- }
66
- ) }),
67
- /* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsxs("blockquote", { className: "grid h-full grid-rows-[1fr_auto] gap-6", children: [
68
- /* @__PURE__ */ jsx("p", { className: "text-xl font-medium", children: featured.quote }),
69
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[auto_1fr] items-center gap-4", children: [
70
- /* @__PURE__ */ jsxs(Avatar, { className: "size-12", children: [
71
- /* @__PURE__ */ jsx(
72
- AvatarImage,
73
- {
74
- src: featured.avatar,
75
- alt: featured.author,
76
- height: "400",
77
- width: "400",
78
- loading: "lazy"
79
- }
80
- ),
81
- /* @__PURE__ */ jsx(AvatarFallback, { children: getInitials(featured.author) })
82
- ] }),
83
- /* @__PURE__ */ jsxs("div", { children: [
84
- /* @__PURE__ */ jsx("cite", { className: "text-sm font-medium", children: featured.author }),
85
- /* @__PURE__ */ jsx("span", { className: "text-text-tertiary block text-sm", children: featured.role })
86
- ] })
87
- ] })
88
- ] }) })
89
- ] }),
90
- rest[0] && /* @__PURE__ */ jsx(Card, { className: "md:col-span-2", children: /* @__PURE__ */ jsx(CardContent, { className: "h-full pt-6", children: /* @__PURE__ */ jsxs("blockquote", { className: "grid h-full grid-rows-[1fr_auto] gap-6", children: [
91
- /* @__PURE__ */ jsx("p", { className: "text-xl font-medium", children: rest[0].quote }),
92
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[auto_1fr] items-center gap-4", children: [
93
- /* @__PURE__ */ jsxs(Avatar, { className: "size-12", children: [
94
- /* @__PURE__ */ jsx(
95
- AvatarImage,
96
- {
97
- src: rest[0].avatar,
98
- alt: rest[0].author,
99
- height: "400",
100
- width: "400",
101
- loading: "lazy"
102
- }
103
- ),
104
- /* @__PURE__ */ jsx(AvatarFallback, { children: getInitials(rest[0].author) })
105
- ] }),
106
- /* @__PURE__ */ jsxs("div", { children: [
107
- /* @__PURE__ */ jsx("cite", { className: "text-sm font-medium", children: rest[0].author }),
108
- /* @__PURE__ */ jsx("span", { className: "text-text-tertiary block text-sm", children: rest[0].role })
109
- ] })
110
- ] })
111
- ] }) }) }),
112
- rest.slice(1).map((t, i) => /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsx(CardContent, { className: "h-full pt-6", children: /* @__PURE__ */ jsxs("blockquote", { className: "grid h-full grid-rows-[1fr_auto] gap-6", children: [
113
- /* @__PURE__ */ jsx("p", { children: t.quote }),
114
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[auto_1fr] items-center gap-4", children: [
115
- /* @__PURE__ */ jsxs(Avatar, { className: "size-12", children: [
116
- /* @__PURE__ */ jsx(
117
- AvatarImage,
118
- {
119
- src: t.avatar,
120
- alt: t.author,
121
- height: "400",
122
- width: "400",
123
- loading: "lazy"
124
- }
125
- ),
126
- /* @__PURE__ */ jsx(AvatarFallback, { children: getInitials(t.author) })
127
- ] }),
128
- /* @__PURE__ */ jsxs("div", { children: [
129
- /* @__PURE__ */ jsx("p", { className: "text-sm font-medium", children: t.author }),
130
- /* @__PURE__ */ jsx("span", { className: "text-text-tertiary block text-sm", children: t.role })
131
- ] })
132
- ] })
133
- ] }) }) }, i))
134
- ] })
135
- ] }) });
136
- }
137
-
138
- export { Testimonials };
@@ -1,10 +1,11 @@
1
1
  'use client';
2
- import { InputOTP, InputOTPGroup, InputOTPSlot } from '../../chunk-WN5ONOHC.js';
3
- import { Separator } from '../../chunk-CUZJIDU7.js';
4
- import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from '../../chunk-AH6YSYYT.js';
5
- import { Alert, AlertDescription } from '../../chunk-GJUR6HT3.js';
6
- import { m, scaleIn } from '../../chunk-PD2YEH3H.js';
7
- import { bezier } from '../../chunk-CRY67BIF.js';
2
+ export { TwoFactorChallengeBlock } from '../../chunk-W7FXDRQJ.js';
3
+ import '../../chunk-WN5ONOHC.js';
4
+ import '../../chunk-CUZJIDU7.js';
5
+ import '../../chunk-AH6YSYYT.js';
6
+ import '../../chunk-GJUR6HT3.js';
7
+ import '../../chunk-PD2YEH3H.js';
8
+ import '../../chunk-CRY67BIF.js';
8
9
  import '../../chunk-HJC6U46F.js';
9
10
  import '../../chunk-GO35FTNJ.js';
10
11
  import '../../chunk-PSVQ7ZNX.js';
@@ -108,7 +109,7 @@ import '../../chunk-FMH55OKV.js';
108
109
  import '../../chunk-WXVNTJIB.js';
109
110
  import '../../chunk-CXACRCZ4.js';
110
111
  import '../../chunk-T7H53CK2.js';
111
- import { ShieldCheckIcon } from '../../chunk-BFLN54VR.js';
112
+ import '../../chunk-BFLN54VR.js';
112
113
  import '../../chunk-P6IRHPFM.js';
113
114
  import '../../chunk-SXHYB7JB.js';
114
115
  import '../../chunk-ONGJ7AC2.js';
@@ -118,90 +119,4 @@ import '../../chunk-PRUXIDBD.js';
118
119
  import '../../chunk-NURPUVUV.js';
119
120
  import '../../chunk-HJBXUXTD.js';
120
121
  import '../../chunk-ASKFAYYR.js';
121
- import { cn } from '../../chunk-QYZT24TS.js';
122
- import * as React from 'react';
123
- import { jsx, jsxs } from 'react/jsx-runtime';
124
-
125
- var SHAKE_TRANSITION = { duration: 0.3, ease: bezier["out-cubic"] };
126
- function TwoFactorChallengeBlock({
127
- className,
128
- onVerify,
129
- onUseBackupCode,
130
- onBackToLogin,
131
- error,
132
- title = "Two-factor authentication",
133
- description = "Enter the 6-digit code from your authenticator app",
134
- backupCodeLabel = "Use a backup code"
135
- }) {
136
- const [code, setCode] = React.useState("");
137
- const [shake, setShake] = React.useState(false);
138
- React.useEffect(() => {
139
- if (error) {
140
- setShake(true);
141
- setCode("");
142
- const timeout = setTimeout(() => setShake(false), 300);
143
- return () => clearTimeout(timeout);
144
- }
145
- }, [error]);
146
- const handleComplete = (value) => {
147
- setCode(value);
148
- if (value.length === 6) {
149
- onVerify?.(value);
150
- }
151
- };
152
- return /* @__PURE__ */ jsx(m.div, { ...scaleIn, className: cn("w-full max-w-sm mx-auto", className), children: /* @__PURE__ */ jsxs(Card, { children: [
153
- /* @__PURE__ */ jsxs(CardHeader, { className: "text-center", children: [
154
- /* @__PURE__ */ jsx("div", { className: "mx-auto mb-2", children: /* @__PURE__ */ jsx(ShieldCheckIcon, { size: 32, className: "text-text-secondary" }) }),
155
- /* @__PURE__ */ jsx(CardTitle, { className: "text-2xl", children: title }),
156
- /* @__PURE__ */ jsx(CardDescription, { children: description })
157
- ] }),
158
- /* @__PURE__ */ jsxs(CardContent, { className: "grid gap-4", children: [
159
- /* @__PURE__ */ jsx(
160
- m.div,
161
- {
162
- className: "flex justify-center",
163
- animate: shake ? { x: [-4, 4, -4, 4, 0] } : {},
164
- transition: SHAKE_TRANSITION,
165
- children: /* @__PURE__ */ jsx(
166
- InputOTP,
167
- {
168
- maxLength: 6,
169
- value: code,
170
- onChange: handleComplete,
171
- children: /* @__PURE__ */ jsxs(InputOTPGroup, { children: [
172
- /* @__PURE__ */ jsx(InputOTPSlot, { index: 0 }),
173
- /* @__PURE__ */ jsx(InputOTPSlot, { index: 1 }),
174
- /* @__PURE__ */ jsx(InputOTPSlot, { index: 2 }),
175
- /* @__PURE__ */ jsx(InputOTPSlot, { index: 3 }),
176
- /* @__PURE__ */ jsx(InputOTPSlot, { index: 4 }),
177
- /* @__PURE__ */ jsx(InputOTPSlot, { index: 5 })
178
- ] })
179
- }
180
- )
181
- }
182
- ),
183
- !!error && /* @__PURE__ */ jsx(Alert, { variant: "destructive", children: /* @__PURE__ */ jsx(AlertDescription, { children: error }) }),
184
- /* @__PURE__ */ jsx(Separator, {}),
185
- /* @__PURE__ */ jsx("div", { className: "text-center", children: /* @__PURE__ */ jsx(
186
- "button",
187
- {
188
- type: "button",
189
- onClick: onUseBackupCode,
190
- className: "text-sm text-accent hover:text-accent/80 transition-colors",
191
- children: backupCodeLabel
192
- }
193
- ) })
194
- ] }),
195
- /* @__PURE__ */ jsx(CardFooter, { className: "justify-center", children: /* @__PURE__ */ jsx(
196
- "button",
197
- {
198
- type: "button",
199
- onClick: onBackToLogin,
200
- className: "text-sm text-text-tertiary hover:text-text-primary transition-colors",
201
- children: "Back to login"
202
- }
203
- ) })
204
- ] }) });
205
- }
206
-
207
- export { TwoFactorChallengeBlock };
122
+ import '../../chunk-QYZT24TS.js';
@@ -1,15 +1,16 @@
1
1
  'use client';
2
- import { useSafeTimeout } from '../../chunk-MDAYDDTC.js';
3
- import { StaggerChildren } from '../../chunk-DQPK2XRL.js';
4
- import { InputOTP, InputOTPGroup, InputOTPSlot } from '../../chunk-WN5ONOHC.js';
5
- import { FormWizard } from '../../chunk-T5LXQNIP.js';
6
- import { Collapsible, CollapsibleTrigger, CollapsibleContent } from '../../chunk-VJIL7W55.js';
7
- import { Empty, EmptyDescription } from '../../chunk-55HD4L6G.js';
8
- import { Checkbox } from '../../chunk-756Q7AC5.js';
9
- import { Label } from '../../chunk-LIBXYD5Q.js';
10
- import { Card, CardHeader, CardTitle, CardDescription, CardContent } from '../../chunk-AH6YSYYT.js';
11
- import { Button } from '../../chunk-7KIDDF3I.js';
12
- import { m, scaleIn } from '../../chunk-PD2YEH3H.js';
2
+ export { TwoFactorSetupBlock } from '../../chunk-WAVU744B.js';
3
+ import '../../chunk-MDAYDDTC.js';
4
+ import '../../chunk-DQPK2XRL.js';
5
+ import '../../chunk-WN5ONOHC.js';
6
+ import '../../chunk-T5LXQNIP.js';
7
+ import '../../chunk-VJIL7W55.js';
8
+ import '../../chunk-55HD4L6G.js';
9
+ import '../../chunk-756Q7AC5.js';
10
+ import '../../chunk-LIBXYD5Q.js';
11
+ import '../../chunk-AH6YSYYT.js';
12
+ import '../../chunk-7KIDDF3I.js';
13
+ import '../../chunk-PD2YEH3H.js';
13
14
  import '../../chunk-CRY67BIF.js';
14
15
  import '../../chunk-HJC6U46F.js';
15
16
  import '../../chunk-GO35FTNJ.js';
@@ -85,7 +86,7 @@ import '../../chunk-2NT57K4U.js';
85
86
  import '../../chunk-6G3RRWJT.js';
86
87
  import '../../chunk-JRJGSNI4.js';
87
88
  import '../../chunk-RF6ECFS5.js';
88
- import { CopyIcon } from '../../chunk-TV4RSQH4.js';
89
+ import '../../chunk-TV4RSQH4.js';
89
90
  import '../../chunk-4FEAWXJD.js';
90
91
  import '../../chunk-JHQTKMKG.js';
91
92
  import '../../chunk-CI7GPGCJ.js';
@@ -115,182 +116,14 @@ import '../../chunk-WXVNTJIB.js';
115
116
  import '../../chunk-CXACRCZ4.js';
116
117
  import '../../chunk-T7H53CK2.js';
117
118
  import '../../chunk-BFLN54VR.js';
118
- import { ShieldIcon } from '../../chunk-P6IRHPFM.js';
119
+ import '../../chunk-P6IRHPFM.js';
119
120
  import '../../chunk-SXHYB7JB.js';
120
121
  import '../../chunk-ONGJ7AC2.js';
121
122
  import '../../chunk-UHXGBV5N.js';
122
123
  import '../../chunk-UIUMTURU.js';
123
124
  import '../../chunk-PRUXIDBD.js';
124
125
  import '../../chunk-NURPUVUV.js';
125
- import { Badge } from '../../chunk-S4JAHKOP.js';
126
+ import '../../chunk-S4JAHKOP.js';
126
127
  import '../../chunk-HJBXUXTD.js';
127
128
  import '../../chunk-ASKFAYYR.js';
128
- import { cn } from '../../chunk-QYZT24TS.js';
129
- import * as React from 'react';
130
- import { useReducedMotion } from 'motion/react';
131
- import { jsxs, jsx } from 'react/jsx-runtime';
132
-
133
- var DEFAULT_BACKUP_CODES = [
134
- "a1b2-c3d4",
135
- "e5f6-g7h8",
136
- "i9j0-k1l2",
137
- "m3n4-o5p6",
138
- "q7r8-s9t0",
139
- "u1v2-w3x4",
140
- "y5z6-a7b8",
141
- "c9d0-e1f2"
142
- ];
143
- function TwoFactorSetupBlock({
144
- className,
145
- qrCodeUrl,
146
- secret = "JBSWY3DPEHPK3PXP",
147
- backupCodes = DEFAULT_BACKUP_CODES,
148
- onVerify,
149
- onComplete,
150
- title = "Set up two-factor authentication",
151
- description = "Add an extra layer of security to your account"
152
- }) {
153
- const prefersReduced = useReducedMotion();
154
- const [otpCode, setOtpCode] = React.useState("");
155
- const [verified, setVerified] = React.useState(false);
156
- const [verifying, setVerifying] = React.useState(false);
157
- const [verifyError, setVerifyError] = React.useState();
158
- const [savedCodes, setSavedCodes] = React.useState(false);
159
- const [copied, setCopied] = React.useState(false);
160
- const setSafeTimeout = useSafeTimeout();
161
- const copyToClipboard = (text) => {
162
- navigator.clipboard.writeText(text);
163
- setCopied(true);
164
- setSafeTimeout(() => setCopied(false), 2e3);
165
- };
166
- const copyAllCodes = () => {
167
- copyToClipboard(backupCodes.join("\n"));
168
- };
169
- const downloadCodes = () => {
170
- const blob = new Blob([backupCodes.join("\n")], { type: "text/plain" });
171
- const url = URL.createObjectURL(blob);
172
- const a = document.createElement("a");
173
- a.href = url;
174
- a.download = "backup-codes.txt";
175
- a.click();
176
- URL.revokeObjectURL(url);
177
- };
178
- const handleVerify = (value) => {
179
- setOtpCode(value);
180
- setVerifyError(void 0);
181
- setVerified(false);
182
- if (value.length !== 6) {
183
- setVerifying(false);
184
- return;
185
- }
186
- if (!onVerify) {
187
- setVerified(true);
188
- return;
189
- }
190
- setVerifying(true);
191
- void Promise.resolve(onVerify(value)).then((ok) => {
192
- if (ok) {
193
- setVerified(true);
194
- return;
195
- }
196
- setVerifyError("Verification failed. Please try again.");
197
- }).catch(() => {
198
- setVerifyError("Verification failed. Please try again.");
199
- }).finally(() => {
200
- setVerifying(false);
201
- });
202
- };
203
- const steps = [
204
- {
205
- id: "scan",
206
- title: "Scan QR code",
207
- content: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
208
- /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: qrCodeUrl ? /* @__PURE__ */ jsx("img", { src: qrCodeUrl, alt: "QR Code", className: "h-48 w-48 rounded-lg border border-border" }) : /* @__PURE__ */ jsx(Empty, { className: "h-48 w-48", children: /* @__PURE__ */ jsx(EmptyDescription, { children: "QR Code" }) }) }),
209
- /* @__PURE__ */ jsxs(Collapsible, { children: [
210
- /* @__PURE__ */ jsx(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { variant: "ghost", size: "default", className: "w-full text-text-tertiary", children: [
211
- "Can",
212
- "'",
213
- "t scan? Enter code manually"
214
- ] }) }),
215
- /* @__PURE__ */ jsx(CollapsibleContent, { className: "pt-2", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 rounded-md border border-border bg-surface p-4", children: [
216
- /* @__PURE__ */ jsx("code", { className: "flex-1 text-sm font-mono text-text-primary break-all", children: secret }),
217
- /* @__PURE__ */ jsx(
218
- Button,
219
- {
220
- variant: "ghost",
221
- size: "icon",
222
- onClick: () => copyToClipboard(secret),
223
- children: /* @__PURE__ */ jsx(CopyIcon, { size: 14 })
224
- }
225
- )
226
- ] }) })
227
- ] })
228
- ] })
229
- },
230
- {
231
- id: "verify",
232
- title: "Verify code",
233
- content: /* @__PURE__ */ jsxs("div", { className: "space-y-4 text-center", children: [
234
- /* @__PURE__ */ jsx("p", { className: "text-sm text-text-secondary", children: "Enter the 6-digit code from your authenticator app" }),
235
- /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx(InputOTP, { maxLength: 6, value: otpCode, onChange: handleVerify, children: /* @__PURE__ */ jsxs(InputOTPGroup, { children: [
236
- /* @__PURE__ */ jsx(InputOTPSlot, { index: 0 }),
237
- /* @__PURE__ */ jsx(InputOTPSlot, { index: 1 }),
238
- /* @__PURE__ */ jsx(InputOTPSlot, { index: 2 }),
239
- /* @__PURE__ */ jsx(InputOTPSlot, { index: 3 }),
240
- /* @__PURE__ */ jsx(InputOTPSlot, { index: 4 }),
241
- /* @__PURE__ */ jsx(InputOTPSlot, { index: 5 })
242
- ] }) }) }),
243
- !!verifying && /* @__PURE__ */ jsx("p", { className: "text-sm text-text-secondary", children: "Verifying..." }),
244
- !!verifyError && /* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-destructive", children: verifyError }),
245
- !!verified && /* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-success", children: "Code verified successfully" })
246
- ] }),
247
- validate: () => verified
248
- },
249
- {
250
- id: "backup",
251
- title: "Save backup codes",
252
- content: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
253
- /* @__PURE__ */ jsx("p", { className: "text-sm text-text-secondary", children: "Save these backup codes in a secure location. Each code can only be used once." }),
254
- /* @__PURE__ */ jsx(StaggerChildren, { staggerMs: 40, className: "grid grid-cols-2 gap-2", children: backupCodes.map((code) => /* @__PURE__ */ jsx(Badge, { variant: "outline", className: "justify-center font-mono text-xs py-1.5", children: code }, code)) }),
255
- /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
256
- /* @__PURE__ */ jsxs(Button, { variant: "outline", size: "default", className: "flex-1", onClick: copyAllCodes, children: [
257
- /* @__PURE__ */ jsx(CopyIcon, { size: 14, className: "mr-2" }),
258
- copied ? "Copied!" : "Copy all"
259
- ] }),
260
- /* @__PURE__ */ jsx(Button, { variant: "outline", size: "default", className: "flex-1", onClick: downloadCodes, children: "Download" })
261
- ] }),
262
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 pt-2", children: [
263
- /* @__PURE__ */ jsx(
264
- Checkbox,
265
- {
266
- id: "saved-codes",
267
- checked: savedCodes,
268
- onCheckedChange: (v) => setSavedCodes(v === true)
269
- }
270
- ),
271
- /* @__PURE__ */ jsx(Label, { htmlFor: "saved-codes", className: "text-sm", children: "I have saved my backup codes" })
272
- ] })
273
- ] }),
274
- validate: () => savedCodes
275
- }
276
- ];
277
- return /* @__PURE__ */ jsx(m.div, { ...prefersReduced ? {} : scaleIn, className: cn("w-full max-w-lg mx-auto", className), children: /* @__PURE__ */ jsxs(Card, { children: [
278
- /* @__PURE__ */ jsx(CardHeader, { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
279
- /* @__PURE__ */ jsx(ShieldIcon, { size: 32, className: "text-text-secondary" }),
280
- /* @__PURE__ */ jsxs("div", { children: [
281
- /* @__PURE__ */ jsx(CardTitle, { className: "text-xl", children: title }),
282
- /* @__PURE__ */ jsx(CardDescription, { children: description })
283
- ] })
284
- ] }) }),
285
- /* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsx(
286
- FormWizard,
287
- {
288
- steps,
289
- onComplete,
290
- completeLabel: "Done"
291
- }
292
- ) })
293
- ] }) });
294
- }
295
-
296
- export { TwoFactorSetupBlock };
129
+ import '../../chunk-QYZT24TS.js';
@@ -12,5 +12,5 @@ interface UsageDonutProps {
12
12
  centerLabel?: React.ReactNode;
13
13
  className?: string;
14
14
  }
15
- export declare function UsageDonut({ data, config, title, description, centerLabel, className, }: UsageDonutProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function UsageDonutBlock({ data, config, title, description, centerLabel, className, }: UsageDonutProps): import("react/jsx-runtime").JSX.Element;
16
16
  export {};
@@ -40,7 +40,7 @@ var defaultCenterLabel = /* @__PURE__ */ jsxs(Fragment, { children: [
40
40
  ] }),
41
41
  /* @__PURE__ */ jsx("span", { className: "text-xs text-text-tertiary uppercase tracking-wider", children: "Used" })
42
42
  ] });
43
- function UsageDonut({
43
+ function UsageDonutBlock({
44
44
  data = defaultData,
45
45
  config = defaultConfig,
46
46
  title = "Storage",
@@ -81,4 +81,4 @@ function UsageDonut({
81
81
  ] });
82
82
  }
83
83
 
84
- export { UsageDonut };
84
+ export { UsageDonutBlock };
@@ -1,7 +1,7 @@
1
1
  import '../../chunk-3ZDYYZDD.js';
2
+ export { VSCodium } from '../../chunk-J5DRK4RF.js';
3
+ export { Gemini } from '../../chunk-TSVN5A2F.js';
2
4
  export { GooglePaLM } from '../../chunk-PX2WVDDB.js';
3
5
  export { MagicUI } from '../../chunk-BZYMCJHW.js';
4
6
  export { MediaWiki } from '../../chunk-H466RJCI.js';
5
7
  export { Replit } from '../../chunk-DT6DGTVW.js';
6
- export { VSCodium } from '../../chunk-J5DRK4RF.js';
7
- export { Gemini } from '../../chunk-TSVN5A2F.js';