@rimelight/ui 0.0.31 → 0.0.32

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 (364) hide show
  1. package/package.json +1 -1
  2. package/src/components/astro/RLA3dHover.astro +19 -0
  3. package/src/components/astro/RLAAlert.astro +2 -0
  4. package/src/components/astro/RLAApp.astro +19 -0
  5. package/src/components/astro/RLAAspectRatio.astro +1 -1
  6. package/src/components/astro/RLAAudio.astro +19 -0
  7. package/src/components/astro/RLAAvatarGroup.astro +1 -1
  8. package/src/components/astro/RLABadge.astro +3 -1
  9. package/src/components/astro/RLABanner.astro +19 -0
  10. package/src/components/astro/RLABrowserMockup.astro +19 -0
  11. package/src/components/astro/RLAButton.astro +3 -1
  12. package/src/components/astro/RLACalendar.astro +19 -0
  13. package/src/components/astro/RLAChangelog.astro +19 -0
  14. package/src/components/astro/RLAChart.astro +33 -9
  15. package/src/components/astro/RLAChat.astro +19 -0
  16. package/src/components/astro/RLAChatMessage.astro +19 -0
  17. package/src/components/astro/RLAChatMessages.astro +19 -0
  18. package/src/components/astro/RLAChatPalette.astro +19 -0
  19. package/src/components/astro/RLAChatPrompt.astro +19 -0
  20. package/src/components/astro/RLAChatPromptSubmit.astro +19 -0
  21. package/src/components/astro/RLAChatReasoning.astro +19 -0
  22. package/src/components/astro/RLAChatShimmer.astro +19 -0
  23. package/src/components/astro/RLAChatTool.astro +19 -0
  24. package/src/components/astro/RLACheckbox.astro +3 -1
  25. package/src/components/astro/RLAChip.astro +20 -0
  26. package/src/components/astro/RLAColorPicker.astro +19 -0
  27. package/src/components/astro/RLACommandPalette.astro +19 -0
  28. package/src/components/astro/RLACompare.astro +19 -0
  29. package/src/components/astro/{RLAAlertDialog.astro → RLAConfirm.astro} +1 -1
  30. package/src/components/astro/RLAContainer.astro +19 -0
  31. package/src/components/astro/RLAContextMenu.astro +19 -0
  32. package/src/components/astro/RLADashboardGroup.astro +19 -0
  33. package/src/components/astro/RLADashboardNavbar.astro +19 -0
  34. package/src/components/astro/RLADashboardPanel.astro +19 -0
  35. package/src/components/astro/RLADashboardResizeHandle.astro +19 -0
  36. package/src/components/astro/RLADashboardSearch.astro +19 -0
  37. package/src/components/astro/RLADashboardSearchButton.astro +19 -0
  38. package/src/components/astro/RLADashboardSidebar.astro +19 -0
  39. package/src/components/astro/RLADashboardSidebarCollapse.astro +19 -0
  40. package/src/components/astro/RLADashboardSidebarToggle.astro +19 -0
  41. package/src/components/astro/RLADashboardToolbar.astro +19 -0
  42. package/src/components/astro/RLADock.astro +19 -0
  43. package/src/components/astro/RLADropdownMenu.astro +1 -1
  44. package/src/components/astro/RLAEditor.astro +19 -0
  45. package/src/components/astro/RLAEmpty.astro +19 -0
  46. package/src/components/astro/RLAError.astro +19 -0
  47. package/src/components/astro/{RLAInputGroup.astro → RLAFieldGroup.astro} +7 -7
  48. package/src/components/astro/RLAFieldset.astro +19 -0
  49. package/src/components/astro/{RLADropzone.astro → RLAFileUpload.astro} +14 -14
  50. package/src/components/astro/RLAFloatingAction.astro +19 -0
  51. package/src/components/astro/RLAForm.astro +19 -0
  52. package/src/components/astro/{RLAField.astro → RLAFormField.astro} +7 -7
  53. package/src/components/astro/RLAGallery.astro +19 -0
  54. package/src/components/astro/RLAHoverCard.astro +1 -1
  55. package/src/components/astro/RLAImage.astro +19 -0
  56. package/src/components/astro/RLAInput.astro +3 -1
  57. package/src/components/astro/RLAInputDate.astro +19 -0
  58. package/src/components/astro/{RLACombobox.astro → RLAInputMenu.astro} +22 -22
  59. package/src/components/astro/RLAInputNumber.astro +19 -0
  60. package/src/components/astro/RLAInputPin.astro +19 -0
  61. package/src/components/astro/RLAInputTags.astro +19 -0
  62. package/src/components/astro/RLAInputTime.astro +19 -0
  63. package/src/components/astro/RLAKnob.astro +19 -0
  64. package/src/components/astro/RLALink.astro +19 -0
  65. package/src/components/astro/RLALinkGroup.astro +19 -0
  66. package/src/components/astro/RLAListbox.astro +19 -0
  67. package/src/components/astro/RLALocaleSelector.astro +1 -1
  68. package/src/components/astro/RLAMegamenu.astro +19 -0
  69. package/src/components/astro/RLAMeter.astro +19 -0
  70. package/src/components/astro/{RLADialog.astro → RLAModal.astro} +15 -15
  71. package/src/components/astro/RLANavigationMenu.astro +1 -1
  72. package/src/components/astro/RLAPage.astro +19 -0
  73. package/src/components/astro/RLAPageAside.astro +19 -0
  74. package/src/components/astro/RLAPageBody.astro +19 -0
  75. package/src/components/astro/RLAPageHeader.astro +19 -0
  76. package/src/components/astro/{RLASection.astro → RLAPageSection.astro} +6 -6
  77. package/src/components/astro/RLAPassword.astro +19 -0
  78. package/src/components/astro/RLAPhoneMockup.astro +19 -0
  79. package/src/components/astro/RLAPost.astro +19 -0
  80. package/src/components/astro/RLAPricingPlan.astro +19 -0
  81. package/src/components/astro/RLAPricingTable.astro +19 -0
  82. package/src/components/astro/RLAProgress.astro +3 -1
  83. package/src/components/astro/RLAProse.astro +19 -0
  84. package/src/components/astro/RLAQrCode.astro +19 -0
  85. package/src/components/astro/RLARadioGroup.astro +19 -0
  86. package/src/components/astro/RLARating.astro +19 -0
  87. package/src/components/astro/RLAScrollArea.astro +1 -1
  88. package/src/components/astro/RLAScrollToTop.astro +172 -159
  89. package/src/components/astro/{RLASheet.astro → RLASlideover.astro} +9 -9
  90. package/src/components/astro/RLASlider.astro +8 -3
  91. package/src/components/astro/RLASpeedDial.astro +19 -0
  92. package/src/components/astro/RLASpinner.astro +3 -1
  93. package/src/components/astro/{RLAResizable.astro → RLASplitter.astro} +7 -7
  94. package/src/components/astro/RLASpoiler.astro +19 -0
  95. package/src/components/astro/RLAStepper.astro +19 -0
  96. package/src/components/astro/RLAStickySurface.astro +1 -1
  97. package/src/components/astro/RLASwitch.astro +3 -1
  98. package/src/components/astro/RLATableOfContents.astro +19 -0
  99. package/src/components/astro/RLAThemeSelector.astro +1 -1
  100. package/src/components/astro/RLATimeline.astro +19 -0
  101. package/src/components/astro/RLATour.astro +19 -0
  102. package/src/components/astro/RLATree.astro +19 -0
  103. package/src/components/astro/RLAUser.astro +19 -0
  104. package/src/components/astro/{RLAEmbedYoutube.astro → RLAVideo.astro} +6 -6
  105. package/src/components/astro/RLAWatermark.astro +19 -0
  106. package/src/components/astro/RLAWindowMockup.astro +19 -0
  107. package/src/integrations/ui.ts +208 -143
  108. package/src/presets/defaults.ts +285 -0
  109. package/src/presets/index.ts +537 -256
  110. package/src/styles/index.css +6 -0
  111. package/src/themes/3d-hover.theme.ts +10 -0
  112. package/src/themes/accordion.theme.ts +10 -0
  113. package/src/themes/alert.theme.ts +7 -2
  114. package/src/themes/app.theme.ts +10 -0
  115. package/src/themes/audio.theme.ts +10 -0
  116. package/src/themes/badge.theme.ts +8 -3
  117. package/src/themes/banner.theme.ts +10 -0
  118. package/src/themes/browser-mockup.theme.ts +10 -0
  119. package/src/themes/button.theme.ts +195 -190
  120. package/src/themes/calendar.theme.ts +10 -0
  121. package/src/themes/changelog.theme.ts +10 -0
  122. package/src/themes/chat-message.theme.ts +10 -0
  123. package/src/themes/chat-messages.theme.ts +10 -0
  124. package/src/themes/chat-palette.theme.ts +10 -0
  125. package/src/themes/chat-prompt-submit.theme.ts +10 -0
  126. package/src/themes/chat-prompt.theme.ts +10 -0
  127. package/src/themes/chat-reasoning.theme.ts +10 -0
  128. package/src/themes/chat-shimmer.theme.ts +10 -0
  129. package/src/themes/chat-tool.theme.ts +10 -0
  130. package/src/themes/chat.theme.ts +10 -0
  131. package/src/themes/checkbox.theme.ts +7 -1
  132. package/src/themes/chip.theme.ts +16 -0
  133. package/src/themes/color-picker.theme.ts +10 -0
  134. package/src/themes/command-palette.theme.ts +10 -0
  135. package/src/themes/compare.theme.ts +10 -0
  136. package/src/themes/{alertDialog.theme.ts → confirm.theme.ts} +2 -2
  137. package/src/themes/container.theme.ts +10 -0
  138. package/src/themes/context-menu.theme.ts +10 -0
  139. package/src/themes/dashboard-group.theme.ts +10 -0
  140. package/src/themes/dashboard-navbar.theme.ts +10 -0
  141. package/src/themes/dashboard-panel.theme.ts +10 -0
  142. package/src/themes/dashboard-resize-handle.theme.ts +10 -0
  143. package/src/themes/dashboard-search-button.theme.ts +10 -0
  144. package/src/themes/dashboard-search.theme.ts +10 -0
  145. package/src/themes/dashboard-sidebar-collapse.theme.ts +10 -0
  146. package/src/themes/dashboard-sidebar-toggle.theme.ts +10 -0
  147. package/src/themes/dashboard-sidebar.theme.ts +10 -0
  148. package/src/themes/dashboard-toolbar.theme.ts +10 -0
  149. package/src/themes/dock.theme.ts +10 -0
  150. package/src/themes/editor.theme.ts +10 -0
  151. package/src/themes/empty.theme.ts +10 -0
  152. package/src/themes/error.theme.ts +10 -0
  153. package/src/themes/{inputGroup.theme.ts → field-group.theme.ts} +2 -2
  154. package/src/themes/fieldset.theme.ts +10 -0
  155. package/src/themes/{dropzone.theme.ts → file-upload.theme.ts} +2 -2
  156. package/src/themes/floating-action.theme.ts +10 -0
  157. package/src/themes/{field.theme.ts → form-field.theme.ts} +2 -2
  158. package/src/themes/form.theme.ts +10 -0
  159. package/src/themes/gallery.theme.ts +10 -0
  160. package/src/themes/head.theme.ts +10 -0
  161. package/src/themes/image.theme.ts +10 -0
  162. package/src/themes/input-date.theme.ts +10 -0
  163. package/src/themes/{combobox.theme.ts → input-menu.theme.ts} +2 -2
  164. package/src/themes/input-number.theme.ts +10 -0
  165. package/src/themes/input-pin.theme.ts +10 -0
  166. package/src/themes/input-tags.theme.ts +10 -0
  167. package/src/themes/input-time.theme.ts +10 -0
  168. package/src/themes/input.theme.ts +5 -0
  169. package/src/themes/knob.theme.ts +10 -0
  170. package/src/themes/link-group.theme.ts +10 -0
  171. package/src/themes/link.theme.ts +10 -0
  172. package/src/themes/listbox.theme.ts +10 -0
  173. package/src/themes/megamenu.theme.ts +10 -0
  174. package/src/themes/meter.theme.ts +10 -0
  175. package/src/themes/{dialog.theme.ts → modal.theme.ts} +2 -2
  176. package/src/themes/page-aside.theme.ts +10 -0
  177. package/src/themes/page-body.theme.ts +10 -0
  178. package/src/themes/page-header.theme.ts +10 -0
  179. package/src/themes/page.theme.ts +10 -0
  180. package/src/themes/password.theme.ts +10 -0
  181. package/src/themes/phone-mockup.theme.ts +10 -0
  182. package/src/themes/post.theme.ts +10 -0
  183. package/src/themes/pricing-plan.theme.ts +10 -0
  184. package/src/themes/pricing-table.theme.ts +10 -0
  185. package/src/themes/progress.theme.ts +12 -1
  186. package/src/themes/prose.theme.ts +10 -0
  187. package/src/themes/qr-code.theme.ts +10 -0
  188. package/src/themes/quote.theme.ts +10 -0
  189. package/src/themes/radio-group.theme.ts +10 -0
  190. package/src/themes/rating.theme.ts +10 -0
  191. package/src/themes/scroll-to-top.theme.ts +44 -40
  192. package/src/themes/{sheet.theme.ts → slideover.theme.ts} +2 -2
  193. package/src/themes/slider.theme.ts +9 -3
  194. package/src/themes/speed-dial.theme.ts +10 -0
  195. package/src/themes/spinner.theme.ts +7 -2
  196. package/src/themes/{resizable.theme.ts → splitter.theme.ts} +2 -2
  197. package/src/themes/spoiler.theme.ts +10 -0
  198. package/src/themes/stepper.theme.ts +10 -0
  199. package/src/themes/switch.theme.ts +7 -1
  200. package/src/themes/table-of-contents.theme.ts +10 -0
  201. package/src/themes/timeline.theme.ts +10 -0
  202. package/src/themes/tour.theme.ts +10 -0
  203. package/src/themes/tree.theme.ts +10 -0
  204. package/src/themes/user.theme.ts +10 -0
  205. package/src/themes/watermark.theme.ts +10 -0
  206. package/src/themes/window-mockup.theme.ts +10 -0
  207. package/src/types/components/3d-hover.ts +11 -0
  208. package/src/types/components/accordion.ts +1 -1
  209. package/src/types/components/alert.ts +7 -1
  210. package/src/types/components/app.ts +11 -0
  211. package/src/types/components/aspect-ratio.ts +2 -2
  212. package/src/types/components/audio.ts +11 -0
  213. package/src/types/components/avatar-group.ts +12 -0
  214. package/src/types/components/avatar.ts +3 -15
  215. package/src/types/components/badge.ts +8 -2
  216. package/src/types/components/banner.ts +11 -0
  217. package/src/types/components/breadcrumb.ts +2 -2
  218. package/src/types/components/browser-mockup.ts +11 -0
  219. package/src/types/components/button.ts +7 -1
  220. package/src/types/components/calendar.ts +11 -0
  221. package/src/types/components/card.ts +2 -2
  222. package/src/types/components/carousel.ts +2 -2
  223. package/src/types/components/changelog.ts +11 -0
  224. package/src/types/components/chart.ts +2 -2
  225. package/src/types/components/chat-message.ts +11 -0
  226. package/src/types/components/chat-messages.ts +11 -0
  227. package/src/types/components/chat-palette.ts +11 -0
  228. package/src/types/components/chat-prompt-submit.ts +11 -0
  229. package/src/types/components/chat-prompt.ts +11 -0
  230. package/src/types/components/chat-reasoning.ts +11 -0
  231. package/src/types/components/chat-shimmer.ts +11 -0
  232. package/src/types/components/chat-tool.ts +11 -0
  233. package/src/types/components/chat.ts +11 -0
  234. package/src/types/components/checkbox.ts +8 -2
  235. package/src/types/components/chip.ts +17 -0
  236. package/src/types/components/collapsible.ts +2 -2
  237. package/src/types/components/color-picker.ts +11 -0
  238. package/src/types/components/command-palette.ts +11 -0
  239. package/src/types/components/compare.ts +11 -0
  240. package/src/types/components/{alert-dialog.ts → confirm.ts} +2 -2
  241. package/src/types/components/container.ts +11 -0
  242. package/src/types/components/context-menu.ts +11 -0
  243. package/src/types/components/dashboard-group.ts +11 -0
  244. package/src/types/components/dashboard-navbar.ts +11 -0
  245. package/src/types/components/dashboard-panel.ts +11 -0
  246. package/src/types/components/dashboard-resize-handle.ts +11 -0
  247. package/src/types/components/dashboard-search-button.ts +11 -0
  248. package/src/types/components/dashboard-search.ts +11 -0
  249. package/src/types/components/dashboard-sidebar-collapse.ts +11 -0
  250. package/src/types/components/dashboard-sidebar-toggle.ts +11 -0
  251. package/src/types/components/dashboard-sidebar.ts +11 -0
  252. package/src/types/components/dashboard-toolbar.ts +11 -0
  253. package/src/types/components/dock.ts +11 -0
  254. package/src/types/components/drawer.ts +2 -2
  255. package/src/types/components/dropdown-menu.ts +2 -2
  256. package/src/types/components/editor.ts +11 -0
  257. package/src/types/components/empty.ts +11 -0
  258. package/src/types/components/error.ts +11 -0
  259. package/src/types/components/{input-group.ts → field-group.ts} +3 -3
  260. package/src/types/components/fieldset.ts +11 -0
  261. package/src/types/components/{dropzone.ts → file-upload.ts} +4 -4
  262. package/src/types/components/floating-action.ts +11 -0
  263. package/src/types/components/footer.ts +1 -1
  264. package/src/types/components/{field.ts → form-field.ts} +3 -3
  265. package/src/types/components/form.ts +11 -0
  266. package/src/types/components/gallery.ts +11 -0
  267. package/src/types/components/header.ts +1 -1
  268. package/src/types/components/hover-card.ts +2 -2
  269. package/src/types/components/icon.ts +2 -1
  270. package/src/types/components/image.ts +11 -0
  271. package/src/types/components/index.ts +134 -60
  272. package/src/types/components/input-date.ts +11 -0
  273. package/src/types/components/{combobox.ts → input-menu.ts} +5 -4
  274. package/src/types/components/input-number.ts +11 -0
  275. package/src/types/components/input-pin.ts +11 -0
  276. package/src/types/components/input-tags.ts +11 -0
  277. package/src/types/components/input-time.ts +11 -0
  278. package/src/types/components/input.ts +8 -2
  279. package/src/types/components/kbd.ts +2 -2
  280. package/src/types/components/knob.ts +11 -0
  281. package/src/types/components/label.ts +2 -2
  282. package/src/types/components/link-group.ts +11 -0
  283. package/src/types/components/link.ts +1 -1
  284. package/src/types/components/listbox.ts +11 -0
  285. package/src/types/components/{localeSelector.ts → locale-selector.ts} +3 -3
  286. package/src/types/components/logo.ts +1 -1
  287. package/src/types/components/main.ts +1 -1
  288. package/src/types/components/marquee.ts +2 -2
  289. package/src/types/components/megamenu.ts +11 -0
  290. package/src/types/components/meter.ts +11 -0
  291. package/src/types/components/{dialog.ts → modal.ts} +3 -2
  292. package/src/types/components/navigation-menu.ts +34 -7
  293. package/src/types/components/page-aside.ts +11 -0
  294. package/src/types/components/page-body.ts +11 -0
  295. package/src/types/components/page-header.ts +11 -0
  296. package/src/types/components/{section.ts → page-section.ts} +2 -2
  297. package/src/types/components/page.ts +11 -0
  298. package/src/types/components/pagination.ts +2 -2
  299. package/src/types/components/password.ts +11 -0
  300. package/src/types/components/phone-mockup.ts +5 -0
  301. package/src/types/components/placeholder.ts +1 -1
  302. package/src/types/components/popover.ts +3 -2
  303. package/src/types/components/post.ts +11 -0
  304. package/src/types/components/pricing-plan.ts +11 -0
  305. package/src/types/components/pricing-table.ts +11 -0
  306. package/src/types/components/progress.ts +9 -2
  307. package/src/types/components/prose.ts +11 -0
  308. package/src/types/components/qr-code.ts +11 -0
  309. package/src/types/components/quote.ts +11 -0
  310. package/src/types/components/radio-group.ts +11 -0
  311. package/src/types/components/rating.ts +11 -0
  312. package/src/types/components/scroll-area.ts +3 -2
  313. package/src/types/components/scroll-to-top.ts +7 -1
  314. package/src/types/components/select.ts +2 -2
  315. package/src/types/components/separator.ts +3 -2
  316. package/src/types/components/sidebar.ts +3 -2
  317. package/src/types/components/skeleton.ts +2 -2
  318. package/src/types/components/{sheet.ts → slideover.ts} +4 -3
  319. package/src/types/components/slider.ts +8 -2
  320. package/src/types/components/speed-dial.ts +11 -0
  321. package/src/types/components/spinner.ts +9 -2
  322. package/src/types/components/{resizable.ts → splitter.ts} +4 -3
  323. package/src/types/components/spoiler.ts +11 -0
  324. package/src/types/components/stepper.ts +11 -0
  325. package/src/types/components/sticky-surface.ts +3 -2
  326. package/src/types/components/switch.ts +9 -2
  327. package/src/types/components/table-of-contents.ts +11 -0
  328. package/src/types/components/table.ts +2 -2
  329. package/src/types/components/tabs.ts +2 -2
  330. package/src/types/components/textarea.ts +2 -2
  331. package/src/types/components/{themeSelector.ts → theme-selector.ts} +1 -1
  332. package/src/types/components/timeline.ts +11 -0
  333. package/src/types/components/toast.ts +2 -2
  334. package/src/types/components/tooltip.ts +3 -2
  335. package/src/types/components/tour.ts +11 -0
  336. package/src/types/components/tree.ts +11 -0
  337. package/src/types/components/user.ts +11 -0
  338. package/src/types/components/{embed-youtube.ts → video.ts} +2 -2
  339. package/src/types/components/watermark.ts +11 -0
  340. package/src/types/components/window-mockup.ts +11 -0
  341. package/src/types/index.ts +2 -1
  342. package/src/types/theme.ts +1 -0
  343. package/src/components/astro/RLANativeSelect.astro +0 -51
  344. package/src/components/astro/RLAToggle.astro +0 -38
  345. package/src/components/astro/RLAToggleGroup.astro +0 -30
  346. package/src/preset.ts +0 -393
  347. package/src/themes/nativeSelect.theme.ts +0 -24
  348. package/src/themes/toggle.theme.ts +0 -42
  349. package/src/themes/toggleGroup.theme.ts +0 -21
  350. package/src/types/components/native-select.ts +0 -39
  351. package/src/types/components/navigation.ts +0 -34
  352. package/src/types/components/toggle-group.ts +0 -23
  353. package/src/types/components/toggle.ts +0 -27
  354. /package/src/themes/{aspectRatio.theme.ts → aspect-ratio.theme.ts} +0 -0
  355. /package/src/themes/{avatarGroup.theme.ts → avatar-group.theme.ts} +0 -0
  356. /package/src/themes/{dropdownMenu.theme.ts → dropdown-menu.theme.ts} +0 -0
  357. /package/src/themes/{hoverCard.theme.ts → hover-card.theme.ts} +0 -0
  358. /package/src/themes/{localeSelector.theme.ts → locale-selector.theme.ts} +0 -0
  359. /package/src/themes/{navigationMenu.theme.ts → navigation-menu.theme.ts} +0 -0
  360. /package/src/themes/{section.theme.ts → page-section.theme.ts} +0 -0
  361. /package/src/themes/{scrollArea.theme.ts → scroll-area.theme.ts} +0 -0
  362. /package/src/themes/{stickySurface.theme.ts → sticky-surface.theme.ts} +0 -0
  363. /package/src/themes/{themeSelector.theme.ts → theme-selector.theme.ts} +0 -0
  364. /package/src/themes/{embedYoutube.theme.ts → video.theme.ts} +0 -0
@@ -0,0 +1,19 @@
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { TimelineProps } from "../../types"
5
+ import timelineThemeDefault from "../../themes/timeline.theme"
6
+
7
+ const timeline = scv(timelineThemeDefault)
8
+
9
+ const {
10
+ ui: uiProp,
11
+ class: className,
12
+ ...rest
13
+ } = Astro.props as TimelineProps
14
+
15
+ const classes = resolveClasses(timeline, {}, useUi("timeline", uiProp), className);
16
+ ---
17
+ <div class={classes.root} data-slot="root" {...rest}>
18
+ <slot />
19
+ </div>
@@ -0,0 +1,19 @@
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { TourProps } from "../../types"
5
+ import tourThemeDefault from "../../themes/tour.theme"
6
+
7
+ const tour = scv(tourThemeDefault)
8
+
9
+ const {
10
+ ui: uiProp,
11
+ class: className,
12
+ ...rest
13
+ } = Astro.props as TourProps
14
+
15
+ const classes = resolveClasses(tour, {}, useUi("tour", uiProp), className);
16
+ ---
17
+ <div class={classes.root} data-slot="root" {...rest}>
18
+ <slot />
19
+ </div>
@@ -0,0 +1,19 @@
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { TreeProps } from "../../types"
5
+ import treeThemeDefault from "../../themes/tree.theme"
6
+
7
+ const tree = scv(treeThemeDefault)
8
+
9
+ const {
10
+ ui: uiProp,
11
+ class: className,
12
+ ...rest
13
+ } = Astro.props as TreeProps
14
+
15
+ const classes = resolveClasses(tree, {}, useUi("tree", uiProp), className);
16
+ ---
17
+ <div class={classes.root} data-slot="root" {...rest}>
18
+ <slot />
19
+ </div>
@@ -0,0 +1,19 @@
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { UserProps } from "../../types"
5
+ import userThemeDefault from "../../themes/user.theme"
6
+
7
+ const user = scv(userThemeDefault)
8
+
9
+ const {
10
+ ui: uiProp,
11
+ class: className,
12
+ ...rest
13
+ } = Astro.props as UserProps
14
+
15
+ const classes = resolveClasses(user, {}, useUi("user", uiProp), className);
16
+ ---
17
+ <div class={classes.root} data-slot="root" {...rest}>
18
+ <slot />
19
+ </div>
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  import { scv } from "css-variants"
3
3
  import { useUi, resolveClasses } from "../../utils"
4
- import type { EmbedYoutubeProps } from "../../types"
5
- import embedYoutubeTheme from "../../themes/embedYoutube.theme"
4
+ import type { VideoProps } from "../../types"
5
+ import videoTheme from "../../themes/video.theme"
6
6
  import { Image } from "astro:assets"
7
7
 
8
8
  const PLACEHOLDER_THUMBNAIL = "/assets/placeholder.webp";
@@ -109,7 +109,7 @@ function getYoutubeEmbedUrl(rawUrl: string): string | null {
109
109
  return id ? `${YOUTUBE_EMBED_BASE}${id}?autoplay=1` : null;
110
110
  }
111
111
 
112
- const embedYoutube = scv(embedYoutubeTheme)
112
+ const video = scv(videoTheme)
113
113
 
114
114
  const {
115
115
  src,
@@ -118,12 +118,12 @@ const {
118
118
  ui: uiProp,
119
119
  class: className,
120
120
  ...rest
121
- } = Astro.props as EmbedYoutubeProps
121
+ } = Astro.props as VideoProps
122
122
 
123
- const classes = resolveClasses(embedYoutube, {
123
+ const classes = resolveClasses(video, {
124
124
  title: !!(Astro.slots.has("title") || title),
125
125
  icon: !!(Astro.slots.has("icon") || icon),
126
- }, useUi("embedYoutube", uiProp), className);
126
+ }, useUi("video", uiProp), className);
127
127
 
128
128
  const embedUrl = getYoutubeEmbedUrl(src);
129
129
  const thumbnail = await getYoutubeThumbnail(src);
@@ -0,0 +1,19 @@
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { WatermarkProps } from "../../types"
5
+ import watermarkThemeDefault from "../../themes/watermark.theme"
6
+
7
+ const watermark = scv(watermarkThemeDefault)
8
+
9
+ const {
10
+ ui: uiProp,
11
+ class: className,
12
+ ...rest
13
+ } = Astro.props as WatermarkProps
14
+
15
+ const classes = resolveClasses(watermark, {}, useUi("watermark", uiProp), className);
16
+ ---
17
+ <div class={classes.root} data-slot="root" {...rest}>
18
+ <slot />
19
+ </div>
@@ -0,0 +1,19 @@
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { WindowMockupProps } from "../../types"
5
+ import windowMockupThemeDefault from "../../themes/window-mockup.theme"
6
+
7
+ const windowMockup = scv(windowMockupThemeDefault)
8
+
9
+ const {
10
+ ui: uiProp,
11
+ class: className,
12
+ ...rest
13
+ } = Astro.props as WindowMockupProps
14
+
15
+ const classes = resolveClasses(windowMockup, {}, useUi("windowMockup", uiProp), className);
16
+ ---
17
+ <div class={classes.root} data-slot="root" {...rest}>
18
+ <slot />
19
+ </div>
@@ -1,143 +1,208 @@
1
- import type { AstroIntegration } from "astro"
2
- import UnoCSS from "unocss/astro"
3
- import vue from "@astrojs/vue"
4
- import uiPlugin from "@nuxt/ui/vite"
5
- import defu from "defu"
6
- import tailwindcss from "@tailwindcss/vite"
7
- import { defaultUIConfig } from "../themes"
8
- import type { ComponentTheme } from "../utils/defineTheme"
9
-
10
- /**
11
- * Shape of the `ui` config that can be passed to the integration.
12
- */
13
- export type UIConfigOverrides = Record<string, Partial<ComponentTheme>>
14
-
15
- export interface UIOptions {
16
- /**
17
- * Configuration for the Logo component variants.
18
- */
19
- logos?: Record<
20
- string,
21
- | string
22
- | {
23
- light?: string
24
- dark?: string
25
- color?: string
26
- white?: string
27
- black?: string
28
- [key: string]: string | undefined
29
- }
30
- >
31
- /**
32
- * Global UI overrides applied to all components. Merged with defaults via `defu` (first arg
33
- * wins).
34
- */
35
- ui?: UIConfigOverrides
36
- /**
37
- * Custom color names to dynamically generate variants for.
38
- */
39
- colors?: string[]
40
- }
41
-
42
- /**
43
- * Astro integration for `@rimelight/ui`.
44
- *
45
- * Provides global UI configuration via a virtual module. Components import `virtual:rimelight-ui`
46
- * to access the merged config.
47
- *
48
- * @example
49
- * // astro.config.mjs
50
- * import { ui } from "@rimelight/ui/integrations"
51
- *
52
- * export default defineConfig({
53
- * integrations: [
54
- * ui({
55
- * ui: {
56
- * button: {
57
- * defaultVariants: { variant: "primary" }
58
- * }
59
- * }
60
- * })
61
- * ]
62
- * })
63
- */
64
- export function ui(options: UIOptions = {}): AstroIntegration[] {
65
- const resolvedUI = defu(options.ui ?? {}, defaultUIConfig)
66
- const coreColors = [
67
- "primary",
68
- "secondary",
69
- "info",
70
- "success",
71
- "warning",
72
- "error",
73
- "commentary",
74
- "ideation",
75
- "source"
76
- ]
77
- const mergedColors = [...new Set([...coreColors, ...(options.colors || [])])]
78
- const resolvedConfig = { ...resolvedUI, logos: options.logos ?? {}, colors: mergedColors }
79
-
80
- const virtualModuleId = "virtual:rimelight-ui"
81
- const resolvedVirtualModuleId = "\0" + virtualModuleId
82
-
83
- function setViteConfig(updateConfig: (config: Record<string, unknown>) => void) {
84
- updateConfig({
85
- vite: {
86
- optimizeDeps: {
87
- exclude: [
88
- "@rimelight/ui",
89
- "@rimelight/ui/vue-plugin",
90
- "@rimelight/ui/integrations/vue-entrypoint",
91
- "@nuxt/ui"
92
- ]
93
- },
94
- ssr: {
95
- noExternal: ["@rimelight/ui", "@nuxt/ui"],
96
- optimizeDeps: {
97
- exclude: ["@rimelight/ui/vue-plugin", "@rimelight/ui/integrations/vue-entrypoint"]
98
- }
99
- },
100
- plugins: [
101
- uiPlugin({
102
- router: false,
103
- colorMode: false,
104
- scanPackages: ["@rimelight/ui"]
105
- }),
106
- tailwindcss(),
107
- {
108
- name: "vite-plugin-rimelight-ui-config",
109
- enforce: "pre",
110
- resolveId(id: string) {
111
- if (id === virtualModuleId) return resolvedVirtualModuleId
112
- return null
113
- },
114
- load(id: string) {
115
- if (id === resolvedVirtualModuleId) {
116
- return `export const getUIConfig = () => (${JSON.stringify(resolvedConfig)});`
117
- }
118
- return null
119
- }
120
- }
121
- ]
122
- }
123
- })
124
- }
125
-
126
- const rimelightUIIntegration: AstroIntegration = {
127
- name: "@rimelight/ui",
128
- hooks: {
129
- "astro:config:setup": ({ updateConfig, logger }) => {
130
- logger.info("Initializing @rimelight/ui core")
131
- setViteConfig(updateConfig)
132
- }
133
- }
134
- }
135
-
136
- return [
137
- UnoCSS(),
138
- vue({
139
- appEntrypoint: "@rimelight/ui/integrations/vue-entrypoint"
140
- }),
141
- rimelightUIIntegration
142
- ]
143
- }
1
+ import type { AstroIntegration } from "astro"
2
+ import UnoCSS from "unocss/astro"
3
+ import vue from "@astrojs/vue"
4
+ import uiPlugin from "@nuxt/ui/vite"
5
+ import defu from "defu"
6
+ import tailwindcss from "@tailwindcss/vite"
7
+ import { defaultUIConfig } from "../themes"
8
+ import type { ComponentTheme } from "../utils/defineTheme"
9
+ import rimelightUiPreset, { uiSrcGlob, uiFilesystemGlob } from "../presets"
10
+
11
+ /**
12
+ * Shape of the `ui` config that can be passed to the integration.
13
+ */
14
+ export type UIConfigOverrides = Record<string, Partial<ComponentTheme>>
15
+
16
+ export interface UIOptions {
17
+ /**
18
+ * Configuration for the Logo component variants.
19
+ */
20
+ logos?: Record<
21
+ string,
22
+ | string
23
+ | {
24
+ light?: string
25
+ dark?: string
26
+ color?: string
27
+ white?: string
28
+ black?: string
29
+ [key: string]: string | undefined
30
+ }
31
+ >
32
+ /**
33
+ * Global UI overrides applied to all components. Merged with defaults via `defu` (first arg
34
+ * wins).
35
+ */
36
+ ui?: UIConfigOverrides
37
+ /**
38
+ * Custom colors. Each color can be:
39
+ *
40
+ * - **Flat format**: `{ "500": "#7146ff", "600": "#6222ff" }` — used in all modes.
41
+ * No mode-specific buckets needed.
42
+ *
43
+ * - **Mode format**: flat shades at root define the base; `light`, `dark`,
44
+ * `flat` buckets layer on top:
45
+ *
46
+ * ```ts
47
+ * { "500": "base", light: { "600": "light-blue" }, dark: { "500": "dark-blue" } }
48
+ * ```
49
+ *
50
+ * Each shade falls back through: **mode bucket → flat → unthemed → light → dark**.
51
+ * Defining a single source (e.g. only `dark`) propagates to all modes.
52
+ *
53
+ * Use the `theme` prop on components to pin colors: `<Button theme="flat">` forces
54
+ * the flat bucket regardless of current mode.
55
+ */
56
+ colors?: Record<string, Record<string, string> | { light?: Record<string, string>; dark?: Record<string, string>; flat?: Record<string, string> }>
57
+ /**
58
+ * When `true`, auto-generates missing `light`/`dark` mode buckets from flat color values
59
+ * using `color-mix(in oklch, ...)`. Explicitly provided buckets always take precedence.
60
+ * Defaults to `true`.
61
+ */
62
+ autogenerateColorModes?: boolean
63
+ }
64
+
65
+ /**
66
+ * Astro integration for `@rimelight/ui`.
67
+ *
68
+ * Provides global UI configuration via a virtual module. Components import `virtual:rimelight-ui`
69
+ * to access the merged config.
70
+ *
71
+ * @example
72
+ * // astro.config.mjs
73
+ * import { ui } from "@rimelight/ui/integrations"
74
+ *
75
+ * export default defineConfig({
76
+ * integrations: [
77
+ * ui({
78
+ * ui: {
79
+ * button: {
80
+ * defaultVariants: { variant: "primary" }
81
+ * }
82
+ * }
83
+ * })
84
+ * ]
85
+ * })
86
+ */
87
+ export function ui(options: UIOptions = {}): AstroIntegration[] {
88
+ const resolvedUI = defu(options.ui ?? {}, defaultUIConfig)
89
+ const coreColors = [
90
+ "primary",
91
+ "secondary",
92
+ "info",
93
+ "success",
94
+ "warning",
95
+ "error",
96
+ "commentary",
97
+ "ideation",
98
+ "source"
99
+ ]
100
+ const userColors = options.colors ?? {}
101
+ const userColorNames = Object.keys(userColors)
102
+ const mergedColors = [...new Set([...coreColors, ...userColorNames])]
103
+ const resolvedConfig = {
104
+ ...resolvedUI,
105
+ logos: options.logos ?? {},
106
+ colors: mergedColors
107
+ }
108
+
109
+ const virtualModuleId = "virtual:rimelight-ui"
110
+ const resolvedVirtualModuleId = "\0" + virtualModuleId
111
+
112
+ function setViteConfig(updateConfig: (config: Record<string, unknown>) => void) {
113
+ updateConfig({
114
+ vite: {
115
+ optimizeDeps: {
116
+ exclude: [
117
+ "@rimelight/ui",
118
+ "@rimelight/ui/vue-plugin",
119
+ "@rimelight/ui/integrations/vue-entrypoint",
120
+ "@nuxt/ui"
121
+ ]
122
+ },
123
+ ssr: {
124
+ noExternal: ["@rimelight/ui", "@nuxt/ui"],
125
+ optimizeDeps: {
126
+ exclude: ["@rimelight/ui/vue-plugin", "@rimelight/ui/integrations/vue-entrypoint"]
127
+ }
128
+ },
129
+ plugins: [
130
+ uiPlugin({
131
+ router: false,
132
+ colorMode: false,
133
+ scanPackages: ["@rimelight/ui"]
134
+ }),
135
+ tailwindcss(),
136
+ {
137
+ name: "vite-plugin-rimelight-ui-config",
138
+ enforce: "pre",
139
+ resolveId(id: string) {
140
+ if (id === virtualModuleId) return resolvedVirtualModuleId
141
+ return null
142
+ },
143
+ load(id: string) {
144
+ if (id === resolvedVirtualModuleId) {
145
+ return `export const getUIConfig = () => (${JSON.stringify(resolvedConfig)});`
146
+ }
147
+ return null
148
+ }
149
+ }
150
+ ]
151
+ }
152
+ })
153
+ }
154
+
155
+ const rimelightUIIntegration: AstroIntegration = {
156
+ name: "@rimelight/ui",
157
+ hooks: {
158
+ "astro:config:setup": ({ updateConfig, logger }) => {
159
+ logger.info("Initializing @rimelight/ui core")
160
+ setViteConfig(updateConfig)
161
+ }
162
+ }
163
+ }
164
+
165
+ return [
166
+ UnoCSS({
167
+ presets: [rimelightUiPreset({ colors: userColors, autogenerateColorModes: options.autogenerateColorModes })],
168
+ content: {
169
+ pipeline: {
170
+ include: [
171
+ /\.(vue|svelte|[jt]sx|mdx?|astro|elm|php|phtml|html)($|\?)/,
172
+ "src/**/*.{js,ts,jsx,tsx,vue,svelte,astro}",
173
+ uiSrcGlob,
174
+ "../ui/src/**/*.{js,ts,jsx,tsx,vue,svelte,astro}"
175
+ ]
176
+ },
177
+ filesystem: [uiFilesystemGlob, "../ui/src/**/*", "src/components/**/*", "src/pages/**/*"]
178
+ },
179
+ shortcuts: {
180
+ "container": "mx-auto w-full max-w-90rem px-md",
181
+ "sr-only":
182
+ "absolute w-px h-px p-0 m-0 overflow-hidden clip-rect-1-1-1-1 whitespace-nowrap border-0"
183
+ },
184
+ rules: [
185
+ [
186
+ /^clip-rect-(\d+)-(\d+)-(\d+)-(\d+)$/,
187
+ ([, t, r, b, l]) => ({ clip: `rect(${t}px, ${r}px, ${b}px, ${l}px)` })
188
+ ]
189
+ ],
190
+ configResolved(config) {
191
+ if (process.env.NODE_ENV === "development" && !process.env.UNO_CONFIG_LOGGED) {
192
+ process.env.UNO_CONFIG_LOGGED = "true"
193
+ console.log(`[UnoCSS] Presets: ${config.presets.map((p) => p.name).join(", ")}`)
194
+ console.log(`[UnoCSS] Rules: ${config.rules.length}`)
195
+ console.log(`[UnoCSS] Shortcuts: ${Object.keys(config.shortcuts).length}`)
196
+ const ruleNames = config.rules.map((r) => (Array.isArray(r) ? r[0].toString() : "dynamic"))
197
+ const duplicates = ruleNames.filter((item, index) => ruleNames.indexOf(item) !== index)
198
+ const filtered = duplicates.filter((d) => d !== "/^(.+?)-(\\$.+)$/")
199
+ if (filtered.length > 0) console.warn(`[UnoCSS] Rule collisions: ${filtered.join(", ")}`)
200
+ }
201
+ }
202
+ }),
203
+ vue({
204
+ appEntrypoint: "@rimelight/ui/integrations/vue-entrypoint"
205
+ }),
206
+ rimelightUIIntegration
207
+ ]
208
+ }