@eslamdevui/ui 3.3.4 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (622) hide show
  1. package/.nuxt/ui/alert.ts +0 -5
  2. package/.nuxt/ui/badge.ts +1 -6
  3. package/.nuxt/ui/banner.ts +4 -1
  4. package/.nuxt/ui/blog-post.ts +3 -1
  5. package/.nuxt/ui/blog-posts.ts +0 -5
  6. package/.nuxt/ui/button.ts +1 -6
  7. package/.nuxt/ui/carousel.ts +0 -5
  8. package/.nuxt/ui/changelog-version.ts +1 -1
  9. package/.nuxt/ui/changelog-versions.ts +2 -2
  10. package/.nuxt/ui/chat-message.ts +1 -1
  11. package/.nuxt/ui/content/content-navigation.ts +110 -83
  12. package/.nuxt/ui/content/content-surround.ts +0 -5
  13. package/.nuxt/ui/content/content-toc.ts +12 -7
  14. package/.nuxt/ui/dashboard-navbar.ts +0 -5
  15. package/.nuxt/ui/dashboard-sidebar-collapse.ts +0 -5
  16. package/.nuxt/ui/dashboard-sidebar-toggle.ts +0 -5
  17. package/.nuxt/ui/dashboard-sidebar.ts +0 -10
  18. package/.nuxt/ui/drawer.ts +1 -1
  19. package/.nuxt/ui/{button-group.ts → field-group.ts} +0 -13
  20. package/.nuxt/ui/file-upload.ts +0 -5
  21. package/.nuxt/ui/header.ts +0 -5
  22. package/.nuxt/ui/index.ts +10 -11
  23. package/.nuxt/ui/input-menu.ts +1 -10
  24. package/.nuxt/ui/input-number.ts +1 -6
  25. package/.nuxt/ui/input-tags.ts +1 -10
  26. package/.nuxt/ui/input.ts +2 -11
  27. package/.nuxt/ui/{page-marquee.ts → marquee.ts} +1 -1
  28. package/.nuxt/ui/page-card.ts +23 -20
  29. package/.nuxt/ui/page-cta.ts +4 -6
  30. package/.nuxt/ui/page-feature.ts +0 -5
  31. package/.nuxt/ui/page-hero.ts +4 -6
  32. package/.nuxt/ui/page-section.ts +0 -4
  33. package/.nuxt/ui/pricing-plans.ts +0 -5
  34. package/.nuxt/ui/progress.ts +3 -3
  35. package/.nuxt/ui/prose/code-tree.ts +1 -1
  36. package/.nuxt/ui/prose/img.ts +20 -1
  37. package/.nuxt/ui/select-menu.ts +1 -10
  38. package/.nuxt/ui/select.ts +8 -17
  39. package/.nuxt/ui/table.ts +0 -6
  40. package/.nuxt/ui/textarea.ts +2 -11
  41. package/.nuxt/ui/toast.ts +0 -5
  42. package/.nuxt/ui/tree.ts +1 -1
  43. package/.nuxt/ui/user.ts +0 -5
  44. package/README.md +21 -12
  45. package/cli/commands/make/component.mjs +2 -15
  46. package/cli/templates.mjs +32 -48
  47. package/dist/module.d.mts +8 -8
  48. package/dist/module.json +4 -4
  49. package/dist/module.mjs +48 -60
  50. package/dist/runtime/components/Accordion.d.vue.ts +79 -0
  51. package/dist/runtime/components/Accordion.vue +4 -4
  52. package/dist/runtime/components/Accordion.vue.d.ts +8 -6
  53. package/dist/runtime/components/Alert.d.vue.ts +81 -0
  54. package/dist/runtime/components/Alert.vue +2 -2
  55. package/dist/runtime/components/Alert.vue.d.ts +5 -5
  56. package/dist/runtime/components/App.d.vue.ts +25 -0
  57. package/dist/runtime/components/App.vue +1 -1
  58. package/dist/runtime/components/App.vue.d.ts +3 -2
  59. package/dist/runtime/components/AuthForm.d.vue.ts +128 -0
  60. package/dist/runtime/components/AuthForm.vue +31 -12
  61. package/dist/runtime/components/AuthForm.vue.d.ts +63 -20
  62. package/dist/runtime/components/Avatar.d.vue.ts +41 -0
  63. package/dist/runtime/components/Avatar.vue +1 -1
  64. package/dist/runtime/components/Avatar.vue.d.ts +4 -4
  65. package/dist/runtime/components/AvatarGroup.d.vue.ts +31 -0
  66. package/dist/runtime/components/AvatarGroup.vue.d.ts +2 -2
  67. package/dist/runtime/components/Badge.d.vue.ts +43 -0
  68. package/dist/runtime/components/Badge.vue +7 -7
  69. package/dist/runtime/components/Badge.vue.d.ts +2 -2
  70. package/dist/runtime/components/Banner.d.vue.ts +72 -0
  71. package/dist/runtime/components/Banner.vue +9 -5
  72. package/dist/runtime/components/Banner.vue.d.ts +13 -5
  73. package/dist/runtime/components/BlogPost.d.vue.ts +60 -0
  74. package/dist/runtime/components/BlogPost.vue +5 -1
  75. package/dist/runtime/components/BlogPost.vue.d.ts +4 -3
  76. package/dist/runtime/components/BlogPosts.d.vue.ts +31 -0
  77. package/dist/runtime/components/BlogPosts.vue.d.ts +4 -3
  78. package/dist/runtime/components/Breadcrumb.d.vue.ts +67 -0
  79. package/dist/runtime/components/Breadcrumb.vue +2 -2
  80. package/dist/runtime/components/Breadcrumb.vue.d.ts +7 -6
  81. package/dist/runtime/components/Button.d.vue.ts +44 -0
  82. package/dist/runtime/components/Button.vue +7 -7
  83. package/dist/runtime/components/Button.vue.d.ts +2 -2
  84. package/dist/runtime/components/Calendar.d.vue.ts +112 -0
  85. package/dist/runtime/components/Calendar.vue +5 -5
  86. package/dist/runtime/components/Calendar.vue.d.ts +9 -8
  87. package/dist/runtime/components/Card.d.vue.ts +29 -0
  88. package/dist/runtime/components/Card.vue.d.ts +2 -2
  89. package/dist/runtime/components/Carousel.d.vue.ts +127 -0
  90. package/dist/runtime/components/Carousel.vue +3 -3
  91. package/dist/runtime/components/Carousel.vue.d.ts +15 -15
  92. package/dist/runtime/components/ChangelogVersion.d.vue.ts +59 -0
  93. package/dist/runtime/components/ChangelogVersion.vue +3 -2
  94. package/dist/runtime/components/ChangelogVersion.vue.d.ts +4 -3
  95. package/dist/runtime/components/ChangelogVersions.d.vue.ts +78 -0
  96. package/dist/runtime/components/ChangelogVersions.vue +3 -3
  97. package/dist/runtime/components/ChangelogVersions.vue.d.ts +15 -11
  98. package/dist/runtime/components/ChatMessage.d.vue.ts +67 -0
  99. package/dist/runtime/components/ChatMessage.vue +58 -56
  100. package/dist/runtime/components/ChatMessage.vue.d.ts +25 -84
  101. package/dist/runtime/components/ChatMessages.d.vue.ts +83 -0
  102. package/dist/runtime/components/ChatMessages.vue +20 -36
  103. package/dist/runtime/components/ChatMessages.vue.d.ts +10 -9
  104. package/dist/runtime/components/ChatPalette.d.vue.ts +24 -0
  105. package/dist/runtime/components/ChatPalette.vue.d.ts +3 -3
  106. package/dist/runtime/components/ChatPrompt.d.vue.ts +61 -0
  107. package/dist/runtime/components/ChatPrompt.vue +25 -22
  108. package/dist/runtime/components/ChatPrompt.vue.d.ts +8 -7
  109. package/dist/runtime/components/ChatPromptSubmit.d.vue.ts +100 -0
  110. package/dist/runtime/components/ChatPromptSubmit.vue +43 -38
  111. package/dist/runtime/components/ChatPromptSubmit.vue.d.ts +15 -14
  112. package/dist/runtime/components/Checkbox.d.vue.ts +74 -0
  113. package/dist/runtime/components/Checkbox.vue +2 -2
  114. package/dist/runtime/components/Checkbox.vue.d.ts +8 -7
  115. package/dist/runtime/components/CheckboxGroup.d.vue.ts +89 -0
  116. package/dist/runtime/components/CheckboxGroup.vue +9 -9
  117. package/dist/runtime/components/CheckboxGroup.vue.d.ts +23 -18
  118. package/dist/runtime/components/Chip.d.vue.ts +57 -0
  119. package/dist/runtime/components/Chip.vue.d.ts +3 -3
  120. package/dist/runtime/components/Collapsible.d.vue.ts +35 -0
  121. package/dist/runtime/components/Collapsible.vue.d.ts +2 -2
  122. package/dist/runtime/components/ColorPicker.d.vue.ts +48 -0
  123. package/dist/runtime/components/ColorPicker.vue.d.ts +3 -3
  124. package/dist/runtime/components/CommandPalette.d.vue.ts +193 -0
  125. package/dist/runtime/components/CommandPalette.vue +11 -10
  126. package/dist/runtime/components/CommandPalette.vue.d.ts +12 -11
  127. package/dist/runtime/components/Container.d.vue.ts +18 -0
  128. package/dist/runtime/components/Container.vue.d.ts +1 -1
  129. package/dist/runtime/components/ContextMenu.d.vue.ts +110 -0
  130. package/dist/runtime/components/ContextMenu.vue +6 -5
  131. package/dist/runtime/components/ContextMenu.vue.d.ts +9 -8
  132. package/dist/runtime/components/ContextMenuContent.d.vue.ts +50 -0
  133. package/dist/runtime/components/ContextMenuContent.vue +10 -8
  134. package/dist/runtime/components/ContextMenuContent.vue.d.ts +8 -7
  135. package/dist/runtime/components/DashboardGroup.d.vue.ts +24 -0
  136. package/dist/runtime/components/DashboardGroup.vue +14 -12
  137. package/dist/runtime/components/DashboardGroup.vue.d.ts +2 -5
  138. package/dist/runtime/components/DashboardNavbar.d.vue.ts +52 -0
  139. package/dist/runtime/components/DashboardNavbar.vue +21 -23
  140. package/dist/runtime/components/DashboardNavbar.vue.d.ts +7 -8
  141. package/dist/runtime/components/DashboardPanel.d.vue.ts +30 -0
  142. package/dist/runtime/components/DashboardPanel.vue +19 -13
  143. package/dist/runtime/components/DashboardPanel.vue.d.ts +5 -3
  144. package/dist/runtime/components/DashboardResizeHandle.d.vue.ts +18 -0
  145. package/dist/runtime/components/DashboardResizeHandle.vue +1 -6
  146. package/dist/runtime/components/DashboardResizeHandle.vue.d.ts +1 -5
  147. package/dist/runtime/components/DashboardSearch.d.vue.ts +91 -0
  148. package/dist/runtime/components/DashboardSearch.vue +58 -57
  149. package/dist/runtime/components/DashboardSearch.vue.d.ts +53 -10
  150. package/dist/runtime/components/DashboardSearchButton.d.vue.ts +59 -0
  151. package/dist/runtime/components/DashboardSearchButton.vue +35 -47
  152. package/dist/runtime/components/DashboardSearchButton.vue.d.ts +7 -6
  153. package/dist/runtime/components/DashboardSidebar.d.vue.ts +75 -0
  154. package/dist/runtime/components/DashboardSidebar.vue +58 -66
  155. package/dist/runtime/components/DashboardSidebar.vue.d.ts +41 -38
  156. package/dist/runtime/components/DashboardSidebarCollapse.d.vue.ts +19 -0
  157. package/dist/runtime/components/DashboardSidebarCollapse.vue +9 -19
  158. package/dist/runtime/components/DashboardSidebarCollapse.vue.d.ts +8 -4
  159. package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +19 -0
  160. package/dist/runtime/components/DashboardSidebarToggle.vue +6 -4
  161. package/dist/runtime/components/DashboardSidebarToggle.vue.d.ts +3 -6
  162. package/dist/runtime/components/DashboardToolbar.d.vue.ts +25 -0
  163. package/dist/runtime/components/DashboardToolbar.vue.d.ts +3 -3
  164. package/dist/runtime/components/Drawer.d.vue.ts +84 -0
  165. package/dist/runtime/components/Drawer.vue.d.ts +3 -2
  166. package/dist/runtime/components/DropdownMenu.d.vue.ts +120 -0
  167. package/dist/runtime/components/DropdownMenu.vue +5 -5
  168. package/dist/runtime/components/DropdownMenu.vue.d.ts +9 -8
  169. package/dist/runtime/components/DropdownMenuContent.d.vue.ts +56 -0
  170. package/dist/runtime/components/DropdownMenuContent.vue +10 -8
  171. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +8 -7
  172. package/dist/runtime/components/Error.d.vue.ts +47 -0
  173. package/dist/runtime/components/Error.vue +34 -31
  174. package/dist/runtime/components/Error.vue.d.ts +5 -10
  175. package/dist/runtime/components/FieldGroup.d.vue.ts +34 -0
  176. package/dist/runtime/components/{ButtonGroup.vue → FieldGroup.vue} +4 -4
  177. package/dist/runtime/components/FieldGroup.vue.d.ts +34 -0
  178. package/dist/runtime/components/FileUpload.d.vue.ts +166 -0
  179. package/dist/runtime/components/FileUpload.vue +12 -5
  180. package/dist/runtime/components/FileUpload.vue.d.ts +10 -11
  181. package/dist/runtime/components/Footer.d.vue.ts +29 -0
  182. package/dist/runtime/components/Footer.vue +1 -0
  183. package/dist/runtime/components/Footer.vue.d.ts +3 -3
  184. package/dist/runtime/components/FooterColumns.d.vue.ts +57 -0
  185. package/dist/runtime/components/FooterColumns.vue +4 -1
  186. package/dist/runtime/components/FooterColumns.vue.d.ts +16 -11
  187. package/dist/runtime/components/Form.d.vue.ts +114 -0
  188. package/dist/runtime/components/Form.vue +145 -61
  189. package/dist/runtime/components/Form.vue.d.ts +60 -17
  190. package/dist/runtime/components/FormField.d.vue.ts +61 -0
  191. package/dist/runtime/components/FormField.vue +10 -4
  192. package/dist/runtime/components/FormField.vue.d.ts +2 -2
  193. package/dist/runtime/components/Header.d.vue.ts +68 -0
  194. package/dist/runtime/components/Header.vue +12 -8
  195. package/dist/runtime/components/Header.vue.d.ts +19 -23
  196. package/dist/runtime/components/Icon.d.vue.ts +8 -0
  197. package/dist/runtime/components/Icon.vue +3 -2
  198. package/dist/runtime/components/Icon.vue.d.ts +2 -2
  199. package/dist/runtime/components/Input.d.vue.ts +74 -0
  200. package/dist/runtime/components/Input.vue +12 -9
  201. package/dist/runtime/components/Input.vue.d.ts +12 -15
  202. package/dist/runtime/components/InputMenu.d.vue.ts +330 -0
  203. package/dist/runtime/components/InputMenu.vue +24 -19
  204. package/dist/runtime/components/InputMenu.vue.d.ts +24 -231
  205. package/dist/runtime/components/InputNumber.d.vue.ts +188 -0
  206. package/dist/runtime/components/InputNumber.vue +16 -9
  207. package/dist/runtime/components/InputNumber.vue.d.ts +15 -87
  208. package/dist/runtime/components/InputTags.d.vue.ts +186 -0
  209. package/dist/runtime/components/InputTags.vue +11 -11
  210. package/dist/runtime/components/InputTags.vue.d.ts +8 -7
  211. package/dist/runtime/components/Kbd.d.vue.ts +38 -0
  212. package/dist/runtime/components/Kbd.vue.d.ts +2 -2
  213. package/dist/runtime/components/Link.d.vue.ts +91 -0
  214. package/dist/runtime/components/Link.vue.d.ts +1 -1
  215. package/dist/runtime/components/LinkBase.d.vue.ts +25 -0
  216. package/dist/runtime/components/LinkBase.vue.d.ts +1 -1
  217. package/dist/runtime/components/Main.d.vue.ts +20 -0
  218. package/dist/runtime/components/Main.vue.d.ts +1 -1
  219. package/dist/runtime/components/Marquee.d.vue.ts +32 -0
  220. package/dist/runtime/components/{PageMarquee.vue → Marquee.vue} +4 -4
  221. package/dist/runtime/components/Marquee.vue.d.ts +32 -0
  222. package/dist/runtime/components/Modal.d.vue.ts +107 -0
  223. package/dist/runtime/components/Modal.vue +1 -1
  224. package/dist/runtime/components/Modal.vue.d.ts +6 -5
  225. package/dist/runtime/components/NavigationMenu.d.vue.ts +171 -0
  226. package/dist/runtime/components/NavigationMenu.vue +2 -2
  227. package/dist/runtime/components/NavigationMenu.vue.d.ts +9 -8
  228. package/dist/runtime/components/OverlayProvider.d.vue.ts +2 -0
  229. package/dist/runtime/components/OverlayProvider.vue.d.ts +1 -1
  230. package/dist/runtime/components/Page.d.vue.ts +25 -0
  231. package/dist/runtime/components/Page.vue.d.ts +3 -3
  232. package/dist/runtime/components/PageAnchors.d.vue.ts +47 -0
  233. package/dist/runtime/components/PageAnchors.vue +4 -1
  234. package/dist/runtime/components/PageAnchors.vue.d.ts +16 -11
  235. package/dist/runtime/components/PageAside.d.vue.ts +27 -0
  236. package/dist/runtime/components/PageAside.vue.d.ts +3 -3
  237. package/dist/runtime/components/PageBody.d.vue.ts +18 -0
  238. package/dist/runtime/components/PageBody.vue.d.ts +1 -1
  239. package/dist/runtime/components/PageCTA.d.vue.ts +56 -0
  240. package/dist/runtime/components/PageCTA.vue +31 -13
  241. package/dist/runtime/components/PageCTA.vue.d.ts +11 -4
  242. package/dist/runtime/components/PageCard.d.vue.ts +72 -0
  243. package/dist/runtime/components/PageCard.vue +4 -3
  244. package/dist/runtime/components/PageCard.vue.d.ts +5 -4
  245. package/dist/runtime/components/PageColumns.d.vue.ts +18 -0
  246. package/dist/runtime/components/PageColumns.vue.d.ts +1 -1
  247. package/dist/runtime/components/PageFeature.d.vue.ts +44 -0
  248. package/dist/runtime/components/PageFeature.vue +4 -2
  249. package/dist/runtime/components/PageFeature.vue.d.ts +5 -4
  250. package/dist/runtime/components/PageGrid.d.vue.ts +18 -0
  251. package/dist/runtime/components/PageGrid.vue.d.ts +1 -1
  252. package/dist/runtime/components/PageHeader.d.vue.ts +36 -0
  253. package/dist/runtime/components/PageHeader.vue +1 -0
  254. package/dist/runtime/components/PageHeader.vue.d.ts +4 -3
  255. package/dist/runtime/components/PageHero.d.vue.ts +53 -0
  256. package/dist/runtime/components/PageHero.vue +31 -17
  257. package/dist/runtime/components/PageHero.vue.d.ts +9 -5
  258. package/dist/runtime/components/PageLinks.d.vue.ts +49 -0
  259. package/dist/runtime/components/PageLinks.vue +4 -1
  260. package/dist/runtime/components/PageLinks.vue.d.ts +16 -11
  261. package/dist/runtime/components/PageList.d.vue.ts +21 -0
  262. package/dist/runtime/components/PageList.vue.d.ts +1 -1
  263. package/dist/runtime/components/PageLogos.d.vue.ts +33 -0
  264. package/dist/runtime/components/PageLogos.vue +5 -4
  265. package/dist/runtime/components/PageLogos.vue.d.ts +6 -5
  266. package/dist/runtime/components/PageSection.d.vue.ts +68 -0
  267. package/dist/runtime/components/PageSection.vue +49 -33
  268. package/dist/runtime/components/PageSection.vue.d.ts +12 -8
  269. package/dist/runtime/components/Pagination.d.vue.ts +118 -0
  270. package/dist/runtime/components/Pagination.vue +5 -5
  271. package/dist/runtime/components/Pagination.vue.d.ts +10 -10
  272. package/dist/runtime/components/PinInput.d.vue.ts +60 -0
  273. package/dist/runtime/components/PinInput.vue +3 -1
  274. package/dist/runtime/components/PinInput.vue.d.ts +10 -10
  275. package/dist/runtime/components/Popover.d.vue.ts +71 -0
  276. package/dist/runtime/components/Popover.vue.d.ts +3 -2
  277. package/dist/runtime/components/PricingPlan.d.vue.ts +112 -0
  278. package/dist/runtime/components/PricingPlan.vue +17 -9
  279. package/dist/runtime/components/PricingPlan.vue.d.ts +7 -4
  280. package/dist/runtime/components/PricingPlans.d.vue.ts +44 -0
  281. package/dist/runtime/components/PricingPlans.vue +2 -2
  282. package/dist/runtime/components/PricingPlans.vue.d.ts +6 -3
  283. package/dist/runtime/components/PricingTable.d.vue.ts +105 -0
  284. package/dist/runtime/components/PricingTable.vue +22 -77
  285. package/dist/runtime/components/PricingTable.vue.d.ts +15 -8
  286. package/dist/runtime/components/Progress.d.vue.ts +66 -0
  287. package/dist/runtime/components/Progress.vue +2 -3
  288. package/dist/runtime/components/Progress.vue.d.ts +2 -2
  289. package/dist/runtime/components/RadioGroup.d.vue.ts +99 -0
  290. package/dist/runtime/components/RadioGroup.vue +13 -11
  291. package/dist/runtime/components/RadioGroup.vue.d.ts +21 -16
  292. package/dist/runtime/components/Select.d.vue.ts +254 -0
  293. package/dist/runtime/components/Select.vue +28 -18
  294. package/dist/runtime/components/Select.vue.d.ts +22 -21
  295. package/dist/runtime/components/SelectMenu.d.vue.ts +303 -0
  296. package/dist/runtime/components/SelectMenu.vue +19 -14
  297. package/dist/runtime/components/SelectMenu.vue.d.ts +22 -21
  298. package/dist/runtime/components/Separator.d.vue.ts +54 -0
  299. package/dist/runtime/components/Separator.vue +1 -1
  300. package/dist/runtime/components/Separator.vue.d.ts +4 -4
  301. package/dist/runtime/components/Skeleton.d.vue.ts +17 -0
  302. package/dist/runtime/components/Skeleton.vue.d.ts +1 -1
  303. package/dist/runtime/components/Slideover.d.vue.ts +108 -0
  304. package/dist/runtime/components/Slideover.vue +1 -1
  305. package/dist/runtime/components/Slideover.vue.d.ts +6 -5
  306. package/dist/runtime/components/Slider.d.vue.ts +57 -0
  307. package/dist/runtime/components/Slider.vue +1 -1
  308. package/dist/runtime/components/Slider.vue.d.ts +7 -8
  309. package/dist/runtime/components/Stepper.d.vue.ts +87 -0
  310. package/dist/runtime/components/Stepper.vue.d.ts +11 -9
  311. package/dist/runtime/components/Switch.d.vue.ts +71 -0
  312. package/dist/runtime/components/Switch.vue +3 -3
  313. package/dist/runtime/components/Switch.vue.d.ts +9 -8
  314. package/dist/runtime/components/Table.d.vue.ts +201 -0
  315. package/dist/runtime/components/Table.vue +2 -2
  316. package/dist/runtime/components/Table.vue.d.ts +28 -28
  317. package/dist/runtime/components/Tabs.d.vue.ts +99 -0
  318. package/dist/runtime/components/Tabs.vue +17 -30
  319. package/dist/runtime/components/Tabs.vue.d.ts +6 -5
  320. package/dist/runtime/components/Textarea.d.vue.ts +74 -0
  321. package/dist/runtime/components/Textarea.vue +8 -5
  322. package/dist/runtime/components/Textarea.vue.d.ts +7 -12
  323. package/dist/runtime/components/Timeline.d.vue.ts +71 -0
  324. package/dist/runtime/components/Timeline.vue.d.ts +5 -4
  325. package/dist/runtime/components/Toast.d.vue.ts +165 -0
  326. package/dist/runtime/components/Toast.vue +2 -2
  327. package/dist/runtime/components/Toast.vue.d.ts +9 -8
  328. package/dist/runtime/components/Toaster.d.vue.ts +44 -0
  329. package/dist/runtime/components/Toaster.vue.d.ts +2 -2
  330. package/dist/runtime/components/Tooltip.d.vue.ts +57 -0
  331. package/dist/runtime/components/Tooltip.vue +2 -2
  332. package/dist/runtime/components/Tooltip.vue.d.ts +3 -2
  333. package/dist/runtime/components/Tree.d.vue.ts +112 -0
  334. package/dist/runtime/components/Tree.vue +77 -34
  335. package/dist/runtime/components/Tree.vue.d.ts +27 -28
  336. package/dist/runtime/components/User.d.vue.ts +47 -0
  337. package/dist/runtime/components/User.vue +3 -0
  338. package/dist/runtime/components/User.vue.d.ts +4 -3
  339. package/dist/runtime/components/color-mode/ColorModeAvatar.d.vue.ts +7 -0
  340. package/dist/runtime/components/color-mode/ColorModeAvatar.vue +1 -0
  341. package/dist/runtime/components/color-mode/ColorModeAvatar.vue.d.ts +2 -2
  342. package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +23 -0
  343. package/dist/runtime/components/color-mode/ColorModeButton.vue +3 -2
  344. package/dist/runtime/components/color-mode/ColorModeButton.vue.d.ts +6 -7
  345. package/dist/runtime/components/color-mode/ColorModeImage.d.vue.ts +6 -0
  346. package/dist/runtime/components/color-mode/ColorModeImage.vue +0 -4
  347. package/dist/runtime/components/color-mode/ColorModeImage.vue.d.ts +3 -3
  348. package/dist/runtime/components/color-mode/ColorModeSelect.d.vue.ts +5 -0
  349. package/dist/runtime/components/color-mode/ColorModeSelect.vue +5 -3
  350. package/dist/runtime/components/color-mode/ColorModeSelect.vue.d.ts +3 -5
  351. package/dist/runtime/components/color-mode/ColorModeSwitch.d.vue.ts +5 -0
  352. package/dist/runtime/components/color-mode/ColorModeSwitch.vue +3 -2
  353. package/dist/runtime/components/color-mode/ColorModeSwitch.vue.d.ts +3 -5
  354. package/dist/runtime/components/content/ContentNavigation.d.vue.ts +102 -0
  355. package/dist/runtime/components/content/ContentNavigation.vue +44 -81
  356. package/dist/runtime/components/content/ContentNavigation.vue.d.ts +76 -27
  357. package/dist/runtime/components/content/ContentSearch.d.vue.ts +114 -0
  358. package/dist/runtime/components/content/ContentSearch.vue +40 -58
  359. package/dist/runtime/components/content/ContentSearch.vue.d.ts +28 -29
  360. package/dist/runtime/components/content/ContentSearchButton.d.vue.ts +59 -0
  361. package/dist/runtime/components/content/ContentSearchButton.vue +21 -35
  362. package/dist/runtime/components/content/ContentSearchButton.vue.d.ts +6 -5
  363. package/dist/runtime/components/content/ContentSurround.d.vue.ts +59 -0
  364. package/dist/runtime/components/content/ContentSurround.vue +15 -14
  365. package/dist/runtime/components/content/ContentSurround.vue.d.ts +18 -11
  366. package/dist/runtime/components/content/ContentToc.d.vue.ts +88 -0
  367. package/dist/runtime/components/content/ContentToc.vue +18 -28
  368. package/dist/runtime/components/content/ContentToc.vue.d.ts +19 -17
  369. package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +15 -0
  370. package/dist/runtime/components/locale/LocaleSelect.vue +34 -5
  371. package/dist/runtime/components/locale/LocaleSelect.vue.d.ts +6 -7
  372. package/dist/runtime/components/prose/A.d.vue.ts +15 -0
  373. package/dist/runtime/components/prose/A.vue.d.ts +1 -1
  374. package/dist/runtime/components/prose/Accordion.d.vue.ts +16 -0
  375. package/dist/runtime/components/prose/Accordion.vue +2 -1
  376. package/dist/runtime/components/prose/Accordion.vue.d.ts +1 -1
  377. package/dist/runtime/components/prose/AccordionItem.d.vue.ts +15 -0
  378. package/dist/runtime/components/prose/AccordionItem.vue.d.ts +1 -1
  379. package/dist/runtime/components/prose/Badge.d.vue.ts +13 -0
  380. package/dist/runtime/components/prose/Badge.vue +1 -0
  381. package/dist/runtime/components/prose/Badge.vue.d.ts +1 -1
  382. package/dist/runtime/components/prose/Blockquote.d.vue.ts +13 -0
  383. package/dist/runtime/components/prose/Blockquote.vue.d.ts +1 -1
  384. package/dist/runtime/components/prose/Callout.d.vue.ts +26 -0
  385. package/dist/runtime/components/prose/Callout.vue +5 -19
  386. package/dist/runtime/components/prose/Callout.vue.d.ts +9 -9
  387. package/dist/runtime/components/prose/Card.d.vue.ts +29 -0
  388. package/dist/runtime/components/prose/Card.vue +15 -37
  389. package/dist/runtime/components/prose/Card.vue.d.ts +7 -8
  390. package/dist/runtime/components/prose/CardGroup.d.vue.ts +13 -0
  391. package/dist/runtime/components/prose/CardGroup.vue.d.ts +1 -1
  392. package/dist/runtime/components/prose/Code.d.vue.ts +22 -0
  393. package/dist/runtime/components/prose/Code.vue.d.ts +3 -3
  394. package/dist/runtime/components/prose/CodeCollapse.d.vue.ts +47 -0
  395. package/dist/runtime/components/prose/CodeCollapse.vue +4 -3
  396. package/dist/runtime/components/prose/CodeCollapse.vue.d.ts +7 -6
  397. package/dist/runtime/components/prose/CodeGroup.d.vue.ts +37 -0
  398. package/dist/runtime/components/prose/CodeGroup.vue +3 -3
  399. package/dist/runtime/components/prose/CodeGroup.vue.d.ts +5 -5
  400. package/dist/runtime/components/prose/CodeIcon.d.vue.ts +7 -0
  401. package/dist/runtime/components/prose/CodeIcon.vue +11 -7
  402. package/dist/runtime/components/prose/CodeIcon.vue.d.ts +3 -20
  403. package/dist/runtime/components/prose/CodePreview.d.vue.ts +19 -0
  404. package/dist/runtime/components/prose/CodePreview.vue.d.ts +3 -3
  405. package/dist/runtime/components/prose/CodeTree.d.vue.ts +28 -0
  406. package/dist/runtime/components/prose/CodeTree.vue +74 -78
  407. package/dist/runtime/components/prose/CodeTree.vue.d.ts +3 -5
  408. package/dist/runtime/components/prose/Collapsible.d.vue.ts +39 -0
  409. package/dist/runtime/components/prose/Collapsible.vue +5 -3
  410. package/dist/runtime/components/prose/Collapsible.vue.d.ts +5 -4
  411. package/dist/runtime/components/prose/Em.d.vue.ts +13 -0
  412. package/dist/runtime/components/prose/Em.vue.d.ts +1 -1
  413. package/dist/runtime/components/prose/Field.d.vue.ts +39 -0
  414. package/dist/runtime/components/prose/Field.vue.d.ts +3 -3
  415. package/dist/runtime/components/prose/FieldGroup.d.vue.ts +18 -0
  416. package/dist/runtime/components/prose/FieldGroup.vue.d.ts +1 -1
  417. package/dist/runtime/components/prose/H1.d.vue.ts +19 -0
  418. package/dist/runtime/components/prose/H1.vue +1 -1
  419. package/dist/runtime/components/prose/H1.vue.d.ts +3 -3
  420. package/dist/runtime/components/prose/H2.d.vue.ts +19 -0
  421. package/dist/runtime/components/prose/H2.vue +2 -1
  422. package/dist/runtime/components/prose/H2.vue.d.ts +3 -3
  423. package/dist/runtime/components/prose/H3.d.vue.ts +19 -0
  424. package/dist/runtime/components/prose/H3.vue +2 -1
  425. package/dist/runtime/components/prose/H3.vue.d.ts +3 -3
  426. package/dist/runtime/components/prose/H4.d.vue.ts +19 -0
  427. package/dist/runtime/components/prose/H4.vue +1 -1
  428. package/dist/runtime/components/prose/H4.vue.d.ts +3 -3
  429. package/dist/runtime/components/prose/Hr.d.vue.ts +5 -0
  430. package/dist/runtime/components/prose/Hr.vue.d.ts +1 -1
  431. package/dist/runtime/components/prose/Icon.d.vue.ts +6 -0
  432. package/dist/runtime/components/prose/Icon.vue +1 -0
  433. package/dist/runtime/components/prose/Icon.vue.d.ts +1 -1
  434. package/dist/runtime/components/prose/Img.d.vue.ts +21 -0
  435. package/dist/runtime/components/prose/Img.vue +53 -11
  436. package/dist/runtime/components/prose/Img.vue.d.ts +13 -1
  437. package/dist/runtime/components/prose/Kbd.d.vue.ts +6 -0
  438. package/dist/runtime/components/prose/Kbd.vue +1 -0
  439. package/dist/runtime/components/prose/Kbd.vue.d.ts +1 -1
  440. package/dist/runtime/components/prose/Li.d.vue.ts +13 -0
  441. package/dist/runtime/components/prose/Li.vue.d.ts +1 -1
  442. package/dist/runtime/components/prose/Ol.d.vue.ts +13 -0
  443. package/dist/runtime/components/prose/Ol.vue.d.ts +1 -1
  444. package/dist/runtime/components/prose/P.d.vue.ts +13 -0
  445. package/dist/runtime/components/prose/P.vue.d.ts +1 -1
  446. package/dist/runtime/components/prose/Pre.d.vue.ts +26 -0
  447. package/dist/runtime/components/prose/Pre.vue +9 -16
  448. package/dist/runtime/components/prose/Pre.vue.d.ts +4 -3
  449. package/dist/runtime/components/prose/Script.d.vue.ts +5 -0
  450. package/dist/runtime/components/prose/Script.vue.d.ts +4 -11
  451. package/dist/runtime/components/prose/Steps.d.vue.ts +22 -0
  452. package/dist/runtime/components/prose/Steps.vue.d.ts +2 -2
  453. package/dist/runtime/components/prose/Strong.d.vue.ts +13 -0
  454. package/dist/runtime/components/prose/Strong.vue.d.ts +1 -1
  455. package/dist/runtime/components/prose/Table.d.vue.ts +18 -0
  456. package/dist/runtime/components/prose/Table.vue.d.ts +3 -3
  457. package/dist/runtime/components/prose/Tabs.d.vue.ts +36 -0
  458. package/dist/runtime/components/prose/Tabs.vue +2 -1
  459. package/dist/runtime/components/prose/Tabs.vue.d.ts +3 -3
  460. package/dist/runtime/components/prose/TabsItem.d.vue.ts +15 -0
  461. package/dist/runtime/components/prose/TabsItem.vue.d.ts +1 -1
  462. package/dist/runtime/components/prose/Tbody.d.vue.ts +13 -0
  463. package/dist/runtime/components/prose/Tbody.vue.d.ts +1 -1
  464. package/dist/runtime/components/prose/Td.d.vue.ts +13 -0
  465. package/dist/runtime/components/prose/Td.vue.d.ts +1 -1
  466. package/dist/runtime/components/prose/Th.d.vue.ts +13 -0
  467. package/dist/runtime/components/prose/Th.vue.d.ts +1 -1
  468. package/dist/runtime/components/prose/Thead.d.vue.ts +13 -0
  469. package/dist/runtime/components/prose/Thead.vue.d.ts +1 -1
  470. package/dist/runtime/components/prose/Tr.d.vue.ts +13 -0
  471. package/dist/runtime/components/prose/Tr.vue.d.ts +1 -1
  472. package/dist/runtime/components/prose/Ul.d.vue.ts +13 -0
  473. package/dist/runtime/components/prose/Ul.vue.d.ts +1 -1
  474. package/dist/runtime/components/prose/callout/Caution.d.vue.ts +14 -0
  475. package/dist/runtime/components/prose/callout/Caution.vue.d.ts +1 -1
  476. package/dist/runtime/components/prose/callout/Note.d.vue.ts +14 -0
  477. package/dist/runtime/components/prose/callout/Note.vue.d.ts +1 -1
  478. package/dist/runtime/components/prose/callout/Tip.d.vue.ts +14 -0
  479. package/dist/runtime/components/prose/callout/Tip.vue.d.ts +1 -1
  480. package/dist/runtime/components/prose/callout/Warning.d.vue.ts +14 -0
  481. package/dist/runtime/components/prose/callout/Warning.vue.d.ts +1 -1
  482. package/dist/runtime/composables/useAvatarGroup.js +1 -1
  483. package/dist/runtime/composables/useComponentIcons.d.ts +5 -5
  484. package/dist/runtime/composables/useContentSearch.d.ts +1 -2
  485. package/dist/runtime/composables/{useButtonGroup.d.ts → useFieldGroup.d.ts} +5 -5
  486. package/dist/runtime/composables/useFieldGroup.js +9 -0
  487. package/dist/runtime/composables/useFileUpload.js +7 -1
  488. package/dist/runtime/composables/useFormField.d.ts +3 -1
  489. package/dist/runtime/composables/useFormField.js +8 -10
  490. package/dist/runtime/composables/useLocale.js +1 -1
  491. package/dist/runtime/composables/useOverlay.d.ts +1 -1
  492. package/dist/runtime/composables/useOverlay.js +4 -3
  493. package/dist/runtime/composables/usePortal.js +1 -1
  494. package/dist/runtime/composables/useResizable.d.ts +49 -0
  495. package/dist/runtime/composables/useResizable.js +77 -47
  496. package/dist/runtime/composables/useScrollspy.d.ts +2 -3
  497. package/dist/runtime/composables/useScrollspy.js +16 -13
  498. package/dist/runtime/index.css +1 -1
  499. package/dist/runtime/inertia/components/Link.d.vue.ts +63 -0
  500. package/dist/runtime/inertia/components/Link.vue +3 -0
  501. package/dist/runtime/inertia/components/Link.vue.d.ts +1 -1
  502. package/dist/runtime/inertia/components/LinkBase.d.vue.ts +25 -0
  503. package/dist/runtime/inertia/components/LinkBase.vue.d.ts +1 -1
  504. package/dist/runtime/inertia/stubs.d.ts +1 -1
  505. package/dist/runtime/locale/ar.js +101 -28
  506. package/dist/runtime/locale/az.js +101 -28
  507. package/dist/runtime/locale/bg.js +101 -28
  508. package/dist/runtime/locale/bn.js +101 -28
  509. package/dist/runtime/locale/ca.js +101 -28
  510. package/dist/runtime/locale/ckb.js +101 -28
  511. package/dist/runtime/locale/cs.js +101 -28
  512. package/dist/runtime/locale/da.js +101 -28
  513. package/dist/runtime/locale/de.js +101 -28
  514. package/dist/runtime/locale/de_ch.d.ts +3 -0
  515. package/dist/runtime/locale/de_ch.js +129 -0
  516. package/dist/runtime/locale/el.js +101 -28
  517. package/dist/runtime/locale/en.js +60 -57
  518. package/dist/runtime/locale/es.js +101 -28
  519. package/dist/runtime/locale/et.js +101 -28
  520. package/dist/runtime/locale/fa_ir.js +101 -28
  521. package/dist/runtime/locale/fi.js +101 -28
  522. package/dist/runtime/locale/fr.js +101 -28
  523. package/dist/runtime/locale/he.js +101 -26
  524. package/dist/runtime/locale/hi.js +101 -28
  525. package/dist/runtime/locale/hu.js +101 -28
  526. package/dist/runtime/locale/hy.js +101 -28
  527. package/dist/runtime/locale/id.js +102 -29
  528. package/dist/runtime/locale/index.d.ts +2 -0
  529. package/dist/runtime/locale/index.js +2 -0
  530. package/dist/runtime/locale/it.js +101 -28
  531. package/dist/runtime/locale/ja.js +101 -28
  532. package/dist/runtime/locale/ka.d.ts +3 -0
  533. package/dist/runtime/locale/ka.js +132 -0
  534. package/dist/runtime/locale/kk.js +100 -27
  535. package/dist/runtime/locale/km.js +101 -28
  536. package/dist/runtime/locale/ko.js +101 -28
  537. package/dist/runtime/locale/ky.js +101 -28
  538. package/dist/runtime/locale/lb.js +101 -28
  539. package/dist/runtime/locale/lt.js +101 -28
  540. package/dist/runtime/locale/mn.js +101 -28
  541. package/dist/runtime/locale/ms.js +101 -28
  542. package/dist/runtime/locale/nb_no.js +101 -28
  543. package/dist/runtime/locale/nl.js +101 -28
  544. package/dist/runtime/locale/pl.js +101 -28
  545. package/dist/runtime/locale/pt.js +101 -28
  546. package/dist/runtime/locale/pt_br.js +101 -28
  547. package/dist/runtime/locale/ro.js +101 -28
  548. package/dist/runtime/locale/ru.js +101 -28
  549. package/dist/runtime/locale/sk.js +101 -28
  550. package/dist/runtime/locale/sl.js +101 -28
  551. package/dist/runtime/locale/sv.js +101 -28
  552. package/dist/runtime/locale/th.js +101 -28
  553. package/dist/runtime/locale/tj.js +101 -28
  554. package/dist/runtime/locale/tr.js +101 -28
  555. package/dist/runtime/locale/ug_cn.js +100 -27
  556. package/dist/runtime/locale/uk.js +101 -28
  557. package/dist/runtime/locale/ur.js +101 -28
  558. package/dist/runtime/locale/uz.js +101 -28
  559. package/dist/runtime/locale/vi.js +101 -28
  560. package/dist/runtime/locale/zh_cn.js +101 -28
  561. package/dist/runtime/locale/zh_tw.js +101 -28
  562. package/dist/runtime/plugins/colors.js +3 -3
  563. package/dist/runtime/types/form.d.ts +12 -13
  564. package/dist/runtime/types/form.js +1 -3
  565. package/dist/runtime/types/index.d.ts +12 -15
  566. package/dist/runtime/types/index.js +12 -15
  567. package/dist/runtime/types/input.d.ts +8 -0
  568. package/dist/runtime/types/input.js +0 -0
  569. package/dist/runtime/types/locale.d.ts +84 -71
  570. package/dist/runtime/types/tv.d.ts +9 -2
  571. package/dist/runtime/types/utils.d.ts +9 -5
  572. package/dist/runtime/types/utils.js +0 -1
  573. package/dist/runtime/utils/ai.d.ts +2 -0
  574. package/dist/runtime/utils/ai.js +3 -0
  575. package/dist/runtime/utils/content.d.ts +2 -13
  576. package/dist/runtime/utils/content.js +7 -59
  577. package/dist/runtime/utils/dashboard.js +1 -4
  578. package/dist/runtime/utils/form.d.ts +2 -6
  579. package/dist/runtime/utils/form.js +28 -60
  580. package/dist/runtime/utils/fuse.d.ts +2 -1
  581. package/dist/runtime/utils/index.d.ts +8 -4
  582. package/dist/runtime/utils/index.js +59 -27
  583. package/dist/runtime/utils/tv.d.ts +1 -1
  584. package/dist/runtime/vue/components/Icon.d.vue.ts +6 -0
  585. package/dist/runtime/vue/components/Icon.vue +3 -2
  586. package/dist/runtime/vue/components/Icon.vue.d.ts +3 -2
  587. package/dist/runtime/vue/components/Link.d.vue.ts +93 -0
  588. package/dist/runtime/vue/components/Link.vue.d.ts +1 -1
  589. package/dist/runtime/vue/components/color-mode/ColorModeButton.d.vue.ts +16 -0
  590. package/dist/runtime/vue/components/color-mode/ColorModeButton.vue +3 -2
  591. package/dist/runtime/vue/components/color-mode/ColorModeButton.vue.d.ts +4 -26
  592. package/dist/runtime/vue/components/color-mode/ColorModeSelect.d.vue.ts +5 -0
  593. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue +4 -3
  594. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue.d.ts +1 -1
  595. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.d.vue.ts +5 -0
  596. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue +3 -2
  597. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue.d.ts +1 -1
  598. package/dist/runtime/vue/stubs.d.ts +1 -1
  599. package/dist/shared/{ui.CgUuvRXi.mjs → ui.BBlr3wu_.mjs} +1053 -1166
  600. package/dist/unplugin.d.mts +14 -14
  601. package/dist/unplugin.mjs +51 -32
  602. package/dist/vite.mjs +4 -4
  603. package/package.json +48 -68
  604. package/.nuxt/ui/content/index.ts +0 -5
  605. package/.nuxt/ui/content-navigation.ts +0 -341
  606. package/.nuxt/ui/content-search-button.ts +0 -6
  607. package/.nuxt/ui/content-search.ts +0 -6
  608. package/.nuxt/ui/content-surround.ts +0 -39
  609. package/.nuxt/ui/content-toc.ts +0 -150
  610. package/.nuxt/ui/page-accordion.ts +0 -7
  611. package/.nuxt/ui/scroll-to-section.ts +0 -3
  612. package/dist/runtime/components/ButtonGroup.vue.d.ts +0 -34
  613. package/dist/runtime/components/PageAccordion.vue +0 -26
  614. package/dist/runtime/components/PageAccordion.vue.d.ts +0 -21
  615. package/dist/runtime/components/PageMarquee.vue.d.ts +0 -32
  616. package/dist/runtime/components/ScrollToSection.vue +0 -62
  617. package/dist/runtime/components/ScrollToSection.vue.d.ts +0 -36
  618. package/dist/runtime/composables/useBreakpoint.d.ts +0 -11
  619. package/dist/runtime/composables/useBreakpoint.js +0 -53
  620. package/dist/runtime/composables/useButtonGroup.js +0 -9
  621. package/dist/runtime/composables/useLocalePro.d.ts +0 -3
  622. package/dist/runtime/composables/useLocalePro.js +0 -11
@@ -1,16 +1,17 @@
1
1
  import { pick } from '../../dist/runtime/utils/index.js';
2
2
  import 'node:url';
3
3
  import { kebabCase } from 'scule';
4
- import { addTypeTemplate, addTemplate } from '@nuxt/kit';
5
- import { defuFn, defu } from 'defu';
6
- import colors from 'tailwindcss/colors';
7
4
  import { genExport } from 'knitwork';
5
+ import colors from 'tailwindcss/colors';
6
+ import { addTypeTemplate, addTemplate, hasNuxtModule } from '@nuxt/kit';
7
+ import { defuFn, defu } from 'defu';
8
8
 
9
9
  const icons = {
10
- arrowUp: "i-lucide-arrow-up",
11
10
  arrowDown: "i-lucide-arrow-down",
12
11
  arrowLeft: "i-lucide-arrow-left",
13
12
  arrowRight: "i-lucide-arrow-right",
13
+ arrowUp: "i-lucide-arrow-up",
14
+ caution: "i-lucide-circle-alert",
14
15
  check: "i-lucide-check",
15
16
  chevronDoubleLeft: "i-lucide-chevrons-left",
16
17
  chevronDoubleRight: "i-lucide-chevrons-right",
@@ -19,34 +20,33 @@ const icons = {
19
20
  chevronRight: "i-lucide-chevron-right",
20
21
  chevronUp: "i-lucide-chevron-up",
21
22
  close: "i-lucide-x",
22
- ellipsis: "i-lucide-ellipsis",
23
- external: "i-lucide-arrow-up-right",
24
- file: "i-lucide-file",
25
- folder: "i-lucide-folder",
26
- folderOpen: "i-lucide-folder-open",
27
- loading: "i-lucide-loader-circle",
28
- minus: "i-lucide-minus",
29
- plus: "i-lucide-plus",
30
- reload: "i-lucide-refresh-cw",
31
- search: "i-lucide-search",
32
- upload: "i-lucide-upload",
33
- stop: "i-lucide-circle-stop",
34
- caution: "i-lucide-circle-alert",
35
23
  copy: "i-lucide-copy",
36
24
  copyCheck: "i-lucide-copy-check",
37
25
  dark: "i-lucide-moon",
26
+ ellipsis: "i-lucide-ellipsis",
38
27
  error: "i-lucide-circle-x",
28
+ external: "i-lucide-arrow-up-right",
39
29
  eye: "i-lucide-eye",
40
30
  eyeOff: "i-lucide-eye-off",
31
+ file: "i-lucide-file",
32
+ folder: "i-lucide-folder",
33
+ folderOpen: "i-lucide-folder-open",
41
34
  hash: "i-lucide-hash",
42
35
  info: "i-lucide-info",
43
36
  light: "i-lucide-sun",
37
+ loading: "i-lucide-loader-circle",
44
38
  menu: "i-lucide-menu",
39
+ minus: "i-lucide-minus",
45
40
  panelClose: "i-lucide-panel-left-close",
46
41
  panelOpen: "i-lucide-panel-left-open",
42
+ plus: "i-lucide-plus",
43
+ reload: "i-lucide-rotate-ccw",
44
+ search: "i-lucide-search",
45
+ stop: "i-lucide-square",
47
46
  success: "i-lucide-circle-check",
48
47
  system: "i-lucide-monitor",
49
48
  tip: "i-lucide-lightbulb",
49
+ upload: "i-lucide-upload",
50
50
  warning: "i-lucide-triangle-alert"
51
51
  };
52
52
 
@@ -297,14 +297,14 @@ const avatarGroup = {
297
297
  }
298
298
  };
299
299
 
300
- const buttonGroupVariant = {
301
- buttonGroup: {
300
+ const fieldGroupVariant = {
301
+ fieldGroup: {
302
302
  horizontal: "not-only:first:rounded-e-none not-only:last:rounded-s-none not-last:not-first:rounded-none focus-visible:z-[1]",
303
303
  vertical: "not-only:first:rounded-b-none not-only:last:rounded-t-none not-last:not-first:rounded-none focus-visible:z-[1]"
304
304
  }
305
305
  };
306
- const buttonGroupVariantWithRoot = {
307
- buttonGroup: {
306
+ const fieldGroupVariantWithRoot = {
307
+ fieldGroup: {
308
308
  horizontal: {
309
309
  root: "group has-focus-visible:z-[1]",
310
310
  base: "group-not-only:group-first:rounded-e-none group-not-only:group-last:rounded-s-none group-not-last:group-not-first:rounded-none"
@@ -315,7 +315,7 @@ const buttonGroupVariantWithRoot = {
315
315
  }
316
316
  }
317
317
  };
318
- const buttonGroup = {
318
+ const fieldGroup$1 = {
319
319
  base: "relative",
320
320
  variants: {
321
321
  size: {
@@ -342,7 +342,7 @@ const badge$1 = (options) => ({
342
342
  trailingIcon: "shrink-0"
343
343
  },
344
344
  variants: {
345
- ...buttonGroupVariant,
345
+ ...fieldGroupVariant,
346
346
  color: {
347
347
  ...Object.fromEntries((options.theme.colors || []).map((color) => [color, ""])),
348
348
  neutral: ""
@@ -449,185 +449,165 @@ const badge$1 = (options) => ({
449
449
  }
450
450
  });
451
451
 
452
- const banner = (options) => {
453
- const colors = options.theme.colors || [];
454
- return {
455
- slots: {
456
- root: [
457
- "relative z-50 w-full",
458
- "transition-colors"
459
- ],
460
- container: "flex items-center justify-between gap-3 h-12",
461
- left: "hidden lg:flex-1 lg:flex lg:items-center",
462
- center: "flex items-center gap-1.5 min-w-0",
463
- right: "lg:flex-1 flex items-center justify-end",
464
- icon: "size-5 shrink-0 text-inverted pointer-events-none",
465
- title: "text-sm text-inverted font-medium truncate",
466
- actions: "flex gap-1.5 shrink-0 isolate",
467
- close: "text-inverted hover:bg-default/10 focus-visible:bg-default/10 -me-1.5 lg:me-0"
468
- },
469
- variants: {
470
- color: {
471
- ...Object.fromEntries(
472
- colors.map((color) => [
473
- color,
474
- { root: `bg-${color}` }
475
- ])
476
- ),
477
- neutral: { root: "bg-inverted" }
478
- },
479
- to: {
480
- true: ""
452
+ const banner = (options) => ({
453
+ slots: {
454
+ root: ["relative z-50 w-full", options.theme.transitions && "transition-colors"],
455
+ container: "flex items-center justify-between gap-3 h-12",
456
+ left: "hidden lg:flex-1 lg:flex lg:items-center",
457
+ center: "flex items-center gap-1.5 min-w-0",
458
+ right: "lg:flex-1 flex items-center justify-end",
459
+ icon: "size-5 shrink-0 text-inverted pointer-events-none",
460
+ title: "text-sm text-inverted font-medium truncate",
461
+ actions: "flex gap-1.5 shrink-0 isolate",
462
+ close: "text-inverted hover:bg-default/10 focus-visible:bg-default/10 -me-1.5 lg:me-0"
463
+ },
464
+ variants: {
465
+ color: {
466
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, {
467
+ root: `bg-${color}`
468
+ }])),
469
+ neutral: {
470
+ root: "bg-inverted"
481
471
  }
482
472
  },
483
- compoundVariants: [
484
- ...colors.map((color) => ({
485
- color,
486
- to: true,
487
- class: {
488
- root: `hover:bg-${color}/90`
489
- }
490
- })),
491
- {
492
- color: "neutral",
493
- to: true,
494
- class: {
495
- root: "hover:bg-inverted/90"
496
- }
497
- }
498
- ]
499
- };
500
- };
473
+ to: {
474
+ true: ""
475
+ }
476
+ },
477
+ compoundVariants: [...(options.theme.colors || []).map((color) => ({
478
+ color,
479
+ to: true,
480
+ class: {
481
+ root: `hover:bg-${color}/90`
482
+ }
483
+ })), {
484
+ color: "neutral",
485
+ to: true,
486
+ class: {
487
+ root: "hover:bg-inverted/90"
488
+ }
489
+ }],
490
+ defaultVariants: {
491
+ color: "primary"
492
+ }
493
+ });
501
494
 
502
- const blogPost = (_options) => {
503
- return {
504
- slots: {
505
- root: "relative group/blog-post flex flex-col rounded-lg overflow-hidden",
506
- header: "relative overflow-hidden aspect-[16/9] w-full pointer-events-none",
507
- body: "min-w-0 flex-1 flex flex-col",
508
- footer: "",
509
- image: "object-cover object-top w-full h-full",
510
- title: "text-xl text-pretty font-semibold text-highlighted",
511
- description: "mt-1 text-base text-pretty",
512
- authors: "pt-4 mt-auto flex flex-wrap gap-x-3 gap-y-1.5",
513
- avatar: "",
514
- meta: "flex items-center gap-2 mb-2",
515
- date: "text-sm",
516
- badge: ""
517
- },
518
- variants: {
519
- orientation: {
520
- horizontal: {
521
- root: "lg:grid lg:grid-cols-2 lg:items-center gap-x-8",
522
- body: "justify-center p-4 sm:p-6 lg:px-0"
523
- },
524
- vertical: {
525
- root: "flex flex-col",
526
- body: "p-4 sm:p-6"
527
- }
528
- },
529
- variant: {
530
- outline: {
531
- root: "bg-default ring ring-default",
532
- date: "text-toned",
533
- description: "text-muted"
534
- },
535
- soft: {
536
- root: "bg-elevated/50",
537
- date: "text-muted",
538
- description: "text-toned"
539
- },
540
- subtle: {
541
- root: "bg-elevated/50 ring ring-default",
542
- date: "text-muted",
543
- description: "text-toned"
544
- },
545
- ghost: {
546
- date: "text-toned",
547
- description: "text-muted",
548
- header: "shadow-lg rounded-lg"
549
- },
550
- naked: {
551
- root: "p-0 sm:p-0",
552
- date: "text-toned",
553
- description: "text-muted",
554
- header: "shadow-lg rounded-lg"
555
- }
556
- },
557
- to: {
558
- true: {
559
- root: "transition",
560
- image: "transform transition-transform duration-200 group-hover/blog-post:scale-110",
561
- avatar: "transform transition-transform duration-200 hover:scale-115"
562
- }
495
+ const blogPost = (options) => ({
496
+ slots: {
497
+ root: "relative group/blog-post flex flex-col rounded-lg overflow-hidden",
498
+ header: "relative overflow-hidden aspect-[16/9] w-full pointer-events-none",
499
+ body: "min-w-0 flex-1 flex flex-col",
500
+ footer: "",
501
+ image: "object-cover object-top w-full h-full",
502
+ title: "text-xl text-pretty font-semibold text-highlighted",
503
+ description: "mt-1 text-base text-pretty",
504
+ authors: "pt-4 mt-auto flex flex-wrap gap-x-3 gap-y-1.5",
505
+ avatar: "",
506
+ meta: "flex items-center gap-2 mb-2",
507
+ date: "text-sm",
508
+ badge: ""
509
+ },
510
+ variants: {
511
+ orientation: {
512
+ horizontal: {
513
+ root: "lg:grid lg:grid-cols-2 lg:items-center gap-x-8",
514
+ body: "justify-center p-4 sm:p-6 lg:px-0"
563
515
  },
564
- image: {
565
- true: ""
516
+ vertical: {
517
+ root: "flex flex-col",
518
+ body: "p-4 sm:p-6"
566
519
  }
567
520
  },
568
- compoundVariants: [
569
- {
570
- variant: "outline",
571
- to: true,
572
- class: {
573
- root: "hover:bg-elevated/50"
574
- }
575
- },
576
- {
577
- variant: "soft",
578
- to: true,
579
- class: {
580
- root: "hover:bg-elevated"
581
- }
582
- },
583
- {
584
- variant: "subtle",
585
- to: true,
586
- class: {
587
- root: "hover:bg-elevated hover:ring-accented"
588
- }
521
+ variant: {
522
+ outline: {
523
+ root: "bg-default ring ring-default",
524
+ date: "text-toned",
525
+ description: "text-muted"
589
526
  },
590
- {
591
- variant: "ghost",
592
- to: true,
593
- class: {
594
- root: "hover:bg-elevated/50",
595
- header: [
596
- "group-hover/blog-post:shadow-none",
597
- "transition-all"
598
- ]
599
- }
527
+ soft: {
528
+ root: "bg-elevated/50",
529
+ date: "text-muted",
530
+ description: "text-toned"
600
531
  },
601
- {
602
- variant: "ghost",
603
- to: true,
604
- orientation: "vertical",
605
- class: {
606
- header: "group-hover/blog-post:rounded-b-none"
607
- }
532
+ subtle: {
533
+ root: "bg-elevated/50 ring ring-default",
534
+ date: "text-muted",
535
+ description: "text-toned"
608
536
  },
609
- {
610
- variant: "ghost",
611
- to: true,
612
- orientation: "horizontal",
613
- class: {
614
- header: "group-hover/blog-post:rounded-r-none"
615
- }
537
+ ghost: {
538
+ date: "text-toned",
539
+ description: "text-muted",
540
+ header: "shadow-lg rounded-lg"
616
541
  },
617
- {
618
- orientation: "vertical",
619
- image: false,
620
- variant: "naked",
621
- class: {
622
- body: "p-0 sm:p-0"
623
- }
542
+ naked: {
543
+ root: "p-0 sm:p-0",
544
+ date: "text-toned",
545
+ description: "text-muted",
546
+ header: "shadow-lg rounded-lg"
624
547
  }
625
- ],
626
- defaultVariants: {
627
- variant: "outline"
548
+ },
549
+ to: {
550
+ true: {
551
+ root: [options.theme.transitions && "transition"],
552
+ image: "transform transition-transform duration-200 group-hover/blog-post:scale-110",
553
+ avatar: "transform transition-transform duration-200 hover:scale-115"
554
+ }
555
+ },
556
+ image: {
557
+ true: ""
628
558
  }
629
- };
630
- };
559
+ },
560
+ compoundVariants: [{
561
+ variant: "outline",
562
+ to: true,
563
+ class: {
564
+ root: "hover:bg-elevated/50"
565
+ }
566
+ }, {
567
+ variant: "soft",
568
+ to: true,
569
+ class: {
570
+ root: "hover:bg-elevated"
571
+ }
572
+ }, {
573
+ variant: "subtle",
574
+ to: true,
575
+ class: {
576
+ root: "hover:bg-elevated hover:ring-accented"
577
+ }
578
+ }, {
579
+ variant: "ghost",
580
+ to: true,
581
+ class: {
582
+ root: "hover:bg-elevated/50",
583
+ header: ["group-hover/blog-post:shadow-none", options.theme.transitions && "transition-all"]
584
+ }
585
+ }, {
586
+ variant: "ghost",
587
+ to: true,
588
+ orientation: "vertical",
589
+ class: {
590
+ header: "group-hover/blog-post:rounded-b-none"
591
+ }
592
+ }, {
593
+ variant: "ghost",
594
+ to: true,
595
+ orientation: "horizontal",
596
+ class: {
597
+ header: "group-hover/blog-post:rounded-r-none"
598
+ }
599
+ }, {
600
+ orientation: "vertical",
601
+ image: false,
602
+ variant: "naked",
603
+ class: {
604
+ body: "p-0 sm:p-0"
605
+ }
606
+ }],
607
+ defaultVariants: {
608
+ variant: "outline"
609
+ }
610
+ });
631
611
 
632
612
  const blogPosts = {
633
613
  base: "flex flex-col gap-8 lg:gap-y-16",
@@ -690,7 +670,7 @@ const button = (options) => ({
690
670
  trailingIcon: "shrink-0"
691
671
  },
692
672
  variants: {
693
- ...buttonGroupVariant,
673
+ ...fieldGroupVariant,
694
674
  color: {
695
675
  ...Object.fromEntries((options.theme.colors || []).map((color) => [color, ""])),
696
676
  neutral: ""
@@ -992,7 +972,7 @@ const changelogVersion = {
992
972
  image: "object-cover object-top w-full h-full",
993
973
  authors: "flex flex-wrap gap-x-4 gap-y-1.5",
994
974
  footer: "border-t border-default pt-5 flex items-center justify-between",
995
- indicator: "absolute left-0 top-0 w-32 hidden lg:flex items-center justify-end gap-3 min-w-0",
975
+ indicator: "absolute start-0 top-0 w-32 hidden lg:flex items-center justify-end gap-3 min-w-0",
996
976
  dot: "size-4 rounded-full bg-default ring ring-default flex items-center justify-center my-1",
997
977
  dotInner: "size-2 rounded-full bg-primary"
998
978
  },
@@ -1024,12 +1004,12 @@ const changelogVersions = {
1024
1004
  slots: {
1025
1005
  root: "relative",
1026
1006
  container: "flex flex-col gap-y-8 sm:gap-y-12 lg:gap-y-16",
1027
- indicator: "absolute hidden lg:block overflow-hidden inset-y-3 left-32 h-full w-px bg-border -ml-[8.5px]",
1028
- beam: "absolute left-0 top-0 w-full bg-primary will-change-[height]"
1007
+ indicator: "absolute hidden lg:block overflow-hidden inset-y-3 start-32 h-full w-px bg-border -ms-[8.5px]",
1008
+ beam: "absolute start-0 top-0 w-full bg-primary will-change-[height]"
1029
1009
  }
1030
1010
  };
1031
1011
 
1032
- const chatMessage = {
1012
+ const chatMessage = (options) => ({
1033
1013
  slots: {
1034
1014
  root: "group/message relative w-full",
1035
1015
  container: "relative flex items-start group-data-[role=user]/message:max-w-[75%]",
@@ -1037,11 +1017,8 @@ const chatMessage = {
1037
1017
  leadingIcon: "shrink-0",
1038
1018
  leadingAvatar: "shrink-0",
1039
1019
  leadingAvatarSize: "",
1040
- content: "relative text-pretty",
1041
- actions: [
1042
- "opacity-0 group-hover/message:opacity-100 absolute bottom-0 flex items-center",
1043
- "transition-opacity"
1044
- ]
1020
+ content: "relative text-pretty min-w-0",
1021
+ actions: ["opacity-0 group-hover/message:opacity-100 absolute bottom-0 flex items-center", options.theme.transitions && "transition-opacity"]
1045
1022
  },
1046
1023
  variants: {
1047
1024
  variant: {
@@ -1090,72 +1067,50 @@ const chatMessage = {
1090
1067
  }
1091
1068
  }
1092
1069
  },
1093
- compoundVariants: [
1094
- {
1095
- compact: true,
1096
- actions: true,
1097
- class: {
1098
- container: "pb-8"
1099
- }
1100
- },
1101
- {
1102
- leading: true,
1103
- compact: false,
1104
- side: "left",
1105
- class: {
1106
- actions: "left-11"
1107
- }
1108
- },
1109
- {
1110
- leading: true,
1111
- compact: true,
1112
- side: "left",
1113
- class: {
1114
- actions: "left-6.5"
1115
- }
1116
- },
1117
- {
1118
- variant: [
1119
- "solid",
1120
- "outline",
1121
- "soft",
1122
- "subtle"
1123
- ],
1124
- compact: false,
1125
- class: {
1126
- content: "px-4 py-3 rounded-lg min-h-12",
1127
- leading: "mt-2"
1128
- }
1129
- },
1130
- {
1131
- variant: [
1132
- "solid",
1133
- "outline",
1134
- "soft",
1135
- "subtle"
1136
- ],
1137
- compact: true,
1138
- class: {
1139
- content: "px-2 py-1 rounded-lg min-h-8",
1140
- leading: "mt-1"
1141
- }
1070
+ compoundVariants: [{
1071
+ compact: true,
1072
+ actions: true,
1073
+ class: {
1074
+ container: "pb-8"
1142
1075
  }
1143
- ],
1076
+ }, {
1077
+ leading: true,
1078
+ compact: false,
1079
+ side: "left",
1080
+ class: {
1081
+ actions: "left-11"
1082
+ }
1083
+ }, {
1084
+ leading: true,
1085
+ compact: true,
1086
+ side: "left",
1087
+ class: {
1088
+ actions: "left-6.5"
1089
+ }
1090
+ }, {
1091
+ variant: ["solid", "outline", "soft", "subtle"],
1092
+ compact: false,
1093
+ class: {
1094
+ content: "px-4 py-3 rounded-lg min-h-12",
1095
+ leading: "mt-2"
1096
+ }
1097
+ }, {
1098
+ variant: ["solid", "outline", "soft", "subtle"],
1099
+ compact: true,
1100
+ class: {
1101
+ content: "px-2 py-1 rounded-lg min-h-8",
1102
+ leading: "mt-1"
1103
+ }
1104
+ }],
1144
1105
  defaultVariants: {
1145
1106
  variant: "naked"
1146
1107
  }
1147
- };
1108
+ });
1148
1109
 
1149
1110
  const chatMessages = {
1150
1111
  slots: {
1151
1112
  root: "w-full flex flex-col gap-1 flex-1 px-2.5 [&>article]:last-of-type:min-h-(--last-message-height)",
1152
- indicator: [
1153
- "h-6 flex items-center gap-1 py-3",
1154
- "*:size-2 *:rounded-full *:bg-elevated",
1155
- "[&>*:nth-child(1)]:animate-[bounce_1s_infinite]",
1156
- "[&>*:nth-child(2)]:animate-[bounce_1s_0.15s_infinite]",
1157
- "[&>*:nth-child(3)]:animate-[bounce_1s_0.3s_infinite]"
1158
- ].join(" "),
1113
+ indicator: "h-6 flex items-center gap-1 py-3 *:size-2 *:rounded-full *:bg-elevated [&>*:nth-child(1)]:animate-[bounce_1s_infinite] [&>*:nth-child(2)]:animate-[bounce_1s_0.15s_infinite] [&>*:nth-child(3)]:animate-[bounce_1s_0.3s_infinite]",
1159
1114
  viewport: "absolute inset-x-0 top-[86%] data-[state=open]:animate-[fade-in_200ms_ease-out] data-[state=closed]:animate-[fade-out_200ms_ease-in]",
1160
1115
  autoScroll: "rounded-full absolute right-1/2 translate-x-1/2 bottom-0"
1161
1116
  },
@@ -1596,300 +1551,37 @@ const container = {
1596
1551
  base: "w-full max-w-(--ui-container) mx-auto px-4 sm:px-6 lg:px-8"
1597
1552
  };
1598
1553
 
1599
- const contentNavigation = (options) => {
1600
- const colors = options.theme.colors || [];
1601
- const variants = ["pill", "link"];
1602
- const colorVariants = Object.fromEntries(
1603
- colors.map((color) => [
1604
- color,
1605
- {
1606
- trigger: `focus-visible:ring-${color}`,
1607
- link: `focus-visible:before:ring-${color}`
1608
- }
1609
- ])
1610
- );
1611
- const highlightColorVariants = Object.fromEntries(
1612
- colors.map((color) => [color, ""])
1613
- );
1614
- const compoundVariants = [
1615
- {
1616
- highlight: true,
1617
- level: true,
1618
- class: {
1619
- link: [
1620
- "after:absolute after:-left-1.5 after:inset-y-0.5 after:block after:w-px after:rounded-full",
1621
- "after:transition-colors"
1622
- ]
1623
- }
1554
+ const contextMenu = (options) => ({
1555
+ slots: {
1556
+ content: "min-w-32 bg-default shadow-lg rounded-md ring ring-default overflow-hidden data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] origin-(--reka-context-menu-content-transform-origin) flex flex-col",
1557
+ viewport: "relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",
1558
+ group: "p-1 isolate",
1559
+ label: "w-full flex items-center font-semibold text-highlighted",
1560
+ separator: "-mx-1 my-1 h-px bg-border",
1561
+ item: "group relative w-full flex items-center select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75",
1562
+ itemLeadingIcon: "shrink-0",
1563
+ itemLeadingAvatar: "shrink-0",
1564
+ itemLeadingAvatarSize: "",
1565
+ itemTrailing: "ms-auto inline-flex gap-1.5 items-center",
1566
+ itemTrailingIcon: "shrink-0",
1567
+ itemTrailingKbds: "hidden lg:inline-flex items-center shrink-0",
1568
+ itemTrailingKbdsSize: "",
1569
+ itemLabel: "truncate",
1570
+ itemLabelExternalIcon: "inline-block size-3 align-top text-dimmed"
1571
+ },
1572
+ variants: {
1573
+ color: {
1574
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, ""])),
1575
+ neutral: ""
1624
1576
  },
1625
- ...variants.map((variant) => ({
1626
- disabled: false,
1627
- active: false,
1628
- variant,
1629
- class: {
1630
- link: [
1631
- "hover:text-highlighted data-[state=open]:text-highlighted",
1632
- "transition-colors",
1633
- variant === "pill" ? "hover:before:bg-elevated/50" : ""
1634
- ].filter(Boolean),
1635
- linkLeadingIcon: [
1636
- "group-hover:text-default group-data-[state=open]:text-default",
1637
- "transition-colors before:transition-colors"
1638
- ]
1639
- }
1640
- })),
1641
- ...colors.flatMap((color) => [
1642
- ...variants.map((variant) => ({
1643
- color,
1644
- variant,
1645
- active: true,
1646
- class: {
1647
- link: color === "neutral" ? "text-highlighted" : `text-${color}`,
1648
- linkLeadingIcon: `${color === "neutral" ? "text-highlighted" : `text-${color}`} group-data-[state=open]:${color === "neutral" ? "text-highlighted" : `text-${color}`}`
1649
- }
1650
- })),
1651
- {
1652
- highlightColor: color,
1653
- highlight: true,
1654
- level: true,
1655
- active: true,
1656
- class: {
1657
- link: `after:bg-${color === "neutral" ? "inverted" : color}`
1658
- }
1659
- }
1660
- ]),
1661
- {
1662
- variant: "pill",
1663
- active: true,
1664
- highlight: false,
1665
- class: {
1666
- link: "before:bg-elevated"
1667
- }
1668
- },
1669
- {
1670
- variant: "pill",
1671
- active: true,
1672
- highlight: true,
1673
- class: {
1674
- link: ["hover:before:bg-elevated/50", "before:transition-colors"]
1675
- }
1676
- }
1677
- ];
1678
- return {
1679
- slots: {
1680
- root: "",
1681
- content: "data-[state=open]:animate-[accordion-down_200ms_ease-out] data-[state=closed]:animate-[accordion-up_200ms_ease-out] overflow-hidden focus:outline-none",
1682
- list: "isolate -mx-2.5 -mt-1.5",
1683
- item: "",
1684
- listWithChildren: "ms-5 border-s border-default",
1685
- itemWithChildren: "flex flex-col data-[state=open]:mb-1.5",
1686
- trigger: "font-semibold",
1687
- link: "group relative w-full px-2.5 py-1.5 before:inset-y-px before:inset-x-0 flex items-center gap-1.5 text-sm before:absolute before:z-[-1] before:rounded-md focus:outline-none focus-visible:outline-none focus-visible:before:ring-inset focus-visible:before:ring-2",
1688
- linkLeadingIcon: "shrink-0 size-5",
1689
- linkTrailing: "ms-auto inline-flex gap-1.5 items-center",
1690
- linkTrailingBadge: "shrink-0",
1691
- linkTrailingBadgeSize: "sm",
1692
- linkTrailingIcon: "size-5 transform transition-transform duration-200 shrink-0 group-data-[state=open]:rotate-180",
1693
- linkTitle: "truncate",
1694
- linkTitleExternalIcon: "size-3 align-top text-dimmed"
1695
- },
1696
- variants: {
1697
- color: {
1698
- ...colorVariants,
1699
- neutral: {
1700
- trigger: "focus-visible:ring-inverted",
1701
- link: "focus-visible:before:ring-inverted"
1702
- }
1703
- },
1704
- highlightColor: {
1705
- ...highlightColorVariants,
1706
- neutral: ""
1707
- },
1708
- variant: Object.fromEntries(variants.map((v) => [v, ""])),
1709
- active: {
1710
- true: {
1711
- link: "font-medium"
1712
- },
1713
- false: {
1714
- link: "text-muted",
1715
- linkLeadingIcon: "text-dimmed"
1716
- }
1717
- },
1718
- disabled: {
1719
- true: {
1720
- link: "cursor-not-allowed opacity-75"
1721
- }
1722
- },
1723
- highlight: {
1724
- true: {}
1725
- },
1726
- level: {
1727
- true: {
1728
- item: "ps-1.5 -ms-px",
1729
- itemWithChildren: "ps-1.5 -ms-px"
1730
- }
1731
- }
1732
- },
1733
- compoundVariants,
1734
- defaultVariants: {
1735
- color: "primary",
1736
- highlightColor: "primary",
1737
- variant: "pill"
1738
- }
1739
- };
1740
- };
1741
-
1742
- const contentSearch = {
1743
- slots: {
1744
- modal: "sm:max-w-3xl sm:h-[28rem]",
1745
- input: "[&>input]:text-base/5"
1746
- }
1747
- };
1748
-
1749
- const contentSearchButton = {
1750
- slots: {
1751
- base: "",
1752
- trailing: "hidden lg:flex items-center gap-0.5 ms-auto"
1753
- }
1754
- };
1755
-
1756
- const contentSurround = {
1757
- slots: {
1758
- root: "grid grid-cols-1 sm:grid-cols-2 gap-8",
1759
- link: [
1760
- "group block px-6 py-8 rounded-lg border border-default hover:bg-elevated/50 focus-visible:outline-primary",
1761
- "transition-colors"
1762
- ],
1763
- linkLeading: [
1764
- "inline-flex items-center rounded-full p-1.5 bg-elevated group-hover:bg-primary/10 ring ring-accented mb-4 group-hover:ring-primary/50",
1765
- "transition"
1766
- ],
1767
- linkLeadingIcon: [
1768
- "size-5 shrink-0 text-highlighted group-hover:text-primary",
1769
- "transition-[color,translate]"
1770
- ],
1771
- linkTitle: "font-medium text-[15px] text-highlighted mb-1 truncate",
1772
- linkDescription: "text-sm text-muted line-clamp-2"
1773
- },
1774
- variants: {
1775
- direction: {
1776
- left: {
1777
- linkLeadingIcon: [
1778
- "group-active:-translate-x-0.5"
1779
- ]
1780
- },
1781
- right: {
1782
- link: "text-right",
1783
- linkLeadingIcon: [
1784
- "group-active:translate-x-0.5"
1785
- ]
1786
- }
1787
- }
1788
- }
1789
- };
1790
-
1791
- const contentToc = (options) => ({
1792
- slots: {
1793
- root: "sticky top-(--ui-header-height) z-10 bg-default/75 lg:bg-[initial] backdrop-blur -mx-4 px-4 sm:px-6 sm:-mx-6 overflow-y-auto max-h-[calc(100vh-var(--ui-header-height))]",
1794
- container: "pt-4 sm:pt-6 pb-2.5 sm:pb-4.5 lg:py-8 border-b border-dashed border-default lg:border-0 flex flex-col",
1795
- top: "",
1796
- bottom: "mt-6 hidden lg:flex lg:flex-col gap-6",
1797
- trigger: "group text-sm font-semibold flex-1 flex items-center gap-1.5 py-1.5 -mt-1.5 focus-visible:outline-primary",
1798
- title: "truncate",
1799
- trailing: "ms-auto inline-flex gap-1.5 items-center",
1800
- trailingIcon: "size-5 transform transition-transform duration-200 shrink-0 group-data-[state=open]:rotate-180 lg:hidden",
1801
- content: "data-[state=open]:animate-[collapsible-down_200ms_ease-out] data-[state=closed]:animate-[collapsible-up_200ms_ease-out] overflow-hidden focus:outline-none",
1802
- list: "min-w-0",
1803
- listWithChildren: "ms-3",
1804
- item: "min-w-0",
1805
- itemWithChildren: "",
1806
- link: "group relative text-sm flex items-center focus-visible:outline-primary py-1",
1807
- linkText: "truncate",
1808
- indicator: "absolute ms-2.5 transition-[translate,height] duration-200 h-(--indicator-size) translate-y-(--indicator-position) w-px rounded-full"
1809
- },
1810
- variants: {
1811
- color: {
1812
- ...Object.fromEntries((options.theme.colors || []).map((color) => [color, ""])),
1813
- neutral: ""
1814
- },
1815
- highlightColor: {
1816
- ...Object.fromEntries((options.theme.colors || []).map((color) => [color, {
1817
- indicator: `bg-${color}`
1818
- }])),
1819
- neutral: {
1820
- indicator: "bg-inverted"
1821
- }
1822
- },
1823
- active: {
1824
- false: {
1825
- link: [
1826
- "text-muted hover:text-default",
1827
- "transition-colors"
1828
- ]
1829
- }
1830
- },
1831
- highlight: {
1832
- true: {
1833
- list: "ms-2.5 ps-4 border-s border-default",
1834
- item: "-ms-px"
1835
- }
1836
- }
1837
- },
1838
- compoundVariants: [
1839
- ...(options.theme.colors || []).map((color) => ({
1840
- color: `${color}`,
1841
- active: true,
1842
- class: {
1843
- link: `text-${color}`,
1844
- linkText: `text-${color}`
1845
- }
1846
- })),
1847
- {
1848
- color: "neutral",
1849
- active: true,
1850
- class: {
1851
- link: `text-highlighted`,
1852
- linkLeadingIcon: `text-highlighted`
1853
- }
1854
- }
1855
- ],
1856
- defaultVariants: {
1857
- color: "primary",
1858
- highlightColor: "primary"
1859
- }
1860
- });
1861
-
1862
- const contextMenu = (options) => ({
1863
- slots: {
1864
- content: "min-w-32 bg-default shadow-lg rounded-md ring ring-default overflow-hidden data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] origin-(--reka-context-menu-content-transform-origin) flex flex-col",
1865
- viewport: "relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",
1866
- group: "p-1 isolate",
1867
- label: "w-full flex items-center font-semibold text-highlighted",
1868
- separator: "-mx-1 my-1 h-px bg-border",
1869
- item: "group relative w-full flex items-center select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75",
1870
- itemLeadingIcon: "shrink-0",
1871
- itemLeadingAvatar: "shrink-0",
1872
- itemLeadingAvatarSize: "",
1873
- itemTrailing: "ms-auto inline-flex gap-1.5 items-center",
1874
- itemTrailingIcon: "shrink-0",
1875
- itemTrailingKbds: "hidden lg:inline-flex items-center shrink-0",
1876
- itemTrailingKbdsSize: "",
1877
- itemLabel: "truncate",
1878
- itemLabelExternalIcon: "inline-block size-3 align-top text-dimmed"
1879
- },
1880
- variants: {
1881
- color: {
1882
- ...Object.fromEntries((options.theme.colors || []).map((color) => [color, ""])),
1883
- neutral: ""
1884
- },
1885
- active: {
1886
- true: {
1887
- item: "text-highlighted before:bg-elevated",
1888
- itemLeadingIcon: "text-default"
1889
- },
1890
- false: {
1891
- item: ["text-default data-highlighted:text-highlighted data-[state=open]:text-highlighted data-highlighted:before:bg-elevated/50 data-[state=open]:before:bg-elevated/50", options.theme.transitions && "transition-colors before:transition-colors"],
1892
- itemLeadingIcon: ["text-dimmed group-data-highlighted:text-default group-data-[state=open]:text-default", options.theme.transitions && "transition-colors"]
1577
+ active: {
1578
+ true: {
1579
+ item: "text-highlighted before:bg-elevated",
1580
+ itemLeadingIcon: "text-default"
1581
+ },
1582
+ false: {
1583
+ item: ["text-default data-highlighted:text-highlighted data-[state=open]:text-highlighted data-highlighted:before:bg-elevated/50 data-[state=open]:before:bg-elevated/50", options.theme.transitions && "transition-colors before:transition-colors"],
1584
+ itemLeadingIcon: ["text-dimmed group-data-highlighted:text-default group-data-[state=open]:text-default", options.theme.transitions && "transition-colors"]
1893
1585
  }
1894
1586
  },
1895
1587
  loading: {
@@ -2126,7 +1818,7 @@ const drawer = (options) => ({
2126
1818
  },
2127
1819
  inset: {
2128
1820
  true: {
2129
- content: "rounded-lg after:hidden overflow-hidden"
1821
+ content: "rounded-lg after:hidden overflow-hidden [--initial-transform:calc(100%+1.5rem)]"
2130
1822
  }
2131
1823
  }
2132
1824
  },
@@ -2310,47 +2002,6 @@ const error = {
2310
2002
  }
2311
2003
  };
2312
2004
 
2313
- const footer = {
2314
- slots: {
2315
- root: "",
2316
- top: "py-8 lg:py-12",
2317
- bottom: "py-8 lg:py-12",
2318
- container: "py-8 lg:py-4 lg:flex lg:items-center lg:justify-between lg:gap-x-3",
2319
- left: "flex items-center justify-center lg:justify-start lg:flex-1 gap-x-1.5 mt-3 lg:mt-0 lg:order-1",
2320
- center: "mt-3 lg:mt-0 lg:order-2 flex items-center justify-center",
2321
- right: "lg:flex-1 flex items-center justify-center lg:justify-end gap-x-1.5 lg:order-3"
2322
- }
2323
- };
2324
-
2325
- const footerColumns = {
2326
- slots: {
2327
- root: "xl:grid xl:grid-cols-3 xl:gap-8",
2328
- left: "mb-10 xl:mb-0",
2329
- center: "flex flex-col lg:grid grid-flow-col auto-cols-fr gap-8 xl:col-span-2",
2330
- right: "mt-10 xl:mt-0",
2331
- label: "text-sm font-semibold",
2332
- list: "mt-6 space-y-4",
2333
- item: "relative",
2334
- link: "group text-sm flex items-center gap-1.5 focus-visible:outline-primary",
2335
- linkLeadingIcon: "size-5 shrink-0",
2336
- linkLabel: "truncate",
2337
- linkLabelExternalIcon: "size-3 absolute top-0 text-dimmed inline-block"
2338
- },
2339
- variants: {
2340
- active: {
2341
- true: {
2342
- link: "text-primary font-medium"
2343
- },
2344
- false: {
2345
- link: [
2346
- "text-muted hover:text-default",
2347
- "transition-colors"
2348
- ]
2349
- }
2350
- }
2351
- }
2352
- };
2353
-
2354
2005
  const fileUpload = (options) => ({
2355
2006
  slots: {
2356
2007
  root: "relative flex flex-col",
@@ -2543,6 +2194,44 @@ const fileUpload = (options) => ({
2543
2194
  }
2544
2195
  });
2545
2196
 
2197
+ const footer = {
2198
+ slots: {
2199
+ root: "",
2200
+ top: "py-8 lg:py-12",
2201
+ bottom: "py-8 lg:py-12",
2202
+ container: "py-8 lg:py-4 lg:flex lg:items-center lg:justify-between lg:gap-x-3",
2203
+ left: "flex items-center justify-center lg:justify-start lg:flex-1 gap-x-1.5 mt-3 lg:mt-0 lg:order-1",
2204
+ center: "mt-3 lg:mt-0 lg:order-2 flex items-center justify-center",
2205
+ right: "lg:flex-1 flex items-center justify-center lg:justify-end gap-x-1.5 lg:order-3"
2206
+ }
2207
+ };
2208
+
2209
+ const footerColumns = (options) => ({
2210
+ slots: {
2211
+ root: "xl:grid xl:grid-cols-3 xl:gap-8",
2212
+ left: "mb-10 xl:mb-0",
2213
+ center: "flex flex-col lg:grid grid-flow-col auto-cols-fr gap-8 xl:col-span-2",
2214
+ right: "mt-10 xl:mt-0",
2215
+ label: "text-sm font-semibold",
2216
+ list: "mt-6 space-y-4",
2217
+ item: "relative",
2218
+ link: "group text-sm flex items-center gap-1.5 focus-visible:outline-primary",
2219
+ linkLeadingIcon: "size-5 shrink-0",
2220
+ linkLabel: "truncate",
2221
+ linkLabelExternalIcon: "size-3 absolute top-0 text-dimmed inline-block"
2222
+ },
2223
+ variants: {
2224
+ active: {
2225
+ true: {
2226
+ link: "text-primary font-medium"
2227
+ },
2228
+ false: {
2229
+ link: ["text-muted hover:text-default", options.theme.transitions && "transition-colors"]
2230
+ }
2231
+ }
2232
+ }
2233
+ });
2234
+
2546
2235
  const form = {
2547
2236
  base: ""
2548
2237
  };
@@ -2607,7 +2296,7 @@ const header = {
2607
2296
  const input = (options) => ({
2608
2297
  slots: {
2609
2298
  root: "relative inline-flex items-center",
2610
- base: ["w-full rounded-md border-0 placeholder:text-dimmed focus:outline-none disabled:cursor-not-allowed disabled:opacity-75", options.theme.transitions && "transition-colors"],
2299
+ base: ["w-full rounded-md border-0 appearance-none placeholder:text-dimmed focus:outline-none disabled:cursor-not-allowed disabled:opacity-75", options.theme.transitions && "transition-colors"],
2611
2300
  leading: "absolute inset-y-0 start-0 flex items-center",
2612
2301
  leadingIcon: "shrink-0 text-dimmed",
2613
2302
  leadingAvatar: "shrink-0",
@@ -2616,7 +2305,7 @@ const input = (options) => ({
2616
2305
  trailingIcon: "shrink-0 text-dimmed"
2617
2306
  },
2618
2307
  variants: {
2619
- ...buttonGroupVariantWithRoot,
2308
+ ...fieldGroupVariantWithRoot,
2620
2309
  size: {
2621
2310
  xs: {
2622
2311
  base: "px-2 py-1 text-xs gap-1",
@@ -2894,7 +2583,7 @@ const inputNumber = (options) => {
2894
2583
  decrement: "absolute flex items-center"
2895
2584
  },
2896
2585
  variants: {
2897
- ...buttonGroupVariantWithRoot,
2586
+ ...fieldGroupVariantWithRoot,
2898
2587
  color: {
2899
2588
  ...Object.fromEntries((options.theme.colors || []).map((color) => [color, ""])),
2900
2589
  neutral: ""
@@ -3030,16 +2719,16 @@ const inputTags = (options) => {
3030
2719
  }
3031
2720
  },
3032
2721
  variant: (prev) => Object.fromEntries(
3033
- Object.entries(prev).map(([key, value]) => [key, replaceFocus(value)])
2722
+ Object.entries(prev).map(([key, value]) => [key, replaceFocus$2(value)])
3034
2723
  )
3035
2724
  },
3036
2725
  compoundVariants: (prev) => prev.map((item) => ({
3037
2726
  ...item,
3038
- class: typeof item.class === "string" ? replaceFocus(item.class) : item.class
2727
+ class: typeof item.class === "string" ? replaceFocus$2(item.class) : item.class
3039
2728
  }))
3040
2729
  }, input(options));
3041
2730
  };
3042
- function replaceFocus(str) {
2731
+ function replaceFocus$2(str) {
3043
2732
  return str.replace(/focus:/g, "has-focus:").replace(/focus-visible:/g, "has-focus-visible:");
3044
2733
  }
3045
2734
 
@@ -3124,29 +2813,86 @@ const main = {
3124
2813
  base: "min-h-[calc(100vh-var(--ui-header-height))]"
3125
2814
  };
3126
2815
 
3127
- const modal = {
2816
+ const marquee = {
3128
2817
  slots: {
3129
- overlay: "fixed inset-0 bg-elevated/75",
3130
- content: "fixed bg-default divide-y divide-default flex flex-col focus:outline-none",
3131
- header: "flex items-center gap-1.5 p-4 sm:px-6 min-h-16",
3132
- wrapper: "",
3133
- body: "flex-1 overflow-y-auto p-4 sm:p-6",
3134
- footer: "flex items-center gap-1.5 p-4 sm:px-6",
3135
- title: "text-highlighted font-semibold",
3136
- description: "mt-1 text-muted text-sm",
3137
- close: "absolute top-4 end-4"
2818
+ root: "group relative flex items-center overflow-hidden gap-(--gap) [--gap:--spacing(16)] [--duration:20s]",
2819
+ content: "flex items-center shrink-0 justify-around gap-(--gap) min-w-max"
3138
2820
  },
3139
2821
  variants: {
3140
- transition: {
3141
- true: {
3142
- overlay: "data-[state=open]:animate-[fade-in_200ms_ease-out] data-[state=closed]:animate-[fade-out_200ms_ease-in]",
3143
- content: "data-[state=open]:animate-[scale-in_200ms_ease-out] data-[state=closed]:animate-[scale-out_200ms_ease-in]"
2822
+ orientation: {
2823
+ horizontal: {
2824
+ content: "w-full"
2825
+ },
2826
+ vertical: {
2827
+ content: "h-full"
3144
2828
  }
3145
2829
  },
3146
- fullscreen: {
2830
+ pauseOnHover: {
3147
2831
  true: {
3148
- content: "inset-0"
3149
- },
2832
+ content: "group-hover:[animation-play-state:paused]"
2833
+ }
2834
+ },
2835
+ reverse: {
2836
+ true: {
2837
+ content: "![animation-direction:reverse]"
2838
+ }
2839
+ },
2840
+ overlay: {
2841
+ true: {
2842
+ 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'
2843
+ }
2844
+ }
2845
+ },
2846
+ compoundVariants: [{
2847
+ orientation: "horizontal",
2848
+ class: {
2849
+ root: "flex-row",
2850
+ content: "flex-row animate-[marquee_var(--duration)_linear_infinite] rtl:animate-[marquee-rtl_var(--duration)_linear_infinite] backface-hidden"
2851
+ }
2852
+ }, {
2853
+ orientation: "horizontal",
2854
+ overlay: true,
2855
+ class: {
2856
+ 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"
2857
+ }
2858
+ }, {
2859
+ orientation: "vertical",
2860
+ class: {
2861
+ root: "flex-col",
2862
+ content: "flex-col animate-[marquee-vertical_var(--duration)_linear_infinite] rtl:animate-[marquee-vertical-rtl_var(--duration)_linear_infinite] h-[fit-content] backface-hidden"
2863
+ }
2864
+ }, {
2865
+ orientation: "vertical",
2866
+ overlay: true,
2867
+ class: {
2868
+ 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"
2869
+ }
2870
+ }]
2871
+ };
2872
+
2873
+ const modal = {
2874
+ slots: {
2875
+ overlay: "fixed inset-0 bg-elevated/75",
2876
+ content: "fixed bg-default divide-y divide-default flex flex-col focus:outline-none",
2877
+ header: "flex items-center gap-1.5 p-4 sm:px-6 min-h-16",
2878
+ wrapper: "",
2879
+ body: "flex-1 overflow-y-auto p-4 sm:p-6",
2880
+ footer: "flex items-center gap-1.5 p-4 sm:px-6",
2881
+ title: "text-highlighted font-semibold",
2882
+ description: "mt-1 text-muted text-sm",
2883
+ close: "absolute top-4 end-4"
2884
+ },
2885
+ variants: {
2886
+ transition: {
2887
+ true: {
2888
+ overlay: "data-[state=open]:animate-[fade-in_200ms_ease-out] data-[state=closed]:animate-[fade-out_200ms_ease-in]",
2889
+ content: "data-[state=open]:animate-[scale-in_200ms_ease-out] data-[state=closed]:animate-[scale-out_200ms_ease-in]"
2890
+ }
2891
+ },
2892
+ fullscreen: {
2893
+ true: {
2894
+ content: "inset-0"
2895
+ },
3150
2896
  false: {
3151
2897
  content: "top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[calc(100vw-2rem)] max-w-lg max-h-[calc(100dvh-2rem)] sm:max-h-[calc(100dvh-4rem)] rounded-lg shadow-lg ring ring-default overflow-hidden"
3152
2898
  }
@@ -3437,33 +3183,22 @@ const page = {
3437
3183
  true: ""
3438
3184
  }
3439
3185
  },
3440
- compoundVariants: [
3441
- {
3442
- left: true,
3443
- right: true,
3444
- class: {
3445
- center: "lg:col-span-6"
3446
- }
3447
- },
3448
- {
3449
- left: false,
3450
- right: false,
3451
- class: {
3452
- center: "lg:col-span-10"
3453
- }
3186
+ compoundVariants: [{
3187
+ left: true,
3188
+ right: true,
3189
+ class: {
3190
+ center: "lg:col-span-6"
3454
3191
  }
3455
- ]
3456
- };
3457
-
3458
- const pageAccordion = {
3459
- slots: {
3460
- base: "",
3461
- trigger: "text-base",
3462
- body: "text-base text-muted"
3463
- }
3192
+ }, {
3193
+ left: false,
3194
+ right: false,
3195
+ class: {
3196
+ center: "lg:col-span-10"
3197
+ }
3198
+ }]
3464
3199
  };
3465
3200
 
3466
- const pageAnchors = {
3201
+ const pageAnchors = (options) => ({
3467
3202
  slots: {
3468
3203
  root: "",
3469
3204
  list: "",
@@ -3481,18 +3216,12 @@ const pageAnchors = {
3481
3216
  linkLeading: "bg-primary ring-primary text-inverted"
3482
3217
  },
3483
3218
  false: {
3484
- link: [
3485
- "text-muted hover:text-default font-medium",
3486
- "transition-colors"
3487
- ],
3488
- linkLeading: [
3489
- "bg-elevated/50 ring-accented text-dimmed group-hover:bg-primary group-hover:ring-primary group-hover:text-inverted",
3490
- "transition"
3491
- ]
3219
+ link: ["text-muted hover:text-default font-medium", options.theme.transitions && "transition-colors"],
3220
+ linkLeading: ["bg-elevated/50 ring-accented text-dimmed group-hover:bg-primary group-hover:ring-primary group-hover:text-inverted", options.theme.transitions && "transition"]
3492
3221
  }
3493
3222
  }
3494
3223
  }
3495
- };
3224
+ });
3496
3225
 
3497
3226
  const pageAside = {
3498
3227
  slots: {
@@ -3509,142 +3238,17 @@ const pageBody = {
3509
3238
  base: "mt-8 pb-24 space-y-12"
3510
3239
  };
3511
3240
 
3512
- const pageCard = (_options) => {
3513
- return {
3514
- slots: {
3515
- root: "relative flex rounded-lg",
3516
- spotlight: "absolute inset-0 rounded-[inherit] pointer-events-none bg-default/90",
3517
- container: "relative flex flex-col flex-1 lg:grid gap-x-8 gap-y-4 p-4 sm:p-6",
3518
- wrapper: "flex flex-col flex-1 items-start",
3519
- header: "mb-4",
3520
- body: "flex-1",
3521
- footer: "pt-4 mt-auto",
3522
- leading: "inline-flex items-center mb-2.5",
3523
- leadingIcon: "size-5 shrink-0 text-primary",
3524
- title: "text-base text-pretty font-semibold text-highlighted",
3525
- description: "text-[15px] text-pretty"
3526
- },
3527
- variants: {
3528
- orientation: {
3529
- horizontal: {
3530
- container: "lg:grid-cols-2 lg:items-center"
3531
- },
3532
- vertical: {
3533
- container: ""
3534
- }
3535
- },
3536
- reverse: {
3537
- true: {
3538
- wrapper: "lg:order-last"
3539
- }
3540
- },
3541
- variant: {
3542
- solid: {
3543
- root: "bg-inverted text-inverted",
3544
- title: "text-inverted",
3545
- description: "text-dimmed"
3546
- },
3547
- outline: {
3548
- root: "bg-default ring ring-default",
3549
- description: "text-muted"
3550
- },
3551
- soft: {
3552
- root: "bg-elevated/50",
3553
- description: "text-toned"
3554
- },
3555
- subtle: {
3556
- root: "bg-elevated/50 ring ring-default",
3557
- description: "text-toned"
3558
- },
3559
- ghost: {
3560
- description: "text-muted"
3561
- },
3562
- naked: {
3563
- container: "p-0 sm:p-0",
3564
- description: "text-muted"
3565
- }
3566
- },
3567
- to: {
3568
- true: {
3569
- root: "transition"
3570
- }
3571
- },
3572
- title: {
3573
- true: {
3574
- description: "mt-1"
3575
- }
3576
- },
3577
- highlight: {
3578
- true: {
3579
- root: "ring-2"
3580
- }
3581
- },
3582
- highlightColor: {
3583
- primary: {},
3584
- secondary: {},
3585
- success: {},
3586
- info: {},
3587
- warning: {},
3588
- error: {},
3589
- neutral: {}
3590
- },
3591
- spotlight: {
3592
- true: {
3593
- 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%)]"
3594
- }
3595
- },
3596
- spotlightColor: {
3597
- primary: {},
3598
- secondary: {},
3599
- success: {},
3600
- info: {},
3601
- warning: {},
3602
- error: {},
3603
- neutral: {}
3604
- }
3605
- },
3606
- compoundVariants: [
3607
- { variant: "solid", to: true, class: { root: "hover:bg-inverted/90" } },
3608
- { variant: "outline", to: true, class: { root: "hover:bg-elevated/50" } },
3609
- { variant: "soft", to: true, class: { root: "hover:bg-elevated" } },
3610
- { variant: "subtle", to: true, class: { root: "hover:bg-elevated" } },
3611
- { variant: "subtle", to: true, highlight: false, class: { root: "hover:ring-accented" } },
3612
- { variant: "ghost", to: true, class: { root: "hover:bg-elevated/50" } },
3613
- { highlightColor: "primary", highlight: true, class: { root: "ring-primary" } },
3614
- { highlightColor: "secondary", highlight: true, class: { root: "ring-secondary" } },
3615
- { highlightColor: "success", highlight: true, class: { root: "ring-success" } },
3616
- { highlightColor: "info", highlight: true, class: { root: "ring-info" } },
3617
- { highlightColor: "warning", highlight: true, class: { root: "ring-warning" } },
3618
- { highlightColor: "error", highlight: true, class: { root: "ring-error" } },
3619
- { highlightColor: "neutral", highlight: true, class: { root: "ring-inverted" } },
3620
- { spotlightColor: "primary", spotlight: true, class: { root: "[--spotlight-color:var(--ui-primary)]" } },
3621
- { spotlightColor: "secondary", spotlight: true, class: { root: "[--spotlight-color:var(--ui-secondary)]" } },
3622
- { spotlightColor: "success", spotlight: true, class: { root: "[--spotlight-color:var(--ui-success)]" } },
3623
- { spotlightColor: "info", spotlight: true, class: { root: "[--spotlight-color:var(--ui-info)]" } },
3624
- { spotlightColor: "warning", spotlight: true, class: { root: "[--spotlight-color:var(--ui-warning)]" } },
3625
- { spotlightColor: "error", spotlight: true, class: { root: "[--spotlight-color:var(--ui-error)]" } },
3626
- { spotlightColor: "neutral", spotlight: true, class: { root: "[--spotlight-color:var(--ui-bg-inverted)]" } }
3627
- ],
3628
- defaultVariants: {
3629
- variant: "outline",
3630
- highlightColor: "primary",
3631
- spotlightColor: "primary"
3632
- }
3633
- };
3634
- };
3635
-
3636
- const pageColumns = {
3637
- base: "relative column-1 md:columns-2 lg:columns-3 gap-8 space-y-8 *:break-inside-avoid-column *:will-change-transform"
3638
- };
3639
-
3640
3241
  const pageCta = {
3641
3242
  slots: {
3642
3243
  root: "relative isolate rounded-xl overflow-hidden",
3643
3244
  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",
3644
3245
  wrapper: "",
3246
+ header: "",
3645
3247
  title: "text-3xl sm:text-4xl text-pretty tracking-tight font-bold text-highlighted",
3646
3248
  description: "text-base sm:text-lg text-muted",
3647
- links: "mt-8 flex flex-wrap gap-x-6 gap-y-3"
3249
+ body: "mt-8",
3250
+ footer: "mt-8",
3251
+ links: "flex flex-wrap gap-x-6 gap-y-3"
3648
3252
  },
3649
3253
  variants: {
3650
3254
  orientation: {
@@ -3697,6 +3301,167 @@ const pageCta = {
3697
3301
  }
3698
3302
  };
3699
3303
 
3304
+ const pageCard = (options) => ({
3305
+ slots: {
3306
+ root: "relative flex rounded-lg",
3307
+ spotlight: "absolute inset-0 rounded-[inherit] pointer-events-none bg-default/90",
3308
+ container: "relative flex flex-col flex-1 lg:grid gap-x-8 gap-y-4 p-4 sm:p-6",
3309
+ wrapper: "flex flex-col flex-1 items-start",
3310
+ header: "mb-4",
3311
+ body: "flex-1",
3312
+ footer: "pt-4 mt-auto",
3313
+ leading: "inline-flex items-center mb-2.5",
3314
+ leadingIcon: "size-5 shrink-0 text-primary",
3315
+ title: "text-base text-pretty font-semibold text-highlighted",
3316
+ description: "text-[15px] text-pretty"
3317
+ },
3318
+ variants: {
3319
+ orientation: {
3320
+ horizontal: {
3321
+ container: "lg:grid-cols-2 lg:items-center"
3322
+ },
3323
+ vertical: {
3324
+ container: ""
3325
+ }
3326
+ },
3327
+ reverse: {
3328
+ true: {
3329
+ wrapper: "lg:order-last"
3330
+ }
3331
+ },
3332
+ variant: {
3333
+ solid: {
3334
+ root: "bg-inverted text-inverted",
3335
+ title: "text-inverted",
3336
+ description: "text-dimmed"
3337
+ },
3338
+ outline: {
3339
+ root: "bg-default ring ring-default",
3340
+ description: "text-muted"
3341
+ },
3342
+ soft: {
3343
+ root: "bg-elevated/50",
3344
+ description: "text-toned"
3345
+ },
3346
+ subtle: {
3347
+ root: "bg-elevated/50 ring ring-default",
3348
+ description: "text-toned"
3349
+ },
3350
+ ghost: {
3351
+ description: "text-muted"
3352
+ },
3353
+ naked: {
3354
+ container: "p-0 sm:p-0",
3355
+ description: "text-muted"
3356
+ }
3357
+ },
3358
+ to: {
3359
+ true: {
3360
+ root: [options.theme.transitions && "transition"]
3361
+ }
3362
+ },
3363
+ title: {
3364
+ true: {
3365
+ description: "mt-1"
3366
+ }
3367
+ },
3368
+ highlight: {
3369
+ true: {
3370
+ root: "ring-2"
3371
+ }
3372
+ },
3373
+ highlightColor: {
3374
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, ""])),
3375
+ neutral: ""
3376
+ },
3377
+ spotlight: {
3378
+ true: {
3379
+ 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%)]"
3380
+ }
3381
+ },
3382
+ spotlightColor: {
3383
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, ""])),
3384
+ neutral: ""
3385
+ }
3386
+ },
3387
+ compoundVariants: [{
3388
+ variant: "solid",
3389
+ to: true,
3390
+ class: {
3391
+ root: "hover:bg-inverted/90"
3392
+ }
3393
+ }, {
3394
+ variant: "outline",
3395
+ to: true,
3396
+ class: {
3397
+ root: "hover:bg-elevated/50"
3398
+ }
3399
+ }, {
3400
+ variant: "soft",
3401
+ to: true,
3402
+ class: {
3403
+ root: "hover:bg-elevated"
3404
+ }
3405
+ }, {
3406
+ variant: "subtle",
3407
+ to: true,
3408
+ class: {
3409
+ root: "hover:bg-elevated"
3410
+ }
3411
+ }, {
3412
+ variant: "subtle",
3413
+ to: true,
3414
+ highlight: false,
3415
+ class: {
3416
+ root: "hover:ring-accented"
3417
+ }
3418
+ }, {
3419
+ variant: "ghost",
3420
+ to: true,
3421
+ class: {
3422
+ root: "hover:bg-elevated/50"
3423
+ }
3424
+ }, ...(options.theme.colors || []).map((highlightColor) => ({
3425
+ highlightColor,
3426
+ highlight: true,
3427
+ class: {
3428
+ root: `ring-${highlightColor}`
3429
+ }
3430
+ })), {
3431
+ highlightColor: "neutral",
3432
+ highlight: true,
3433
+ class: {
3434
+ root: "ring-inverted"
3435
+ }
3436
+ }, ...(options.theme.colors || []).map((spotlightColor) => ({
3437
+ spotlightColor,
3438
+ spotlight: true,
3439
+ class: {
3440
+ root: `[--spotlight-color:var(--ui-${spotlightColor})]`
3441
+ }
3442
+ })), {
3443
+ spotlightColor: "neutral",
3444
+ spotlight: true,
3445
+ class: {
3446
+ root: "[--spotlight-color:var(--ui-bg-inverted)]"
3447
+ }
3448
+ }, {
3449
+ to: true,
3450
+ class: {
3451
+ root: "has-focus-visible:ring-2 has-focus-visible:ring-primary"
3452
+ }
3453
+ }],
3454
+ defaultVariants: {
3455
+ variant: "outline",
3456
+ highlightColor: "primary",
3457
+ spotlightColor: "primary"
3458
+ }
3459
+ });
3460
+
3461
+ const pageColumns = {
3462
+ base: "relative column-1 md:columns-2 lg:columns-3 gap-8 space-y-8 *:break-inside-avoid-column *:will-change-transform"
3463
+ };
3464
+
3700
3465
  const pageFeature = {
3701
3466
  slots: {
3702
3467
  root: "relative",
@@ -3752,10 +3517,13 @@ const pageHero = {
3752
3517
  root: "relative isolate",
3753
3518
  container: "flex flex-col lg:grid py-24 sm:py-32 lg:py-40 gap-16 sm:gap-y-24",
3754
3519
  wrapper: "",
3520
+ header: "",
3755
3521
  headline: "mb-4",
3756
3522
  title: "text-5xl sm:text-7xl text-pretty tracking-tight font-bold text-highlighted",
3757
3523
  description: "text-lg sm:text-xl/8 text-muted",
3758
- links: "mt-10 flex flex-wrap gap-x-6 gap-y-3"
3524
+ body: "mt-10",
3525
+ footer: "mt-10",
3526
+ links: "flex flex-wrap gap-x-6 gap-y-3"
3759
3527
  },
3760
3528
  variants: {
3761
3529
  orientation: {
@@ -3789,7 +3557,7 @@ const pageHero = {
3789
3557
  }
3790
3558
  };
3791
3559
 
3792
- const pageLinks = {
3560
+ const pageLinks = (options) => ({
3793
3561
  slots: {
3794
3562
  root: "flex flex-col gap-3",
3795
3563
  title: "text-sm font-semibold flex items-center gap-1.5",
@@ -3806,14 +3574,11 @@ const pageLinks = {
3806
3574
  link: "text-primary font-medium"
3807
3575
  },
3808
3576
  false: {
3809
- link: [
3810
- "text-muted hover:text-default",
3811
- "transition-colors"
3812
- ]
3577
+ link: ["text-muted hover:text-default", options.theme.transitions && "transition-colors"]
3813
3578
  }
3814
3579
  }
3815
3580
  }
3816
- };
3581
+ });
3817
3582
 
3818
3583
  const pageList = {
3819
3584
  base: "relative flex flex-col",
@@ -3840,69 +3605,7 @@ const pageLogos = {
3840
3605
  }
3841
3606
  };
3842
3607
 
3843
- const pageMarquee = {
3844
- slots: {
3845
- root: "group relative flex items-center overflow-hidden gap-(--gap) [--gap:--spacing(16)] [--duration:20s]",
3846
- content: "flex items-center shrink-0 justify-around gap-(--gap) min-w-max"
3847
- },
3848
- variants: {
3849
- orientation: {
3850
- horizontal: {
3851
- content: "w-full"
3852
- },
3853
- vertical: {
3854
- content: "h-full"
3855
- }
3856
- },
3857
- pauseOnHover: {
3858
- true: {
3859
- content: "group-hover:[animation-play-state:paused]"
3860
- }
3861
- },
3862
- reverse: {
3863
- true: {
3864
- content: "[animation-direction:reverse]"
3865
- }
3866
- },
3867
- overlay: {
3868
- true: {
3869
- 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'
3870
- }
3871
- }
3872
- },
3873
- compoundVariants: [
3874
- {
3875
- orientation: "horizontal",
3876
- class: {
3877
- root: "flex-row",
3878
- content: "flex-row animate-[marquee_var(--duration)_linear_infinite] rtl:animate-[marquee-rtl_var(--duration)_linear_infinite] backface-hidden"
3879
- }
3880
- },
3881
- {
3882
- orientation: "horizontal",
3883
- overlay: true,
3884
- class: {
3885
- 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"
3886
- }
3887
- },
3888
- {
3889
- orientation: "vertical",
3890
- class: {
3891
- root: "flex-col",
3892
- content: "flex-col animate-[marquee-vertical_var(--duration)_linear_infinite] rtl:animate-[marquee-vertical-rtl_var(--duration)_linear_infinite] h-[fit-content] backface-hidden"
3893
- }
3894
- },
3895
- {
3896
- orientation: "vertical",
3897
- overlay: true,
3898
- class: {
3899
- 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"
3900
- }
3901
- }
3902
- ]
3903
- };
3904
-
3905
- const pageSection = {
3608
+ const pageSection = {
3906
3609
  slots: {
3907
3610
  root: "relative isolate",
3908
3611
  container: "flex flex-col lg:grid py-16 sm:py-24 lg:py-32 gap-8 sm:gap-16",
@@ -3955,35 +3658,27 @@ const pageSection = {
3955
3658
  },
3956
3659
  body: {
3957
3660
  true: ""
3958
- },
3959
- features: {
3960
- true: "",
3961
- false: ""
3962
3661
  }
3963
3662
  },
3964
- compoundVariants: [
3965
- {
3966
- orientation: "vertical",
3967
- title: true,
3968
- class: {
3969
- body: "mt-16"
3970
- }
3971
- },
3972
- {
3973
- orientation: "vertical",
3974
- description: true,
3975
- class: {
3976
- body: "mt-16"
3977
- }
3978
- },
3979
- {
3980
- orientation: "vertical",
3981
- body: true,
3982
- class: {
3983
- footer: "mt-16"
3984
- }
3663
+ compoundVariants: [{
3664
+ orientation: "vertical",
3665
+ title: true,
3666
+ class: {
3667
+ body: "mt-16"
3668
+ }
3669
+ }, {
3670
+ orientation: "vertical",
3671
+ description: true,
3672
+ class: {
3673
+ body: "mt-16"
3674
+ }
3675
+ }, {
3676
+ orientation: "vertical",
3677
+ body: true,
3678
+ class: {
3679
+ footer: "mt-16"
3985
3680
  }
3986
- ]
3681
+ }]
3987
3682
  };
3988
3683
 
3989
3684
  const pagination = {
@@ -4138,22 +3833,19 @@ const pricingPlan = {
4138
3833
  }
4139
3834
  }
4140
3835
  },
4141
- compoundVariants: [
4142
- {
4143
- orientation: "horizontal",
4144
- variant: "soft",
4145
- class: {
4146
- root: "divide-accented"
4147
- }
4148
- },
4149
- {
4150
- orientation: "horizontal",
4151
- variant: "subtle",
4152
- class: {
4153
- root: "divide-accented"
4154
- }
3836
+ compoundVariants: [{
3837
+ orientation: "horizontal",
3838
+ variant: "soft",
3839
+ class: {
3840
+ root: "divide-accented"
4155
3841
  }
4156
- ],
3842
+ }, {
3843
+ orientation: "horizontal",
3844
+ variant: "subtle",
3845
+ class: {
3846
+ root: "divide-accented"
3847
+ }
3848
+ }],
4157
3849
  defaultVariants: {
4158
3850
  variant: "outline"
4159
3851
  }
@@ -4173,13 +3865,11 @@ const pricingPlans = {
4173
3865
  true: ""
4174
3866
  }
4175
3867
  },
4176
- compoundVariants: [
4177
- {
4178
- compact: false,
4179
- scale: true,
4180
- class: "lg:gap-x-13"
4181
- }
4182
- ]
3868
+ compoundVariants: [{
3869
+ compact: false,
3870
+ scale: true,
3871
+ class: "lg:gap-x-13"
3872
+ }]
4183
3873
  };
4184
3874
 
4185
3875
  const pricingTable = {
@@ -4239,7 +3929,7 @@ const progress = (options) => ({
4239
3929
  root: "gap-2",
4240
3930
  base: "relative overflow-hidden rounded-full bg-accented",
4241
3931
  indicator: "rounded-full size-full transition-transform duration-200 ease-out",
4242
- status: "flex justify-end text-dimmed transition-[width] duration-200",
3932
+ status: "flex text-dimmed transition-[width] duration-200",
4243
3933
  steps: "grid items-end",
4244
3934
  step: "truncate text-end row-start-1 col-start-1 transition-opacity"
4245
3935
  },
@@ -4308,12 +3998,12 @@ const progress = (options) => ({
4308
3998
  horizontal: {
4309
3999
  root: "w-full flex flex-col",
4310
4000
  base: "w-full",
4311
- status: "flex-row"
4001
+ status: "flex-row items-center justify-end min-w-fit"
4312
4002
  },
4313
4003
  vertical: {
4314
4004
  root: "h-full flex flex-row-reverse",
4315
4005
  base: "h-full",
4316
- status: "flex-col"
4006
+ status: "flex-col justify-end min-h-fit"
4317
4007
  }
4318
4008
  },
4319
4009
  inverted: {
@@ -4626,10 +4316,6 @@ const radioGroup = (options) => ({
4626
4316
  }
4627
4317
  });
4628
4318
 
4629
- const scrollToSection = {
4630
- base: ""
4631
- };
4632
-
4633
4319
  const select = (options) => {
4634
4320
  return defuFn({
4635
4321
  slots: {
@@ -4655,7 +4341,7 @@ const select = (options) => {
4655
4341
  itemLabel: "truncate"
4656
4342
  },
4657
4343
  variants: {
4658
- ...buttonGroupVariant,
4344
+ ...fieldGroupVariant,
4659
4345
  size: {
4660
4346
  xs: {
4661
4347
  label: "p-1 text-[10px]/3 gap-1",
@@ -4708,9 +4394,16 @@ const select = (options) => {
4708
4394
  empty: "p-2 text-base"
4709
4395
  }
4710
4396
  }
4711
- }
4397
+ },
4398
+ compoundVariants: (prev) => prev.map((item) => ({
4399
+ ...item,
4400
+ class: typeof item.class === "string" ? replaceFocus$1(item.class) : item.class
4401
+ }))
4712
4402
  }, input(options));
4713
4403
  };
4404
+ function replaceFocus$1(str) {
4405
+ return str.replace(/focus-visible:/g, "focus:");
4406
+ }
4714
4407
 
4715
4408
  const selectMenu = (options) => {
4716
4409
  return defuFn({
@@ -4718,9 +4411,16 @@ const selectMenu = (options) => {
4718
4411
  input: "border-b border-default",
4719
4412
  focusScope: "flex flex-col min-h-0",
4720
4413
  content: (content) => [content, "origin-(--reka-combobox-content-transform-origin) w-(--reka-combobox-trigger-width)"]
4721
- }
4414
+ },
4415
+ compoundVariants: (prev) => prev.map((item) => ({
4416
+ ...item,
4417
+ class: typeof item.class === "string" ? replaceFocus(item.class) : item.class
4418
+ }))
4722
4419
  }, select(options));
4723
4420
  };
4421
+ function replaceFocus(str) {
4422
+ return str.replace(/focus:/g, "focus-visible:");
4423
+ }
4724
4424
 
4725
4425
  const separator = (options) => ({
4726
4426
  slots: {
@@ -5784,7 +5484,7 @@ const tree = (options) => ({
5784
5484
  linkLeadingIcon: "shrink-0",
5785
5485
  linkLabel: "truncate",
5786
5486
  linkTrailing: "ms-auto inline-flex gap-1.5 items-center",
5787
- linkTrailingIcon: "shrink-0 transform transition-transform duration-200 group-data-expanded:rotate-180"
5487
+ linkTrailingIcon: "shrink-0 transform transition-transform duration-200 group-data-[expanded=true]:rotate-180"
5788
5488
  },
5789
5489
  variants: {
5790
5490
  color: {
@@ -5855,7 +5555,7 @@ const tree = (options) => ({
5855
5555
  }
5856
5556
  });
5857
5557
 
5858
- const user = {
5558
+ const user = (options) => ({
5859
5559
  slots: {
5860
5560
  root: "relative group/user",
5861
5561
  wrapper: "",
@@ -5874,14 +5574,8 @@ const user = {
5874
5574
  },
5875
5575
  to: {
5876
5576
  true: {
5877
- name: [
5878
- "text-default peer-hover:text-highlighted",
5879
- "transition-colors"
5880
- ],
5881
- description: [
5882
- "peer-hover:text-toned",
5883
- "transition-colors"
5884
- ],
5577
+ name: ["text-default peer-hover:text-highlighted", options.theme.transitions && "transition-colors"],
5578
+ description: ["peer-hover:text-toned", options.theme.transitions && "transition-colors"],
5885
5579
  avatar: "transform transition-transform duration-200 group-hover/user:scale-115"
5886
5580
  },
5887
5581
  false: {
@@ -5943,7 +5637,7 @@ const user = {
5943
5637
  defaultVariants: {
5944
5638
  size: "md"
5945
5639
  }
5946
- };
5640
+ });
5947
5641
 
5948
5642
  const theme = {
5949
5643
  __proto__: null,
@@ -5958,7 +5652,6 @@ const theme = {
5958
5652
  blogPosts: blogPosts,
5959
5653
  breadcrumb: breadcrumb,
5960
5654
  button: button,
5961
- buttonGroup: buttonGroup,
5962
5655
  calendar: calendar,
5963
5656
  card: card$1,
5964
5657
  carousel: carousel,
@@ -5976,11 +5669,6 @@ const theme = {
5976
5669
  colorPicker: colorPicker,
5977
5670
  commandPalette: commandPalette,
5978
5671
  container: container,
5979
- contentNavigation: contentNavigation,
5980
- contentSearch: contentSearch,
5981
- contentSearchButton: contentSearchButton,
5982
- contentSurround: contentSurround,
5983
- contentToc: contentToc,
5984
5672
  contextMenu: contextMenu,
5985
5673
  dashboardGroup: dashboardGroup,
5986
5674
  dashboardNavbar: dashboardNavbar,
@@ -5995,6 +5683,7 @@ const theme = {
5995
5683
  drawer: drawer,
5996
5684
  dropdownMenu: dropdownMenu,
5997
5685
  error: error,
5686
+ fieldGroup: fieldGroup$1,
5998
5687
  fileUpload: fileUpload,
5999
5688
  footer: footer,
6000
5689
  footerColumns: footerColumns,
@@ -6008,16 +5697,16 @@ const theme = {
6008
5697
  kbd: kbd$1,
6009
5698
  link: link,
6010
5699
  main: main,
5700
+ marquee: marquee,
6011
5701
  modal: modal,
6012
5702
  navigationMenu: navigationMenu,
6013
5703
  page: page,
6014
- pageAccordion: pageAccordion,
6015
5704
  pageAnchors: pageAnchors,
6016
5705
  pageAside: pageAside,
6017
5706
  pageBody: pageBody,
5707
+ pageCTA: pageCta,
6018
5708
  pageCard: pageCard,
6019
5709
  pageColumns: pageColumns,
6020
- pageCta: pageCta,
6021
5710
  pageFeature: pageFeature,
6022
5711
  pageGrid: pageGrid,
6023
5712
  pageHeader: pageHeader,
@@ -6025,7 +5714,6 @@ const theme = {
6025
5714
  pageLinks: pageLinks,
6026
5715
  pageList: pageList,
6027
5716
  pageLogos: pageLogos,
6028
- pageMarquee: pageMarquee,
6029
5717
  pageSection: pageSection,
6030
5718
  pagination: pagination,
6031
5719
  pinInput: pinInput,
@@ -6035,7 +5723,6 @@ const theme = {
6035
5723
  pricingTable: pricingTable,
6036
5724
  progress: progress,
6037
5725
  radioGroup: radioGroup,
6038
- scrollToSection: scrollToSection,
6039
5726
  select: select,
6040
5727
  selectMenu: selectMenu,
6041
5728
  separator: separator,
@@ -6055,21 +5742,9 @@ const theme = {
6055
5742
  user: user
6056
5743
  };
6057
5744
 
6058
- const contentTheme = {
6059
- __proto__: null,
6060
- contentNavigation: contentNavigation,
6061
- contentSearch: contentSearch,
6062
- contentSearchButton: contentSearchButton,
6063
- contentSurround: contentSurround,
6064
- contentToc: contentToc
6065
- };
6066
-
6067
- const a = {
6068
- base: [
6069
- "text-primary border-b border-transparent hover:border-primary font-medium focus-visible:outline-primary [&>code]:border-dashed hover:[&>code]:border-primary hover:[&>code]:text-primary",
6070
- "transition-colors [&>code]:transition-colors"
6071
- ]
6072
- };
5745
+ const a = (options) => ({
5746
+ base: ["text-primary border-b border-transparent hover:border-primary font-medium focus-visible:outline-primary [&>code]:border-dashed hover:[&>code]:border-primary hover:[&>code]:text-primary", options.theme.transitions && "transition-colors [&>code]:transition-colors"]
5747
+ });
6073
5748
 
6074
5749
  const accordion = {
6075
5750
  slots: {
@@ -6090,161 +5765,111 @@ const blockquote = {
6090
5765
  base: "border-s-4 border-accented ps-4 italic"
6091
5766
  };
6092
5767
 
6093
- const callout = (options) => {
6094
- const colors = options.theme.colors || [];
6095
- const colorVariants = Object.fromEntries(
6096
- colors.map((color) => [
6097
- color,
6098
- {
5768
+ const callout = (options) => ({
5769
+ slots: {
5770
+ base: ["group relative block px-4 py-3 rounded-md text-sm/6 my-5 last:mb-0 [&_code]:text-xs/5 [&_code]:bg-default [&_pre]:bg-default [&>div]:my-2.5 [&_ul]:my-2.5 [&_ol]:my-2.5 [&>*]:last:!mb-0 [&_ul]:ps-4.5 [&_ol]:ps-4.5 [&_li]:my-0", options.theme.transitions && "transition-colors"],
5771
+ icon: ["size-4 shrink-0 align-sub me-1.5", options.theme.transitions && "transition-colors"],
5772
+ externalIcon: ["size-4 align-top absolute right-2 top-2 pointer-events-none", options.theme.transitions && "transition-colors"]
5773
+ },
5774
+ variants: {
5775
+ color: {
5776
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, {
6099
5777
  base: `border border-${color}/25 bg-${color}/10 text-${color}-600 dark:text-${color}-300 [&_a]:text-${color} [&_a]:hover:border-${color} [&_code]:text-${color}-600 dark:[&_code]:text-${color}-300 [&_code]:border-${color}/25 [&_a]:hover:[&>code]:border-${color} [&_a]:hover:[&>code]:text-${color} [&>ul]:marker:text-${color}/50`,
6100
5778
  icon: `text-${color}`,
6101
5779
  externalIcon: `text-${color}-600 dark:text-${color}-300`
5780
+ }])),
5781
+ neutral: {
5782
+ base: "border border-muted bg-muted text-default",
5783
+ icon: "text-highlighted",
5784
+ externalIcon: "text-dimmed"
6102
5785
  }
6103
- ])
6104
- );
6105
- const compoundColorVariants = colors.map((color) => ({
5786
+ },
5787
+ to: {
5788
+ true: "border-dashed"
5789
+ }
5790
+ },
5791
+ compoundVariants: [...(options.theme.colors || []).map((color) => ({
6106
5792
  color,
6107
5793
  to: true,
6108
5794
  class: {
6109
5795
  base: `hover:border-${color}`,
6110
5796
  externalIcon: `group-hover:text-${color}`
6111
5797
  }
6112
- }));
6113
- return {
6114
- slots: {
6115
- base: [
6116
- "group relative block px-4 py-3 rounded-md text-sm/6 my-5 last:mb-0 [&_code]:text-xs/5 [&_code]:bg-default [&_pre]:bg-default [&>div]:my-2.5 [&_ul]:my-2.5 [&_ol]:my-2.5 [&>*]:last:!mb-0 [&_ul]:ps-4.5 [&_ol]:ps-4.5 [&_li]:my-0",
6117
- "transition-colors"
6118
- ],
6119
- icon: [
6120
- "size-4 shrink-0 align-sub me-1.5",
6121
- "transition-colors"
6122
- ],
6123
- externalIcon: [
6124
- "size-4 align-top absolute right-2 top-2 pointer-events-none",
6125
- "transition-colors"
6126
- ]
6127
- },
6128
- variants: {
6129
- color: {
6130
- ...colorVariants,
6131
- neutral: {
6132
- base: "border border-muted bg-muted text-default",
6133
- icon: "text-highlighted",
6134
- externalIcon: "text-dimmed"
6135
- }
6136
- },
6137
- to: {
6138
- true: "border-dashed"
6139
- }
6140
- },
6141
- compoundVariants: [
6142
- ...compoundColorVariants,
6143
- {
6144
- color: "neutral",
6145
- to: true,
6146
- class: {
6147
- base: "hover:border-inverted",
6148
- externalIcon: "group-hover:text-highlighted"
6149
- }
6150
- }
6151
- ],
6152
- defaultVariants: {
6153
- color: "neutral"
5798
+ })), {
5799
+ color: "neutral",
5800
+ to: true,
5801
+ class: {
5802
+ base: "hover:border-inverted",
5803
+ externalIcon: "group-hover:text-highlighted"
6154
5804
  }
6155
- };
6156
- };
5805
+ }],
5806
+ defaultVariants: {
5807
+ color: "neutral"
5808
+ }
5809
+ });
6157
5810
 
6158
- const card = (options) => {
6159
- const colors = options.theme.colors || [];
6160
- const colorVariants = Object.fromEntries(
6161
- colors.map((color) => [
6162
- color,
6163
- {
5811
+ const card = (options) => ({
5812
+ slots: {
5813
+ base: ["group relative block my-5 p-4 sm:p-6 border border-default rounded-md bg-default", options.theme.transitions && "transition-colors"],
5814
+ icon: "size-6 mb-2 block",
5815
+ title: "text-highlighted font-semibold",
5816
+ description: "text-[15px] text-muted *:first:mt-0 *:last:mb-0 *:my-1",
5817
+ externalIcon: ["size-4 align-top absolute right-2 top-2 text-dimmed pointer-events-none", options.theme.transitions && "transition-colors"]
5818
+ },
5819
+ variants: {
5820
+ color: {
5821
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, {
6164
5822
  icon: `text-${color}`
5823
+ }])),
5824
+ neutral: {
5825
+ icon: "text-highlighted"
5826
+ }
5827
+ },
5828
+ to: {
5829
+ true: ""
5830
+ },
5831
+ title: {
5832
+ true: {
5833
+ description: "mt-1"
6165
5834
  }
6166
- ])
6167
- );
6168
- const compoundColorVariants = colors.map((color) => ({
5835
+ }
5836
+ },
5837
+ compoundVariants: [...(options.theme.colors || []).map((color) => ({
6169
5838
  color,
6170
5839
  to: true,
6171
5840
  class: {
6172
5841
  base: `hover:bg-${color}/10 hover:border-${color}`,
6173
5842
  externalIcon: `group-hover:text-${color}`
6174
5843
  }
6175
- }));
6176
- return {
6177
- slots: {
6178
- base: [
6179
- "group relative block my-5 p-4 sm:p-6 border border-default rounded-md bg-default",
6180
- "transition-colors"
6181
- ],
6182
- icon: "size-6 mb-2 block",
6183
- title: "text-highlighted font-semibold",
6184
- description: "text-[15px] text-muted *:first:mt-0 *:last:mb-0 *:my-1",
6185
- externalIcon: [
6186
- "size-4 align-top absolute right-2 top-2 text-dimmed pointer-events-none",
6187
- "transition-colors"
6188
- ]
6189
- },
6190
- variants: {
6191
- color: {
6192
- ...colorVariants,
6193
- neutral: {
6194
- icon: "text-highlighted"
6195
- }
6196
- },
6197
- to: {
6198
- true: ""
6199
- },
6200
- title: {
6201
- true: {
6202
- description: "mt-1"
6203
- }
6204
- }
6205
- },
6206
- compoundVariants: [
6207
- ...compoundColorVariants,
6208
- {
6209
- color: "neutral",
6210
- to: true,
6211
- class: {
6212
- base: "hover:bg-elevated/50 hover:border-inverted",
6213
- externalIcon: "group-hover:text-highlighted"
6214
- }
6215
- }
6216
- ],
6217
- defaultVariants: {
6218
- color: "primary"
5844
+ })), {
5845
+ color: "neutral",
5846
+ to: true,
5847
+ class: {
5848
+ base: "hover:bg-elevated/50 hover:border-inverted",
5849
+ externalIcon: "group-hover:text-highlighted"
6219
5850
  }
6220
- };
6221
- };
5851
+ }],
5852
+ defaultVariants: {
5853
+ color: "primary"
5854
+ }
5855
+ });
6222
5856
 
6223
5857
  const cardGroup = {
6224
5858
  base: "grid grid-cols-1 sm:grid-cols-2 gap-5 my-5 *:my-0"
6225
5859
  };
6226
5860
 
6227
- const code = (options) => {
6228
- const colors = options.theme.colors || [];
6229
- const colorVariants = Object.fromEntries(
6230
- colors.map((color) => [
6231
- color,
6232
- `border border-${color}/25 bg-${color}/10 text-${color}`
6233
- ])
6234
- );
6235
- return {
6236
- base: "px-1.5 py-0.5 text-sm font-mono font-medium rounded-md inline-block",
6237
- variants: {
6238
- color: {
6239
- ...colorVariants,
6240
- neutral: "border border-muted text-highlighted bg-muted"
6241
- }
6242
- },
6243
- defaultVariants: {
6244
- color: "neutral"
5861
+ const code = (options) => ({
5862
+ base: "px-1.5 py-0.5 text-sm font-mono font-medium rounded-md inline-block",
5863
+ variants: {
5864
+ color: {
5865
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, `border border-${color}/25 bg-${color}/10 text-${color}`])),
5866
+ neutral: "border border-muted text-highlighted bg-muted"
6245
5867
  }
6246
- };
6247
- };
5868
+ },
5869
+ defaultVariants: {
5870
+ color: "neutral"
5871
+ }
5872
+ });
6248
5873
 
6249
5874
  const codeCollapse = {
6250
5875
  slots: {
@@ -6266,19 +5891,16 @@ const codeCollapse = {
6266
5891
  }
6267
5892
  };
6268
5893
 
6269
- const codeGroup = {
5894
+ const codeGroup = (options) => ({
6270
5895
  slots: {
6271
5896
  root: "relative group *:not-first:!my-0 *:not-first:!static my-5",
6272
5897
  list: "relative flex items-center gap-1 border border-muted bg-default border-b-0 rounded-t-md overflow-x-auto p-2",
6273
5898
  indicator: "absolute left-0 inset-y-2 w-(--reka-tabs-indicator-size) translate-x-(--reka-tabs-indicator-position) transition-[translate,width] duration-200 bg-elevated rounded-md shadow-xs",
6274
- trigger: [
6275
- "relative inline-flex items-center gap-1.5 text-default data-[state=active]:text-highlighted hover:bg-elevated/50 px-2 py-1.5 text-sm rounded-md disabled:cursor-not-allowed disabled:opacity-75 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary focus:outline-none",
6276
- "transition-colors"
6277
- ],
5899
+ trigger: ["relative inline-flex items-center gap-1.5 text-default data-[state=active]:text-highlighted hover:bg-elevated/50 px-2 py-1.5 text-sm rounded-md disabled:cursor-not-allowed disabled:opacity-75 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary focus:outline-none", options.theme.transitions && "transition-colors"],
6278
5900
  triggerIcon: "size-4 shrink-0",
6279
5901
  triggerLabel: "truncate"
6280
5902
  }
6281
- };
5903
+ });
6282
5904
 
6283
5905
  const codeIcon = {
6284
5906
  "package.json": "i-vscode-icons-file-type-node",
@@ -6362,7 +5984,7 @@ const codePreview = {
6362
5984
  }
6363
5985
  };
6364
5986
 
6365
- const codeTree = {
5987
+ const codeTree = (options) => ({
6366
5988
  slots: {
6367
5989
  root: "relative lg:h-[450px] my-5 grid lg:grid-cols-3 border border-muted rounded-md",
6368
5990
  list: "isolate relative p-2 border-b lg:border-b-0 lg:border-e border-muted overflow-y-auto",
@@ -6373,7 +5995,7 @@ const codeTree = {
6373
5995
  linkLeadingIcon: "size-4 shrink-0",
6374
5996
  linkLabel: "truncate",
6375
5997
  linkTrailing: "ms-auto inline-flex gap-1.5 items-center",
6376
- linkTrailingIcon: "size-5 transform transition-transform duration-200 shrink-0 group-data-expanded:rotate-180",
5998
+ linkTrailingIcon: "size-5 transform transition-transform duration-200 shrink-0 group-data-[expanded=true]:rotate-180",
6377
5999
  content: "overflow-hidden lg:col-span-2 flex flex-col [&>div]:my-0 [&>div]:flex-1 [&>div]:flex [&>div]:flex-col [&>div>div]:border-0 [&>div>pre]:border-b-0 [&>div>pre]:border-s-0 [&>div>pre]:border-e-0 [&>div>pre]:rounded-l-none [&>div>pre]:flex-1 [&>div]:overflow-y-auto"
6378
6000
  },
6379
6001
  variants: {
@@ -6382,27 +6004,21 @@ const codeTree = {
6382
6004
  link: "text-highlighted before:bg-elevated"
6383
6005
  },
6384
6006
  false: {
6385
- link: [
6386
- "hover:text-highlighted hover:before:bg-elevated/50",
6387
- "transition-colors before:transition-colors"
6388
- ]
6007
+ link: ["hover:text-highlighted hover:before:bg-elevated/50", options.theme.transitions && "transition-colors before:transition-colors"]
6389
6008
  }
6390
6009
  }
6391
6010
  }
6392
- };
6011
+ });
6393
6012
 
6394
- const collapsible = {
6013
+ const collapsible = (options) => ({
6395
6014
  slots: {
6396
6015
  root: "my-5",
6397
- trigger: [
6398
- "group relative rounded-xs inline-flex items-center gap-1.5 text-muted hover:text-default text-sm focus-visible:ring-2 focus-visible:ring-primary focus:outline-none",
6399
- "transition-colors"
6400
- ],
6016
+ trigger: ["group relative rounded-xs inline-flex items-center gap-1.5 text-muted hover:text-default text-sm focus-visible:ring-2 focus-visible:ring-primary focus:outline-none", options.theme.transitions && "transition-colors"],
6401
6017
  triggerIcon: "size-4 shrink-0 group-data-[state=open]:rotate-180 transition-transform duration-200",
6402
6018
  triggerLabel: "truncate",
6403
6019
  content: "*:first:mt-2.5 *:last:mb-0 *:my-1.5"
6404
6020
  }
6405
- };
6021
+ });
6406
6022
 
6407
6023
  const em = {
6408
6024
  base: ""
@@ -6431,35 +6047,23 @@ const h1 = {
6431
6047
  }
6432
6048
  };
6433
6049
 
6434
- const h2 = {
6050
+ const h2 = (options) => ({
6435
6051
  slots: {
6436
- base: [
6437
- "relative text-2xl text-highlighted font-bold mt-12 mb-6 scroll-mt-[calc(48px+45px+var(--ui-header-height))] lg:scroll-mt-[calc(48px+var(--ui-header-height))] [&>a]:focus-visible:outline-primary [&>a>code]:border-dashed hover:[&>a>code]:border-primary hover:[&>a>code]:text-primary [&>a>code]:text-xl/7 [&>a>code]:font-bold",
6438
- "[&>a>code]:transition-colors"
6439
- ],
6440
- leading: [
6441
- "absolute -ms-8 top-1 opacity-0 group-hover:opacity-100 group-focus:opacity-100 p-1 bg-elevated hover:text-primary rounded-md hidden lg:flex text-muted",
6442
- "transition"
6443
- ],
6052
+ base: ["relative text-2xl text-highlighted font-bold mt-12 mb-6 scroll-mt-[calc(48px+45px+var(--ui-header-height))] lg:scroll-mt-[calc(48px+var(--ui-header-height))] [&>a]:focus-visible:outline-primary [&>a>code]:border-dashed hover:[&>a>code]:border-primary hover:[&>a>code]:text-primary [&>a>code]:text-xl/7 [&>a>code]:font-bold", options.theme.transitions && "[&>a>code]:transition-colors"],
6053
+ leading: ["absolute -ms-8 top-1 opacity-0 group-hover:opacity-100 group-focus:opacity-100 p-1 bg-elevated hover:text-primary rounded-md hidden lg:flex text-muted", options.theme.transitions && "transition"],
6444
6054
  leadingIcon: "size-4 shrink-0",
6445
6055
  link: "group lg:ps-2 lg:-ms-2"
6446
6056
  }
6447
- };
6057
+ });
6448
6058
 
6449
- const h3 = {
6059
+ const h3 = (options) => ({
6450
6060
  slots: {
6451
- base: [
6452
- "relative text-xl text-highlighted font-bold mt-8 mb-3 scroll-mt-[calc(32px+45px+var(--ui-header-height))] lg:scroll-mt-[calc(32px+var(--ui-header-height))] [&>a]:focus-visible:outline-primary [&>a>code]:border-dashed hover:[&>a>code]:border-primary hover:[&>a>code]:text-primary [&>a>code]:text-lg/6 [&>a>code]:font-bold",
6453
- "[&>a>code]:transition-colors"
6454
- ],
6455
- leading: [
6456
- "absolute -ms-8 top-0.5 opacity-0 group-hover:opacity-100 group-focus:opacity-100 p-1 bg-elevated hover:text-primary rounded-md hidden lg:flex text-muted",
6457
- "transition"
6458
- ],
6061
+ base: ["relative text-xl text-highlighted font-bold mt-8 mb-3 scroll-mt-[calc(32px+45px+var(--ui-header-height))] lg:scroll-mt-[calc(32px+var(--ui-header-height))] [&>a]:focus-visible:outline-primary [&>a>code]:border-dashed hover:[&>a>code]:border-primary hover:[&>a>code]:text-primary [&>a>code]:text-lg/6 [&>a>code]:font-bold", options.theme.transitions && "[&>a>code]:transition-colors"],
6062
+ leading: ["absolute -ms-8 top-0.5 opacity-0 group-hover:opacity-100 group-focus:opacity-100 p-1 bg-elevated hover:text-primary rounded-md hidden lg:flex text-muted", options.theme.transitions && "transition"],
6459
6063
  leadingIcon: "size-4 shrink-0",
6460
6064
  link: "group lg:ps-2 lg:-ms-2"
6461
6065
  }
6462
- };
6066
+ });
6463
6067
 
6464
6068
  const h4 = {
6465
6069
  slots: {
@@ -6477,7 +6081,24 @@ const icon = {
6477
6081
  };
6478
6082
 
6479
6083
  const img = {
6480
- base: ""
6084
+ slots: {
6085
+ base: "rounded-md w-full",
6086
+ overlay: "fixed inset-0 bg-default/75 backdrop-blur-sm will-change-opacity",
6087
+ content: "fixed inset-0 flex items-center justify-center cursor-zoom-out focus:outline-none p-4 sm:p-8"
6088
+ },
6089
+ variants: {
6090
+ zoom: {
6091
+ true: "will-change-transform"
6092
+ },
6093
+ open: {
6094
+ true: ""
6095
+ }
6096
+ },
6097
+ compoundVariants: [{
6098
+ zoom: true,
6099
+ open: false,
6100
+ class: "cursor-zoom-in"
6101
+ }]
6481
6102
  };
6482
6103
 
6483
6104
  const kbd = {
@@ -6573,7 +6194,7 @@ const ul = {
6573
6194
  base: "list-disc ps-6 my-5 marker:text-(--ui-border-accented)"
6574
6195
  };
6575
6196
 
6576
- const proseTheme = {
6197
+ const themeProse = {
6577
6198
  __proto__: null,
6578
6199
  a: a,
6579
6200
  accordion: accordion,
@@ -6618,45 +6239,286 @@ const proseTheme = {
6618
6239
  ul: ul
6619
6240
  };
6620
6241
 
6621
- const themeCollections = {
6622
- "": theme,
6623
- // Root theme files
6624
- "content": contentTheme,
6625
- "prose": proseTheme
6242
+ const contentNavigation = (options) => ({
6243
+ slots: {
6244
+ root: "",
6245
+ content: "data-[state=open]:animate-[accordion-down_200ms_ease-out] data-[state=closed]:animate-[accordion-up_200ms_ease-out] overflow-hidden focus:outline-none",
6246
+ list: "isolate -mx-2.5 -mt-1.5",
6247
+ item: "",
6248
+ listWithChildren: "ms-5 border-s border-default",
6249
+ itemWithChildren: "flex flex-col data-[state=open]:mb-1.5",
6250
+ trigger: "font-semibold",
6251
+ link: "group relative w-full px-2.5 py-1.5 before:inset-y-px before:inset-x-0 flex items-center gap-1.5 text-sm before:absolute before:z-[-1] before:rounded-md focus:outline-none focus-visible:outline-none focus-visible:before:ring-inset focus-visible:before:ring-2",
6252
+ linkLeadingIcon: "shrink-0 size-5",
6253
+ linkTrailing: "ms-auto inline-flex gap-1.5 items-center",
6254
+ linkTrailingBadge: "shrink-0",
6255
+ linkTrailingBadgeSize: "sm",
6256
+ linkTrailingIcon: "size-5 transform transition-transform duration-200 shrink-0 group-data-[state=open]:rotate-180",
6257
+ linkTitle: "truncate",
6258
+ linkTitleExternalIcon: "size-3 align-top text-dimmed"
6259
+ },
6260
+ variants: {
6261
+ color: {
6262
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, {
6263
+ trigger: `focus-visible:ring-${color}`,
6264
+ link: `focus-visible:before:ring-${color}`
6265
+ }])),
6266
+ neutral: {
6267
+ trigger: "focus-visible:ring-inverted",
6268
+ link: "focus-visible:before:ring-inverted"
6269
+ }
6270
+ },
6271
+ highlightColor: {
6272
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, ""])),
6273
+ neutral: ""
6274
+ },
6275
+ variant: {
6276
+ pill: "",
6277
+ link: ""
6278
+ },
6279
+ active: {
6280
+ true: {
6281
+ link: "font-medium"
6282
+ },
6283
+ false: {
6284
+ link: "text-muted",
6285
+ linkLeadingIcon: "text-dimmed"
6286
+ }
6287
+ },
6288
+ disabled: {
6289
+ true: {
6290
+ trigger: "data-[state=open]:text-highlighted"
6291
+ }
6292
+ },
6293
+ highlight: {
6294
+ true: {}
6295
+ },
6296
+ level: {
6297
+ true: {
6298
+ item: "ps-1.5 -ms-px",
6299
+ itemWithChildren: "ps-1.5 -ms-px"
6300
+ }
6301
+ }
6302
+ },
6303
+ compoundVariants: [{
6304
+ highlight: true,
6305
+ level: true,
6306
+ class: {
6307
+ link: ["after:absolute after:-left-1.5 after:inset-y-0.5 after:block after:w-px after:rounded-full", options.theme.transitions && "after:transition-colors"]
6308
+ }
6309
+ }, {
6310
+ disabled: false,
6311
+ active: false,
6312
+ variant: "pill",
6313
+ class: {
6314
+ link: ["hover:text-highlighted hover:before:bg-elevated/50 data-[state=open]:text-highlighted", options.theme.transitions && "transition-colors before:transition-colors"],
6315
+ linkLeadingIcon: ["group-hover:text-default group-data-[state=open]:text-default", options.theme.transitions && "transition-colors"]
6316
+ }
6317
+ }, ...(options.theme.colors || []).map((color) => ({
6318
+ color,
6319
+ variant: "pill",
6320
+ active: true,
6321
+ class: {
6322
+ link: `text-${color}`,
6323
+ linkLeadingIcon: `text-${color} group-data-[state=open]:text-${color}`
6324
+ }
6325
+ })), {
6326
+ color: "neutral",
6327
+ variant: "pill",
6328
+ active: true,
6329
+ class: {
6330
+ link: "text-highlighted",
6331
+ linkLeadingIcon: "text-highlighted group-data-[state=open]:text-highlighted"
6332
+ }
6333
+ }, {
6334
+ variant: "pill",
6335
+ active: true,
6336
+ highlight: false,
6337
+ class: {
6338
+ link: "before:bg-elevated"
6339
+ }
6340
+ }, {
6341
+ variant: "pill",
6342
+ active: true,
6343
+ highlight: true,
6344
+ disabled: false,
6345
+ class: {
6346
+ link: ["hover:before:bg-elevated/50", options.theme.transitions && "before:transition-colors"]
6347
+ }
6348
+ }, {
6349
+ disabled: false,
6350
+ active: false,
6351
+ variant: "link",
6352
+ class: {
6353
+ link: ["hover:text-highlighted data-[state=open]:text-highlighted", options.theme.transitions && "transition-colors"],
6354
+ linkLeadingIcon: ["group-hover:text-default group-data-[state=open]:text-default", options.theme.transitions && "transition-colors"]
6355
+ }
6356
+ }, ...(options.theme.colors || []).map((color) => ({
6357
+ color,
6358
+ variant: "link",
6359
+ active: true,
6360
+ class: {
6361
+ link: `text-${color}`,
6362
+ linkLeadingIcon: `text-${color} group-data-[state=open]:text-${color}`
6363
+ }
6364
+ })), {
6365
+ color: "neutral",
6366
+ variant: "link",
6367
+ active: true,
6368
+ class: {
6369
+ link: "text-highlighted",
6370
+ linkLeadingIcon: "text-highlighted group-data-[state=open]:text-highlighted"
6371
+ }
6372
+ }, ...(options.theme.colors || []).map((highlightColor) => ({
6373
+ highlightColor,
6374
+ highlight: true,
6375
+ level: true,
6376
+ active: true,
6377
+ class: {
6378
+ link: `after:bg-${highlightColor}`
6379
+ }
6380
+ })), {
6381
+ highlightColor: "neutral",
6382
+ highlight: true,
6383
+ level: true,
6384
+ active: true,
6385
+ class: {
6386
+ link: "after:bg-inverted"
6387
+ }
6388
+ }],
6389
+ defaultVariants: {
6390
+ color: "primary",
6391
+ highlightColor: "primary",
6392
+ variant: "pill"
6393
+ }
6394
+ });
6395
+
6396
+ const contentSearch = {
6397
+ slots: {
6398
+ modal: "sm:max-w-3xl sm:h-[28rem]",
6399
+ input: "[&>input]:text-base/5"
6400
+ }
6401
+ };
6402
+
6403
+ const contentSearchButton = {
6404
+ slots: {
6405
+ base: "",
6406
+ trailing: "hidden lg:flex items-center gap-0.5 ms-auto"
6407
+ }
6626
6408
  };
6627
- function generateVariantDeclarations(variants, result) {
6628
- return variants.filter((variant) => result.variants?.[variant]).map((variant) => {
6629
- const keys = Object.keys(result.variants[variant]);
6630
- return `const ${variant} = ${JSON.stringify(keys, null, 2)} as const`;
6631
- });
6632
- }
6633
- function processJsonWithVariants(json, variants) {
6634
- let processedJson = json;
6635
- for (const variant of variants) {
6636
- processedJson = processedJson.replace(
6637
- new RegExp(`("${variant}": "[^"]+")`, "g"),
6638
- `$1 as typeof ${variant}[number]`
6639
- );
6640
- processedJson = processedJson.replace(
6641
- new RegExp(`("${variant}": \\[\\s*)((?:"[^"]+",?\\s*)+)(\\])`, "g"),
6642
- (_, before, match, after) => {
6643
- const replaced = match.replace(/("[^"]+")/g, `$1 as typeof ${variant}[number]`);
6644
- return `${before}${replaced}${after}`;
6645
- }
6646
- );
6409
+
6410
+ const contentSurround = (options) => ({
6411
+ slots: {
6412
+ root: "grid grid-cols-1 sm:grid-cols-2 gap-8",
6413
+ link: ["group block px-6 py-8 rounded-lg border border-default hover:bg-elevated/50 focus-visible:outline-primary", options.theme.transitions && "transition-colors"],
6414
+ linkLeading: ["inline-flex items-center rounded-full p-1.5 bg-elevated group-hover:bg-primary/10 ring ring-accented mb-4 group-hover:ring-primary/50", options.theme.transitions && "transition"],
6415
+ linkLeadingIcon: ["size-5 shrink-0 text-highlighted group-hover:text-primary", options.theme.transitions && "transition-[color,translate]"],
6416
+ linkTitle: "font-medium text-[15px] text-highlighted mb-1 truncate",
6417
+ linkDescription: "text-sm text-muted line-clamp-2"
6418
+ },
6419
+ variants: {
6420
+ direction: {
6421
+ left: {
6422
+ linkLeadingIcon: [options.theme.transitions && "group-active:-translate-x-0.5"]
6423
+ },
6424
+ right: {
6425
+ link: "text-right",
6426
+ linkLeadingIcon: [options.theme.transitions && "group-active:translate-x-0.5"]
6427
+ }
6428
+ }
6647
6429
  }
6648
- return processedJson;
6649
- }
6650
- function getTemplates(options, uiConfig) {
6430
+ });
6431
+
6432
+ const contentToc = (options) => ({
6433
+ slots: {
6434
+ root: "sticky top-(--ui-header-height) z-10 bg-default/75 lg:bg-[initial] backdrop-blur -mx-4 px-4 sm:px-6 sm:-mx-6 overflow-y-auto max-h-[calc(100vh-var(--ui-header-height))]",
6435
+ container: "pt-4 sm:pt-6 pb-2.5 sm:pb-4.5 lg:py-8 border-b border-dashed border-default lg:border-0 flex flex-col",
6436
+ top: "",
6437
+ bottom: "hidden lg:flex lg:flex-col gap-6",
6438
+ trigger: "group text-sm font-semibold flex-1 flex items-center gap-1.5 py-1.5 -mt-1.5 focus-visible:outline-primary",
6439
+ title: "truncate",
6440
+ trailing: "ms-auto inline-flex gap-1.5 items-center",
6441
+ trailingIcon: "size-5 transform transition-transform duration-200 shrink-0 group-data-[state=open]:rotate-180 lg:hidden",
6442
+ content: "data-[state=open]:animate-[collapsible-down_200ms_ease-out] data-[state=closed]:animate-[collapsible-up_200ms_ease-out] overflow-hidden focus:outline-none",
6443
+ list: "min-w-0",
6444
+ listWithChildren: "ms-3",
6445
+ item: "min-w-0",
6446
+ itemWithChildren: "",
6447
+ link: "group relative text-sm flex items-center focus-visible:outline-primary py-1",
6448
+ linkText: "truncate",
6449
+ indicator: "absolute ms-2.5 transition-[translate,height] duration-200 h-(--indicator-size) translate-y-(--indicator-position) w-px rounded-full"
6450
+ },
6451
+ variants: {
6452
+ color: {
6453
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, ""])),
6454
+ neutral: ""
6455
+ },
6456
+ highlightColor: {
6457
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, {
6458
+ indicator: `bg-${color}`
6459
+ }])),
6460
+ neutral: {
6461
+ indicator: "bg-inverted"
6462
+ }
6463
+ },
6464
+ active: {
6465
+ false: {
6466
+ link: ["text-muted hover:text-default", options.theme.transitions && "transition-colors"]
6467
+ }
6468
+ },
6469
+ highlight: {
6470
+ true: {
6471
+ list: "ms-2.5 ps-4 border-s border-default",
6472
+ item: "-ms-px"
6473
+ }
6474
+ },
6475
+ body: {
6476
+ true: {
6477
+ bottom: "mt-6"
6478
+ }
6479
+ }
6480
+ },
6481
+ compoundVariants: [...(options.theme.colors || []).map((color) => ({
6482
+ color,
6483
+ active: true,
6484
+ class: {
6485
+ link: `text-${color}`,
6486
+ linkLeadingIcon: `text-${color}`
6487
+ }
6488
+ })), {
6489
+ color: "neutral",
6490
+ active: true,
6491
+ class: {
6492
+ link: "text-highlighted",
6493
+ linkLeadingIcon: "text-highlighted"
6494
+ }
6495
+ }],
6496
+ defaultVariants: {
6497
+ color: "primary",
6498
+ highlightColor: "primary"
6499
+ }
6500
+ });
6501
+
6502
+ const themeContent = {
6503
+ __proto__: null,
6504
+ contentNavigation: contentNavigation,
6505
+ contentSearch: contentSearch,
6506
+ contentSearchButton: contentSearchButton,
6507
+ contentSurround: contentSurround,
6508
+ contentToc: contentToc
6509
+ };
6510
+
6511
+ function getTemplates(options, uiConfig, nuxt) {
6651
6512
  const templates = [];
6652
- for (const [folder, themeCollection] of Object.entries(themeCollections)) {
6653
- for (const [component, template] of Object.entries(themeCollection)) {
6654
- const folderPath = folder ? `${folder}/` : "";
6655
- const filename = `ui/${folderPath}${kebabCase(component)}.ts`;
6513
+ let hasProse = false;
6514
+ let hasContent = false;
6515
+ function writeThemeTemplate(theme2, path) {
6516
+ for (const component in theme2) {
6656
6517
  templates.push({
6657
- filename,
6518
+ filename: `ui/${path ? path + "/" : ""}${kebabCase(component)}.ts`,
6658
6519
  write: true,
6659
6520
  getContents: async () => {
6521
+ const template = theme2[component];
6660
6522
  const result = typeof template === "function" ? template(options) : template;
6661
6523
  if (result?.defaultVariants?.color && options.theme?.defaultVariants?.color) {
6662
6524
  result.defaultVariants.color = options.theme.defaultVariants.color;
@@ -6669,15 +6531,42 @@ function getTemplates(options, uiConfig) {
6669
6531
  return keys.some((key) => key !== "true" && key !== "false");
6670
6532
  }).map(([key]) => key);
6671
6533
  let json = JSON.stringify(result, null, 2);
6672
- json = processJsonWithVariants(json, variants);
6534
+ for (const variant of variants) {
6535
+ json = json.replace(new RegExp(`("${variant}": "[^"]+")`, "g"), `$1 as typeof ${variant}[number]`);
6536
+ json = json.replace(new RegExp(`("${variant}": \\[\\s*)((?:"[^"]+",?\\s*)+)(\\])`, "g"), (_, before, match, after) => {
6537
+ const replaced = match.replace(/("[^"]+")/g, `$1 as typeof ${variant}[number]`);
6538
+ return `${before}${replaced}${after}`;
6539
+ });
6540
+ }
6541
+ function generateVariantDeclarations(variants2) {
6542
+ return variants2.filter((variant) => json.includes(`as typeof ${variant}`)).map((variant) => {
6543
+ const keys = Object.keys(result.variants[variant]);
6544
+ return `const ${variant} = ${JSON.stringify(keys, null, 2)} as const`;
6545
+ });
6546
+ }
6673
6547
  return [
6674
- ...generateVariantDeclarations(variants, result),
6548
+ ...generateVariantDeclarations(variants),
6675
6549
  `export default ${json}`
6676
6550
  ].join("\n\n");
6677
6551
  }
6678
6552
  });
6679
6553
  }
6680
6554
  }
6555
+ if (!!nuxt && (hasNuxtModule("@nuxtjs/mdc") || options.mdc || (hasNuxtModule("@nuxt/content") || options.content))) {
6556
+ hasProse = true;
6557
+ const path = "prose";
6558
+ writeThemeTemplate(themeProse, path);
6559
+ templates.push({
6560
+ filename: `ui/${path}/index.ts`,
6561
+ write: true,
6562
+ getContents: () => Object.keys(themeProse).map((component) => `export { default as ${component} } from './${kebabCase(component)}'`).join("\n")
6563
+ });
6564
+ }
6565
+ if (!!nuxt && (hasNuxtModule("@nuxt/content") || options.content)) {
6566
+ hasContent = true;
6567
+ writeThemeTemplate(themeContent, "content");
6568
+ }
6569
+ writeThemeTemplate(theme);
6681
6570
  templates.push({
6682
6571
  filename: "ui.css",
6683
6572
  write: true,
@@ -6752,31 +6641,28 @@ function getTemplates(options, uiConfig) {
6752
6641
  filename: "ui/index.ts",
6753
6642
  write: true,
6754
6643
  getContents: () => {
6755
- const exports = [];
6756
- for (const component of Object.keys(theme)) {
6757
- exports.push(`export { default as ${component} } from './${kebabCase(component)}'`);
6644
+ let contents = Object.keys(theme).map((component) => `export { default as ${component} } from './${kebabCase(component)}'`).join("\n");
6645
+ if (hasContent) {
6646
+ contents += "\n";
6647
+ contents += Object.keys(themeContent).map((component) => `export { default as ${component} } from './content/${kebabCase(component)}'`).join("\n");
6758
6648
  }
6759
- return exports.join("\n");
6649
+ if (hasProse) contents += `
6650
+ export * as prose from './prose'
6651
+ `;
6652
+ return contents;
6760
6653
  }
6761
6654
  });
6762
- templates.push({
6763
- filename: "ui/content/index.ts",
6764
- write: true,
6765
- getContents: () => Object.keys(contentTheme).map((component) => `export { default as ${component} } from './${kebabCase(component)}'`).join("\n")
6766
- });
6767
- templates.push({
6768
- filename: "ui/prose/index.ts",
6769
- write: true,
6770
- getContents: () => Object.keys(proseTheme).map((component) => `export { default as ${component} } from './${kebabCase(component)}'`).join("\n")
6771
- });
6772
6655
  templates.push({
6773
6656
  filename: "types/ui.d.ts",
6774
- getContents: () => `import * as ui from '#build/ui'
6657
+ getContents: () => {
6658
+ const iconKeys = Object.keys(uiConfig?.icons || {});
6659
+ const iconUnion = iconKeys.length ? iconKeys.map((i) => JSON.stringify(i)).join(" | ") : "string";
6660
+ return `import * as ui from '#build/ui'
6775
6661
  import type { TVConfig } from '@eslamdevui/ui'
6776
6662
  import type { defaultConfig } from 'tailwind-variants'
6777
6663
  import colors from 'tailwindcss/colors'
6778
6664
 
6779
- const icons = ${JSON.stringify(uiConfig.icons)};
6665
+ type IconsConfig = Record<${iconUnion} | (string & {}), string>
6780
6666
 
6781
6667
  type NeutralColor = 'slate' | 'gray' | 'zinc' | 'neutral' | 'stone'
6782
6668
  type Color = Exclude<keyof typeof colors, 'inherit' | 'current' | 'transparent' | 'black' | 'white' | NeutralColor> | (string & {})
@@ -6786,7 +6672,7 @@ type AppConfigUI = {
6786
6672
  ${options.theme?.colors?.map((color) => `'${color}'?: Color`).join("\n ")}
6787
6673
  neutral?: NeutralColor | (string & {})
6788
6674
  }
6789
- icons?: Partial<typeof icons>
6675
+ icons?: Partial<IconsConfig>
6790
6676
  tv?: typeof defaultConfig
6791
6677
  } & TVConfig<typeof ui>
6792
6678
 
@@ -6794,14 +6680,15 @@ declare module '@nuxt/schema' {
6794
6680
  interface AppConfigInput {
6795
6681
  /**
6796
6682
  * Nuxt UI theme configuration
6797
- * @see https://ui.nuxt.com/getting-started/theme#customize-theme
6683
+ * @see https://ui.nuxt.com/docs/getting-started/theme/components
6798
6684
  */
6799
6685
  ui?: AppConfigUI
6800
6686
  }
6801
6687
  }
6802
6688
 
6803
6689
  export {}
6804
- `
6690
+ `;
6691
+ }
6805
6692
  });
6806
6693
  templates.push({
6807
6694
  filename: "ui-image-component.ts",
@@ -6814,7 +6701,7 @@ export {}
6814
6701
  return templates;
6815
6702
  }
6816
6703
  function addTemplates(options, nuxt, resolve) {
6817
- const templates = getTemplates(options, nuxt.options.appConfig.ui);
6704
+ const templates = getTemplates(options, nuxt.options.appConfig.ui, nuxt);
6818
6705
  for (const template of templates) {
6819
6706
  if (template.filename.endsWith(".d.ts")) {
6820
6707
  addTypeTemplate(template);