@eslamdevui/ui 3.2.0 → 3.2.1

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 (186) hide show
  1. package/.nuxt/ui/alert.ts +5 -0
  2. package/.nuxt/ui/auth-form.ts +20 -0
  3. package/.nuxt/ui/badge.ts +5 -0
  4. package/.nuxt/ui/banner.ts +105 -0
  5. package/.nuxt/ui/blog-post.ts +140 -0
  6. package/.nuxt/ui/blog-posts.ts +14 -0
  7. package/.nuxt/ui/button-group.ts +13 -0
  8. package/.nuxt/ui/button.ts +5 -0
  9. package/.nuxt/ui/carousel.ts +5 -0
  10. package/.nuxt/ui/changelog-version.ts +41 -0
  11. package/.nuxt/ui/changelog-versions.ts +8 -0
  12. package/.nuxt/ui/chat-palette.ts +8 -0
  13. package/.nuxt/ui/content/content-navigation.ts +341 -0
  14. package/.nuxt/ui/content/content-search-button.ts +6 -0
  15. package/.nuxt/ui/content/content-search.ts +6 -0
  16. package/.nuxt/ui/content/content-surround.ts +39 -0
  17. package/.nuxt/ui/content/content-toc.ts +150 -0
  18. package/.nuxt/ui/content/index.ts +5 -0
  19. package/.nuxt/ui/content-navigation.ts +6 -4
  20. package/.nuxt/ui/content-surround.ts +5 -0
  21. package/.nuxt/ui/dashboard-navbar.ts +5 -0
  22. package/.nuxt/ui/dashboard-sidebar-collapse.ts +5 -0
  23. package/.nuxt/ui/dashboard-sidebar-toggle.ts +5 -0
  24. package/.nuxt/ui/dashboard-sidebar.ts +10 -0
  25. package/.nuxt/ui/error.ts +9 -0
  26. package/.nuxt/ui/footer-columns.ts +28 -0
  27. package/.nuxt/ui/footer.ts +11 -0
  28. package/.nuxt/ui/header.ts +30 -0
  29. package/.nuxt/ui/index.ts +80 -2
  30. package/.nuxt/ui/input-menu.ts +9 -0
  31. package/.nuxt/ui/input-number.ts +5 -0
  32. package/.nuxt/ui/input-tags.ts +9 -0
  33. package/.nuxt/ui/input.ts +9 -0
  34. package/.nuxt/ui/main.ts +3 -0
  35. package/.nuxt/ui/page-accordion.ts +7 -0
  36. package/.nuxt/ui/page-anchors.ts +30 -0
  37. package/.nuxt/ui/page-aside.ts +10 -0
  38. package/.nuxt/ui/page-body.ts +3 -0
  39. package/.nuxt/ui/page-card.ts +276 -0
  40. package/.nuxt/ui/page-columns.ts +3 -0
  41. package/.nuxt/ui/page-cta.ts +72 -0
  42. package/.nuxt/ui/page-feature.ts +31 -0
  43. package/.nuxt/ui/page-grid.ts +3 -0
  44. package/.nuxt/ui/page-header.ts +18 -0
  45. package/.nuxt/ui/page-hero.ts +46 -0
  46. package/.nuxt/ui/page-links.ts +25 -0
  47. package/.nuxt/ui/page-list.ts +8 -0
  48. package/.nuxt/ui/page-logos.ts +15 -0
  49. package/.nuxt/ui/page-marquee.ts +66 -0
  50. package/.nuxt/ui/page-section.ts +88 -0
  51. package/.nuxt/ui/page.ts +32 -0
  52. package/.nuxt/ui/pricing-plan.ts +101 -0
  53. package/.nuxt/ui/pricing-plans.ts +27 -0
  54. package/.nuxt/ui/pricing-table.ts +51 -0
  55. package/.nuxt/ui/prose/a.ts +6 -0
  56. package/.nuxt/ui/prose/accordion-item.ts +3 -0
  57. package/.nuxt/ui/prose/accordion.ts +6 -0
  58. package/.nuxt/ui/prose/badge.ts +3 -0
  59. package/.nuxt/ui/prose/blockquote.ts +3 -0
  60. package/.nuxt/ui/prose/callout.ts +129 -0
  61. package/.nuxt/ui/prose/card-group.ts +3 -0
  62. package/.nuxt/ui/prose/card.ts +119 -0
  63. package/.nuxt/ui/prose/code-collapse.ts +19 -0
  64. package/.nuxt/ui/prose/code-group.ts +13 -0
  65. package/.nuxt/ui/prose/code-icon.ts +66 -0
  66. package/.nuxt/ui/prose/code-preview.ts +14 -0
  67. package/.nuxt/ui/prose/code-tree.ts +28 -0
  68. package/.nuxt/ui/prose/code.ts +27 -0
  69. package/.nuxt/ui/prose/collapsible.ts +12 -0
  70. package/.nuxt/ui/prose/em.ts +3 -0
  71. package/.nuxt/ui/prose/field-group.ts +3 -0
  72. package/.nuxt/ui/prose/field.ts +11 -0
  73. package/.nuxt/ui/prose/h1.ts +6 -0
  74. package/.nuxt/ui/prose/h2.ts +14 -0
  75. package/.nuxt/ui/prose/h3.ts +14 -0
  76. package/.nuxt/ui/prose/h4.ts +6 -0
  77. package/.nuxt/ui/prose/hr.ts +3 -0
  78. package/.nuxt/ui/prose/icon.ts +3 -0
  79. package/.nuxt/ui/prose/img.ts +3 -0
  80. package/.nuxt/ui/prose/index.ts +41 -0
  81. package/.nuxt/ui/prose/kbd.ts +3 -0
  82. package/.nuxt/ui/prose/li.ts +3 -0
  83. package/.nuxt/ui/prose/ol.ts +3 -0
  84. package/.nuxt/ui/prose/p.ts +3 -0
  85. package/.nuxt/ui/prose/pre.ts +17 -0
  86. package/.nuxt/ui/prose/steps.ts +19 -0
  87. package/.nuxt/ui/prose/strong.ts +3 -0
  88. package/.nuxt/ui/prose/table.ts +6 -0
  89. package/.nuxt/ui/prose/tabs-item.ts +3 -0
  90. package/.nuxt/ui/prose/tabs.ts +5 -0
  91. package/.nuxt/ui/prose/tbody.ts +3 -0
  92. package/.nuxt/ui/prose/td.ts +3 -0
  93. package/.nuxt/ui/prose/th.ts +3 -0
  94. package/.nuxt/ui/prose/thead.ts +3 -0
  95. package/.nuxt/ui/prose/tr.ts +3 -0
  96. package/.nuxt/ui/prose/ul.ts +3 -0
  97. package/.nuxt/ui/select-menu.ts +9 -0
  98. package/.nuxt/ui/select.ts +9 -0
  99. package/.nuxt/ui/textarea.ts +9 -0
  100. package/.nuxt/ui/toast.ts +5 -0
  101. package/.nuxt/ui/user.ts +106 -0
  102. package/dist/module.json +1 -1
  103. package/dist/module.mjs +2 -2
  104. package/dist/runtime/components/AuthForm.vue +195 -0
  105. package/dist/runtime/components/AuthForm.vue.d.ts +85 -0
  106. package/dist/runtime/components/Banner.vue +113 -0
  107. package/dist/runtime/components/Banner.vue.d.ts +68 -0
  108. package/dist/runtime/components/BlogPost.vue +141 -0
  109. package/dist/runtime/components/BlogPost.vue.d.ts +59 -0
  110. package/dist/runtime/components/BlogPosts.vue +33 -0
  111. package/dist/runtime/components/BlogPosts.vue.d.ts +30 -0
  112. package/dist/runtime/components/ChangelogVersion.vue +165 -0
  113. package/dist/runtime/components/ChangelogVersion.vue.d.ts +58 -0
  114. package/dist/runtime/components/ChangelogVersions.vue +54 -0
  115. package/dist/runtime/components/ChangelogVersions.vue.d.ts +74 -0
  116. package/dist/runtime/components/ChatPalette.vue +32 -0
  117. package/dist/runtime/components/ChatPalette.vue.d.ts +24 -0
  118. package/dist/runtime/components/ChatPrompt.vue.d.ts +1 -1
  119. package/dist/runtime/components/CommandPalette.vue.d.ts +3 -3
  120. package/dist/runtime/components/DashboardSidebarToggle.vue.d.ts +1 -1
  121. package/dist/runtime/components/Error.vue.d.ts +1 -1
  122. package/dist/runtime/components/Footer.vue +44 -0
  123. package/dist/runtime/components/Footer.vue.d.ts +29 -0
  124. package/dist/runtime/components/FooterColumns.vue +68 -0
  125. package/dist/runtime/components/FooterColumns.vue.d.ts +52 -0
  126. package/dist/runtime/components/Header.vue +137 -0
  127. package/dist/runtime/components/Header.vue.d.ts +72 -0
  128. package/dist/runtime/components/InputMenu.vue.d.ts +3 -3
  129. package/dist/runtime/components/Main.vue +23 -0
  130. package/dist/runtime/components/Main.vue.d.ts +20 -0
  131. package/dist/runtime/components/Page.vue +37 -0
  132. package/dist/runtime/components/Page.vue.d.ts +25 -0
  133. package/dist/runtime/components/PageAccordion.vue +26 -0
  134. package/dist/runtime/components/PageAccordion.vue.d.ts +21 -0
  135. package/dist/runtime/components/PageAnchors.vue +50 -0
  136. package/dist/runtime/components/PageAnchors.vue.d.ts +42 -0
  137. package/dist/runtime/components/PageAside.vue +36 -0
  138. package/dist/runtime/components/PageAside.vue.d.ts +27 -0
  139. package/dist/runtime/components/PageBody.vue +23 -0
  140. package/dist/runtime/components/PageBody.vue.d.ts +18 -0
  141. package/dist/runtime/components/PageCTA.vue +58 -0
  142. package/dist/runtime/components/PageCTA.vue.d.ts +49 -0
  143. package/dist/runtime/components/PageCard.vue +121 -0
  144. package/dist/runtime/components/PageCard.vue.d.ts +71 -0
  145. package/dist/runtime/components/PageColumns.vue +23 -0
  146. package/dist/runtime/components/PageColumns.vue.d.ts +18 -0
  147. package/dist/runtime/components/PageFeature.vue +71 -0
  148. package/dist/runtime/components/PageFeature.vue.d.ts +43 -0
  149. package/dist/runtime/components/PageGrid.vue +23 -0
  150. package/dist/runtime/components/PageGrid.vue.d.ts +18 -0
  151. package/dist/runtime/components/PageHeader.vue +58 -0
  152. package/dist/runtime/components/PageHeader.vue.d.ts +35 -0
  153. package/dist/runtime/components/PageHero.vue +67 -0
  154. package/dist/runtime/components/PageHero.vue.d.ts +49 -0
  155. package/dist/runtime/components/PageLinks.vue +55 -0
  156. package/dist/runtime/components/PageLinks.vue.d.ts +44 -0
  157. package/dist/runtime/components/PageList.vue +24 -0
  158. package/dist/runtime/components/PageList.vue.d.ts +21 -0
  159. package/dist/runtime/components/PageLogos.vue +64 -0
  160. package/dist/runtime/components/PageLogos.vue.d.ts +32 -0
  161. package/dist/runtime/components/PageMarquee.vue +40 -0
  162. package/dist/runtime/components/PageMarquee.vue.d.ts +30 -0
  163. package/dist/runtime/components/PageSection.vue +88 -0
  164. package/dist/runtime/components/PageSection.vue.d.ts +64 -0
  165. package/dist/runtime/components/PricingPlan.vue +129 -0
  166. package/dist/runtime/components/PricingPlan.vue.d.ts +109 -0
  167. package/dist/runtime/components/PricingPlans.vue +45 -0
  168. package/dist/runtime/components/PricingPlans.vue.d.ts +41 -0
  169. package/dist/runtime/components/PricingTable.vue +235 -0
  170. package/dist/runtime/components/PricingTable.vue.d.ts +98 -0
  171. package/dist/runtime/components/SelectMenu.vue.d.ts +3 -3
  172. package/dist/runtime/components/Tabs.vue +1 -0
  173. package/dist/runtime/components/User.vue +69 -0
  174. package/dist/runtime/components/User.vue.d.ts +46 -0
  175. package/dist/runtime/components/content/ContentSearchButton.vue.d.ts +57 -11
  176. package/dist/runtime/components/content/ContentSurround.vue +2 -2
  177. package/dist/runtime/components/content/ContentSurround.vue.d.ts +45 -52
  178. package/dist/runtime/components/content/ContentToc.vue +27 -15
  179. package/dist/runtime/components/content/ContentToc.vue.d.ts +79 -81
  180. package/dist/runtime/types/index.d.ts +33 -0
  181. package/dist/runtime/types/index.js +33 -0
  182. package/dist/shared/{ui.DQZ75GCP.mjs → ui.DErCA3YU.mjs} +1247 -50
  183. package/dist/unplugin.mjs +1 -1
  184. package/dist/vite.mjs +1 -1
  185. package/package.json +1 -1
  186. package/.nuxt/ui/prose.ts +0 -321
@@ -191,6 +191,27 @@ const alert = (options) => ({
191
191
  }
192
192
  });
193
193
 
194
+ const authForm = {
195
+ slots: {
196
+ root: "w-full space-y-6",
197
+ header: "flex flex-col text-center",
198
+ leading: "mb-2",
199
+ leadingIcon: "size-8 shrink-0 inline-block",
200
+ title: "text-xl text-pretty font-semibold text-highlighted",
201
+ description: "mt-1 text-base text-pretty text-muted",
202
+ body: "gap-y-6 flex flex-col",
203
+ providers: "space-y-3",
204
+ checkbox: "",
205
+ select: "",
206
+ password: "w-full",
207
+ otp: "w-full justify-center",
208
+ input: "w-full",
209
+ separator: "",
210
+ form: "space-y-5",
211
+ footer: "text-sm text-center text-muted mt-2"
212
+ }
213
+ };
214
+
194
215
  const avatar = {
195
216
  slots: {
196
217
  root: "inline-flex items-center justify-center shrink-0 select-none rounded-full align-middle bg-elevated",
@@ -427,6 +448,196 @@ const badge$1 = (options) => ({
427
448
  }
428
449
  });
429
450
 
451
+ const banner = (options) => {
452
+ const colors = options.theme.colors || [];
453
+ return {
454
+ slots: {
455
+ root: [
456
+ "relative z-50 w-full",
457
+ "transition-colors"
458
+ ],
459
+ container: "flex items-center justify-between gap-3 h-12",
460
+ left: "hidden lg:flex-1 lg:flex lg:items-center",
461
+ center: "flex items-center gap-1.5 min-w-0",
462
+ right: "lg:flex-1 flex items-center justify-end",
463
+ icon: "size-5 shrink-0 text-inverted pointer-events-none",
464
+ title: "text-sm text-inverted font-medium truncate",
465
+ actions: "flex gap-1.5 shrink-0 isolate",
466
+ close: "text-inverted hover:bg-default/10 focus-visible:bg-default/10 -me-1.5 lg:me-0"
467
+ },
468
+ variants: {
469
+ color: {
470
+ ...Object.fromEntries(
471
+ colors.map((color) => [
472
+ color,
473
+ { root: `bg-${color}` }
474
+ ])
475
+ ),
476
+ neutral: { root: "bg-inverted" }
477
+ },
478
+ to: {
479
+ true: ""
480
+ }
481
+ },
482
+ compoundVariants: [
483
+ ...colors.map((color) => ({
484
+ color,
485
+ to: true,
486
+ class: {
487
+ root: `hover:bg-${color}/90`
488
+ }
489
+ })),
490
+ {
491
+ color: "neutral",
492
+ to: true,
493
+ class: {
494
+ root: "hover:bg-inverted/90"
495
+ }
496
+ }
497
+ ]
498
+ };
499
+ };
500
+
501
+ const blogPost = (_options) => {
502
+ return {
503
+ slots: {
504
+ root: "relative group/blog-post flex flex-col rounded-lg overflow-hidden",
505
+ header: "relative overflow-hidden aspect-[16/9] w-full pointer-events-none",
506
+ body: "min-w-0 flex-1 flex flex-col",
507
+ footer: "",
508
+ image: "object-cover object-top w-full h-full",
509
+ title: "text-xl text-pretty font-semibold text-highlighted",
510
+ description: "mt-1 text-base text-pretty",
511
+ authors: "pt-4 mt-auto flex flex-wrap gap-x-3 gap-y-1.5",
512
+ avatar: "",
513
+ meta: "flex items-center gap-2 mb-2",
514
+ date: "text-sm",
515
+ badge: ""
516
+ },
517
+ variants: {
518
+ orientation: {
519
+ horizontal: {
520
+ root: "lg:grid lg:grid-cols-2 lg:items-center gap-x-8",
521
+ body: "justify-center p-4 sm:p-6 lg:px-0"
522
+ },
523
+ vertical: {
524
+ root: "flex flex-col",
525
+ body: "p-4 sm:p-6"
526
+ }
527
+ },
528
+ variant: {
529
+ outline: {
530
+ root: "bg-default ring ring-default",
531
+ date: "text-toned",
532
+ description: "text-muted"
533
+ },
534
+ soft: {
535
+ root: "bg-elevated/50",
536
+ date: "text-muted",
537
+ description: "text-toned"
538
+ },
539
+ subtle: {
540
+ root: "bg-elevated/50 ring ring-default",
541
+ date: "text-muted",
542
+ description: "text-toned"
543
+ },
544
+ ghost: {
545
+ date: "text-toned",
546
+ description: "text-muted",
547
+ header: "shadow-lg rounded-lg"
548
+ },
549
+ naked: {
550
+ root: "p-0 sm:p-0",
551
+ date: "text-toned",
552
+ description: "text-muted",
553
+ header: "shadow-lg rounded-lg"
554
+ }
555
+ },
556
+ to: {
557
+ true: {
558
+ root: "transition",
559
+ image: "transform transition-transform duration-200 group-hover/blog-post:scale-110",
560
+ avatar: "transform transition-transform duration-200 hover:scale-115"
561
+ }
562
+ },
563
+ image: {
564
+ true: ""
565
+ }
566
+ },
567
+ compoundVariants: [
568
+ {
569
+ variant: "outline",
570
+ to: true,
571
+ class: {
572
+ root: "hover:bg-elevated/50"
573
+ }
574
+ },
575
+ {
576
+ variant: "soft",
577
+ to: true,
578
+ class: {
579
+ root: "hover:bg-elevated"
580
+ }
581
+ },
582
+ {
583
+ variant: "subtle",
584
+ to: true,
585
+ class: {
586
+ root: "hover:bg-elevated hover:ring-accented"
587
+ }
588
+ },
589
+ {
590
+ variant: "ghost",
591
+ to: true,
592
+ class: {
593
+ root: "hover:bg-elevated/50",
594
+ header: [
595
+ "group-hover/blog-post:shadow-none",
596
+ "transition-all"
597
+ ]
598
+ }
599
+ },
600
+ {
601
+ variant: "ghost",
602
+ to: true,
603
+ orientation: "vertical",
604
+ class: {
605
+ header: "group-hover/blog-post:rounded-b-none"
606
+ }
607
+ },
608
+ {
609
+ variant: "ghost",
610
+ to: true,
611
+ orientation: "horizontal",
612
+ class: {
613
+ header: "group-hover/blog-post:rounded-r-none"
614
+ }
615
+ },
616
+ {
617
+ orientation: "vertical",
618
+ image: false,
619
+ variant: "naked",
620
+ class: {
621
+ body: "p-0 sm:p-0"
622
+ }
623
+ }
624
+ ],
625
+ defaultVariants: {
626
+ variant: "outline"
627
+ }
628
+ };
629
+ };
630
+
631
+ const blogPosts = {
632
+ base: "flex flex-col gap-8 lg:gap-y-16",
633
+ variants: {
634
+ orientation: {
635
+ horizontal: "sm:grid sm:grid-cols-2 lg:grid-cols-3",
636
+ vertical: ""
637
+ }
638
+ }
639
+ };
640
+
430
641
  const breadcrumb = (options) => ({
431
642
  slots: {
432
643
  root: "relative min-w-0",
@@ -766,6 +977,57 @@ const carousel = (options) => ({
766
977
  }
767
978
  });
768
979
 
980
+ const changelogVersion = {
981
+ slots: {
982
+ root: "relative",
983
+ container: "flex flex-col mx-auto max-w-2xl",
984
+ header: "",
985
+ meta: "flex items-center gap-3 mb-2",
986
+ date: "text-sm/6 text-toned truncate",
987
+ badge: "",
988
+ title: "relative text-xl text-pretty font-semibold text-highlighted",
989
+ description: "text-base text-pretty text-muted mt-1",
990
+ imageWrapper: "relative overflow-hidden rounded-lg aspect-[16/9] mt-5 group/changelog-version-image",
991
+ image: "object-cover object-top w-full h-full",
992
+ authors: "flex flex-wrap gap-x-4 gap-y-1.5",
993
+ footer: "border-t border-default pt-5 flex items-center justify-between",
994
+ indicator: "absolute left-0 top-0 w-32 hidden lg:flex items-center justify-end gap-3 min-w-0",
995
+ dot: "size-4 rounded-full bg-default ring ring-default flex items-center justify-center my-1",
996
+ dotInner: "size-2 rounded-full bg-primary"
997
+ },
998
+ variants: {
999
+ body: {
1000
+ false: {
1001
+ footer: "mt-5"
1002
+ }
1003
+ },
1004
+ badge: {
1005
+ false: {
1006
+ meta: "lg:hidden"
1007
+ }
1008
+ },
1009
+ to: {
1010
+ true: {
1011
+ image: "transform transition-transform duration-200 group-hover/changelog-version-image:scale-105"
1012
+ }
1013
+ },
1014
+ hidden: {
1015
+ true: {
1016
+ date: "lg:hidden"
1017
+ }
1018
+ }
1019
+ }
1020
+ };
1021
+
1022
+ const changelogVersions = {
1023
+ slots: {
1024
+ root: "relative",
1025
+ container: "flex flex-col gap-y-8 sm:gap-y-12 lg:gap-y-16",
1026
+ indicator: "absolute hidden lg:block overflow-hidden inset-y-3 left-32 h-full w-px bg-border -ml-[8.5px]",
1027
+ beam: "absolute left-0 top-0 w-full bg-primary will-change-[height]"
1028
+ }
1029
+ };
1030
+
769
1031
  const chatMessage = {
770
1032
  slots: {
771
1033
  root: "group/message relative w-full",
@@ -904,6 +1166,15 @@ const chatMessages = {
904
1166
  }
905
1167
  };
906
1168
 
1169
+ const chatPalette = {
1170
+ slots: {
1171
+ root: "relative flex-1 flex flex-col min-h-0 min-w-0",
1172
+ prompt: "px-0 rounded-t-none border-t border-default",
1173
+ close: "",
1174
+ content: "overflow-y-auto flex-1 flex flex-col py-3"
1175
+ }
1176
+ };
1177
+
907
1178
  const chatPrompt = {
908
1179
  slots: {
909
1180
  root: "relative flex flex-col items-stretch gap-2 px-2.5 py-2 w-full rounded-lg backdrop-blur",
@@ -1327,10 +1598,13 @@ const contentNavigation = (options) => {
1327
1598
  const colors = options.theme.colors || [];
1328
1599
  const variants = ["pill", "link"];
1329
1600
  const colorVariants = Object.fromEntries(
1330
- colors.map((color) => [color, {
1331
- trigger: `focus-visible:ring-${color}`,
1332
- link: `focus-visible:before:ring-${color}`
1333
- }])
1601
+ colors.map((color) => [
1602
+ color,
1603
+ {
1604
+ trigger: `focus-visible:ring-${color}`,
1605
+ link: `focus-visible:before:ring-${color}`
1606
+ }
1607
+ ])
1334
1608
  );
1335
1609
  const highlightColorVariants = Object.fromEntries(
1336
1610
  colors.map((color) => [color, ""])
@@ -1358,7 +1632,7 @@ const contentNavigation = (options) => {
1358
1632
  ].filter(Boolean),
1359
1633
  linkLeadingIcon: [
1360
1634
  "group-hover:text-default group-data-[state=open]:text-default",
1361
- "transition-colors"
1635
+ "transition-colors before:transition-colors"
1362
1636
  ]
1363
1637
  }
1364
1638
  })),
@@ -1426,7 +1700,8 @@ const contentNavigation = (options) => {
1426
1700
  }
1427
1701
  },
1428
1702
  highlightColor: {
1429
- ...highlightColorVariants
1703
+ ...highlightColorVariants,
1704
+ neutral: ""
1430
1705
  },
1431
1706
  variant: Object.fromEntries(variants.map((v) => [v, ""])),
1432
1707
  active: {
@@ -2025,6 +2300,47 @@ const error = {
2025
2300
  }
2026
2301
  };
2027
2302
 
2303
+ const footer = {
2304
+ slots: {
2305
+ root: "",
2306
+ top: "py-8 lg:py-12",
2307
+ bottom: "py-8 lg:py-12",
2308
+ container: "py-8 lg:py-4 lg:flex lg:items-center lg:justify-between lg:gap-x-3",
2309
+ left: "flex items-center justify-center lg:justify-start lg:flex-1 gap-x-1.5 mt-3 lg:mt-0 lg:order-1",
2310
+ center: "mt-3 lg:mt-0 lg:order-2 flex items-center justify-center",
2311
+ right: "lg:flex-1 flex items-center justify-center lg:justify-end gap-x-1.5 lg:order-3"
2312
+ }
2313
+ };
2314
+
2315
+ const footerColumns = {
2316
+ slots: {
2317
+ root: "xl:grid xl:grid-cols-3 xl:gap-8",
2318
+ left: "mb-10 xl:mb-0",
2319
+ center: "flex flex-col lg:grid grid-flow-col auto-cols-fr gap-8 xl:col-span-2",
2320
+ right: "mt-10 xl:mt-0",
2321
+ label: "text-sm font-semibold",
2322
+ list: "mt-6 space-y-4",
2323
+ item: "relative",
2324
+ link: "group text-sm flex items-center gap-1.5 focus-visible:outline-primary",
2325
+ linkLeadingIcon: "size-5 shrink-0",
2326
+ linkLabel: "truncate",
2327
+ linkLabelExternalIcon: "size-3 absolute top-0 text-dimmed inline-block"
2328
+ },
2329
+ variants: {
2330
+ active: {
2331
+ true: {
2332
+ link: "text-primary font-medium"
2333
+ },
2334
+ false: {
2335
+ link: [
2336
+ "text-muted hover:text-default",
2337
+ "transition-colors"
2338
+ ]
2339
+ }
2340
+ }
2341
+ }
2342
+ };
2343
+
2028
2344
  const form = {
2029
2345
  base: ""
2030
2346
  };
@@ -2060,6 +2376,32 @@ const formField = {
2060
2376
  }
2061
2377
  };
2062
2378
 
2379
+ const header = {
2380
+ slots: {
2381
+ root: "bg-default/75 backdrop-blur border-b border-default h-(--ui-header-height) sticky top-0 z-50",
2382
+ container: "flex items-center justify-between gap-3 h-full",
2383
+ left: "lg:flex-1 flex items-center gap-1.5",
2384
+ center: "hidden lg:flex",
2385
+ right: "flex items-center justify-end lg:flex-1 gap-1.5",
2386
+ title: "shrink-0 font-bold text-xl text-highlighted flex items-end gap-1.5",
2387
+ toggle: "lg:hidden",
2388
+ content: "lg:hidden",
2389
+ overlay: "lg:hidden",
2390
+ header: "px-4 sm:px-6 h-(--ui-header-height) shrink-0 flex items-center justify-between gap-3",
2391
+ body: "p-4 sm:p-6 overflow-y-auto"
2392
+ },
2393
+ variants: {
2394
+ toggleSide: {
2395
+ left: {
2396
+ toggle: "-ms-1.5"
2397
+ },
2398
+ right: {
2399
+ toggle: "-me-1.5"
2400
+ }
2401
+ }
2402
+ }
2403
+ };
2404
+
2063
2405
  const input = (options) => ({
2064
2406
  slots: {
2065
2407
  root: "relative inline-flex items-center",
@@ -2537,6 +2879,10 @@ const link = (options) => ({
2537
2879
  }]
2538
2880
  });
2539
2881
 
2882
+ const main = {
2883
+ base: "min-h-[calc(100vh-var(--ui-header-height))]"
2884
+ };
2885
+
2540
2886
  const modal = {
2541
2887
  slots: {
2542
2888
  overlay: "fixed inset-0 bg-elevated/75",
@@ -2835,59 +3181,623 @@ const navigationMenu = (options) => ({
2835
3181
  }
2836
3182
  });
2837
3183
 
2838
- const pagination = {
3184
+ const page = {
2839
3185
  slots: {
2840
- root: "",
2841
- list: "flex items-center gap-1",
2842
- ellipsis: "pointer-events-none",
2843
- label: "min-w-5 text-center",
2844
- first: "",
2845
- prev: "",
2846
- item: "",
2847
- next: "",
2848
- last: ""
3186
+ root: "flex flex-col lg:grid lg:grid-cols-10 lg:gap-10",
3187
+ left: "lg:col-span-2",
3188
+ center: "lg:col-span-8",
3189
+ right: "lg:col-span-2 order-first lg:order-last"
3190
+ },
3191
+ variants: {
3192
+ left: {
3193
+ true: ""
3194
+ },
3195
+ right: {
3196
+ true: ""
3197
+ }
3198
+ },
3199
+ compoundVariants: [
3200
+ {
3201
+ left: true,
3202
+ right: true,
3203
+ class: {
3204
+ center: "lg:col-span-6"
3205
+ }
3206
+ },
3207
+ {
3208
+ left: false,
3209
+ right: false,
3210
+ class: {
3211
+ center: "lg:col-span-10"
3212
+ }
3213
+ }
3214
+ ]
3215
+ };
3216
+
3217
+ const pageAccordion = {
3218
+ slots: {
3219
+ base: "",
3220
+ trigger: "text-base",
3221
+ body: "text-base text-muted"
2849
3222
  }
2850
3223
  };
2851
3224
 
2852
- const pinInput = (options) => ({
3225
+ const pageAnchors = {
2853
3226
  slots: {
2854
- root: "relative inline-flex items-center gap-1.5",
2855
- base: ["rounded-md border-0 placeholder:text-dimmed text-center focus:outline-none disabled:cursor-not-allowed disabled:opacity-75", options.theme.transitions && "transition-colors"]
3227
+ root: "",
3228
+ list: "",
3229
+ item: "relative",
3230
+ link: "group text-sm flex items-center gap-1.5 py-1 focus-visible:outline-primary",
3231
+ linkLeading: "rounded-md p-1 inline-flex ring-inset ring",
3232
+ linkLeadingIcon: "size-4 shrink-0",
3233
+ linkLabel: "truncate",
3234
+ linkLabelExternalIcon: "size-3 absolute top-0 text-dimmed"
2856
3235
  },
2857
3236
  variants: {
2858
- size: {
2859
- xs: {
2860
- base: "size-6 text-xs"
2861
- },
2862
- sm: {
2863
- base: "size-7 text-xs"
2864
- },
2865
- md: {
2866
- base: "size-8 text-sm"
2867
- },
2868
- lg: {
2869
- base: "size-9 text-sm"
3237
+ active: {
3238
+ true: {
3239
+ link: "text-primary font-semibold",
3240
+ linkLeading: "bg-primary ring-primary text-inverted"
2870
3241
  },
2871
- xl: {
2872
- base: "size-10 text-base"
3242
+ false: {
3243
+ link: [
3244
+ "text-muted hover:text-default font-medium",
3245
+ "transition-colors"
3246
+ ],
3247
+ linkLeading: [
3248
+ "bg-elevated/50 ring-accented text-dimmed group-hover:bg-primary group-hover:ring-primary group-hover:text-inverted",
3249
+ "transition"
3250
+ ]
2873
3251
  }
2874
- },
2875
- variant: {
2876
- outline: "text-highlighted bg-default ring ring-inset ring-accented",
2877
- soft: "text-highlighted bg-elevated/50 hover:bg-elevated focus:bg-elevated disabled:bg-elevated/50",
2878
- subtle: "text-highlighted bg-elevated ring ring-inset ring-accented",
2879
- ghost: "text-highlighted bg-transparent hover:bg-elevated focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent",
2880
- none: "text-highlighted bg-transparent"
2881
- },
2882
- color: {
2883
- ...Object.fromEntries((options.theme.colors || []).map((color) => [color, ""])),
2884
- neutral: ""
2885
- },
2886
- highlight: {
2887
- true: ""
2888
3252
  }
2889
- },
2890
- compoundVariants: [...(options.theme.colors || []).map((color) => ({
3253
+ }
3254
+ };
3255
+
3256
+ const pageAside = {
3257
+ slots: {
3258
+ root: "hidden overflow-y-auto lg:block lg:max-h-[calc(100vh-var(--ui-header-height))] lg:sticky lg:top-(--ui-header-height) py-8 lg:ps-4 lg:-ms-4 lg:pe-6.5",
3259
+ container: "relative",
3260
+ top: "sticky -top-8 -mt-8 pointer-events-none z-[1]",
3261
+ topHeader: "h-8 bg-default -mx-4 px-4",
3262
+ topBody: "bg-default relative pointer-events-auto flex flex-col -mx-4 px-4",
3263
+ topFooter: "h-8 bg-gradient-to-b from-default -mx-4 px-4"
3264
+ }
3265
+ };
3266
+
3267
+ const pageBody = {
3268
+ base: "mt-8 pb-24 space-y-12"
3269
+ };
3270
+
3271
+ const pageCard = (_options) => {
3272
+ return {
3273
+ slots: {
3274
+ root: "relative flex rounded-lg",
3275
+ spotlight: "absolute inset-0 rounded-[inherit] pointer-events-none bg-default/90",
3276
+ container: "relative flex flex-col flex-1 lg:grid gap-x-8 gap-y-4 p-4 sm:p-6",
3277
+ wrapper: "flex flex-col flex-1 items-start",
3278
+ header: "mb-4",
3279
+ body: "flex-1",
3280
+ footer: "pt-4 mt-auto",
3281
+ leading: "inline-flex items-center mb-2.5",
3282
+ leadingIcon: "size-5 shrink-0 text-primary",
3283
+ title: "text-base text-pretty font-semibold text-highlighted",
3284
+ description: "text-[15px] text-pretty"
3285
+ },
3286
+ variants: {
3287
+ orientation: {
3288
+ horizontal: {
3289
+ container: "lg:grid-cols-2 lg:items-center"
3290
+ },
3291
+ vertical: {
3292
+ container: ""
3293
+ }
3294
+ },
3295
+ reverse: {
3296
+ true: {
3297
+ wrapper: "lg:order-last"
3298
+ }
3299
+ },
3300
+ variant: {
3301
+ solid: {
3302
+ root: "bg-inverted text-inverted",
3303
+ title: "text-inverted",
3304
+ description: "text-dimmed"
3305
+ },
3306
+ outline: {
3307
+ root: "bg-default ring ring-default",
3308
+ description: "text-muted"
3309
+ },
3310
+ soft: {
3311
+ root: "bg-elevated/50",
3312
+ description: "text-toned"
3313
+ },
3314
+ subtle: {
3315
+ root: "bg-elevated/50 ring ring-default",
3316
+ description: "text-toned"
3317
+ },
3318
+ ghost: {
3319
+ description: "text-muted"
3320
+ },
3321
+ naked: {
3322
+ container: "p-0 sm:p-0",
3323
+ description: "text-muted"
3324
+ }
3325
+ },
3326
+ to: {
3327
+ true: {
3328
+ root: "transition"
3329
+ }
3330
+ },
3331
+ title: {
3332
+ true: {
3333
+ description: "mt-1"
3334
+ }
3335
+ },
3336
+ highlight: {
3337
+ true: {
3338
+ root: "ring-2"
3339
+ }
3340
+ },
3341
+ highlightColor: {
3342
+ primary: {},
3343
+ secondary: {},
3344
+ success: {},
3345
+ info: {},
3346
+ warning: {},
3347
+ error: {},
3348
+ neutral: {}
3349
+ },
3350
+ spotlight: {
3351
+ true: {
3352
+ root: "[--spotlight-size:400px] before:absolute before:-inset-px before:pointer-events-none before:rounded-[inherit] before:bg-[radial-gradient(var(--spotlight-size)_var(--spotlight-size)_at_calc(var(--spotlight-x,0px))_calc(var(--spotlight-y,0px)),var(--spotlight-color),transparent_70%)]"
3353
+ }
3354
+ },
3355
+ spotlightColor: {
3356
+ primary: {},
3357
+ secondary: {},
3358
+ success: {},
3359
+ info: {},
3360
+ warning: {},
3361
+ error: {},
3362
+ neutral: {}
3363
+ }
3364
+ },
3365
+ compoundVariants: [
3366
+ { variant: "solid", to: true, class: { root: "hover:bg-inverted/90" } },
3367
+ { variant: "outline", to: true, class: { root: "hover:bg-elevated/50" } },
3368
+ { variant: "soft", to: true, class: { root: "hover:bg-elevated" } },
3369
+ { variant: "subtle", to: true, class: { root: "hover:bg-elevated" } },
3370
+ { variant: "subtle", to: true, highlight: false, class: { root: "hover:ring-accented" } },
3371
+ { variant: "ghost", to: true, class: { root: "hover:bg-elevated/50" } },
3372
+ { highlightColor: "primary", highlight: true, class: { root: "ring-primary" } },
3373
+ { highlightColor: "secondary", highlight: true, class: { root: "ring-secondary" } },
3374
+ { highlightColor: "success", highlight: true, class: { root: "ring-success" } },
3375
+ { highlightColor: "info", highlight: true, class: { root: "ring-info" } },
3376
+ { highlightColor: "warning", highlight: true, class: { root: "ring-warning" } },
3377
+ { highlightColor: "error", highlight: true, class: { root: "ring-error" } },
3378
+ { highlightColor: "neutral", highlight: true, class: { root: "ring-inverted" } },
3379
+ { spotlightColor: "primary", spotlight: true, class: { root: "[--spotlight-color:var(--ui-primary)]" } },
3380
+ { spotlightColor: "secondary", spotlight: true, class: { root: "[--spotlight-color:var(--ui-secondary)]" } },
3381
+ { spotlightColor: "success", spotlight: true, class: { root: "[--spotlight-color:var(--ui-success)]" } },
3382
+ { spotlightColor: "info", spotlight: true, class: { root: "[--spotlight-color:var(--ui-info)]" } },
3383
+ { spotlightColor: "warning", spotlight: true, class: { root: "[--spotlight-color:var(--ui-warning)]" } },
3384
+ { spotlightColor: "error", spotlight: true, class: { root: "[--spotlight-color:var(--ui-error)]" } },
3385
+ { spotlightColor: "neutral", spotlight: true, class: { root: "[--spotlight-color:var(--ui-bg-inverted)]" } }
3386
+ ],
3387
+ defaultVariants: {
3388
+ variant: "outline",
3389
+ highlightColor: "primary",
3390
+ spotlightColor: "primary"
3391
+ }
3392
+ };
3393
+ };
3394
+
3395
+ const pageColumns = {
3396
+ base: "relative column-1 md:columns-2 lg:columns-3 gap-8 space-y-8 *:break-inside-avoid-column *:will-change-transform"
3397
+ };
3398
+
3399
+ const pageCta = {
3400
+ slots: {
3401
+ root: "relative isolate rounded-xl overflow-hidden",
3402
+ container: "flex flex-col lg:grid px-6 py-12 sm:px-12 sm:py-24 lg:px-16 lg:py-24 gap-8 sm:gap-16",
3403
+ wrapper: "",
3404
+ title: "text-3xl sm:text-4xl text-pretty tracking-tight font-bold text-highlighted",
3405
+ description: "text-base sm:text-lg text-muted",
3406
+ links: "mt-8 flex flex-wrap gap-x-6 gap-y-3"
3407
+ },
3408
+ variants: {
3409
+ orientation: {
3410
+ horizontal: {
3411
+ container: "lg:grid-cols-2 lg:items-center",
3412
+ description: "text-pretty"
3413
+ },
3414
+ vertical: {
3415
+ container: "",
3416
+ title: "text-center",
3417
+ description: "text-center text-balance",
3418
+ links: "justify-center"
3419
+ }
3420
+ },
3421
+ reverse: {
3422
+ true: {
3423
+ wrapper: "lg:order-last"
3424
+ }
3425
+ },
3426
+ variant: {
3427
+ solid: {
3428
+ root: "bg-inverted text-inverted",
3429
+ title: "text-inverted",
3430
+ description: "text-dimmed"
3431
+ },
3432
+ outline: {
3433
+ root: "bg-default ring ring-default",
3434
+ description: "text-muted"
3435
+ },
3436
+ soft: {
3437
+ root: "bg-elevated/50",
3438
+ description: "text-toned"
3439
+ },
3440
+ subtle: {
3441
+ root: "bg-elevated/50 ring ring-default",
3442
+ description: "text-toned"
3443
+ },
3444
+ naked: {
3445
+ description: "text-muted"
3446
+ }
3447
+ },
3448
+ title: {
3449
+ true: {
3450
+ description: "mt-6"
3451
+ }
3452
+ }
3453
+ },
3454
+ defaultVariants: {
3455
+ variant: "outline"
3456
+ }
3457
+ };
3458
+
3459
+ const pageFeature = {
3460
+ slots: {
3461
+ root: "relative",
3462
+ wrapper: "",
3463
+ leading: "inline-flex items-center justify-center",
3464
+ leadingIcon: "size-5 shrink-0 text-primary",
3465
+ title: "text-base text-pretty font-semibold text-highlighted",
3466
+ description: "text-[15px] text-pretty text-muted"
3467
+ },
3468
+ variants: {
3469
+ orientation: {
3470
+ horizontal: {
3471
+ root: "flex items-start gap-2.5",
3472
+ leading: "p-0.5"
3473
+ },
3474
+ vertical: {
3475
+ leading: "mb-2.5"
3476
+ }
3477
+ },
3478
+ title: {
3479
+ true: {
3480
+ description: "mt-1"
3481
+ }
3482
+ }
3483
+ }
3484
+ };
3485
+
3486
+ const pageGrid = {
3487
+ base: "relative grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8"
3488
+ };
3489
+
3490
+ const pageHeader = {
3491
+ slots: {
3492
+ root: "relative border-b border-default py-8",
3493
+ container: "",
3494
+ wrapper: "flex flex-col lg:flex-row lg:items-center lg:justify-between gap-4",
3495
+ headline: "mb-2.5 text-sm font-semibold text-primary flex items-center gap-1.5",
3496
+ title: "text-3xl sm:text-4xl text-pretty font-bold text-highlighted",
3497
+ description: "text-lg text-pretty text-muted",
3498
+ links: "flex flex-wrap items-center gap-1.5"
3499
+ },
3500
+ variants: {
3501
+ title: {
3502
+ true: {
3503
+ description: "mt-4"
3504
+ }
3505
+ }
3506
+ }
3507
+ };
3508
+
3509
+ const pageHero = {
3510
+ slots: {
3511
+ root: "relative isolate",
3512
+ container: "flex flex-col lg:grid py-24 sm:py-32 lg:py-40 gap-16 sm:gap-y-24",
3513
+ wrapper: "",
3514
+ headline: "mb-4",
3515
+ title: "text-5xl sm:text-7xl text-pretty tracking-tight font-bold text-highlighted",
3516
+ description: "text-lg sm:text-xl/8 text-muted",
3517
+ links: "mt-10 flex flex-wrap gap-x-6 gap-y-3"
3518
+ },
3519
+ variants: {
3520
+ orientation: {
3521
+ horizontal: {
3522
+ container: "lg:grid-cols-2 lg:items-center",
3523
+ description: "text-pretty"
3524
+ },
3525
+ vertical: {
3526
+ container: "",
3527
+ headline: "justify-center",
3528
+ wrapper: "text-center",
3529
+ description: "text-balance",
3530
+ links: "justify-center"
3531
+ }
3532
+ },
3533
+ reverse: {
3534
+ true: {
3535
+ wrapper: "order-last"
3536
+ }
3537
+ },
3538
+ headline: {
3539
+ true: {
3540
+ headline: "font-semibold text-primary flex items-center gap-1.5"
3541
+ }
3542
+ },
3543
+ title: {
3544
+ true: {
3545
+ description: "mt-6"
3546
+ }
3547
+ }
3548
+ }
3549
+ };
3550
+
3551
+ const pageLinks = {
3552
+ slots: {
3553
+ root: "flex flex-col gap-3",
3554
+ title: "text-sm font-semibold flex items-center gap-1.5",
3555
+ list: "flex flex-col gap-2",
3556
+ item: "relative",
3557
+ link: "group text-sm flex items-center gap-1.5 focus-visible:outline-primary",
3558
+ linkLeadingIcon: "size-5 shrink-0",
3559
+ linkLabel: "truncate",
3560
+ linkLabelExternalIcon: "size-3 absolute top-0 text-dimmed"
3561
+ },
3562
+ variants: {
3563
+ active: {
3564
+ true: {
3565
+ link: "text-primary font-medium"
3566
+ },
3567
+ false: {
3568
+ link: [
3569
+ "text-muted hover:text-default",
3570
+ "transition-colors"
3571
+ ]
3572
+ }
3573
+ }
3574
+ }
3575
+ };
3576
+
3577
+ const pageList = {
3578
+ base: "relative flex flex-col",
3579
+ variants: {
3580
+ divide: {
3581
+ true: "*:not-last:after:absolute *:not-last:after:inset-x-1 *:not-last:after:bottom-0 *:not-last:after:bg-border *:not-last:after:h-px"
3582
+ }
3583
+ }
3584
+ };
3585
+
3586
+ const pageLogos = {
3587
+ slots: {
3588
+ root: "relative overflow-hidden",
3589
+ title: "text-lg text-center font-semibold text-highlighted",
3590
+ logos: "mt-10",
3591
+ logo: "size-10 shrink-0"
3592
+ },
3593
+ variants: {
3594
+ marquee: {
3595
+ false: {
3596
+ logos: "flex items-center shrink-0 justify-around gap-(--gap) [--gap:--spacing(16)]"
3597
+ }
3598
+ }
3599
+ }
3600
+ };
3601
+
3602
+ const pageMarquee = {
3603
+ slots: {
3604
+ root: "group relative flex items-center overflow-hidden gap-(--gap) [--gap:--spacing(16)] [--duration:20s]",
3605
+ content: "flex items-center shrink-0 justify-around gap-(--gap) min-w-max"
3606
+ },
3607
+ variants: {
3608
+ orientation: {
3609
+ horizontal: {
3610
+ content: "w-full"
3611
+ },
3612
+ vertical: {
3613
+ content: "h-full"
3614
+ }
3615
+ },
3616
+ pauseOnHover: {
3617
+ true: {
3618
+ content: "group-hover:[animation-play-state:paused]"
3619
+ }
3620
+ },
3621
+ reverse: {
3622
+ true: {
3623
+ content: "[animation-direction:reverse]"
3624
+ }
3625
+ },
3626
+ overlay: {
3627
+ true: {
3628
+ root: 'before:absolute before:pointer-events-none before:content-[""] before:z-2 before:from-default before:to-transparent after:absolute after:pointer-events-none after:content-[""] after:z-2 after:from-default after:to-transparent'
3629
+ }
3630
+ }
3631
+ },
3632
+ compoundVariants: [
3633
+ {
3634
+ orientation: "horizontal",
3635
+ class: {
3636
+ root: "flex-row",
3637
+ content: "flex-row animate-[marquee_var(--duration)_linear_infinite] rtl:animate-[marquee-rtl_var(--duration)_linear_infinite] backface-hidden"
3638
+ }
3639
+ },
3640
+ {
3641
+ orientation: "horizontal",
3642
+ overlay: true,
3643
+ class: {
3644
+ root: "before:inset-y-0 before:left-0 before:h-full before:w-1/3 before:bg-gradient-to-r after:inset-y-0 after:right-0 after:h-full after:w-1/3 after:bg-gradient-to-l backface-hidden"
3645
+ }
3646
+ },
3647
+ {
3648
+ orientation: "vertical",
3649
+ class: {
3650
+ root: "flex-col",
3651
+ content: "flex-col animate-[marquee-vertical_var(--duration)_linear_infinite] rtl:animate-[marquee-vertical-rtl_var(--duration)_linear_infinite] h-[fit-content] backface-hidden"
3652
+ }
3653
+ },
3654
+ {
3655
+ orientation: "vertical",
3656
+ overlay: true,
3657
+ class: {
3658
+ root: "before:inset-x-0 before:top-0 before:w-full before:h-1/3 before:bg-gradient-to-b after:inset-x-0 after:bottom-0 after:w-full after:h-1/3 after:bg-gradient-to-t backface-hidden"
3659
+ }
3660
+ }
3661
+ ]
3662
+ };
3663
+
3664
+ const pageSection = {
3665
+ slots: {
3666
+ root: "relative isolate",
3667
+ container: "flex flex-col lg:grid py-16 sm:py-24 lg:py-32 gap-8 sm:gap-16",
3668
+ wrapper: "",
3669
+ header: "",
3670
+ leading: "flex items-center mb-6",
3671
+ leadingIcon: "size-10 shrink-0 text-primary",
3672
+ headline: "mb-3",
3673
+ title: "text-3xl sm:text-4xl lg:text-5xl text-pretty tracking-tight font-bold text-highlighted",
3674
+ description: "text-base sm:text-lg text-muted",
3675
+ body: "mt-8",
3676
+ features: "grid",
3677
+ footer: "mt-8",
3678
+ links: "flex flex-wrap gap-x-6 gap-y-3"
3679
+ },
3680
+ variants: {
3681
+ orientation: {
3682
+ horizontal: {
3683
+ container: "lg:grid-cols-2 lg:items-center",
3684
+ description: "text-pretty",
3685
+ features: "gap-4"
3686
+ },
3687
+ vertical: {
3688
+ container: "",
3689
+ headline: "justify-center",
3690
+ leading: "justify-center",
3691
+ title: "text-center",
3692
+ description: "text-center text-balance",
3693
+ links: "justify-center",
3694
+ features: "sm:grid-cols-2 lg:grid-cols-3 gap-8"
3695
+ }
3696
+ },
3697
+ reverse: {
3698
+ true: {
3699
+ wrapper: "lg:order-last"
3700
+ }
3701
+ },
3702
+ headline: {
3703
+ true: {
3704
+ headline: "font-semibold text-primary flex items-center gap-1.5"
3705
+ }
3706
+ },
3707
+ title: {
3708
+ true: {
3709
+ description: "mt-6"
3710
+ }
3711
+ },
3712
+ description: {
3713
+ true: ""
3714
+ },
3715
+ body: {
3716
+ true: ""
3717
+ },
3718
+ features: {
3719
+ true: "",
3720
+ false: ""
3721
+ }
3722
+ },
3723
+ compoundVariants: [
3724
+ {
3725
+ orientation: "vertical",
3726
+ title: true,
3727
+ class: {
3728
+ body: "mt-16"
3729
+ }
3730
+ },
3731
+ {
3732
+ orientation: "vertical",
3733
+ description: true,
3734
+ class: {
3735
+ body: "mt-16"
3736
+ }
3737
+ },
3738
+ {
3739
+ orientation: "vertical",
3740
+ body: true,
3741
+ class: {
3742
+ footer: "mt-16"
3743
+ }
3744
+ }
3745
+ ]
3746
+ };
3747
+
3748
+ const pagination = {
3749
+ slots: {
3750
+ root: "",
3751
+ list: "flex items-center gap-1",
3752
+ ellipsis: "pointer-events-none",
3753
+ label: "min-w-5 text-center",
3754
+ first: "",
3755
+ prev: "",
3756
+ item: "",
3757
+ next: "",
3758
+ last: ""
3759
+ }
3760
+ };
3761
+
3762
+ const pinInput = (options) => ({
3763
+ slots: {
3764
+ root: "relative inline-flex items-center gap-1.5",
3765
+ base: ["rounded-md border-0 placeholder:text-dimmed text-center focus:outline-none disabled:cursor-not-allowed disabled:opacity-75", options.theme.transitions && "transition-colors"]
3766
+ },
3767
+ variants: {
3768
+ size: {
3769
+ xs: {
3770
+ base: "size-6 text-xs"
3771
+ },
3772
+ sm: {
3773
+ base: "size-7 text-xs"
3774
+ },
3775
+ md: {
3776
+ base: "size-8 text-sm"
3777
+ },
3778
+ lg: {
3779
+ base: "size-9 text-sm"
3780
+ },
3781
+ xl: {
3782
+ base: "size-10 text-base"
3783
+ }
3784
+ },
3785
+ variant: {
3786
+ outline: "text-highlighted bg-default ring ring-inset ring-accented",
3787
+ soft: "text-highlighted bg-elevated/50 hover:bg-elevated focus:bg-elevated disabled:bg-elevated/50",
3788
+ subtle: "text-highlighted bg-elevated ring ring-inset ring-accented",
3789
+ ghost: "text-highlighted bg-transparent hover:bg-elevated focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent",
3790
+ none: "text-highlighted bg-transparent"
3791
+ },
3792
+ color: {
3793
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, ""])),
3794
+ neutral: ""
3795
+ },
3796
+ highlight: {
3797
+ true: ""
3798
+ }
3799
+ },
3800
+ compoundVariants: [...(options.theme.colors || []).map((color) => ({
2891
3801
  color,
2892
3802
  variant: ["outline", "subtle"],
2893
3803
  class: `focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-${color}`
@@ -2918,6 +3828,171 @@ const popover = {
2918
3828
  }
2919
3829
  };
2920
3830
 
3831
+ const pricingPlan = {
3832
+ slots: {
3833
+ root: "relative grid rounded-lg p-6 lg:p-8 xl:p-10 gap-6",
3834
+ header: "",
3835
+ body: "flex flex-col min-w-0",
3836
+ footer: "flex flex-col gap-6 items-center",
3837
+ titleWrapper: "flex items-center gap-3",
3838
+ title: "text-highlighted text-2xl sm:text-3xl text-pretty font-semibold",
3839
+ description: "text-muted text-base text-pretty mt-2",
3840
+ priceWrapper: "flex items-center gap-1",
3841
+ price: "text-highlighted text-3xl sm:text-4xl font-semibold",
3842
+ discount: "text-muted line-through text-xl sm:text-2xl",
3843
+ billing: "flex flex-col justify-between min-w-0",
3844
+ billingPeriod: "text-toned truncate text-xs font-medium",
3845
+ billingCycle: "text-muted truncate text-xs font-medium",
3846
+ features: "flex flex-col gap-3 flex-1 mt-6 grow-0",
3847
+ feature: "flex items-center gap-2 min-w-0",
3848
+ featureIcon: "size-5 shrink-0 text-primary",
3849
+ featureTitle: "text-muted text-sm truncate",
3850
+ badge: "",
3851
+ button: "",
3852
+ tagline: "text-base font-semibold text-default",
3853
+ terms: "text-xs/5 text-muted text-center text-balance"
3854
+ },
3855
+ variants: {
3856
+ orientation: {
3857
+ horizontal: {
3858
+ root: "grid-cols-1 lg:grid-cols-3 justify-between divide-y lg:divide-y-0 lg:divide-x divide-default",
3859
+ body: "lg:col-span-2 pb-6 lg:pb-0 lg:pr-6 justify-center",
3860
+ footer: "lg:justify-center lg:items-center lg:p-6 lg:max-w-xs lg:w-full lg:mx-auto",
3861
+ features: "lg:grid lg:grid-cols-2 lg:mt-12"
3862
+ },
3863
+ vertical: {
3864
+ footer: "justify-end",
3865
+ priceWrapper: "mt-6"
3866
+ }
3867
+ },
3868
+ variant: {
3869
+ solid: {
3870
+ root: "bg-inverted",
3871
+ title: "text-inverted",
3872
+ description: "text-dimmed",
3873
+ price: "text-inverted",
3874
+ discount: "text-dimmed",
3875
+ billingCycle: "text-dimmed",
3876
+ billingPeriod: "text-dimmed",
3877
+ featureTitle: "text-dimmed"
3878
+ },
3879
+ outline: {
3880
+ root: "bg-default ring ring-default"
3881
+ },
3882
+ soft: {
3883
+ root: "bg-elevated/50"
3884
+ },
3885
+ subtle: {
3886
+ root: "bg-elevated/50 ring ring-default"
3887
+ }
3888
+ },
3889
+ highlight: {
3890
+ true: {
3891
+ root: "ring-2 ring-inset ring-primary"
3892
+ }
3893
+ },
3894
+ scale: {
3895
+ true: {
3896
+ root: "lg:scale-[1.1] lg:z-[1]"
3897
+ }
3898
+ }
3899
+ },
3900
+ compoundVariants: [
3901
+ {
3902
+ orientation: "horizontal",
3903
+ variant: "soft",
3904
+ class: {
3905
+ root: "divide-accented"
3906
+ }
3907
+ },
3908
+ {
3909
+ orientation: "horizontal",
3910
+ variant: "subtle",
3911
+ class: {
3912
+ root: "divide-accented"
3913
+ }
3914
+ }
3915
+ ],
3916
+ defaultVariants: {
3917
+ variant: "outline"
3918
+ }
3919
+ };
3920
+
3921
+ const pricingPlans = {
3922
+ base: "flex flex-col gap-y-8",
3923
+ variants: {
3924
+ orientation: {
3925
+ horizontal: "lg:grid lg:grid-cols-[repeat(var(--count),minmax(0,1fr))]",
3926
+ vertical: ""
3927
+ },
3928
+ compact: {
3929
+ false: "gap-x-8"
3930
+ },
3931
+ scale: {
3932
+ true: ""
3933
+ }
3934
+ },
3935
+ compoundVariants: [
3936
+ {
3937
+ compact: false,
3938
+ scale: true,
3939
+ class: "lg:gap-x-13"
3940
+ }
3941
+ ]
3942
+ };
3943
+
3944
+ const pricingTable = {
3945
+ slots: {
3946
+ root: "w-full relative",
3947
+ table: "w-full table-fixed border-separate border-spacing-x-0 hidden md:table",
3948
+ list: "md:hidden flex flex-col gap-6 w-full",
3949
+ item: "p-6 flex flex-col border border-default rounded-lg",
3950
+ caption: "sr-only",
3951
+ thead: "",
3952
+ tbody: "",
3953
+ tr: "",
3954
+ th: "py-4 font-normal text-left border-b border-default",
3955
+ td: "px-6 py-4 text-center border-b border-default",
3956
+ tier: "p-6 text-left font-normal",
3957
+ tierTitleWrapper: "flex items-center gap-3",
3958
+ tierTitle: "text-lg font-semibold text-highlighted",
3959
+ tierDescription: "text-sm font-normal text-muted mt-1",
3960
+ tierBadge: "truncate",
3961
+ tierPriceWrapper: "flex items-center gap-1 mt-4",
3962
+ tierPrice: "text-highlighted text-3xl sm:text-4xl font-semibold",
3963
+ tierDiscount: "text-muted line-through text-xl sm:text-2xl",
3964
+ tierBilling: "flex flex-col justify-between min-w-0",
3965
+ tierBillingPeriod: "text-toned truncate text-xs font-medium",
3966
+ tierBillingCycle: "text-muted truncate text-xs font-medium",
3967
+ tierButton: "mt-6",
3968
+ tierFeatureIcon: "size-5 shrink-0",
3969
+ section: "mt-6 flex flex-col gap-2",
3970
+ sectionTitle: "font-semibold text-sm text-highlighted",
3971
+ feature: "flex items-center justify-between gap-1",
3972
+ featureTitle: "text-sm text-default",
3973
+ featureValue: "text-sm text-muted flex justify-center min-w-5"
3974
+ },
3975
+ variants: {
3976
+ section: {
3977
+ true: {
3978
+ tr: "*:pt-8"
3979
+ }
3980
+ },
3981
+ active: {
3982
+ true: {
3983
+ tierFeatureIcon: "text-primary"
3984
+ }
3985
+ },
3986
+ highlight: {
3987
+ true: {
3988
+ tier: "bg-elevated/50 border-x border-t border-default rounded-t-lg",
3989
+ td: "bg-elevated/50 border-x border-default",
3990
+ item: "bg-elevated/50"
3991
+ }
3992
+ }
3993
+ }
3994
+ };
3995
+
2921
3996
  const progress = (options) => ({
2922
3997
  slots: {
2923
3998
  root: "gap-2",
@@ -4527,21 +5602,118 @@ const tree = (options) => ({
4527
5602
  }
4528
5603
  });
4529
5604
 
5605
+ const user = {
5606
+ slots: {
5607
+ root: "relative group/user",
5608
+ wrapper: "",
5609
+ name: "font-medium",
5610
+ description: "text-muted",
5611
+ avatar: "shrink-0"
5612
+ },
5613
+ variants: {
5614
+ orientation: {
5615
+ horizontal: {
5616
+ root: "flex items-center"
5617
+ },
5618
+ vertical: {
5619
+ root: "flex flex-col"
5620
+ }
5621
+ },
5622
+ to: {
5623
+ true: {
5624
+ name: [
5625
+ "text-default peer-hover:text-highlighted",
5626
+ "transition-colors"
5627
+ ],
5628
+ description: [
5629
+ "peer-hover:text-toned",
5630
+ "transition-colors"
5631
+ ],
5632
+ avatar: "transform transition-transform duration-200 group-hover/user:scale-115"
5633
+ },
5634
+ false: {
5635
+ name: "text-highlighted",
5636
+ description: ""
5637
+ }
5638
+ },
5639
+ size: {
5640
+ "3xs": {
5641
+ root: "gap-1",
5642
+ wrapper: "flex items-center gap-1",
5643
+ name: "text-xs",
5644
+ description: "text-xs"
5645
+ },
5646
+ "2xs": {
5647
+ root: "gap-1.5",
5648
+ wrapper: "flex items-center gap-1.5",
5649
+ name: "text-xs",
5650
+ description: "text-xs"
5651
+ },
5652
+ "xs": {
5653
+ root: "gap-1.5",
5654
+ wrapper: "flex items-center gap-1.5",
5655
+ name: "text-xs",
5656
+ description: "text-xs"
5657
+ },
5658
+ "sm": {
5659
+ root: "gap-2",
5660
+ name: "text-xs",
5661
+ description: "text-xs"
5662
+ },
5663
+ "md": {
5664
+ root: "gap-2",
5665
+ name: "text-sm",
5666
+ description: "text-xs"
5667
+ },
5668
+ "lg": {
5669
+ root: "gap-2.5",
5670
+ name: "text-sm",
5671
+ description: "text-sm"
5672
+ },
5673
+ "xl": {
5674
+ root: "gap-2.5",
5675
+ name: "text-base",
5676
+ description: "text-sm"
5677
+ },
5678
+ "2xl": {
5679
+ root: "gap-3",
5680
+ name: "text-base",
5681
+ description: "text-base"
5682
+ },
5683
+ "3xl": {
5684
+ root: "gap-3",
5685
+ name: "text-lg",
5686
+ description: "text-base"
5687
+ }
5688
+ }
5689
+ },
5690
+ defaultVariants: {
5691
+ size: "md"
5692
+ }
5693
+ };
5694
+
4530
5695
  const theme = {
4531
5696
  __proto__: null,
4532
5697
  accordion: accordion$1,
4533
5698
  alert: alert,
5699
+ authForm: authForm,
4534
5700
  avatar: avatar,
4535
5701
  avatarGroup: avatarGroup,
4536
5702
  badge: badge$1,
5703
+ banner: banner,
5704
+ blogPost: blogPost,
5705
+ blogPosts: blogPosts,
4537
5706
  breadcrumb: breadcrumb,
4538
5707
  button: button,
4539
5708
  buttonGroup: buttonGroup,
4540
5709
  calendar: calendar,
4541
5710
  card: card$1,
4542
5711
  carousel: carousel,
5712
+ changelogVersion: changelogVersion,
5713
+ changelogVersions: changelogVersions,
4543
5714
  chatMessage: chatMessage,
4544
5715
  chatMessages: chatMessages,
5716
+ chatPalette: chatPalette,
4545
5717
  chatPrompt: chatPrompt,
4546
5718
  chatPromptSubmit: chatPromptSubmit,
4547
5719
  checkbox: checkbox,
@@ -4569,19 +5741,43 @@ const theme = {
4569
5741
  drawer: drawer,
4570
5742
  dropdownMenu: dropdownMenu,
4571
5743
  error: error,
5744
+ footer: footer,
5745
+ footerColumns: footerColumns,
4572
5746
  form: form,
4573
5747
  formField: formField,
5748
+ header: header,
4574
5749
  input: input,
4575
5750
  inputMenu: inputMenu,
4576
5751
  inputNumber: inputNumber,
4577
5752
  inputTags: inputTags,
4578
5753
  kbd: kbd$1,
4579
5754
  link: link,
5755
+ main: main,
4580
5756
  modal: modal,
4581
5757
  navigationMenu: navigationMenu,
5758
+ page: page,
5759
+ pageAccordion: pageAccordion,
5760
+ pageAnchors: pageAnchors,
5761
+ pageAside: pageAside,
5762
+ pageBody: pageBody,
5763
+ pageCard: pageCard,
5764
+ pageColumns: pageColumns,
5765
+ pageCta: pageCta,
5766
+ pageFeature: pageFeature,
5767
+ pageGrid: pageGrid,
5768
+ pageHeader: pageHeader,
5769
+ pageHero: pageHero,
5770
+ pageLinks: pageLinks,
5771
+ pageList: pageList,
5772
+ pageLogos: pageLogos,
5773
+ pageMarquee: pageMarquee,
5774
+ pageSection: pageSection,
4582
5775
  pagination: pagination,
4583
5776
  pinInput: pinInput,
4584
5777
  popover: popover,
5778
+ pricingPlan: pricingPlan,
5779
+ pricingPlans: pricingPlans,
5780
+ pricingTable: pricingTable,
4585
5781
  progress: progress,
4586
5782
  radioGroup: radioGroup,
4587
5783
  select: select,
@@ -4599,7 +5795,8 @@ const theme = {
4599
5795
  toast: toast,
4600
5796
  toaster: toaster,
4601
5797
  tooltip: tooltip,
4602
- tree: tree
5798
+ tree: tree,
5799
+ user: user
4603
5800
  };
4604
5801
 
4605
5802
  const contentTheme = {