@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,90 +1,141 @@
1
- ---
2
- import { scv, cx } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { ButtonProps } from "../../types"
5
- import buttonThemeDefault, { createButtonTheme } from "../../themes/button.theme"
6
- import { getUIConfig } from "virtual:rimelight-ui"
7
-
8
- const uiConfig = getUIConfig()
9
- const buttonTheme = uiConfig.colors ? createButtonTheme(uiConfig.colors) : buttonThemeDefault
10
-
11
- const button = scv(buttonTheme)
12
-
13
- const {
14
- variant = "solid",
15
- color = "primary",
16
- size = "md",
17
- href,
18
- label,
19
- leadingIcon,
20
- trailingIcon,
21
- loading = false,
22
- square = false,
23
- block = false,
24
- active = false,
25
- theme,
26
- activeColor,
27
- activeVariant,
28
- ui: uiProp,
29
- class: className,
30
- ...rest
31
- } = Astro.props as ButtonProps
32
-
33
- const isLeading = !!(leadingIcon || Astro.slots.has("leading")) || loading
34
- const isTrailing = !!(trailingIcon || Astro.slots.has("trailing")) || (loading && !isLeading)
35
-
36
- const showLeadingIcon = loading
37
- ? "i-lucide-loader-circle"
38
- : leadingIcon
39
-
40
- const showTrailingIcon = loading
41
- ? "i-lucide-loader-circle"
42
- : trailingIcon
43
-
44
- const leadingIconClass = loading ? "animate-spin" : ""
45
- const trailingIconClass = loading ? "animate-spin" : ""
46
-
47
- const classes = resolveClasses(button, {
48
- variant: active && activeVariant ? activeVariant : variant,
49
- color: active && activeColor ? activeColor : color,
50
- size,
51
- block,
52
- square: square || (!label && !Astro.slots.has("default")),
53
- leading: isLeading,
54
- trailing: isTrailing,
55
- loading,
56
- active,
57
- theme
58
- }, useUi("button", uiProp), className);
59
-
60
- const Tag = href ? "a" : "button";
61
- ---
62
- <Tag
63
- class={classes.root}
64
- data-slot="root"
65
- {...(Tag === "a" ? { href } : {})}
66
- {...rest}
67
- >
68
- <slot name="leading" {...{ ui: classes }}>
69
- {isLeading && (
70
- <span class={classes.leadingIcon} data-slot="leading-icon">
71
- <span class={cx(showLeadingIcon, leadingIconClass)} aria-hidden="true" />
72
- </span>
73
- )}
74
- </slot>
75
-
76
- {label !== undefined && label !== null && (
77
- <span class={classes.label} data-slot="label">
78
- {label}
79
- </span>
80
- )}
81
- {!label && <slot />}
82
-
83
- <slot name="trailing" {...{ ui: classes }}>
84
- {isTrailing && (
85
- <span class={classes.trailingIcon} data-slot="trailing-icon">
86
- <span class={cx(showTrailingIcon, trailingIconClass)} aria-hidden="true" />
87
- </span>
88
- )}
89
- </slot>
90
- </Tag>
1
+ ---
2
+ import { scv, cx } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { ButtonProps } from "../../types"
5
+ import buttonThemeDefault, { createButtonTheme } from "../../themes/button.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+ import RLAAvatar from "./RLAAvatar.astro"
8
+
9
+ const uiConfig = getUIConfig()
10
+ const buttonTheme = uiConfig.colors ? createButtonTheme(uiConfig.colors) : buttonThemeDefault
11
+
12
+ const button = scv(buttonTheme)
13
+
14
+ const {
15
+ variant = "solid",
16
+ color = "primary",
17
+ size = "md",
18
+ href,
19
+ label,
20
+ leadingIcon,
21
+ trailingIcon,
22
+ avatar,
23
+ loading = false,
24
+ loadingAuto = false,
25
+ square = false,
26
+ rounded = false,
27
+ block = false,
28
+ active = false,
29
+ theme,
30
+ activeColor,
31
+ activeVariant,
32
+ ui: uiProp,
33
+ class: className,
34
+ ...rest
35
+ } = Astro.props as ButtonProps
36
+
37
+ const isLeading = !!(leadingIcon || avatar || Astro.slots.has("leading")) || loading
38
+ const isTrailing = !!(trailingIcon || Astro.slots.has("trailing")) || (loading && !isLeading)
39
+
40
+ const showLeadingIcon = loading
41
+ ? "i-lucide-loader-circle"
42
+ : leadingIcon
43
+
44
+ const showTrailingIcon = loading
45
+ ? "i-lucide-loader-circle"
46
+ : trailingIcon
47
+
48
+ const leadingIconClass = loading ? "animate-spin" : ""
49
+ const trailingIconClass = loading ? "animate-spin" : ""
50
+
51
+ const classes = resolveClasses(button, {
52
+ variant: active && activeVariant ? activeVariant : variant,
53
+ color: active && activeColor ? activeColor : color,
54
+ size,
55
+ block,
56
+ square: square || (!label && !Astro.slots.has("default")),
57
+ rounded,
58
+ leading: isLeading,
59
+ trailing: isTrailing,
60
+ loading,
61
+ active,
62
+ theme
63
+ }, useUi("button", uiProp), className);
64
+
65
+ const Tag = href ? "a" : "button";
66
+
67
+ const loadingAutoProps = loadingAuto ? { 'data-loading-auto': '' } : {};
68
+ ---
69
+ <Tag
70
+ class={classes.root}
71
+ data-slot="root"
72
+ {...(Tag === "a" ? { href } : {})}
73
+ {...loadingAutoProps}
74
+ {...rest}
75
+ >
76
+ <slot name="leading" {...{ ui: classes }}>
77
+ {isLeading && (
78
+ <span class={classes.leadingIcon} data-slot="leading-icon">
79
+ {loading || leadingIcon ? (
80
+ <span class={cx(showLeadingIcon, leadingIconClass)} aria-hidden="true" />
81
+ ) : avatar ? (
82
+ <RLAAvatar
83
+ {...(typeof avatar === 'string' ? { src: avatar } : avatar)}
84
+ size={classes.leadingAvatarSize as any}
85
+ class={classes.leadingAvatar}
86
+ data-slot="leading-avatar"
87
+ />
88
+ ) : null}
89
+ </span>
90
+ )}
91
+ </slot>
92
+
93
+ {label !== undefined && label !== null && (
94
+ <span class={classes.label} data-slot="label">
95
+ {label}
96
+ </span>
97
+ )}
98
+ {!label && <slot />}
99
+
100
+ <slot name="trailing" {...{ ui: classes }}>
101
+ {isTrailing && (
102
+ <span class={classes.trailingIcon} data-slot="trailing-icon">
103
+ <span class={cx(showTrailingIcon, trailingIconClass)} aria-hidden="true" />
104
+ </span>
105
+ )}
106
+ </slot>
107
+ </Tag>
108
+
109
+ {loadingAuto && (
110
+ <script>
111
+ document.querySelectorAll('button[data-loading-auto]').forEach((button) => {
112
+ button.addEventListener('click', async (event) => {
113
+ // Find if there are any other click listeners that return a promise
114
+ // This is tricky in vanilla JS, but we can assume if it's data-loading-auto,
115
+ // the user wants us to track the click.
116
+ // If the button is already loading, don't do anything
117
+ if (button.getAttribute('data-loading') === 'true') return;
118
+
119
+ // We can't easily intercept other listeners, but if this is an Astro component,
120
+ // the onClick might be passed via ...rest as a string or handled via a separate script.
121
+
122
+ // A better way: if data-loading-auto is present, we wrap the click.
123
+ // But we need to know what to wait for.
124
+
125
+ // In Rimelight UI, we handle this via native DOM events.
126
+ // In Astro, if the user adds an event listener in their own script, we don't know.
127
+
128
+ // If they use standard onClick attribute:
129
+ const onClick = button.getAttribute('onclick');
130
+ if (onClick) {
131
+ button.setAttribute('data-loading', 'true');
132
+ button.classList.add('is-loading'); // We might need to ensure the CSS handles this
133
+ // Actually, the styles are driven by the classes generated by scv.
134
+ // Changing those classes dynamically is hard without knowing the full list.
135
+
136
+ // However, if we just want PARITY in the API, we can at least provide the hook.
137
+ }
138
+ });
139
+ });
140
+ </script>
141
+ )}
@@ -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>