@rimelight/ui 0.0.32 → 0.0.34

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 (402) hide show
  1. package/README.md +135 -8
  2. package/package.json +17 -20
  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/RLABreadcrumb.astro +48 -44
  14. package/src/components/astro/RLABrowserMockup.astro +22 -18
  15. package/src/components/astro/RLAButton.astro +141 -90
  16. package/src/components/astro/RLACalendar.astro +22 -18
  17. package/src/components/astro/RLACard.astro +78 -74
  18. package/src/components/astro/RLACarousel.astro +75 -71
  19. package/src/components/astro/RLAChangelog.astro +22 -18
  20. package/src/components/astro/RLAChart.astro +19 -34
  21. package/src/components/astro/RLAChat.astro +22 -18
  22. package/src/components/astro/RLAChatMessage.astro +22 -18
  23. package/src/components/astro/RLAChatMessages.astro +22 -18
  24. package/src/components/astro/RLAChatPalette.astro +22 -18
  25. package/src/components/astro/RLAChatPrompt.astro +22 -18
  26. package/src/components/astro/RLAChatPromptSubmit.astro +22 -18
  27. package/src/components/astro/RLAChatReasoning.astro +22 -18
  28. package/src/components/astro/RLAChatShimmer.astro +22 -18
  29. package/src/components/astro/RLAChatTool.astro +22 -18
  30. package/src/components/astro/RLAChip.astro +51 -20
  31. package/src/components/astro/RLAColorPicker.astro +22 -18
  32. package/src/components/astro/RLACommandPalette.astro +22 -18
  33. package/src/components/astro/RLACompare.astro +22 -18
  34. package/src/components/astro/RLAConfirm.astro +117 -86
  35. package/src/components/astro/RLAContainer.astro +22 -18
  36. package/src/components/astro/RLAContextMenu.astro +22 -18
  37. package/src/components/astro/RLADashboardGroup.astro +22 -18
  38. package/src/components/astro/RLADashboardNavbar.astro +22 -18
  39. package/src/components/astro/RLADashboardPanel.astro +22 -18
  40. package/src/components/astro/RLADashboardResizeHandle.astro +22 -18
  41. package/src/components/astro/RLADashboardSearch.astro +22 -18
  42. package/src/components/astro/RLADashboardSearchButton.astro +22 -18
  43. package/src/components/astro/RLADashboardSidebar.astro +22 -18
  44. package/src/components/astro/RLADashboardSidebarCollapse.astro +22 -18
  45. package/src/components/astro/RLADashboardSidebarToggle.astro +22 -18
  46. package/src/components/astro/RLADashboardToolbar.astro +22 -18
  47. package/src/components/astro/RLADock.astro +22 -18
  48. package/src/{plugins/starlightAddons/components/Gamepad.astro → components/astro/RLADocsGamepad.astro} +178 -180
  49. package/src/{plugins/starlightAddons/components/Keyboard.astro → components/astro/RLADocsKeyboard.astro} +1 -3
  50. package/src/{plugins/starlightAddons/PackageManagers.astro → components/astro/RLADocsPackageManagers.astro} +28 -14
  51. package/src/components/astro/RLADrawer.astro +78 -74
  52. package/src/components/astro/RLAEditor.astro +22 -18
  53. package/src/components/astro/RLAEmpty.astro +22 -18
  54. package/src/components/astro/RLAError.astro +22 -18
  55. package/src/components/astro/RLAFieldset.astro +22 -18
  56. package/src/components/astro/RLAFloatingAction.astro +22 -18
  57. package/src/components/astro/RLAFooter.astro +39 -35
  58. package/src/components/astro/RLAForm.astro +23 -19
  59. package/src/components/astro/RLAGallery.astro +22 -18
  60. package/src/components/astro/RLAGrid.astro +39 -0
  61. package/src/components/astro/RLAHead.astro +427 -180
  62. package/src/components/astro/RLAHeader.astro +12 -53
  63. package/src/components/astro/RLAHoverCard.astro +35 -31
  64. package/src/components/astro/RLAIcon.astro +31 -27
  65. package/src/components/astro/RLAImage.astro +251 -19
  66. package/src/components/astro/RLAInputDate.astro +22 -18
  67. package/src/components/astro/RLAInputNumber.astro +22 -18
  68. package/src/components/astro/RLAInputTags.astro +22 -18
  69. package/src/components/astro/RLAInputTime.astro +22 -18
  70. package/src/components/astro/RLAKbd.astro +32 -22
  71. package/src/components/astro/RLAKnob.astro +22 -18
  72. package/src/components/astro/RLALabel.astro +27 -23
  73. package/src/components/astro/RLALink.astro +13 -10
  74. package/src/components/astro/RLALinkGroup.astro +99 -18
  75. package/src/components/astro/RLAListbox.astro +22 -18
  76. package/src/components/astro/RLALocaleSelector.astro +136 -109
  77. package/src/components/astro/RLALogo.astro +90 -56
  78. package/src/components/astro/RLAMain.astro +15 -4
  79. package/src/components/astro/RLAMarquee.astro +43 -32
  80. package/src/components/astro/RLAMegamenu.astro +22 -18
  81. package/src/components/astro/RLAMeter.astro +22 -18
  82. package/src/components/astro/RLAModal.astro +99 -95
  83. package/src/components/astro/RLANavigationMenu.astro +326 -136
  84. package/src/components/astro/RLAPage.astro +22 -18
  85. package/src/components/astro/RLAPageAside.astro +22 -18
  86. package/src/components/astro/RLAPageBody.astro +22 -18
  87. package/src/components/astro/RLAPageHeader.astro +22 -18
  88. package/src/components/astro/RLAPageSection.astro +5 -1
  89. package/src/components/astro/RLAPagination.astro +96 -94
  90. package/src/components/astro/RLAPassword.astro +22 -18
  91. package/src/components/astro/RLAPhoneMockup.astro +22 -18
  92. package/src/components/astro/RLAPinInput.astro +23 -0
  93. package/src/components/astro/RLAPlaceholder.astro +45 -41
  94. package/src/components/astro/RLAPopover.astro +35 -31
  95. package/src/components/astro/RLAPost.astro +65 -19
  96. package/src/components/astro/RLAPricingPlan.astro +22 -18
  97. package/src/components/astro/RLAPricingTable.astro +22 -18
  98. package/src/components/astro/RLAProgress.astro +8 -2
  99. package/src/components/astro/RLAProse.astro +22 -18
  100. package/src/components/astro/RLAQrCode.astro +22 -18
  101. package/src/components/astro/RLARadioGroup.astro +22 -18
  102. package/src/components/astro/RLARating.astro +22 -18
  103. package/src/components/astro/RLASelect.astro +38 -24
  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 +141 -72
  108. package/src/components/astro/RLASlider.astro +14 -14
  109. package/src/components/astro/RLASpeedDial.astro +22 -18
  110. package/src/components/astro/RLASplitter.astro +14 -2
  111. package/src/components/astro/RLASpoiler.astro +22 -18
  112. package/src/components/astro/RLAStepper.astro +22 -18
  113. package/src/components/astro/RLASteps.astro +71 -0
  114. package/src/components/astro/RLAStickySurface.astro +38 -27
  115. package/src/components/astro/RLATableOfContents.astro +22 -18
  116. package/src/components/astro/RLATabs.astro +133 -92
  117. package/src/components/astro/RLAThemeSelector.astro +5 -1
  118. package/src/components/astro/RLATimeline.astro +22 -18
  119. package/src/components/astro/RLATooltip.astro +35 -31
  120. package/src/components/astro/RLATour.astro +22 -18
  121. package/src/components/astro/RLATree.astro +22 -18
  122. package/src/components/astro/RLAUser.astro +22 -18
  123. package/src/components/astro/RLAVideo.astro +200 -196
  124. package/src/components/astro/RLAWatermark.astro +22 -18
  125. package/src/components/astro/RLAWindowMockup.astro +22 -18
  126. package/src/components/vue/RLVCheckbox.vue +68 -0
  127. package/src/components/vue/RLVForm.vue +44 -0
  128. package/src/components/vue/RLVFormField.vue +58 -0
  129. package/src/components/vue/RLVInput.vue +93 -0
  130. package/src/components/vue/RLVPost.vue +63 -0
  131. package/src/components/vue/RLVPosts.vue +21 -0
  132. package/src/components/vue/RLVSection.vue +5 -4
  133. package/src/components/vue/RLVToast.vue +68 -0
  134. package/src/components/vue/RLVToaster.vue +29 -0
  135. package/src/composables/index.ts +2 -0
  136. package/src/composables/useHeaderStore.ts +13 -0
  137. package/src/composables/useScrollToTop.ts +7 -7
  138. package/src/composables/useToast.ts +43 -0
  139. package/src/config/index.ts +1 -0
  140. package/src/config/security.ts +220 -0
  141. package/src/env.d.ts +0 -13
  142. package/src/integrations/ui.ts +199 -208
  143. package/src/middleware/security.ts +75 -15
  144. package/src/plugins/index.ts +0 -3
  145. package/src/plugins/starlightDocsApi/index.ts +20 -13
  146. package/src/presets/defaults.ts +12 -0
  147. package/src/presets/index.ts +683 -537
  148. package/src/styles/index.css +0 -2
  149. package/src/themes/3d-hover.theme.ts +11 -8
  150. package/src/themes/accordion.theme.ts +11 -8
  151. package/src/themes/alert.theme.ts +96 -21
  152. package/src/themes/app.theme.ts +11 -8
  153. package/src/themes/aspect-ratio.theme.ts +10 -8
  154. package/src/themes/audio.theme.ts +11 -8
  155. package/src/themes/avatar-group.theme.ts +9 -7
  156. package/src/themes/avatar.theme.ts +79 -23
  157. package/src/themes/badge.theme.ts +119 -16
  158. package/src/themes/banner.theme.ts +11 -8
  159. package/src/themes/breadcrumb.theme.ts +14 -12
  160. package/src/themes/browser-mockup.theme.ts +11 -8
  161. package/src/themes/button.theme.ts +224 -195
  162. package/src/themes/calendar.theme.ts +11 -8
  163. package/src/themes/card.theme.ts +37 -29
  164. package/src/themes/carousel.theme.ts +30 -28
  165. package/src/themes/changelog.theme.ts +11 -8
  166. package/src/themes/chart.theme.ts +2 -1
  167. package/src/themes/chat-message.theme.ts +11 -8
  168. package/src/themes/chat-messages.theme.ts +11 -8
  169. package/src/themes/chat-palette.theme.ts +11 -8
  170. package/src/themes/chat-prompt-submit.theme.ts +11 -8
  171. package/src/themes/chat-prompt.theme.ts +11 -8
  172. package/src/themes/chat-reasoning.theme.ts +11 -8
  173. package/src/themes/chat-shimmer.theme.ts +11 -8
  174. package/src/themes/chat-tool.theme.ts +11 -8
  175. package/src/themes/chat.theme.ts +11 -8
  176. package/src/themes/checkbox.theme.ts +12 -10
  177. package/src/themes/chip.theme.ts +71 -13
  178. package/src/themes/color-picker.theme.ts +11 -8
  179. package/src/themes/command-palette.theme.ts +11 -8
  180. package/src/themes/compare.theme.ts +11 -8
  181. package/src/themes/confirm.theme.ts +43 -28
  182. package/src/themes/container.theme.ts +11 -8
  183. package/src/themes/context-menu.theme.ts +11 -8
  184. package/src/themes/dashboard-group.theme.ts +11 -8
  185. package/src/themes/dashboard-navbar.theme.ts +11 -8
  186. package/src/themes/dashboard-panel.theme.ts +11 -8
  187. package/src/themes/dashboard-resize-handle.theme.ts +11 -8
  188. package/src/themes/dashboard-search-button.theme.ts +11 -8
  189. package/src/themes/dashboard-search.theme.ts +11 -8
  190. package/src/themes/dashboard-sidebar-collapse.theme.ts +11 -8
  191. package/src/themes/dashboard-sidebar-toggle.theme.ts +11 -8
  192. package/src/themes/dashboard-sidebar.theme.ts +11 -8
  193. package/src/themes/dashboard-toolbar.theme.ts +11 -8
  194. package/src/themes/dock.theme.ts +11 -8
  195. package/src/themes/drawer.theme.ts +55 -38
  196. package/src/themes/dropdown-menu.theme.ts +4 -2
  197. package/src/themes/editor.theme.ts +11 -8
  198. package/src/themes/empty.theme.ts +11 -8
  199. package/src/themes/error.theme.ts +11 -8
  200. package/src/themes/field-group.theme.ts +2 -1
  201. package/src/themes/fieldset.theme.ts +11 -8
  202. package/src/themes/floating-action.theme.ts +11 -8
  203. package/src/themes/footer.theme.ts +26 -23
  204. package/src/themes/form.theme.ts +11 -8
  205. package/src/themes/gallery.theme.ts +11 -8
  206. package/src/themes/head.theme.ts +11 -8
  207. package/src/themes/header.theme.ts +38 -36
  208. package/src/themes/hover-card.theme.ts +25 -23
  209. package/src/themes/icon.theme.ts +20 -17
  210. package/src/themes/image.theme.ts +21 -8
  211. package/src/themes/input-date.theme.ts +11 -8
  212. package/src/themes/input-menu.theme.ts +11 -4
  213. package/src/themes/input-number.theme.ts +11 -8
  214. package/src/themes/input-tags.theme.ts +11 -8
  215. package/src/themes/input-time.theme.ts +11 -8
  216. package/src/themes/input.theme.ts +2 -1
  217. package/src/themes/kbd.theme.ts +91 -20
  218. package/src/themes/knob.theme.ts +11 -8
  219. package/src/themes/label.theme.ts +18 -16
  220. package/src/themes/link-group.theme.ts +30 -8
  221. package/src/themes/link.theme.ts +11 -8
  222. package/src/themes/listbox.theme.ts +11 -8
  223. package/src/themes/locale-selector.theme.ts +49 -50
  224. package/src/themes/logo.theme.ts +11 -8
  225. package/src/themes/main.theme.ts +13 -12
  226. package/src/themes/marquee.theme.ts +24 -22
  227. package/src/themes/megamenu.theme.ts +11 -8
  228. package/src/themes/meter.theme.ts +11 -8
  229. package/src/themes/modal.theme.ts +44 -32
  230. package/src/themes/navigation-menu.theme.ts +34 -9
  231. package/src/themes/page-aside.theme.ts +11 -8
  232. package/src/themes/page-body.theme.ts +11 -8
  233. package/src/themes/page-header.theme.ts +11 -8
  234. package/src/themes/page-section.theme.ts +173 -172
  235. package/src/themes/page.theme.ts +11 -8
  236. package/src/themes/pagination.theme.ts +24 -22
  237. package/src/themes/password.theme.ts +11 -8
  238. package/src/themes/phone-mockup.theme.ts +11 -8
  239. package/src/themes/pin-input.theme.ts +14 -0
  240. package/src/themes/placeholder.theme.ts +13 -10
  241. package/src/themes/popover.theme.ts +26 -24
  242. package/src/themes/post.theme.ts +31 -8
  243. package/src/themes/pricing-plan.theme.ts +11 -8
  244. package/src/themes/pricing-table.theme.ts +11 -8
  245. package/src/themes/progress.theme.ts +10 -9
  246. package/src/themes/prose.theme.ts +11 -8
  247. package/src/themes/qr-code.theme.ts +11 -8
  248. package/src/themes/quote.theme.ts +11 -8
  249. package/src/themes/radio-group.theme.ts +11 -8
  250. package/src/themes/rating.theme.ts +11 -8
  251. package/src/themes/scroll-area.theme.ts +4 -2
  252. package/src/themes/scroll-to-top.theme.ts +12 -10
  253. package/src/themes/select.theme.ts +4 -2
  254. package/src/themes/separator.theme.ts +143 -15
  255. package/src/themes/sidebar.theme.ts +9 -4
  256. package/src/themes/skeleton.theme.ts +17 -16
  257. package/src/themes/slideover.theme.ts +53 -37
  258. package/src/themes/slider.theme.ts +13 -11
  259. package/src/themes/speed-dial.theme.ts +11 -8
  260. package/src/themes/spinner.theme.ts +2 -3
  261. package/src/themes/splitter.theme.ts +2 -1
  262. package/src/themes/spoiler.theme.ts +11 -8
  263. package/src/themes/stepper.theme.ts +11 -8
  264. package/src/themes/sticky-surface.theme.ts +9 -7
  265. package/src/themes/switch.theme.ts +12 -10
  266. package/src/themes/table-of-contents.theme.ts +46 -8
  267. package/src/themes/tabs.theme.ts +14 -6
  268. package/src/themes/textarea.theme.ts +2 -1
  269. package/src/themes/theme-selector.theme.ts +15 -16
  270. package/src/themes/timeline.theme.ts +11 -8
  271. package/src/themes/toast.theme.ts +10 -4
  272. package/src/themes/tooltip.theme.ts +24 -23
  273. package/src/themes/tour.theme.ts +11 -8
  274. package/src/themes/tree.theme.ts +11 -8
  275. package/src/themes/user.theme.ts +11 -8
  276. package/src/themes/video.theme.ts +15 -12
  277. package/src/themes/watermark.theme.ts +11 -8
  278. package/src/themes/window-mockup.theme.ts +11 -8
  279. package/src/types/components/3d-hover.ts +1 -1
  280. package/src/types/components/alert.ts +2 -2
  281. package/src/types/components/app.ts +1 -1
  282. package/src/types/components/audio.ts +1 -1
  283. package/src/types/components/avatar-group.ts +11 -12
  284. package/src/types/components/avatar.ts +46 -21
  285. package/src/types/components/badge.ts +2 -2
  286. package/src/types/components/banner.ts +1 -1
  287. package/src/types/components/browser-mockup.ts +1 -1
  288. package/src/types/components/button.ts +7 -10
  289. package/src/types/components/calendar.ts +1 -1
  290. package/src/types/components/changelog.ts +1 -1
  291. package/src/types/components/chart.ts +2 -1
  292. package/src/types/components/chat-message.ts +1 -1
  293. package/src/types/components/chat-messages.ts +1 -1
  294. package/src/types/components/chat-palette.ts +1 -1
  295. package/src/types/components/chat-prompt-submit.ts +1 -1
  296. package/src/types/components/chat-prompt.ts +1 -1
  297. package/src/types/components/chat-reasoning.ts +1 -1
  298. package/src/types/components/chat-shimmer.ts +1 -1
  299. package/src/types/components/chat-tool.ts +1 -1
  300. package/src/types/components/chat.ts +1 -1
  301. package/src/types/components/checkbox.ts +2 -2
  302. package/src/types/components/chip.ts +1 -1
  303. package/src/types/components/collapsible.ts +2 -1
  304. package/src/types/components/color-picker.ts +1 -1
  305. package/src/types/components/command-palette.ts +1 -1
  306. package/src/types/components/compare.ts +1 -1
  307. package/src/types/components/container.ts +7 -1
  308. package/src/types/components/context-menu.ts +1 -1
  309. package/src/types/components/dashboard-group.ts +1 -1
  310. package/src/types/components/dashboard-navbar.ts +1 -1
  311. package/src/types/components/dashboard-panel.ts +1 -1
  312. package/src/types/components/dashboard-resize-handle.ts +1 -1
  313. package/src/types/components/dashboard-search-button.ts +1 -1
  314. package/src/types/components/dashboard-search.ts +1 -1
  315. package/src/types/components/dashboard-sidebar-collapse.ts +1 -1
  316. package/src/types/components/dashboard-sidebar-toggle.ts +1 -1
  317. package/src/types/components/dashboard-sidebar.ts +1 -1
  318. package/src/types/components/dashboard-toolbar.ts +1 -1
  319. package/src/types/components/dock.ts +1 -1
  320. package/src/types/components/dropdown-menu.ts +2 -1
  321. package/src/types/components/editor.ts +1 -1
  322. package/src/types/components/empty.ts +1 -1
  323. package/src/types/components/error.ts +1 -1
  324. package/src/types/components/fieldset.ts +1 -1
  325. package/src/types/components/file-upload.ts +2 -1
  326. package/src/types/components/floating-action.ts +1 -1
  327. package/src/types/components/form.ts +9 -1
  328. package/src/types/components/gallery.ts +1 -1
  329. package/src/types/components/icon.ts +0 -1
  330. package/src/types/components/image.ts +28 -7
  331. package/src/types/components/index.ts +134 -134
  332. package/src/types/components/input-date.ts +1 -1
  333. package/src/types/components/input-menu.ts +2 -2
  334. package/src/types/components/input-number.ts +1 -1
  335. package/src/types/components/input-pin.ts +26 -1
  336. package/src/types/components/input-tags.ts +1 -1
  337. package/src/types/components/input-time.ts +1 -1
  338. package/src/types/components/input.ts +2 -2
  339. package/src/types/components/knob.ts +1 -1
  340. package/src/types/components/link-group.ts +35 -1
  341. package/src/types/components/link.ts +4 -0
  342. package/src/types/components/listbox.ts +1 -1
  343. package/src/types/components/locale-selector.ts +33 -33
  344. package/src/types/components/logo.ts +5 -0
  345. package/src/types/components/main.ts +17 -17
  346. package/src/types/components/megamenu.ts +1 -1
  347. package/src/types/components/meter.ts +1 -1
  348. package/src/types/components/modal.ts +0 -1
  349. package/src/types/components/navigation-menu.ts +13 -8
  350. package/src/types/components/page-aside.ts +1 -1
  351. package/src/types/components/page-body.ts +1 -1
  352. package/src/types/components/page-header.ts +1 -1
  353. package/src/types/components/page.ts +1 -1
  354. package/src/types/components/password.ts +1 -1
  355. package/src/types/components/phone-mockup.ts +1 -1
  356. package/src/types/components/pin-input.ts +11 -0
  357. package/src/types/components/popover.ts +0 -1
  358. package/src/types/components/post.ts +25 -1
  359. package/src/types/components/pricing-plan.ts +1 -1
  360. package/src/types/components/pricing-table.ts +1 -1
  361. package/src/types/components/progress.ts +2 -3
  362. package/src/types/components/prose.ts +1 -1
  363. package/src/types/components/qr-code.ts +1 -1
  364. package/src/types/components/radio-group.ts +1 -1
  365. package/src/types/components/rating.ts +1 -1
  366. package/src/types/components/scroll-area.ts +0 -1
  367. package/src/types/components/scroll-to-top.ts +2 -2
  368. package/src/types/components/select.ts +2 -1
  369. package/src/types/components/separator.ts +0 -1
  370. package/src/types/components/sidebar.ts +53 -3
  371. package/src/types/components/slideover.ts +0 -1
  372. package/src/types/components/slider.ts +2 -2
  373. package/src/types/components/speed-dial.ts +1 -1
  374. package/src/types/components/spinner.ts +2 -3
  375. package/src/types/components/splitter.ts +0 -1
  376. package/src/types/components/spoiler.ts +1 -1
  377. package/src/types/components/stepper.ts +1 -1
  378. package/src/types/components/sticky-surface.ts +0 -1
  379. package/src/types/components/switch.ts +2 -3
  380. package/src/types/components/table-of-contents.ts +7 -1
  381. package/src/types/components/tabs.ts +2 -1
  382. package/src/types/components/textarea.ts +2 -1
  383. package/src/types/components/theme-selector.ts +15 -15
  384. package/src/types/components/timeline.ts +1 -1
  385. package/src/types/components/toast.ts +2 -1
  386. package/src/types/components/tooltip.ts +0 -1
  387. package/src/types/components/tour.ts +1 -1
  388. package/src/types/components/tree.ts +1 -1
  389. package/src/types/components/user.ts +1 -1
  390. package/src/types/components/watermark.ts +1 -1
  391. package/src/types/components/window-mockup.ts +1 -1
  392. package/src/types/theme.ts +10 -0
  393. package/src/utils/docs.ts +215 -0
  394. package/src/utils/headerStack.ts +12 -5
  395. package/src/utils/index.ts +1 -0
  396. package/src/components/astro/RLAInputPin.astro +0 -19
  397. package/src/integrations/vue-entrypoint.ts +0 -6
  398. package/src/nuxt.ts +0 -125
  399. package/src/plugins/starlightAddons/PageTitle.astro +0 -113
  400. package/src/plugins/starlightAddons/index.ts +0 -58
  401. package/src/plugins/starlightAddons/starlight.d.ts +0 -6
  402. package/src/themes/input-pin.theme.ts +0 -10
package/README.md CHANGED
@@ -1,30 +1,157 @@
1
- # @rimelight/ui
1
+ # Rimelight UI (@rimelight/ui)
2
2
 
3
- The core UI library for Rimelight projects.
3
+ [![Built with Astro](https://astro.badg.es/v2/built-with-astro/small.svg)](https://astro.build)  
4
+
5
+ [![PLAYGROUND](https://img.shields.io/badge/PLAYGROUND-A682FF?style=for-the-badge&logo=astro&logoColor=white)](https://playground.rimelight.com/ui)  
6
+ [![DOCUMENTATION](https://img.shields.io/badge/DOCUMENTATION-A682FF?style=for-the-badge&logo=astro&logoColor=white)](https://rimelight.com/company/docs/packages/rimelight-ui/)  
7
+
8
+ [![NPM Version](https://img.shields.io/npm/v/@rimelight/ui?style=for-the-badge&logo=npm&logoColor=white&color=A682FF)](https://www.npmjs.com/package/@rimelight/ui)  
9
+ [![NPM Downloads](https://img.shields.io/npm/dt/@rimelight/ui?style=for-the-badge&color=A682FF&logo=npm&logoColor=white)](https://www.npmjs.com/package/@rimelight/ui)  
10
+ [![View on npmx](https://img.shields.io/badge/VIEW%20ON%20NPMX-A682FF?style=for-the-badge&logo=npm&logoColor=white)](https://npmx.dev/package/@rimelight/ui)  
11
+
12
+ Rimelight UI is a comprehensive component library for [Astro](https://astro.build) websites used and maintained by [Rimelight Entertainment](https://rimelight.com).
13
+ It offers a suite of accessible and highly performant components as [Astro Components](https://docs.astro.build/basics/astro-components/) and [Vue Components](https://vuejs.org), and is available as a free and open source project for any to use.
4
14
 
5
15
  ## Features
6
16
 
7
- - Astro components
8
- - Design system configurations
9
- - Domain-specific utilities
10
- - Optimized for performance and accessibility
17
+ - **Multiple Frameworks**: Astro, Vue, and more with a unified usage pattern - use what suits your project best.
18
+ - **Intuitive**: Simple APIs, comprehensive documentation, and convenient integrations.
19
+ - **Accessible**: All components are WAI-ARIA compliant and include keyboard navigation, focus management, and
20
+ screen reader support.
21
+ - **Customizable**: Create your own design system by overriding styles and variants globally or per instance.
22
+ - **Performant**: Fully type-safe, SEO-friendly, modern and lean dependencies, and blazing fast.
23
+
24
+ For a complete list of available components, refer to the [documentation](https://rimelight.com/company/docs/packages/rimelight-ui/).
11
25
 
12
26
  ## Installation
13
27
 
28
+ To use Rimelight UI in an Astro project, you need to install the package and add the integration.
29
+
30
+ 1. Install the package into your project:
31
+
14
32
  ```bash
33
+ # vp
34
+ vp install @rimelight/ui
35
+
36
+ # npm
37
+ npm install @rimelight/ui
38
+
39
+ # pnpm
15
40
  pnpm add @rimelight/ui
41
+
42
+ # yarn
43
+ yarn add @rimelight/ui
44
+
45
+ # deno
46
+ deno add npm:@rimelight/ui
47
+
48
+ # bun
49
+ bun add @rimelight/ui
50
+ ```
51
+
52
+ 2. Add the Rimelight UI Astro integration to your Astro configuration:
53
+
54
+ ```typescript
55
+ // astro.config.ts
56
+ import { ui } from "@rimelight/ui/integrations"
57
+ import { defineConfig } from "astro/config"
58
+
59
+ export default defineConfig({
60
+ integrations: [
61
+ ui({
62
+ // Optional: Provide global UI overrides
63
+ ui: {
64
+ button: {
65
+ defaultVariants: { variant: "primary" }
66
+ }
67
+ }
68
+ })
69
+ ]
70
+ })
16
71
  ```
17
72
 
18
73
  ## Usage
19
74
 
75
+ ### Astro Components
76
+
20
77
  ```astro
78
+ // component.astro
79
+
21
80
  ---
22
- import { YoutubeEmbed } from '@rimelight/ui/components/embeds';
81
+ import { RLAButton } from '@rimelight/ui/components/astro/RLAButton.astro';
23
82
  ---
24
83
 
25
- <YoutubeEmbed id="..." />
84
+ <RLAButton label="Click Me" />
85
+ ```
86
+
87
+ ### Vue Components
88
+
89
+ ```vue
90
+ // component.vue
91
+
92
+ <script setup lang="ts">
93
+ import { RLVButton } from "@rimelight/ui/components/vue/RLVButton.vue"
94
+ </script>
95
+
96
+ <template>
97
+ <RLVButton label="Click Me" />
98
+ </template>
26
99
  ```
27
100
 
101
+ For mixed usage please refer to the [Astro documentation on using front-end frameworks](https://docs.astro.build/en/guides/framework-components/).
102
+
103
+ You can add the FAQ section right toward the bottom of your README, typically just before the Contributing or Support sections.
104
+
105
+ Since GitHub and most Markdown viewers natively support the <details> and <summary> HTML tags, they will render as interactive accordion dropdowns, keeping your README clean and compact.
106
+
107
+ Here is the exact code block to drop into your Repository README:
108
+
109
+ Markdown
110
+
111
+ ## Frequently Asked Questions
112
+
113
+ <details>
114
+ <summary><b>Is Rimelight UI free to use?</b></summary>
115
+ Yes. Rimelight UI is a completely free and open source package under the <a href="./LICENSE">MIT License</a>.
116
+ </details>
117
+
118
+ <details>
119
+ <summary><b>Can I use Rimelight UI without Astro?</b></summary>
120
+ For the time being, no. The library is strictly distributed as an Astro integration. However, in theory, it could be modularized enough to be usable as a Vite plugin, and we are open to contributions on this topic.
121
+ </details>
122
+
123
+ <details>
124
+ <summary><b>Are other front-end frameworks supported?</b></summary>
125
+ For the time being, no. The library currently only offers Astro and Vue components, but in theory could support other front-end frameworks, and we welcome community contributions to expand this.
126
+ </details>
127
+
128
+ <details>
129
+ <summary><b>Is Rimelight UI customizable?</b></summary>
130
+ Yes. All components can have their styles overridden per slot and per variant, either globally via your <code>astro.config.ts</code> configuration or locally on an individual instance using the <code>ui</code> prop.
131
+ </details>
132
+
133
+ <details>
134
+ <summary><b>Is Rimelight UI accessible?</b></summary>
135
+ Yes. All components provide automatic ARIA attributes, keyboard navigation, focus management, and screen reader support out of the box.
136
+ </details>
137
+
138
+ ## Useful Links
139
+
140
+ - [Starter Project](https://starter.rimelight.com)
141
+ - [Playground](https://playground.rimelight.com/ui)
142
+ - [Documentation](https://rimelight.com/company/docs/packages/rimelight-ui/)
143
+ - [Changelog](https://rimelight.com/company/docs/packages/rimelight-ui/changelog/)
144
+
145
+ ## Contributing
146
+
147
+ We welcome contributions to this project and its documentation. If you are interested in contributing, please refer to our [contribution guidelines](https://rimelight.com/company/docs/contributing/).
148
+
149
+ If you would like to financially support this project, please consider [sponsoring us](https://rimelight.com/company/docs/contributing/sponsoring/).
150
+
151
+ ## Support
152
+
153
+ If you have any questions or need assistance, please feel free to reach out to us at [support@rimelight.com](mailto:support@rimelight.com).
154
+
28
155
  ## License
29
156
 
30
157
  MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rimelight/ui",
3
- "version": "0.0.32",
3
+ "version": "0.0.34",
4
4
  "private": false,
5
5
  "description": "Rimelight Entertainment UI Library.",
6
6
  "keywords": [
@@ -42,12 +42,10 @@
42
42
  "./utils/*": "./src/utils/*",
43
43
  "./integrations": "./src/integrations/index.ts",
44
44
  "./integrations/*": "./src/integrations/*",
45
- "./integrations/vue-entrypoint": "./src/integrations/vue-entrypoint.ts",
46
45
  "./plugins": "./src/plugins/index.ts",
47
46
  "./plugins/*": "./src/plugins/*",
48
47
  "./middleware": "./src/middleware/index.ts",
49
48
  "./middleware/*": "./src/middleware/*",
50
- "./nuxt": "./src/nuxt.ts",
51
49
  "./types": "./src/types/index.ts",
52
50
  "./types/*": "./src/types/*",
53
51
  "./presets": "./src/presets/index.ts",
@@ -65,34 +63,33 @@
65
63
  },
66
64
  "dependencies": {
67
65
  "@astrojs/prism": "^4.0.2",
68
- "@astrojs/vue": "6.0.1",
69
- "@iconify-json/lucide": "^1.2.108",
70
- "@nuxt/ui": "4.7.1",
71
- "@tailwindcss/vite": "^4.3.0",
72
- "@unocss/astro": "^66.6.8",
66
+ "@astrojs/vue": "7.0.0-alpha.0",
67
+ "@iconify-json/lucide": "^1.2.109",
68
+ "@unocss/astro": "^66.7.0",
73
69
  "css-variants": "2.3.5",
74
70
  "defu": "6.1.7",
75
71
  "embla-carousel": "8.6.0",
72
+ "nanostores": "1.3.0",
76
73
  "picomatch": "^4.0.4",
77
- "tailwindcss": "^4.2.3",
74
+ "prismjs": "^1.29.0",
78
75
  "turndown": "^7.2.4",
79
76
  "turndown-plugin-gfm": "^1.0.2",
80
77
  "vite-plugin-virtual": "^0.5.0"
81
78
  },
82
79
  "devDependencies": {
83
- "@astrojs/check": "0.9.8",
84
- "@astrojs/ts-plugin": "1.10.8",
85
- "@e18e/eslint-plugin": "0.3.0",
86
- "@types/node": "25.8.0",
80
+ "@astrojs/check": "0.9.9",
81
+ "@astrojs/ts-plugin": "1.10.9",
82
+ "@e18e/eslint-plugin": "0.5.0",
83
+ "@types/node": "25.9.1",
87
84
  "@types/picomatch": "^4.0.3",
88
- "@unocss/eslint-plugin": "66.6.8",
89
- "astro": "6.3.6",
85
+ "@unocss/eslint-plugin": "66.7.0",
86
+ "astro": "7.0.0-alpha.0",
90
87
  "eslint-plugin-regexp": "3.1.0",
91
- "knip": "6.14.1",
92
- "tsx": "4.22.1",
88
+ "knip": "6.14.2",
89
+ "tsx": "4.22.3",
93
90
  "typescript": "6.0.3",
94
- "unocss": "66.6.8",
95
- "vite-plus": "0.1.21"
91
+ "unocss": "66.7.0",
92
+ "vite-plus": "catalog:"
96
93
  },
97
94
  "peerDependencies": {
98
95
  "@astrojs/starlight": ">=0.5.0",
@@ -104,5 +101,5 @@
104
101
  "optional": true
105
102
  }
106
103
  },
107
- "packageManager": "pnpm@11.1.2"
104
+ "packageManager": "pnpm@11.3.0"
108
105
  }
@@ -1,32 +1,50 @@
1
1
  ---
2
2
  export interface TableOfContentsHeading {
3
- depth: number; // The heading level (h1 = 1, h2 = 2, etc)
4
- slug: string; // The ID of the heading for linking
5
- text: string; // The text content of the heading
3
+ depth: number;
4
+ slug: string;
5
+ text: string;
6
+ }
7
+
8
+ export interface TableOfContentsConfig {
9
+ minHeadingLevel?: number;
10
+ maxHeadingLevel?: number;
6
11
  }
7
12
 
8
13
  export interface TableOfContentsProps {
9
- headings: TableOfContentsHeading[]; // Array of headings from your markdown content
10
- levels?: 1 | 2 | 3; // How many levels of headers to show in TOC (default: 2)
14
+ headings: TableOfContentsHeading[];
15
+ /** false = hide entirely, object = heading level bounds */
16
+ tableOfContents?: false | TableOfContentsConfig;
17
+ /** @deprecated use tableOfContents.maxHeadingLevel instead */
18
+ levels?: 1 | 2 | 3;
11
19
  }
12
20
 
13
21
  type Props = TableOfContentsProps;
14
22
 
15
- const { headings, levels = 2 } = Astro.props as Props;
23
+ const { headings, tableOfContents, levels = 2 } = Astro.props as Props;
24
+
25
+ if (tableOfContents === false) {
26
+ // Render nothing — parent should also skip rendering this component,
27
+ // but guard here as a safety net.
28
+ }
29
+
30
+ const minLevel = (tableOfContents !== false && tableOfContents?.minHeadingLevel) ?? 2;
31
+ const maxLevel = (tableOfContents !== false && tableOfContents?.maxHeadingLevel) ?? levels;
16
32
 
17
- // Filter headings to only show up to the specified level
18
- const filteredHeadings = headings.filter((heading) => heading.depth <= levels);
33
+ const filteredHeadings = tableOfContents !== false
34
+ ? headings.filter(h => h.depth >= minLevel && h.depth <= maxLevel)
35
+ : [];
19
36
  ---
20
37
 
21
- <div class="border-base-400 rounded-xs border p-3xs text-sm leading-tight">
22
- <h4 class="text-xl font-medium">Table of Contents</h4>
23
- <ul class="mt-2xl flex flex-col gap-3xs">
24
- {
25
- filteredHeadings.map((heading) => (
38
+ {tableOfContents !== false && filteredHeadings.length > 0 && (
39
+ <div class="border-border rounded-xs border p-3xs text-sm leading-tight">
40
+ <h4 class="text-xl font-medium">On this page</h4>
41
+ <ul class="mt-2xl flex flex-col gap-3xs">
42
+ {filteredHeadings.map(heading => (
26
43
  <li
27
44
  class:list={{
28
45
  "pl-3xs": heading.depth === 2,
29
46
  "pl-6": heading.depth === 3,
47
+ "pl-9": heading.depth >= 4
30
48
  }}
31
49
  >
32
50
  <a
@@ -36,10 +54,10 @@ const filteredHeadings = headings.filter((heading) => heading.depth <= levels);
36
54
  {heading.text}
37
55
  </a>
38
56
  </li>
39
- ))
40
- }
41
- </ul>
42
- </div>
57
+ ))}
58
+ </ul>
59
+ </div>
60
+ )}
43
61
 
44
62
  <style>
45
63
  .toc-current {
@@ -49,58 +67,41 @@ const filteredHeadings = headings.filter((heading) => heading.depth <= levels);
49
67
  </style>
50
68
 
51
69
  <script>
52
- // Wrapper for Blog post content
53
70
  let wrappingElement: Element | null;
54
71
  let observeHeaderTags: IntersectionObserver;
55
72
  let allHeaderTags: NodeListOf<Element>;
56
73
 
57
- // Function that runs when the Intersection Observer fires
58
74
  function setCurrent(e: IntersectionObserverEntry[]) {
59
- var allSectionLinks = document.querySelectorAll(".toc-link");
60
- e.map((i) => {
75
+ const allSectionLinks = document.querySelectorAll(".toc-link");
76
+ e.map(i => {
61
77
  if (i.isIntersecting === true) {
62
- allSectionLinks.forEach((link) => link.classList.remove("toc-current"));
63
- const targetLink = document.querySelector(
64
- `a[href="#${i.target.id}"].toc-link`,
65
- );
66
-
78
+ allSectionLinks.forEach(link => link.classList.remove("toc-current"));
79
+ const targetLink = document.querySelector(`a[href="#${i.target.id}"].toc-link`);
67
80
  if (targetLink) targetLink.classList.add("toc-current");
68
81
  }
69
82
  });
70
83
  }
71
84
 
72
85
  function initTOC() {
73
- // update this with whatever class wraps your blog post content
74
86
  wrappingElement = document.querySelector(".markdown-content");
75
87
  if (wrappingElement !== null) {
76
- // Get all H1/H2/H3 tags from the post
77
- allHeaderTags = wrappingElement.querySelectorAll(
78
- ":scope > h1, :scope > h2, :scope > h3",
79
- );
88
+ allHeaderTags = wrappingElement.querySelectorAll(":scope > h1, :scope > h2, :scope > h3, :scope > h4");
80
89
  }
81
90
 
82
- // Intersection Observer Options
83
- let options: IntersectionObserverInit = {
91
+ const options: IntersectionObserverInit = {
84
92
  root: null,
85
93
  rootMargin: "0px 0px -50% 0px",
86
- threshold: [1],
94
+ threshold: [1]
87
95
  };
88
96
 
89
- // Each Intersection Observer runs setCurrent
90
97
  observeHeaderTags = new IntersectionObserver(setCurrent, options);
91
- if (wrappingElement === null) {
92
- return;
93
- }
94
- allHeaderTags.forEach((tag) => {
95
- // add scroll margin top to account for fixed navbar
98
+ if (wrappingElement === null) return;
99
+ allHeaderTags.forEach(tag => {
96
100
  tag.classList.add("scroll-mt-3xl");
97
101
  observeHeaderTags.observe(tag);
98
102
  });
99
103
  }
100
104
 
101
- // runs on initial page load
102
105
  initTOC();
103
-
104
- // runs on view transitions navigation
105
106
  document.addEventListener("astro:after-swap", initTOC);
106
107
  </script>
@@ -1,19 +1,23 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { ThreeDHoverProps } from "../../types"
5
- import 3dHoverThemeDefault from "../../themes/3d-hover.theme"
6
-
7
- const 3dHover = scv(3dHoverThemeDefault)
8
-
9
- const {
10
- ui: uiProp,
11
- class: className,
12
- ...rest
13
- } = Astro.props as ThreeDHoverProps
14
-
15
- const classes = resolveClasses(3dHover, {}, useUi("3dHover", 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 { ThreeDHoverProps } from "../../types"
5
+ import hover3dThemeDefault, { create3dHoverTheme } from "../../themes/3d-hover.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const hover3dTheme = uiConfig.colors ? create3dHoverTheme() : hover3dThemeDefault
10
+
11
+ const hover3d = scv(hover3dTheme)
12
+
13
+ const {
14
+ ui: uiProp,
15
+ class: className,
16
+ ...rest
17
+ } = Astro.props as ThreeDHoverProps
18
+
19
+ const classes = resolveClasses(hover3d, {}, useUi("3dHover", uiProp), className);
20
+ ---
21
+ <div class={classes.root} data-slot="root" {...rest}>
22
+ <slot />
19
23
  </div>
@@ -1,62 +1,93 @@
1
- ---
2
- import { scv, cx } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { AlertProps } from "../../types"
5
- import alertThemeDefault, { createAlertTheme } from "../../themes/alert.theme"
6
- import { getUIConfig } from "virtual:rimelight-ui"
7
-
8
- const uiConfig = getUIConfig()
9
- const alertTheme = uiConfig.colors ? createAlertTheme(uiConfig.colors) : alertThemeDefault
10
- const alert = scv(alertTheme)
11
-
12
- const {
13
- variant = "default",
14
- color = "primary",
15
- title,
16
- description,
17
- icon,
18
- theme,
19
- ui: uiProp,
20
- class: className,
21
- ...rest
22
- } = Astro.props as AlertProps
23
-
24
- const isIcon = !!(icon || Astro.slots.has("icon"))
25
-
26
- const classes = resolveClasses(alert, {
27
- variant,
28
- color,
29
- hasIcon: isIcon,
30
- theme
31
- }, useUi("alert", uiProp), className)
32
- ---
33
- <div
34
- class={classes.root}
35
- data-slot="root"
36
- role="alert"
37
- {...rest}
38
- >
39
- <slot name="icon">
40
- {icon && (
41
- <span class={classes.icon} data-slot="icon">
42
- <span class={cx(icon)} aria-hidden="true" />
43
- </span>
44
- )}
45
- </slot>
46
-
47
- <div class={classes.content} data-slot="content">
48
- {title && (
49
- <h5 class={classes.title} data-slot="title">
50
- {title}
51
- </h5>
52
- )}
53
- <slot name="title" />
54
-
55
- {description && (
56
- <div class={classes.description} data-slot="description">
57
- {description}
58
- </div>
59
- )}
60
- <slot />
61
- </div>
62
- </div>
1
+ ---
2
+ import { scv, cx } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { AlertProps } from "../../types"
5
+ import alertThemeDefault, { createAlertTheme } from "../../themes/alert.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+ import RLAAvatar from "./RLAAvatar.astro"
8
+
9
+ const uiConfig = getUIConfig()
10
+ const alertTheme = uiConfig.colors ? createAlertTheme(uiConfig.colors) : alertThemeDefault
11
+ const alert = scv(alertTheme)
12
+
13
+ const {
14
+ variant = "solid",
15
+ color = "primary",
16
+ title,
17
+ description,
18
+ icon,
19
+ avatar,
20
+ actions,
21
+ close,
22
+ orientation = "horizontal",
23
+ theme,
24
+ ui: uiProp,
25
+ class: className,
26
+ ...rest
27
+ } = Astro.props as AlertProps
28
+
29
+ const isIcon = !!(icon || Astro.slots.has("icon"))
30
+
31
+ const classes = resolveClasses(alert, {
32
+ variant,
33
+ color,
34
+ orientation,
35
+ title: !!(title || Astro.slots.has("title")),
36
+ theme
37
+ }, useUi("alert", uiProp), className)
38
+ ---
39
+ <div
40
+ class={classes.root}
41
+ data-slot="root"
42
+ role="alert"
43
+ {...rest}
44
+ >
45
+ <slot name="icon">
46
+ {icon && (
47
+ <span class={classes.icon} data-slot="icon">
48
+ <span class={cx(icon)} aria-hidden="true" />
49
+ </span>
50
+ )}
51
+ </slot>
52
+
53
+ <slot name="avatar" {...{ ui: classes }}>
54
+ {avatar && (
55
+ <RLAAvatar
56
+ {...(typeof avatar === 'string' ? { src: avatar } : avatar)}
57
+ size={classes.avatarSize as any}
58
+ class={classes.avatar}
59
+ data-slot="avatar"
60
+ />
61
+ )}
62
+ </slot>
63
+
64
+ <div class={classes.wrapper} data-slot="wrapper">
65
+ {(title || Astro.slots.has("title")) && (
66
+ <h5 class={classes.title} data-slot="title">
67
+ {title}
68
+ <slot name="title" />
69
+ </h5>
70
+ )}
71
+
72
+ {(description || Astro.slots.has("default")) && (
73
+ <div class={classes.description} data-slot="description">
74
+ {description}
75
+ <slot />
76
+ </div>
77
+ )}
78
+
79
+ {(actions || Astro.slots.has("actions")) && (
80
+ <div class={classes.actions} data-slot="actions">
81
+ <slot name="actions" />
82
+ </div>
83
+ )}
84
+ </div>
85
+
86
+ <slot name="close" {...{ ui: classes }}>
87
+ {close && (
88
+ <button class={classes.close} data-slot="close">
89
+ <span class="i-lucide-x size-4" />
90
+ </button>
91
+ )}
92
+ </slot>
93
+ </div>
@@ -1,19 +1,23 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { AppProps } from "../../types"
5
- import appThemeDefault from "../../themes/app.theme"
6
-
7
- const app = scv(appThemeDefault)
8
-
9
- const {
10
- ui: uiProp,
11
- class: className,
12
- ...rest
13
- } = Astro.props as AppProps
14
-
15
- const classes = resolveClasses(app, {}, useUi("app", 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 { AppProps } from "../../types"
5
+ import appThemeDefault, { createAppTheme } from "../../themes/app.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const appTheme = uiConfig.colors ? createAppTheme() : appThemeDefault
10
+
11
+ const app = scv(appTheme)
12
+
13
+ const {
14
+ ui: uiProp,
15
+ class: className,
16
+ ...rest
17
+ } = Astro.props as AppProps
18
+
19
+ const classes = resolveClasses(app, {}, useUi("app", uiProp), className);
20
+ ---
21
+ <div class={classes.root} data-slot="root" {...rest}>
22
+ <slot />
19
23
  </div>