@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
@@ -1,22 +1,32 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { KbdProps } from "../../types"
5
- import kbdTheme from "../../themes/kbd.theme"
6
-
7
- const kbd = scv(kbdTheme)
8
-
9
- const {
10
- size = "md",
11
- ui: uiProp,
12
- class: className,
13
- ...rest
14
- } = Astro.props as KbdProps
15
-
16
- const classes = resolveClasses(kbd, {
17
- size
18
- }, useUi("kbd", uiProp), className)
19
- ---
20
- <kbd class={classes.root} data-slot="root" {...rest}>
21
- <slot />
22
- </kbd>
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { KbdProps } from "../../types"
5
+ import kbdThemeDefault, { createKbdTheme } from "../../themes/kbd.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const kbdTheme = uiConfig.colors ? createKbdTheme() : kbdThemeDefault
10
+
11
+ const kbd = scv(kbdTheme)
12
+
13
+ const {
14
+ size = "md",
15
+ color = "neutral",
16
+ variant = "outline",
17
+ theme,
18
+ ui: uiProp,
19
+ class: className,
20
+ ...rest
21
+ } = Astro.props as KbdProps
22
+
23
+ const classes = resolveClasses(kbd, {
24
+ size,
25
+ color,
26
+ variant,
27
+ theme
28
+ }, useUi("kbd", uiProp), className)
29
+ ---
30
+ <kbd class={classes.root} data-slot="root" {...rest}>
31
+ <slot />
32
+ </kbd>
@@ -1,19 +1,23 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { KnobProps } from "../../types"
5
- import knobThemeDefault from "../../themes/knob.theme"
6
-
7
- const knob = scv(knobThemeDefault)
8
-
9
- const {
10
- ui: uiProp,
11
- class: className,
12
- ...rest
13
- } = Astro.props as KnobProps
14
-
15
- const classes = resolveClasses(knob, {}, useUi("knob", 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 { KnobProps } from "../../types"
5
+ import knobThemeDefault, { createKnobTheme } from "../../themes/knob.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const knobTheme = uiConfig.colors ? createKnobTheme() : knobThemeDefault
10
+
11
+ const knob = scv(knobTheme)
12
+
13
+ const {
14
+ ui: uiProp,
15
+ class: className,
16
+ ...rest
17
+ } = Astro.props as KnobProps
18
+
19
+ const classes = resolveClasses(knob, {}, useUi("knob", uiProp), className);
20
+ ---
21
+ <div class={classes.root} data-slot="root" {...rest}>
22
+ <slot />
19
23
  </div>
@@ -1,23 +1,27 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { LabelProps } from "../../types"
5
- import labelTheme from "../../themes/label.theme"
6
-
7
- const label = scv(labelTheme)
8
-
9
- const {
10
- for: htmlFor,
11
- size = "md",
12
- ui: uiProp,
13
- class: className,
14
- ...rest
15
- } = Astro.props as LabelProps
16
-
17
- const classes = resolveClasses(label, {
18
- size
19
- }, useUi("label", uiProp), className)
20
- ---
21
- <label class={classes.root} data-slot="root" for={htmlFor} {...rest}>
22
- <slot />
23
- </label>
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { LabelProps } from "../../types"
5
+ import labelThemeDefault, { createLabelTheme } from "../../themes/label.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const labelTheme = uiConfig.colors ? createLabelTheme() : labelThemeDefault
10
+
11
+ const label = scv(labelTheme)
12
+
13
+ const {
14
+ for: htmlFor,
15
+ size = "md",
16
+ ui: uiProp,
17
+ class: className,
18
+ ...rest
19
+ } = Astro.props as LabelProps
20
+
21
+ const classes = resolveClasses(label, {
22
+ size
23
+ }, useUi("label", uiProp), className)
24
+ ---
25
+ <label class={classes.root} data-slot="root" for={htmlFor} {...rest}>
26
+ <slot />
27
+ </label>
@@ -1,19 +1,22 @@
1
1
  ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
2
+ import RLAButton from "./RLAButton.astro"
4
3
  import type { LinkProps } from "../../types"
5
- import linkThemeDefault from "../../themes/link.theme"
6
-
7
- const link = scv(linkThemeDefault)
8
4
 
9
5
  const {
10
- ui: uiProp,
11
- class: className,
6
+ to,
7
+ href,
8
+ variant = "link",
9
+ color = "neutral",
12
10
  ...rest
13
11
  } = Astro.props as LinkProps
14
12
 
15
- const classes = resolveClasses(link, {}, useUi("link", uiProp), className);
13
+ const linkHref = href || (typeof to === 'string' ? to : undefined);
16
14
  ---
17
- <div class={classes.root} data-slot="root" {...rest}>
15
+ <RLAButton
16
+ variant={variant as any}
17
+ color={color as any}
18
+ href={linkHref}
19
+ {...rest}
20
+ >
18
21
  <slot />
19
- </div>
22
+ </RLAButton>
@@ -1,19 +1,100 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { LinkGroupProps } from "../../types"
5
- import linkGroupThemeDefault from "../../themes/link-group.theme"
6
-
7
- const linkGroup = scv(linkGroupThemeDefault)
8
-
9
- const {
10
- ui: uiProp,
11
- class: className,
12
- ...rest
13
- } = Astro.props as LinkGroupProps
14
-
15
- const classes = resolveClasses(linkGroup, {}, useUi("linkGroup", 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 { LinkGroupProps } from "../../types"
5
+ import linkGroupThemeDefault, { createLinkGroupTheme } from "../../themes/link-group.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ import RLALink from "./RLALink.astro"
9
+
10
+ const uiConfig = getUIConfig()
11
+ const linkGroupTheme = uiConfig.colors ? createLinkGroupTheme() : linkGroupThemeDefault
12
+
13
+ const linkGroup = scv(linkGroupTheme)
14
+
15
+ const {
16
+ title,
17
+ label,
18
+ leadingIcon,
19
+ trailingIcon,
20
+ href,
21
+ to,
22
+ links = [],
23
+ theme,
24
+ ui: uiProp,
25
+ class: className,
26
+ ...rest
27
+ } = Astro.props as LinkGroupProps
28
+
29
+ const classes = resolveClasses(linkGroup, { theme }, useUi("linkGroup", uiProp), className);
30
+
31
+ const headingLabel = label || (typeof title === "object" ? title.label : (typeof title === "string" ? title : undefined));
32
+ const headingLeadingIcon = leadingIcon || (typeof title === "object" ? title.leadingIcon : undefined);
33
+ const headingTrailingIcon = trailingIcon || (typeof title === "object" ? title.trailingIcon : undefined);
34
+ const headingHref = href || (typeof title === "object" ? title.href : undefined);
35
+ const headingTo = to || (typeof title === "object" ? (title as any).to : undefined);
36
+
37
+ const linksProp = links ?? [];
38
+ const normalizedLinks = Array.isArray(linksProp) ? linksProp : [linksProp];
39
+
40
+ // Prefix utility classes in classes.link with `!` to cleanly override conflicting text colors in RLAButton's base classes.
41
+ // For default or light themes, do not force base text classes so RLAButton's own light/dark mode styles can adapt naturally.
42
+ const isPinnedDark = theme === "flat" || theme === "dark";
43
+ const overrideLinkClass = classes.link
44
+ ? classes.link
45
+ .split(" ")
46
+ .map(cls => {
47
+ if (!cls) return "";
48
+ if (cls.includes(":")) {
49
+ const parts = cls.split(":");
50
+ const state = parts.slice(0, -1).join(":");
51
+ const baseCls = parts[parts.length - 1];
52
+ return `${state}:!${baseCls}`;
53
+ }
54
+ if (cls.startsWith("text-") && !isPinnedDark) {
55
+ return cls;
56
+ }
57
+ return `!${cls}`;
58
+ })
59
+ .filter(Boolean)
60
+ .join(" ")
61
+ : "";
62
+ ---
63
+ <div class={classes.root} data-slot="root" {...rest}>
64
+ {headingLabel && (
65
+ <h4 class={classes.title} data-slot="title">
66
+ {headingHref || headingTo ? (
67
+ <a href={headingHref || (typeof headingTo === 'string' ? headingTo : undefined)} class="hover:underline flex items-center gap-1.5">
68
+ {headingLeadingIcon && <span class={headingLeadingIcon} />}
69
+ <span>{headingLabel}</span>
70
+ {headingTrailingIcon && <span class={headingTrailingIcon} />}
71
+ </a>
72
+ ) : (
73
+ <span class="flex items-center gap-1.5">
74
+ {headingLeadingIcon && <span class={headingLeadingIcon} />}
75
+ <span>{headingLabel}</span>
76
+ {headingTrailingIcon && <span class={headingTrailingIcon} />}
77
+ </span>
78
+ )}
79
+ </h4>
80
+ )}
81
+
82
+ <ul class={classes.list} data-slot="list">
83
+ <slot>
84
+ {normalizedLinks.map((link) => (
85
+ <li class={classes.item} data-slot="item">
86
+ <RLALink
87
+ variant={link.variant ?? "ghost"}
88
+ color={link.color ?? "neutral"}
89
+ theme={link.theme ?? theme}
90
+ class:list={[overrideLinkClass, "w-full !justify-start"]}
91
+ data-slot="link"
92
+ {...link}
93
+ >
94
+ {link.label}
95
+ </RLALink>
96
+ </li>
97
+ ))}
98
+ </slot>
99
+ </ul>
19
100
  </div>
@@ -1,19 +1,23 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { ListboxProps } from "../../types"
5
- import listboxThemeDefault from "../../themes/listbox.theme"
6
-
7
- const listbox = scv(listboxThemeDefault)
8
-
9
- const {
10
- ui: uiProp,
11
- class: className,
12
- ...rest
13
- } = Astro.props as ListboxProps
14
-
15
- const classes = resolveClasses(listbox, {}, useUi("listbox", 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 { ListboxProps } from "../../types"
5
+ import listboxThemeDefault, { createListboxTheme } from "../../themes/listbox.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const listboxTheme = uiConfig.colors ? createListboxTheme() : listboxThemeDefault
10
+
11
+ const listbox = scv(listboxTheme)
12
+
13
+ const {
14
+ ui: uiProp,
15
+ class: className,
16
+ ...rest
17
+ } = Astro.props as ListboxProps
18
+
19
+ const classes = resolveClasses(listbox, {}, useUi("listbox", uiProp), className);
20
+ ---
21
+ <div class={classes.root} data-slot="root" {...rest}>
22
+ <slot />
19
23
  </div>
@@ -1,110 +1,137 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { LocaleSelectorProps } from "../../types"
5
- import localeSelectorTheme from "../../themes/locale-selector.theme"
6
- import { getRelativeLocaleUrlList, getRelativeLocaleUrl } from "astro:i18n";
7
-
8
- const localeSelector = scv(localeSelectorTheme)
9
-
10
- const {
11
- locales,
12
- variant = "default",
13
- size = "md",
14
- ui: uiProp,
15
- class: className,
16
- ...rest
17
- } = Astro.props as LocaleSelectorProps;
18
-
19
- const classes = resolveClasses(localeSelector, {
20
- variant,
21
- size
22
- }, useUi("localeSelector", uiProp), className);
23
-
24
- const currentLocale = Astro.currentLocale ?? 'en';
25
- const localeUrls = [...new Map(getRelativeLocaleUrlList().map(url => {
26
- const locale = url.split('/')[1] || 'en';
27
- return [locale, url];
28
- })).values()];
29
-
30
- const processedLocales = locales && locales.length > 0
31
- ? locales.map(item => typeof item === 'string' ? { code: item, label: item } : item)
32
- : [...new Map(getRelativeLocaleUrlList().map(url => {
33
- const locale = url.split('/')[1] || 'en';
34
- return [locale, { code: locale, label: locale }];
35
- })).values()];
36
-
37
- function getLocaleDisplayName(localeCode: string): string {
38
- try {
39
- const formatter = new Intl.DisplayNames([localeCode], { type: 'language' });
40
- const nativeName = formatter.of(localeCode);
41
-
42
- return nativeName
43
- ? nativeName.charAt(0).toUpperCase() + nativeName.slice(1)
44
- : localeCode.toUpperCase();
45
- } catch (e) {
46
- return localeCode.toUpperCase();
47
- }
48
- }
49
- ---
50
-
51
- <div class:list={[classes.root]} {...rest}>
52
- {Astro.slots.has("label") && (
53
- <label for="language-picker" class:list={[classes.label]}>
54
- <slot name="label" />
55
- </label>
56
- )}
57
-
58
- <div class:list={[classes.wrapper]}>
59
- <select
60
- id="language-picker"
61
- class:list={[classes.select]}
62
- aria-label="Select language"
63
- data-variant={variant}
64
- data-size={size}
65
- >
66
- {processedLocales.map((item) => {
67
- const targetUrl = getRelativeLocaleUrl(item.code, Astro.url.pathname.replace(/^\/[^/]+/, ''));
68
- return (
69
- <option
70
- value={targetUrl}
71
- selected={currentLocale === item.code}
72
- class:list={[classes.option]}
73
- >
74
- {item.label !== item.code ? item.label : getLocaleDisplayName(item.code)}
75
- </option>
76
- );
77
- })}
78
- </select>
79
-
80
- <div class:list={[classes.iconWrapper]}>
81
- <slot name="icon">
82
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4 opacity-70">
83
- <path fill-rule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" />
84
- </svg>
85
- </slot>
86
- </div>
87
- </div>
88
- </div>
89
-
90
- <script>
91
- const initializeLanguagePicker = () => {
92
- const languagePickers = document.querySelectorAll('#language-picker');
93
-
94
- languagePickers.forEach(picker => {
95
- if (picker.hasAttribute('data-initialized')) return;
96
- picker.setAttribute('data-initialized', 'true');
97
-
98
- picker.addEventListener('change', (event) => {
99
- const target = event.target as HTMLSelectElement;
100
- const targetUrl = target.value;
101
- if (targetUrl) {
102
- window.location.href = targetUrl;
103
- }
104
- });
105
- });
106
- };
107
-
108
- document.addEventListener('DOMContentLoaded', initializeLanguagePicker);
109
- document.addEventListener('astro:page-load', initializeLanguagePicker);
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { LocaleSelectorProps } from "../../types"
5
+ import localeSelectorThemeDefault, { createLocaleSelectorTheme } from "../../themes/locale-selector.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+ import { getRelativeLocaleUrlList, getRelativeLocaleUrl } from "astro:i18n"
8
+ import RLASelect from "./RLASelect.astro"
9
+
10
+ const uiConfig = getUIConfig()
11
+ const localeSelectorTheme = uiConfig.colors ? createLocaleSelectorTheme() : localeSelectorThemeDefault
12
+
13
+ const localeSelector = scv(localeSelectorTheme)
14
+
15
+ const {
16
+ locales,
17
+ variant = "default",
18
+ size = "md",
19
+ ui: uiProp,
20
+ class: className,
21
+ ...rest
22
+ } = Astro.props as LocaleSelectorProps;
23
+
24
+ const classes = resolveClasses(localeSelector, {
25
+ variant,
26
+ size
27
+ }, useUi("localeSelector", uiProp), className);
28
+
29
+ const currentLocale = Astro.currentLocale ?? 'en';
30
+
31
+ const processedLocales = locales && locales.length > 0
32
+ ? locales.map(item => typeof item === 'string' ? { code: item, label: item } : item)
33
+ : [...new Map(getRelativeLocaleUrlList().map(url => {
34
+ const locale = url.split('/')[1] || 'en';
35
+ return [locale, { code: locale, label: locale }];
36
+ })).values()];
37
+
38
+ function getLocaleDisplayName(localeCode: string): string {
39
+ try {
40
+ const formatter = new Intl.DisplayNames([localeCode], { type: 'language' });
41
+ const nativeName = formatter.of(localeCode);
42
+
43
+ return nativeName
44
+ ? nativeName.charAt(0).toUpperCase() + nativeName.slice(1)
45
+ : localeCode.toUpperCase();
46
+ } catch (e) {
47
+ return localeCode.toUpperCase();
48
+ }
49
+ }
50
+
51
+ const items = processedLocales.map((item) => {
52
+ const targetUrl = getRelativeLocaleUrl(item.code, Astro.url.pathname.replace(/^\/[^/]+/, ''));
53
+ return {
54
+ label: item.label !== item.code ? item.label : getLocaleDisplayName(item.code),
55
+ value: targetUrl,
56
+ code: item.code
57
+ };
58
+ });
59
+
60
+ const currentLocaleUrl = items.find(item => item.code === currentLocale)?.value || "";
61
+
62
+ // Prefix utility classes in classes.select with `!` to cleanly override conflicting styles in RLASelect's base trigger
63
+ // Also remove `pr-` classes which were meant for absolute positioned native select icons
64
+ const overrideTriggerClass = classes.select
65
+ ? classes.select
66
+ .split(" ")
67
+ .map(cls => {
68
+ if (!cls) return "";
69
+ if (cls.startsWith("pr-") || cls.startsWith("!pr-")) return ""; // Strip padding-right
70
+ if (cls.includes(":")) {
71
+ const parts = cls.split(":");
72
+ const state = parts.slice(0, -1).join(":");
73
+ const baseCls = parts[parts.length - 1];
74
+ return `${state}:!${baseCls}`;
75
+ }
76
+ return `!${cls}`;
77
+ })
78
+ .filter(Boolean)
79
+ .join(" ")
80
+ : "";
81
+
82
+ const gapClass = size === "sm" ? "gap-1.5" : size === "lg" ? "gap-3" : "gap-2";
83
+
84
+ const isDefault = variant === "default";
85
+ const triggerDarkModeOverrides = isDefault
86
+ ? "dark:!bg-neutral-800 dark:!text-white dark:hover:!bg-neutral-700"
87
+ : "";
88
+
89
+ const selectUi = {
90
+ root: "!w-fit !inline-flex",
91
+ trigger: `flex items-center justify-between !w-fit ${gapClass} ${overrideTriggerClass} ${triggerDarkModeOverrides}`,
92
+ content: "!min-w-0 !w-full !bg-white !border-gray-200 !text-gray-800 dark:!bg-neutral-900 dark:!border-neutral-800 dark:!text-white",
93
+ item: "!text-gray-700 hover:!bg-gray-100 hover:!text-gray-900 dark:!text-neutral-300 dark:hover:!bg-neutral-800 dark:hover:!text-white"
94
+ };
95
+ ---
96
+
97
+ <div class:list={[classes.root]} data-locale-selector {...rest}>
98
+ {Astro.slots.has("label") && (
99
+ <label class:list={[classes.label]}>
100
+ <slot name="label" />
101
+ </label>
102
+ )}
103
+
104
+ <div class:list={[classes.wrapper]}>
105
+ <RLASelect
106
+ items={items}
107
+ value={currentLocaleUrl}
108
+ size={size}
109
+ ui={selectUi}
110
+ />
111
+ </div>
112
+ </div>
113
+
114
+ <script>
115
+ const initializeLocaleSelector = () => {
116
+ const selectors = document.querySelectorAll('[data-locale-selector]');
117
+
118
+ selectors.forEach(selector => {
119
+ if (selector.hasAttribute('data-initialized')) return;
120
+ selector.setAttribute('data-initialized', 'true');
121
+
122
+ const hiddenInput = selector.querySelector('[data-select-hidden-input]') as HTMLInputElement;
123
+ if (!hiddenInput) return;
124
+
125
+ hiddenInput.addEventListener('change', (event) => {
126
+ const target = event.target as HTMLInputElement;
127
+ const targetUrl = target.value;
128
+ if (targetUrl) {
129
+ window.location.href = targetUrl;
130
+ }
131
+ });
132
+ });
133
+ };
134
+
135
+ document.addEventListener('DOMContentLoaded', initializeLocaleSelector);
136
+ document.addEventListener('astro:page-load', initializeLocaleSelector);
110
137
  </script>