@rimelight/ui 0.0.32 → 0.0.33

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 (383) hide show
  1. package/README.md +157 -30
  2. package/package.json +105 -108
  3. package/src/components/TableOfContents.astro +44 -43
  4. package/src/components/astro/RLA3dHover.astro +22 -18
  5. package/src/components/astro/RLAAlert.astro +93 -62
  6. package/src/components/astro/RLAApp.astro +22 -18
  7. package/src/components/astro/RLAAspectRatio.astro +27 -23
  8. package/src/components/astro/RLAAudio.astro +22 -18
  9. package/src/components/astro/RLAAvatar.astro +68 -56
  10. package/src/components/astro/RLAAvatarGroup.astro +23 -19
  11. package/src/components/astro/RLABadge.astro +34 -33
  12. package/src/components/astro/RLABanner.astro +22 -18
  13. package/src/components/astro/RLABlogPost.astro +7 -0
  14. package/src/components/astro/RLABlogPosts.astro +9 -0
  15. package/src/components/astro/RLABreadcrumb.astro +48 -44
  16. package/src/components/astro/RLABrowserMockup.astro +22 -18
  17. package/src/components/astro/RLAButton.astro +51 -2
  18. package/src/components/astro/RLACalendar.astro +22 -18
  19. package/src/components/astro/RLACard.astro +78 -74
  20. package/src/components/astro/RLACarousel.astro +75 -71
  21. package/src/components/astro/RLAChangelog.astro +22 -18
  22. package/src/components/astro/RLAChat.astro +22 -18
  23. package/src/components/astro/RLAChatMessage.astro +22 -18
  24. package/src/components/astro/RLAChatMessages.astro +22 -18
  25. package/src/components/astro/RLAChatPalette.astro +22 -18
  26. package/src/components/astro/RLAChatPrompt.astro +22 -18
  27. package/src/components/astro/RLAChatPromptSubmit.astro +22 -18
  28. package/src/components/astro/RLAChatReasoning.astro +22 -18
  29. package/src/components/astro/RLAChatShimmer.astro +22 -18
  30. package/src/components/astro/RLAChatTool.astro +22 -18
  31. package/src/components/astro/RLAChip.astro +51 -20
  32. package/src/components/astro/RLAColorPicker.astro +22 -18
  33. package/src/components/astro/RLACommandPalette.astro +22 -18
  34. package/src/components/astro/RLACompare.astro +22 -18
  35. package/src/components/astro/RLAConfirm.astro +117 -86
  36. package/src/components/astro/RLAContainer.astro +22 -18
  37. package/src/components/astro/RLAContextMenu.astro +22 -18
  38. package/src/components/astro/RLADashboardGroup.astro +22 -18
  39. package/src/components/astro/RLADashboardNavbar.astro +22 -18
  40. package/src/components/astro/RLADashboardPanel.astro +22 -18
  41. package/src/components/astro/RLADashboardResizeHandle.astro +22 -18
  42. package/src/components/astro/RLADashboardSearch.astro +22 -18
  43. package/src/components/astro/RLADashboardSearchButton.astro +22 -18
  44. package/src/components/astro/RLADashboardSidebar.astro +22 -18
  45. package/src/components/astro/RLADashboardSidebarCollapse.astro +22 -18
  46. package/src/components/astro/RLADashboardSidebarToggle.astro +22 -18
  47. package/src/components/astro/RLADashboardToolbar.astro +22 -18
  48. package/src/components/astro/RLADock.astro +22 -18
  49. package/src/{plugins/starlightAddons/components/Gamepad.astro → components/astro/RLADocsGamepad.astro} +178 -180
  50. package/src/{plugins/starlightAddons/components/Keyboard.astro → components/astro/RLADocsKeyboard.astro} +1 -3
  51. package/src/{plugins/starlightAddons/PackageManagers.astro → components/astro/RLADocsPackageManagers.astro} +28 -14
  52. package/src/components/astro/RLADrawer.astro +78 -74
  53. package/src/components/astro/RLAEditor.astro +22 -18
  54. package/src/components/astro/RLAEmpty.astro +22 -18
  55. package/src/components/astro/RLAError.astro +22 -18
  56. package/src/components/astro/RLAFieldset.astro +22 -18
  57. package/src/components/astro/RLAFloatingAction.astro +22 -18
  58. package/src/components/astro/RLAFooter.astro +39 -35
  59. package/src/components/astro/RLAForm.astro +23 -19
  60. package/src/components/astro/RLAGallery.astro +22 -18
  61. package/src/components/astro/RLAGrid.astro +39 -0
  62. package/src/components/astro/RLAHead.astro +25 -9
  63. package/src/components/astro/RLAHeader.astro +59 -107
  64. package/src/components/astro/RLAHoverCard.astro +35 -31
  65. package/src/components/astro/RLAIcon.astro +31 -27
  66. package/src/components/astro/RLAImage.astro +209 -19
  67. package/src/components/astro/RLAInputDate.astro +22 -18
  68. package/src/components/astro/RLAInputNumber.astro +22 -18
  69. package/src/components/astro/RLAInputTags.astro +22 -18
  70. package/src/components/astro/RLAInputTime.astro +22 -18
  71. package/src/components/astro/RLAKbd.astro +32 -22
  72. package/src/components/astro/RLAKnob.astro +22 -18
  73. package/src/components/astro/RLALabel.astro +27 -23
  74. package/src/components/astro/RLALink.astro +22 -18
  75. package/src/components/astro/RLALinkGroup.astro +37 -18
  76. package/src/components/astro/RLAListbox.astro +22 -18
  77. package/src/components/astro/RLALocaleSelector.astro +5 -1
  78. package/src/components/astro/RLALogo.astro +90 -56
  79. package/src/components/astro/RLAMain.astro +8 -2
  80. package/src/components/astro/RLAMarquee.astro +36 -32
  81. package/src/components/astro/RLAMegamenu.astro +22 -18
  82. package/src/components/astro/RLAMeter.astro +22 -18
  83. package/src/components/astro/RLAModal.astro +99 -95
  84. package/src/components/astro/RLANavigationMenu.astro +137 -136
  85. package/src/components/astro/RLAPage.astro +22 -18
  86. package/src/components/astro/RLAPageAside.astro +22 -18
  87. package/src/components/astro/RLAPageBody.astro +22 -18
  88. package/src/components/astro/RLAPageHeader.astro +22 -18
  89. package/src/components/astro/RLAPageSection.astro +5 -1
  90. package/src/components/astro/RLAPagination.astro +98 -94
  91. package/src/components/astro/RLAPassword.astro +22 -18
  92. package/src/components/astro/RLAPhoneMockup.astro +22 -18
  93. package/src/components/astro/RLAPinInput.astro +23 -0
  94. package/src/components/astro/RLAPlaceholder.astro +45 -41
  95. package/src/components/astro/RLAPopover.astro +35 -31
  96. package/src/components/astro/RLAPost.astro +65 -19
  97. package/src/components/astro/RLAPosts.astro +23 -0
  98. package/src/components/astro/RLAPricingPlan.astro +22 -18
  99. package/src/components/astro/RLAPricingTable.astro +22 -18
  100. package/src/components/astro/RLAProse.astro +22 -18
  101. package/src/components/astro/RLAQrCode.astro +22 -18
  102. package/src/components/astro/RLARadioGroup.astro +22 -18
  103. package/src/components/astro/RLARating.astro +22 -18
  104. package/src/components/astro/RLASeparator.astro +78 -27
  105. package/src/components/astro/RLASidebar.astro +212 -135
  106. package/src/components/astro/RLASkeleton.astro +24 -20
  107. package/src/components/astro/RLASlideover.astro +76 -72
  108. package/src/components/astro/RLASpeedDial.astro +22 -18
  109. package/src/components/astro/RLASpoiler.astro +22 -18
  110. package/src/components/astro/RLAStepper.astro +22 -18
  111. package/src/components/astro/RLASteps.astro +71 -0
  112. package/src/components/astro/RLAStickySurface.astro +31 -27
  113. package/src/components/astro/RLATableOfContents.astro +22 -18
  114. package/src/components/astro/RLATabs.astro +133 -92
  115. package/src/components/astro/RLAThemeSelector.astro +5 -1
  116. package/src/components/astro/RLATimeline.astro +22 -18
  117. package/src/components/astro/RLATooltip.astro +35 -31
  118. package/src/components/astro/RLATour.astro +22 -18
  119. package/src/components/astro/RLATree.astro +22 -18
  120. package/src/components/astro/RLAUser.astro +22 -18
  121. package/src/components/astro/RLAVideo.astro +200 -196
  122. package/src/components/astro/RLAWatermark.astro +22 -18
  123. package/src/components/astro/RLAWindowMockup.astro +22 -18
  124. package/src/components/vue/RLVCheckbox.vue +68 -0
  125. package/src/components/vue/RLVForm.vue +44 -0
  126. package/src/components/vue/RLVFormField.vue +58 -0
  127. package/src/components/vue/RLVInput.vue +93 -0
  128. package/src/components/vue/RLVPost.vue +63 -0
  129. package/src/components/vue/RLVPosts.vue +21 -0
  130. package/src/components/vue/RLVSection.vue +5 -4
  131. package/src/components/vue/RLVToast.vue +68 -0
  132. package/src/components/vue/RLVToaster.vue +29 -0
  133. package/src/composables/index.ts +3 -1
  134. package/src/composables/useHeaderStore.ts +14 -0
  135. package/src/composables/useScrollToTop.ts +62 -62
  136. package/src/composables/useToast.ts +42 -0
  137. package/src/env.d.ts +0 -13
  138. package/src/integrations/ui.ts +40 -49
  139. package/src/plugins/index.ts +2 -5
  140. package/src/plugins/starlightDocsApi/index.ts +272 -265
  141. package/src/presets/defaults.ts +297 -285
  142. package/src/presets/index.ts +208 -108
  143. package/src/styles/index.css +160 -162
  144. package/src/themes/3d-hover.theme.ts +13 -10
  145. package/src/themes/accordion.theme.ts +13 -10
  146. package/src/themes/alert.theme.ts +125 -56
  147. package/src/themes/app.theme.ts +13 -10
  148. package/src/themes/aspect-ratio.theme.ts +10 -8
  149. package/src/themes/audio.theme.ts +13 -10
  150. package/src/themes/avatar-group.theme.ts +9 -7
  151. package/src/themes/avatar.theme.ts +84 -28
  152. package/src/themes/badge.theme.ts +163 -66
  153. package/src/themes/banner.theme.ts +13 -10
  154. package/src/themes/breadcrumb.theme.ts +14 -12
  155. package/src/themes/browser-mockup.theme.ts +13 -10
  156. package/src/themes/button.theme.ts +73 -66
  157. package/src/themes/calendar.theme.ts +13 -10
  158. package/src/themes/card.theme.ts +42 -34
  159. package/src/themes/carousel.theme.ts +30 -28
  160. package/src/themes/changelog.theme.ts +13 -10
  161. package/src/themes/chart.theme.ts +22 -21
  162. package/src/themes/chat-message.theme.ts +13 -10
  163. package/src/themes/chat-messages.theme.ts +13 -10
  164. package/src/themes/chat-palette.theme.ts +13 -10
  165. package/src/themes/chat-prompt-submit.theme.ts +13 -10
  166. package/src/themes/chat-prompt.theme.ts +13 -10
  167. package/src/themes/chat-reasoning.theme.ts +13 -10
  168. package/src/themes/chat-shimmer.theme.ts +13 -10
  169. package/src/themes/chat-tool.theme.ts +13 -10
  170. package/src/themes/chat.theme.ts +13 -10
  171. package/src/themes/checkbox.theme.ts +50 -48
  172. package/src/themes/chip.theme.ts +74 -16
  173. package/src/themes/color-picker.theme.ts +13 -10
  174. package/src/themes/command-palette.theme.ts +13 -10
  175. package/src/themes/compare.theme.ts +13 -10
  176. package/src/themes/confirm.theme.ts +48 -33
  177. package/src/themes/container.theme.ts +13 -10
  178. package/src/themes/context-menu.theme.ts +13 -10
  179. package/src/themes/dashboard-group.theme.ts +13 -10
  180. package/src/themes/dashboard-navbar.theme.ts +13 -10
  181. package/src/themes/dashboard-panel.theme.ts +13 -10
  182. package/src/themes/dashboard-resize-handle.theme.ts +13 -10
  183. package/src/themes/dashboard-search-button.theme.ts +13 -10
  184. package/src/themes/dashboard-search.theme.ts +13 -10
  185. package/src/themes/dashboard-sidebar-collapse.theme.ts +13 -10
  186. package/src/themes/dashboard-sidebar-toggle.theme.ts +13 -10
  187. package/src/themes/dashboard-sidebar.theme.ts +13 -10
  188. package/src/themes/dashboard-toolbar.theme.ts +13 -10
  189. package/src/themes/dock.theme.ts +13 -10
  190. package/src/themes/drawer.theme.ts +61 -44
  191. package/src/themes/dropdown-menu.theme.ts +29 -27
  192. package/src/themes/editor.theme.ts +13 -10
  193. package/src/themes/empty.theme.ts +13 -10
  194. package/src/themes/error.theme.ts +13 -10
  195. package/src/themes/field-group.theme.ts +24 -23
  196. package/src/themes/fieldset.theme.ts +13 -10
  197. package/src/themes/floating-action.theme.ts +13 -10
  198. package/src/themes/footer.theme.ts +30 -27
  199. package/src/themes/form.theme.ts +13 -10
  200. package/src/themes/gallery.theme.ts +13 -10
  201. package/src/themes/head.theme.ts +13 -10
  202. package/src/themes/header.theme.ts +46 -43
  203. package/src/themes/hover-card.theme.ts +25 -23
  204. package/src/themes/icon.theme.ts +23 -20
  205. package/src/themes/image.theme.ts +19 -10
  206. package/src/themes/input-date.theme.ts +13 -10
  207. package/src/themes/input-menu.theme.ts +35 -28
  208. package/src/themes/input-number.theme.ts +13 -10
  209. package/src/themes/input-tags.theme.ts +13 -10
  210. package/src/themes/input-time.theme.ts +13 -10
  211. package/src/themes/input.theme.ts +42 -41
  212. package/src/themes/kbd.theme.ts +89 -24
  213. package/src/themes/knob.theme.ts +13 -10
  214. package/src/themes/label.theme.ts +18 -16
  215. package/src/themes/link-group.theme.ts +32 -10
  216. package/src/themes/link.theme.ts +13 -10
  217. package/src/themes/listbox.theme.ts +13 -10
  218. package/src/themes/locale-selector.theme.ts +40 -41
  219. package/src/themes/logo.theme.ts +13 -10
  220. package/src/themes/main.theme.ts +7 -6
  221. package/src/themes/marquee.theme.ts +24 -22
  222. package/src/themes/megamenu.theme.ts +13 -10
  223. package/src/themes/meter.theme.ts +13 -10
  224. package/src/themes/modal.theme.ts +44 -32
  225. package/src/themes/navigation-menu.theme.ts +27 -19
  226. package/src/themes/page-aside.theme.ts +13 -10
  227. package/src/themes/page-body.theme.ts +13 -10
  228. package/src/themes/page-header.theme.ts +13 -10
  229. package/src/themes/page-section.theme.ts +187 -186
  230. package/src/themes/page.theme.ts +13 -10
  231. package/src/themes/pagination.theme.ts +24 -22
  232. package/src/themes/password.theme.ts +13 -10
  233. package/src/themes/phone-mockup.theme.ts +13 -10
  234. package/src/themes/pin-input.theme.ts +14 -0
  235. package/src/themes/placeholder.theme.ts +15 -12
  236. package/src/themes/popover.theme.ts +26 -24
  237. package/src/themes/post.theme.ts +33 -10
  238. package/src/themes/posts.theme.ts +13 -0
  239. package/src/themes/pricing-plan.theme.ts +13 -10
  240. package/src/themes/pricing-table.theme.ts +13 -10
  241. package/src/themes/progress.theme.ts +38 -37
  242. package/src/themes/prose.theme.ts +13 -10
  243. package/src/themes/qr-code.theme.ts +13 -10
  244. package/src/themes/quote.theme.ts +13 -10
  245. package/src/themes/radio-group.theme.ts +13 -10
  246. package/src/themes/rating.theme.ts +13 -10
  247. package/src/themes/scroll-area.theme.ts +26 -24
  248. package/src/themes/scroll-to-top.theme.ts +52 -50
  249. package/src/themes/select.theme.ts +29 -27
  250. package/src/themes/separator.theme.ts +147 -19
  251. package/src/themes/sidebar.theme.ts +38 -33
  252. package/src/themes/skeleton.theme.ts +21 -20
  253. package/src/themes/slideover.theme.ts +53 -37
  254. package/src/themes/slider.theme.ts +36 -34
  255. package/src/themes/speed-dial.theme.ts +13 -10
  256. package/src/themes/spinner.theme.ts +34 -35
  257. package/src/themes/splitter.theme.ts +23 -22
  258. package/src/themes/spoiler.theme.ts +13 -10
  259. package/src/themes/stepper.theme.ts +13 -10
  260. package/src/themes/sticky-surface.theme.ts +9 -7
  261. package/src/themes/switch.theme.ts +67 -65
  262. package/src/themes/table-of-contents.theme.ts +48 -10
  263. package/src/themes/tabs.theme.ts +52 -44
  264. package/src/themes/textarea.theme.ts +27 -26
  265. package/src/themes/theme-selector.theme.ts +9 -10
  266. package/src/themes/timeline.theme.ts +13 -10
  267. package/src/themes/toast.theme.ts +31 -25
  268. package/src/themes/tooltip.theme.ts +28 -27
  269. package/src/themes/tour.theme.ts +13 -10
  270. package/src/themes/tree.theme.ts +13 -10
  271. package/src/themes/user.theme.ts +13 -10
  272. package/src/themes/video.theme.ts +17 -14
  273. package/src/themes/watermark.theme.ts +13 -10
  274. package/src/themes/window-mockup.theme.ts +13 -10
  275. package/src/types/components/3d-hover.ts +11 -11
  276. package/src/types/components/app.ts +11 -11
  277. package/src/types/components/audio.ts +11 -11
  278. package/src/types/components/avatar-group.ts +9 -10
  279. package/src/types/components/avatar.ts +60 -35
  280. package/src/types/components/banner.ts +11 -11
  281. package/src/types/components/browser-mockup.ts +11 -11
  282. package/src/types/components/button.ts +81 -77
  283. package/src/types/components/calendar.ts +11 -11
  284. package/src/types/components/changelog.ts +11 -11
  285. package/src/types/components/chat-message.ts +11 -11
  286. package/src/types/components/chat-messages.ts +11 -11
  287. package/src/types/components/chat-palette.ts +11 -11
  288. package/src/types/components/chat-prompt-submit.ts +11 -11
  289. package/src/types/components/chat-prompt.ts +11 -11
  290. package/src/types/components/chat-reasoning.ts +11 -11
  291. package/src/types/components/chat-shimmer.ts +11 -11
  292. package/src/types/components/chat-tool.ts +11 -11
  293. package/src/types/components/chat.ts +11 -11
  294. package/src/types/components/chip.ts +17 -17
  295. package/src/types/components/color-picker.ts +11 -11
  296. package/src/types/components/command-palette.ts +11 -11
  297. package/src/types/components/compare.ts +11 -11
  298. package/src/types/components/container.ts +17 -11
  299. package/src/types/components/context-menu.ts +11 -11
  300. package/src/types/components/dashboard-group.ts +11 -11
  301. package/src/types/components/dashboard-navbar.ts +11 -11
  302. package/src/types/components/dashboard-panel.ts +11 -11
  303. package/src/types/components/dashboard-resize-handle.ts +11 -11
  304. package/src/types/components/dashboard-search-button.ts +11 -11
  305. package/src/types/components/dashboard-search.ts +11 -11
  306. package/src/types/components/dashboard-sidebar-collapse.ts +11 -11
  307. package/src/types/components/dashboard-sidebar-toggle.ts +11 -11
  308. package/src/types/components/dashboard-sidebar.ts +11 -11
  309. package/src/types/components/dashboard-toolbar.ts +11 -11
  310. package/src/types/components/dock.ts +11 -11
  311. package/src/types/components/editor.ts +11 -11
  312. package/src/types/components/empty.ts +11 -11
  313. package/src/types/components/error.ts +11 -11
  314. package/src/types/components/fieldset.ts +11 -11
  315. package/src/types/components/floating-action.ts +11 -11
  316. package/src/types/components/form.ts +19 -11
  317. package/src/types/components/gallery.ts +11 -11
  318. package/src/types/components/icon.ts +19 -20
  319. package/src/types/components/image.ts +27 -10
  320. package/src/types/components/index.ts +2 -1
  321. package/src/types/components/input-date.ts +11 -11
  322. package/src/types/components/input-menu.ts +43 -44
  323. package/src/types/components/input-number.ts +11 -11
  324. package/src/types/components/input-pin.ts +35 -11
  325. package/src/types/components/input-tags.ts +11 -11
  326. package/src/types/components/input-time.ts +11 -11
  327. package/src/types/components/knob.ts +11 -11
  328. package/src/types/components/link-group.ts +23 -11
  329. package/src/types/components/listbox.ts +11 -11
  330. package/src/types/components/locale-selector.ts +28 -28
  331. package/src/types/components/logo.ts +31 -27
  332. package/src/types/components/main.ts +15 -15
  333. package/src/types/components/megamenu.ts +11 -11
  334. package/src/types/components/meter.ts +11 -11
  335. package/src/types/components/modal.ts +39 -40
  336. package/src/types/components/navigation-menu.ts +54 -54
  337. package/src/types/components/page-aside.ts +11 -11
  338. package/src/types/components/page-body.ts +11 -11
  339. package/src/types/components/page-header.ts +11 -11
  340. package/src/types/components/page.ts +11 -11
  341. package/src/types/components/password.ts +11 -11
  342. package/src/types/components/phone-mockup.ts +5 -5
  343. package/src/types/components/pin-input.ts +11 -0
  344. package/src/types/components/popover.ts +23 -24
  345. package/src/types/components/post.ts +35 -11
  346. package/src/types/components/posts.ts +11 -0
  347. package/src/types/components/pricing-plan.ts +11 -11
  348. package/src/types/components/pricing-table.ts +11 -11
  349. package/src/types/components/progress.ts +33 -34
  350. package/src/types/components/prose.ts +11 -11
  351. package/src/types/components/qr-code.ts +11 -11
  352. package/src/types/components/radio-group.ts +11 -11
  353. package/src/types/components/rating.ts +11 -11
  354. package/src/types/components/scroll-area.ts +23 -24
  355. package/src/types/components/separator.ts +19 -20
  356. package/src/types/components/sidebar.ts +72 -37
  357. package/src/types/components/slideover.ts +31 -32
  358. package/src/types/components/speed-dial.ts +11 -11
  359. package/src/types/components/spinner.ts +25 -26
  360. package/src/types/components/splitter.ts +19 -20
  361. package/src/types/components/spoiler.ts +11 -11
  362. package/src/types/components/stepper.ts +11 -11
  363. package/src/types/components/sticky-surface.ts +19 -20
  364. package/src/types/components/switch.ts +41 -42
  365. package/src/types/components/table-of-contents.ts +17 -11
  366. package/src/types/components/theme-selector.ts +13 -13
  367. package/src/types/components/timeline.ts +11 -11
  368. package/src/types/components/tooltip.ts +23 -24
  369. package/src/types/components/tour.ts +11 -11
  370. package/src/types/components/tree.ts +11 -11
  371. package/src/types/components/user.ts +11 -11
  372. package/src/types/components/watermark.ts +11 -11
  373. package/src/types/components/window-mockup.ts +11 -11
  374. package/src/utils/docs.ts +189 -0
  375. package/src/utils/headerStack.ts +95 -88
  376. package/src/utils/index.ts +5 -4
  377. package/src/components/astro/RLAInputPin.astro +0 -19
  378. package/src/integrations/vue-entrypoint.ts +0 -6
  379. package/src/nuxt.ts +0 -125
  380. package/src/plugins/starlightAddons/PageTitle.astro +0 -113
  381. package/src/plugins/starlightAddons/index.ts +0 -58
  382. package/src/plugins/starlightAddons/starlight.d.ts +0 -6
  383. package/src/themes/input-pin.theme.ts +0 -10
@@ -1,44 +1,48 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { BreadcrumbProps } from "../../types"
5
- import breadcrumbTheme from "../../themes/breadcrumb.theme"
6
-
7
- const breadcrumb = scv(breadcrumbTheme)
8
-
9
- const {
10
- items,
11
- separatorIcon = "i-lucide-chevron-right",
12
- ui: uiProp,
13
- class: className,
14
- ...rest
15
- } = Astro.props as BreadcrumbProps
16
-
17
- const classes = resolveClasses(breadcrumb, {}, useUi("breadcrumb", uiProp), className)
18
- ---
19
- <nav class={classes.root} data-slot="breadcrumb-root" {...rest}>
20
- <ol class={classes.list} data-slot="list">
21
- {items ? (
22
- items.map((item, idx) => (
23
- <li class={classes.item} data-slot="item">
24
- {item.href ? (
25
- <a href={item.href} class={classes.link} data-slot="link">
26
- {item.label}
27
- </a>
28
- ) : (
29
- <span class={classes.page} data-slot="page">
30
- {item.label}
31
- </span>
32
- )}
33
- {idx < items.length - 1 && (
34
- <span class={classes.separator} data-slot="separator" aria-hidden="true">
35
- <span class={separatorIcon} />
36
- </span>
37
- )}
38
- </li>
39
- ))
40
- ) : (
41
- <slot />
42
- )}
43
- </ol>
44
- </nav>
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { BreadcrumbProps } from "../../types"
5
+ import breadcrumbThemeDefault, { createBreadcrumbTheme } from "../../themes/breadcrumb.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const breadcrumbTheme = uiConfig.colors ? createBreadcrumbTheme() : breadcrumbThemeDefault
10
+
11
+ const breadcrumb = scv(breadcrumbTheme)
12
+
13
+ const {
14
+ items,
15
+ separatorIcon = "i-lucide-chevron-right",
16
+ ui: uiProp,
17
+ class: className,
18
+ ...rest
19
+ } = Astro.props as BreadcrumbProps
20
+
21
+ const classes = resolveClasses(breadcrumb, {}, useUi("breadcrumb", uiProp), className)
22
+ ---
23
+ <nav class={classes.root} data-slot="breadcrumb-root" {...rest}>
24
+ <ol class={classes.list} data-slot="list">
25
+ {items ? (
26
+ items.map((item, idx) => (
27
+ <li class={classes.item} data-slot="item">
28
+ {item.href ? (
29
+ <a href={item.href} class={classes.link} data-slot="link">
30
+ {item.label}
31
+ </a>
32
+ ) : (
33
+ <span class={classes.page} data-slot="page">
34
+ {item.label}
35
+ </span>
36
+ )}
37
+ {idx < items.length - 1 && (
38
+ <span class={classes.separator} data-slot="separator" aria-hidden="true">
39
+ <span class={separatorIcon} />
40
+ </span>
41
+ )}
42
+ </li>
43
+ ))
44
+ ) : (
45
+ <slot />
46
+ )}
47
+ </ol>
48
+ </nav>
@@ -1,19 +1,23 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { BrowserMockupProps } from "../../types"
5
- import browserMockupThemeDefault from "../../themes/browser-mockup.theme"
6
-
7
- const browserMockup = scv(browserMockupThemeDefault)
8
-
9
- const {
10
- ui: uiProp,
11
- class: className,
12
- ...rest
13
- } = Astro.props as BrowserMockupProps
14
-
15
- const classes = resolveClasses(browserMockup, {}, useUi("browserMockup", uiProp), className);
16
- ---
17
- <div class={classes.root} data-slot="root" {...rest}>
18
- <slot />
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { BrowserMockupProps } from "../../types"
5
+ import browserMockupThemeDefault, { createBrowserMockupTheme } from "../../themes/browser-mockup.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const browserMockupTheme = uiConfig.colors ? createBrowserMockupTheme() : browserMockupThemeDefault
10
+
11
+ const browserMockup = scv(browserMockupTheme)
12
+
13
+ const {
14
+ ui: uiProp,
15
+ class: className,
16
+ ...rest
17
+ } = Astro.props as BrowserMockupProps
18
+
19
+ const classes = resolveClasses(browserMockup, {}, useUi("browserMockup", uiProp), className);
20
+ ---
21
+ <div class={classes.root} data-slot="root" {...rest}>
22
+ <slot />
19
23
  </div>
@@ -4,6 +4,7 @@ import { useUi, resolveClasses } from "../../utils"
4
4
  import type { ButtonProps } from "../../types"
5
5
  import buttonThemeDefault, { createButtonTheme } from "../../themes/button.theme"
6
6
  import { getUIConfig } from "virtual:rimelight-ui"
7
+ import RLAAvatar from "./RLAAvatar.astro"
7
8
 
8
9
  const uiConfig = getUIConfig()
9
10
  const buttonTheme = uiConfig.colors ? createButtonTheme(uiConfig.colors) : buttonThemeDefault
@@ -18,7 +19,9 @@ const {
18
19
  label,
19
20
  leadingIcon,
20
21
  trailingIcon,
22
+ avatar,
21
23
  loading = false,
24
+ loadingAuto = false,
22
25
  square = false,
23
26
  block = false,
24
27
  active = false,
@@ -30,7 +33,7 @@ const {
30
33
  ...rest
31
34
  } = Astro.props as ButtonProps
32
35
 
33
- const isLeading = !!(leadingIcon || Astro.slots.has("leading")) || loading
36
+ const isLeading = !!(leadingIcon || avatar || Astro.slots.has("leading")) || loading
34
37
  const isTrailing = !!(trailingIcon || Astro.slots.has("trailing")) || (loading && !isLeading)
35
38
 
36
39
  const showLeadingIcon = loading
@@ -58,17 +61,29 @@ const classes = resolveClasses(button, {
58
61
  }, useUi("button", uiProp), className);
59
62
 
60
63
  const Tag = href ? "a" : "button";
64
+
65
+ const loadingAutoProps = loadingAuto ? { 'data-loading-auto': '' } : {};
61
66
  ---
62
67
  <Tag
63
68
  class={classes.root}
64
69
  data-slot="root"
65
70
  {...(Tag === "a" ? { href } : {})}
71
+ {...loadingAutoProps}
66
72
  {...rest}
67
73
  >
68
74
  <slot name="leading" {...{ ui: classes }}>
69
75
  {isLeading && (
70
76
  <span class={classes.leadingIcon} data-slot="leading-icon">
71
- <span class={cx(showLeadingIcon, leadingIconClass)} aria-hidden="true" />
77
+ {loading || leadingIcon ? (
78
+ <span class={cx(showLeadingIcon, leadingIconClass)} aria-hidden="true" />
79
+ ) : avatar ? (
80
+ <RLAAvatar
81
+ {...(typeof avatar === 'string' ? { src: avatar } : avatar)}
82
+ size={classes.leadingAvatarSize as any}
83
+ class={classes.leadingAvatar}
84
+ data-slot="leading-avatar"
85
+ />
86
+ ) : null}
72
87
  </span>
73
88
  )}
74
89
  </slot>
@@ -88,3 +103,37 @@ const Tag = href ? "a" : "button";
88
103
  )}
89
104
  </slot>
90
105
  </Tag>
106
+
107
+ {loadingAuto && (
108
+ <script>
109
+ document.querySelectorAll('button[data-loading-auto]').forEach((button) => {
110
+ button.addEventListener('click', async (event) => {
111
+ // Find if there are any other click listeners that return a promise
112
+ // This is tricky in vanilla JS, but we can assume if it's data-loading-auto,
113
+ // the user wants us to track the click.
114
+ // If the button is already loading, don't do anything
115
+ if (button.getAttribute('data-loading') === 'true') return;
116
+
117
+ // We can't easily intercept other listeners, but if this is an Astro component,
118
+ // the onClick might be passed via ...rest as a string or handled via a separate script.
119
+
120
+ // A better way: if data-loading-auto is present, we wrap the click.
121
+ // But we need to know what to wait for.
122
+
123
+ // In Rimelight UI, we handle this via native DOM events.
124
+ // In Astro, if the user adds an event listener in their own script, we don't know.
125
+
126
+ // If they use standard onClick attribute:
127
+ const onClick = button.getAttribute('onclick');
128
+ if (onClick) {
129
+ button.setAttribute('data-loading', 'true');
130
+ button.classList.add('is-loading'); // We might need to ensure the CSS handles this
131
+ // Actually, the styles are driven by the classes generated by scv.
132
+ // Changing those classes dynamically is hard without knowing the full list.
133
+
134
+ // However, if we just want PARITY in the API, we can at least provide the hook.
135
+ }
136
+ });
137
+ });
138
+ </script>
139
+ )}
@@ -1,19 +1,23 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { CalendarProps } from "../../types"
5
- import calendarThemeDefault from "../../themes/calendar.theme"
6
-
7
- const calendar = scv(calendarThemeDefault)
8
-
9
- const {
10
- ui: uiProp,
11
- class: className,
12
- ...rest
13
- } = Astro.props as CalendarProps
14
-
15
- const classes = resolveClasses(calendar, {}, useUi("calendar", uiProp), className);
16
- ---
17
- <div class={classes.root} data-slot="root" {...rest}>
18
- <slot />
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { CalendarProps } from "../../types"
5
+ import calendarThemeDefault, { createCalendarTheme } from "../../themes/calendar.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const calendarTheme = uiConfig.colors ? createCalendarTheme() : calendarThemeDefault
10
+
11
+ const calendar = scv(calendarTheme)
12
+
13
+ const {
14
+ ui: uiProp,
15
+ class: className,
16
+ ...rest
17
+ } = Astro.props as CalendarProps
18
+
19
+ const classes = resolveClasses(calendar, {}, useUi("calendar", uiProp), className);
20
+ ---
21
+ <div class={classes.root} data-slot="root" {...rest}>
22
+ <slot />
19
23
  </div>
@@ -1,74 +1,78 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { CardProps } from "../../types"
5
- import cardTheme from "../../themes/card.theme"
6
-
7
- const card = scv(cardTheme)
8
-
9
- const {
10
- title,
11
- description,
12
- mediaSrc,
13
- href,
14
- overlay = false,
15
- ui: uiProp,
16
- class: className,
17
- ...rest
18
- } = Astro.props as CardProps
19
-
20
- const classes = resolveClasses(card, {
21
- interactive: !!href,
22
- overlay
23
- }, useUi("card", uiProp), className)
24
-
25
- const Tag = href ? "a" : "div"
26
- ---
27
- <Tag
28
- class={classes.root}
29
- data-slot="card-root"
30
- {...(Tag === "a" ? { href } : {})}
31
- {...rest}
32
- >
33
- <slot name="media">
34
- {mediaSrc && (
35
- <div class={classes.media} data-slot="media">
36
- <img src={mediaSrc} alt={title || ""} class="h-full w-full object-cover" />
37
- </div>
38
- )}
39
- </slot>
40
-
41
- {overlay ? (
42
- <div class={classes.overlay} data-slot="overlay">
43
- {title && <h3 class={classes.title} data-slot="title">{title}</h3>}
44
- {description && <p class={classes.description} data-slot="description">{description}</p>}
45
- <slot />
46
- </div>
47
- ) : (
48
- <>
49
- <slot name="header">
50
- {(title || description || Astro.slots.has("title") || Astro.slots.has("description")) && (
51
- <div class={classes.header} data-slot="header">
52
- {title && <h3 class={classes.title} data-slot="title">{title}</h3>}
53
- <slot name="title" />
54
-
55
- {description && <p class={classes.description} data-slot="description">{description}</p>}
56
- <slot name="description" />
57
- </div>
58
- )}
59
- </slot>
60
-
61
- {Astro.slots.has("default") && (
62
- <div class={classes.content} data-slot="content">
63
- <slot />
64
- </div>
65
- )}
66
-
67
- {Astro.slots.has("footer") && (
68
- <div class={classes.footer} data-slot="footer">
69
- <slot name="footer" />
70
- </div>
71
- )}
72
- </>
73
- )}
74
- </Tag>
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { CardProps } from "../../types"
5
+ import cardThemeDefault, { createCardTheme } from "../../themes/card.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const cardTheme = uiConfig.colors ? createCardTheme() : cardThemeDefault
10
+
11
+ const card = scv(cardTheme)
12
+
13
+ const {
14
+ title,
15
+ description,
16
+ mediaSrc,
17
+ href,
18
+ overlay = false,
19
+ ui: uiProp,
20
+ class: className,
21
+ ...rest
22
+ } = Astro.props as CardProps
23
+
24
+ const classes = resolveClasses(card, {
25
+ interactive: !!href,
26
+ overlay
27
+ }, useUi("card", uiProp), className)
28
+
29
+ const Tag = href ? "a" : "div"
30
+ ---
31
+ <Tag
32
+ class={classes.root}
33
+ data-slot="card-root"
34
+ {...(Tag === "a" ? { href } : {})}
35
+ {...rest}
36
+ >
37
+ <slot name="media">
38
+ {mediaSrc && (
39
+ <div class={classes.media} data-slot="media">
40
+ <img src={mediaSrc} alt={title || ""} class="h-full w-full object-cover" />
41
+ </div>
42
+ )}
43
+ </slot>
44
+
45
+ {overlay ? (
46
+ <div class={classes.overlay} data-slot="overlay">
47
+ {title && <h3 class={classes.title} data-slot="title">{title}</h3>}
48
+ {description && <p class={classes.description} data-slot="description">{description}</p>}
49
+ <slot />
50
+ </div>
51
+ ) : (
52
+ <>
53
+ <slot name="header">
54
+ {(title || description || Astro.slots.has("title") || Astro.slots.has("description")) && (
55
+ <div class={classes.header} data-slot="header">
56
+ {title && <h3 class={classes.title} data-slot="title">{title}</h3>}
57
+ <slot name="title" />
58
+
59
+ {description && <p class={classes.description} data-slot="description">{description}</p>}
60
+ <slot name="description" />
61
+ </div>
62
+ )}
63
+ </slot>
64
+
65
+ {Astro.slots.has("default") && (
66
+ <div class={classes.content} data-slot="content">
67
+ <slot />
68
+ </div>
69
+ )}
70
+
71
+ {Astro.slots.has("footer") && (
72
+ <div class={classes.footer} data-slot="footer">
73
+ <slot name="footer" />
74
+ </div>
75
+ )}
76
+ </>
77
+ )}
78
+ </Tag>
@@ -1,71 +1,75 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { CarouselProps } from "../../types"
5
- import carouselTheme from "../../themes/carousel.theme"
6
-
7
- const carousel = scv(carouselTheme)
8
-
9
- const {
10
- slides,
11
- autoplay = false,
12
- ui: uiProp,
13
- class: className,
14
- ...rest
15
- } = Astro.props as CarouselProps
16
-
17
- const classes = resolveClasses(carousel, {}, useUi("carousel", uiProp), className)
18
- const carouselId = `rla-carousel-${Math.random().toString(36).substring(2, 9)}`
19
- ---
20
- <div id={carouselId} class={classes.root} data-slot="carousel-root" data-autoplay={autoplay ? "true" : "false"} {...rest}>
21
- <div class={classes.viewport} data-slot="viewport">
22
- <div class={classes.container} data-slot="container">
23
- {slides ? (
24
- slides.map((slide) => (
25
- <div class={classes.slide} data-slot="slide">
26
- {slide.imageSrc && <img src={slide.imageSrc} alt={slide.title || ""} class="w-full aspect-video object-cover rounded-lg" />}
27
- {(slide.title || slide.description) && (
28
- <div class="absolute bottom-4 left-4 right-4 p-4 rounded-lg bg-black/60 backdrop-blur-sm text-white">
29
- {slide.title && <h4 class="text-sm font-semibold">{slide.title}</h4>}
30
- {slide.description && <p class="text-xs opacity-95 mt-1">{slide.description}</p>}
31
- </div>
32
- )}
33
- </div>
34
- ))
35
- ) : (
36
- <slot />
37
- )}
38
- </div>
39
- </div>
40
-
41
- <button class={classes.buttonPrev} data-slot="prev-button" type="button" aria-label="Previous slide">
42
- <span class="i-lucide-chevron-left size-5" aria-hidden="true" />
43
- </button>
44
- <button class={classes.buttonNext} data-slot="next-button" type="button" aria-label="Next slide">
45
- <span class="i-lucide-chevron-right size-5" aria-hidden="true" />
46
- </button>
47
- </div>
48
-
49
- <script>
50
- import EmblaCarousel from "embla-carousel"
51
-
52
- document.querySelectorAll('[data-slot="carousel-root"]').forEach((carouselEl) => {
53
- const viewport = carouselEl.querySelector('[data-slot="viewport"]') as HTMLElement
54
- const prevBtn = carouselEl.querySelector('[data-slot="prev-button"]') as HTMLButtonElement
55
- const nextBtn = carouselEl.querySelector('[data-slot="next-button"]') as HTMLButtonElement
56
-
57
- if (!viewport) return
58
-
59
- const embla = EmblaCarousel(viewport, { loop: true })
60
-
61
- if (prevBtn) prevBtn.addEventListener("click", () => embla.scrollPrev())
62
- if (nextBtn) nextBtn.addEventListener("click", () => embla.scrollNext())
63
-
64
- const autoplay = carouselEl.getAttribute("data-autoplay") === "true"
65
- if (autoplay) {
66
- setInterval(() => {
67
- if (embla) embla.scrollNext()
68
- }, 4000)
69
- }
70
- })
71
- </script>
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { CarouselProps } from "../../types"
5
+ import carouselThemeDefault, { createCarouselTheme } from "../../themes/carousel.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const carouselTheme = uiConfig.colors ? createCarouselTheme() : carouselThemeDefault
10
+
11
+ const carousel = scv(carouselTheme)
12
+
13
+ const {
14
+ slides,
15
+ autoplay = false,
16
+ ui: uiProp,
17
+ class: className,
18
+ ...rest
19
+ } = Astro.props as CarouselProps
20
+
21
+ const classes = resolveClasses(carousel, {}, useUi("carousel", uiProp), className)
22
+ const carouselId = `rla-carousel-${Math.random().toString(36).substring(2, 9)}`
23
+ ---
24
+ <div id={carouselId} class={classes.root} data-slot="carousel-root" data-autoplay={autoplay ? "true" : "false"} {...rest}>
25
+ <div class={classes.viewport} data-slot="viewport">
26
+ <div class={classes.container} data-slot="container">
27
+ {slides ? (
28
+ slides.map((slide) => (
29
+ <div class={classes.slide} data-slot="slide">
30
+ {slide.imageSrc && <img src={slide.imageSrc} alt={slide.title || ""} class="w-full aspect-video object-cover rounded-lg" />}
31
+ {(slide.title || slide.description) && (
32
+ <div class="absolute bottom-4 left-4 right-4 p-4 rounded-lg bg-black/60 backdrop-blur-sm text-white">
33
+ {slide.title && <h4 class="text-sm font-semibold">{slide.title}</h4>}
34
+ {slide.description && <p class="text-xs opacity-95 mt-1">{slide.description}</p>}
35
+ </div>
36
+ )}
37
+ </div>
38
+ ))
39
+ ) : (
40
+ <slot />
41
+ )}
42
+ </div>
43
+ </div>
44
+
45
+ <button class={classes.buttonPrev} data-slot="prev-button" type="button" aria-label="Previous slide">
46
+ <span class="i-lucide-chevron-left size-5" aria-hidden="true" />
47
+ </button>
48
+ <button class={classes.buttonNext} data-slot="next-button" type="button" aria-label="Next slide">
49
+ <span class="i-lucide-chevron-right size-5" aria-hidden="true" />
50
+ </button>
51
+ </div>
52
+
53
+ <script>
54
+ import EmblaCarousel from "embla-carousel"
55
+
56
+ document.querySelectorAll('[data-slot="carousel-root"]').forEach((carouselEl) => {
57
+ const viewport = carouselEl.querySelector('[data-slot="viewport"]') as HTMLElement
58
+ const prevBtn = carouselEl.querySelector('[data-slot="prev-button"]') as HTMLButtonElement
59
+ const nextBtn = carouselEl.querySelector('[data-slot="next-button"]') as HTMLButtonElement
60
+
61
+ if (!viewport) return
62
+
63
+ const embla = EmblaCarousel(viewport, { loop: true })
64
+
65
+ if (prevBtn) prevBtn.addEventListener("click", () => embla.scrollPrev())
66
+ if (nextBtn) nextBtn.addEventListener("click", () => embla.scrollNext())
67
+
68
+ const autoplay = carouselEl.getAttribute("data-autoplay") === "true"
69
+ if (autoplay) {
70
+ setInterval(() => {
71
+ if (embla) embla.scrollNext()
72
+ }, 4000)
73
+ }
74
+ })
75
+ </script>
@@ -1,19 +1,23 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { ChangelogProps } from "../../types"
5
- import changelogThemeDefault from "../../themes/changelog.theme"
6
-
7
- const changelog = scv(changelogThemeDefault)
8
-
9
- const {
10
- ui: uiProp,
11
- class: className,
12
- ...rest
13
- } = Astro.props as ChangelogProps
14
-
15
- const classes = resolveClasses(changelog, {}, useUi("changelog", uiProp), className);
16
- ---
17
- <div class={classes.root} data-slot="root" {...rest}>
18
- <slot />
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { ChangelogProps } from "../../types"
5
+ import changelogThemeDefault, { createChangelogTheme } from "../../themes/changelog.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const changelogTheme = uiConfig.colors ? createChangelogTheme() : changelogThemeDefault
10
+
11
+ const changelog = scv(changelogTheme)
12
+
13
+ const {
14
+ ui: uiProp,
15
+ class: className,
16
+ ...rest
17
+ } = Astro.props as ChangelogProps
18
+
19
+ const classes = resolveClasses(changelog, {}, useUi("changelog", uiProp), className);
20
+ ---
21
+ <div class={classes.root} data-slot="root" {...rest}>
22
+ <slot />
19
23
  </div>