@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
@@ -0,0 +1,220 @@
1
+ import type { AstroUserConfig } from "astro"
2
+
3
+ export type AstroSecurityConfig = NonNullable<AstroUserConfig["security"]>
4
+ export type AstroCspConfig = Exclude<NonNullable<AstroSecurityConfig["csp"]>, boolean>
5
+
6
+ export interface SecurityConfigOptions {
7
+ /**
8
+ * The base domain name for this project (e.g., "starter.rimelight.com") used to autoconfigure
9
+ * standard allowedDomains and img-src CDN targets.
10
+ */
11
+ domain: string
12
+ /**
13
+ * Additional Allowed Domains (appended to the default wildcard subdomains of `domain`)
14
+ */
15
+ allowedDomains?: AstroSecurityConfig["allowedDomains"]
16
+ /**
17
+ * Additional sources to allow for img-src directive
18
+ */
19
+ imgSrc?: string[]
20
+ /**
21
+ * Additional sources to allow for connect-src directive
22
+ */
23
+ connectSrc?: string[]
24
+ /**
25
+ * Additional sources to allow for frame-src directive
26
+ */
27
+ frameSrc?: string[]
28
+ /**
29
+ * Additional script resources
30
+ */
31
+ scriptResources?: string[]
32
+ /**
33
+ * Additional style resources
34
+ */
35
+ styleResources?: string[]
36
+ /**
37
+ * Direct overrides for any security config fields
38
+ */
39
+ overrides?: Partial<Omit<AstroSecurityConfig, "csp">> & {
40
+ csp?: Partial<AstroCspConfig>
41
+ }
42
+ }
43
+
44
+ /**
45
+ * Generates a standard, strictly configured Security/CSP object for Astro configurations with
46
+ * support for easy customization and additions per project.
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * // Default returned shape:
51
+ * {
52
+ * checkOrigin: true,
53
+ * allowedDomains: [
54
+ * {
55
+ * hostname: "**.domain.com",
56
+ * protocol: "https"
57
+ * }
58
+ * ],
59
+ * csp: {
60
+ * algorithm: "SHA-384",
61
+ * directives: [
62
+ * "default-src 'none'",
63
+ * "img-src 'self' data: https://cdn.domain.com https://i3.ytimg.com https://www.youtube.com https://www.youtube-nocookie.com",
64
+ * "font-src 'self'",
65
+ * "connect-src 'self' https://cloudflareinsights.com",
66
+ * "frame-ancestors 'none'",
67
+ * "frame-src https://www.youtube.com https://www.youtube-nocookie.com",
68
+ * "upgrade-insecure-requests",
69
+ * "base-uri 'self'",
70
+ * "form-action 'self'"
71
+ * ],
72
+ * scriptDirective: {
73
+ * resources: [
74
+ * "'self'",
75
+ * "https://static.cloudflareinsights.com",
76
+ * "https://betterlytics.io/analytics.js",
77
+ * "'inline-speculation-rules'"
78
+ * ]
79
+ * },
80
+ * styleDirective: {
81
+ * resources: [
82
+ * "'self'",
83
+ * "'sha256-SKuaOGnks7NAUq37nvw1PfGEE0lOAs5ERbiYRbGFIbw='"
84
+ * ]
85
+ * }
86
+ * }
87
+ * }
88
+ * ```
89
+ */
90
+ export function defineSecurity(options: SecurityConfigOptions): AstroSecurityConfig {
91
+ const { domain, overrides } = options
92
+ const domainWithWildcard = `**.${domain}`
93
+
94
+ // 1. Build default allowed domains
95
+ const allowedDomains = [
96
+ {
97
+ hostname: domainWithWildcard,
98
+ protocol: "https" as const
99
+ },
100
+ ...(options.allowedDomains || [])
101
+ ]
102
+
103
+ // 2. Build CSP directives
104
+ const imgSources = Array.from(
105
+ new Set([
106
+ "'self'",
107
+ "data:",
108
+ `https://cdn.${domain}`,
109
+ "https://i3.ytimg.com",
110
+ "https://www.youtube.com",
111
+ "https://www.youtube-nocookie.com",
112
+ ...(options.imgSrc || [])
113
+ ])
114
+ )
115
+
116
+ const connectSources = Array.from(
117
+ new Set(["'self'", "https://cloudflareinsights.com", ...(options.connectSrc || [])])
118
+ )
119
+
120
+ const frameSources = Array.from(
121
+ new Set([
122
+ "https://www.youtube.com",
123
+ "https://www.youtube-nocookie.com",
124
+ ...(options.frameSrc || [])
125
+ ])
126
+ )
127
+
128
+ const baseDirectives: AstroCspConfig["directives"] = [
129
+ "default-src 'none'",
130
+ `img-src ${imgSources.join(" ")}`,
131
+ "font-src 'self'",
132
+ `connect-src ${connectSources.join(" ")}`,
133
+ "frame-ancestors 'none'",
134
+ `frame-src ${frameSources.join(" ")}`,
135
+ "upgrade-insecure-requests",
136
+ "base-uri 'self'",
137
+ "form-action 'self'"
138
+ ]
139
+
140
+ // 3. Build script & style directives
141
+ const scriptResources = Array.from(
142
+ new Set([
143
+ "'self'",
144
+ "https://static.cloudflareinsights.com",
145
+ "https://betterlytics.io/analytics.js",
146
+ "'inline-speculation-rules'",
147
+ // Astro ClientRouter (View Transitions)
148
+ "'sha256-ZuMSxilKU+4KIM8LWna4lqBEKzd6WaiAjz6gamhm7zM='",
149
+ ...(options.scriptResources || [])
150
+ ])
151
+ )
152
+
153
+ const styleResources = Array.from(
154
+ new Set([
155
+ "'self'",
156
+ // Astro ClientRouter (View Transitions)
157
+ "'sha256-SKuaOGnks7NAUq37nvw1PfGEE0lOAs5ERbiYRbGFIbw='",
158
+ ...(options.styleResources || [])
159
+ ])
160
+ )
161
+
162
+ // 4. Build base SecurityConfig
163
+ const securityConfig: AstroSecurityConfig = {
164
+ checkOrigin: true,
165
+ allowedDomains,
166
+ csp: {
167
+ algorithm: "SHA-384",
168
+ directives: baseDirectives,
169
+ scriptDirective: {
170
+ resources: scriptResources
171
+ },
172
+ styleDirective: {
173
+ resources: styleResources
174
+ }
175
+ }
176
+ }
177
+
178
+ // 5. Merge overrides
179
+ if (overrides) {
180
+ const { csp, ...restOverrides } = overrides
181
+ Object.assign(securityConfig, restOverrides)
182
+ if (csp && typeof securityConfig.csp === "object" && securityConfig.csp !== null) {
183
+ const currentCsp = securityConfig.csp
184
+ const mergedCsp: AstroCspConfig = {
185
+ ...currentCsp,
186
+ ...csp
187
+ }
188
+
189
+ if (csp.scriptDirective || currentCsp.scriptDirective) {
190
+ mergedCsp.scriptDirective = {
191
+ ...currentCsp.scriptDirective,
192
+ ...csp.scriptDirective,
193
+ resources: Array.from(
194
+ new Set([
195
+ ...(currentCsp.scriptDirective?.resources || []),
196
+ ...(csp.scriptDirective?.resources || [])
197
+ ])
198
+ )
199
+ }
200
+ }
201
+
202
+ if (csp.styleDirective || currentCsp.styleDirective) {
203
+ mergedCsp.styleDirective = {
204
+ ...currentCsp.styleDirective,
205
+ ...csp.styleDirective,
206
+ resources: Array.from(
207
+ new Set([
208
+ ...(currentCsp.styleDirective?.resources || []),
209
+ ...(csp.styleDirective?.resources || [])
210
+ ])
211
+ )
212
+ }
213
+ }
214
+
215
+ securityConfig.csp = mergedCsp
216
+ }
217
+ }
218
+
219
+ return securityConfig
220
+ }
package/src/env.d.ts CHANGED
@@ -1,10 +1,5 @@
1
1
  /// <reference types="astro/client" />
2
2
 
3
- declare module "virtual:nuxt-ui-plugins" {
4
- import type { Plugin } from "vue"
5
- const plugin: Plugin
6
- export default plugin
7
- }
8
3
 
9
4
  declare module "virtual:rimelight-ui" {
10
5
  import type { DefaultUIConfig } from "../themes"
@@ -17,11 +12,6 @@ interface StarlightAddonsConfig {
17
12
  share?: boolean
18
13
  }
19
14
 
20
- declare module "virtual:rimelight-starlight-addons-config" {
21
- const config: StarlightAddonsConfig
22
- export default config
23
- }
24
-
25
15
  declare module "virtual:rimelight-ui-docs-meta" {
26
16
  const meta: Record<string, unknown>
27
17
  export default meta
@@ -43,8 +33,5 @@ declare module "turndown-plugin-gfm" {
43
33
  declare namespace App {
44
34
  interface Locals {
45
35
  cfContext?: Record<string, unknown>
46
- // Extended locals used by Starlight Addons for richer type safety
47
- starlightSidebarTopics?: any
48
- starlightRoute?: any
49
36
  }
50
37
  }
@@ -1,208 +1,199 @@
1
- import type { AstroIntegration } from "astro"
2
- import UnoCSS from "unocss/astro"
3
- import vue from "@astrojs/vue"
4
- import uiPlugin from "@nuxt/ui/vite"
5
- import defu from "defu"
6
- import tailwindcss from "@tailwindcss/vite"
7
- import { defaultUIConfig } from "../themes"
8
- import type { ComponentTheme } from "../utils/defineTheme"
9
- import rimelightUiPreset, { uiSrcGlob, uiFilesystemGlob } from "../presets"
10
-
11
- /**
12
- * Shape of the `ui` config that can be passed to the integration.
13
- */
14
- export type UIConfigOverrides = Record<string, Partial<ComponentTheme>>
15
-
16
- export interface UIOptions {
17
- /**
18
- * Configuration for the Logo component variants.
19
- */
20
- logos?: Record<
21
- string,
22
- | string
23
- | {
24
- light?: string
25
- dark?: string
26
- color?: string
27
- white?: string
28
- black?: string
29
- [key: string]: string | undefined
30
- }
31
- >
32
- /**
33
- * Global UI overrides applied to all components. Merged with defaults via `defu` (first arg
34
- * wins).
35
- */
36
- ui?: UIConfigOverrides
37
- /**
38
- * Custom colors. Each color can be:
39
- *
40
- * - **Flat format**: `{ "500": "#7146ff", "600": "#6222ff" }` — used in all modes.
41
- * No mode-specific buckets needed.
42
- *
43
- * - **Mode format**: flat shades at root define the base; `light`, `dark`,
44
- * `flat` buckets layer on top:
45
- *
46
- * ```ts
47
- * { "500": "base", light: { "600": "light-blue" }, dark: { "500": "dark-blue" } }
48
- * ```
49
- *
50
- * Each shade falls back through: **mode bucket → flat → unthemed → light → dark**.
51
- * Defining a single source (e.g. only `dark`) propagates to all modes.
52
- *
53
- * Use the `theme` prop on components to pin colors: `<Button theme="flat">` forces
54
- * the flat bucket regardless of current mode.
55
- */
56
- colors?: Record<string, Record<string, string> | { light?: Record<string, string>; dark?: Record<string, string>; flat?: Record<string, string> }>
57
- /**
58
- * When `true`, auto-generates missing `light`/`dark` mode buckets from flat color values
59
- * using `color-mix(in oklch, ...)`. Explicitly provided buckets always take precedence.
60
- * Defaults to `true`.
61
- */
62
- autogenerateColorModes?: boolean
63
- }
64
-
65
- /**
66
- * Astro integration for `@rimelight/ui`.
67
- *
68
- * Provides global UI configuration via a virtual module. Components import `virtual:rimelight-ui`
69
- * to access the merged config.
70
- *
71
- * @example
72
- * // astro.config.mjs
73
- * import { ui } from "@rimelight/ui/integrations"
74
- *
75
- * export default defineConfig({
76
- * integrations: [
77
- * ui({
78
- * ui: {
79
- * button: {
80
- * defaultVariants: { variant: "primary" }
81
- * }
82
- * }
83
- * })
84
- * ]
85
- * })
86
- */
87
- export function ui(options: UIOptions = {}): AstroIntegration[] {
88
- const resolvedUI = defu(options.ui ?? {}, defaultUIConfig)
89
- const coreColors = [
90
- "primary",
91
- "secondary",
92
- "info",
93
- "success",
94
- "warning",
95
- "error",
96
- "commentary",
97
- "ideation",
98
- "source"
99
- ]
100
- const userColors = options.colors ?? {}
101
- const userColorNames = Object.keys(userColors)
102
- const mergedColors = [...new Set([...coreColors, ...userColorNames])]
103
- const resolvedConfig = {
104
- ...resolvedUI,
105
- logos: options.logos ?? {},
106
- colors: mergedColors
107
- }
108
-
109
- const virtualModuleId = "virtual:rimelight-ui"
110
- const resolvedVirtualModuleId = "\0" + virtualModuleId
111
-
112
- function setViteConfig(updateConfig: (config: Record<string, unknown>) => void) {
113
- updateConfig({
114
- vite: {
115
- optimizeDeps: {
116
- exclude: [
117
- "@rimelight/ui",
118
- "@rimelight/ui/vue-plugin",
119
- "@rimelight/ui/integrations/vue-entrypoint",
120
- "@nuxt/ui"
121
- ]
122
- },
123
- ssr: {
124
- noExternal: ["@rimelight/ui", "@nuxt/ui"],
125
- optimizeDeps: {
126
- exclude: ["@rimelight/ui/vue-plugin", "@rimelight/ui/integrations/vue-entrypoint"]
127
- }
128
- },
129
- plugins: [
130
- uiPlugin({
131
- router: false,
132
- colorMode: false,
133
- scanPackages: ["@rimelight/ui"]
134
- }),
135
- tailwindcss(),
136
- {
137
- name: "vite-plugin-rimelight-ui-config",
138
- enforce: "pre",
139
- resolveId(id: string) {
140
- if (id === virtualModuleId) return resolvedVirtualModuleId
141
- return null
142
- },
143
- load(id: string) {
144
- if (id === resolvedVirtualModuleId) {
145
- return `export const getUIConfig = () => (${JSON.stringify(resolvedConfig)});`
146
- }
147
- return null
148
- }
149
- }
150
- ]
151
- }
152
- })
153
- }
154
-
155
- const rimelightUIIntegration: AstroIntegration = {
156
- name: "@rimelight/ui",
157
- hooks: {
158
- "astro:config:setup": ({ updateConfig, logger }) => {
159
- logger.info("Initializing @rimelight/ui core")
160
- setViteConfig(updateConfig)
161
- }
162
- }
163
- }
164
-
165
- return [
166
- UnoCSS({
167
- presets: [rimelightUiPreset({ colors: userColors, autogenerateColorModes: options.autogenerateColorModes })],
168
- content: {
169
- pipeline: {
170
- include: [
171
- /\.(vue|svelte|[jt]sx|mdx?|astro|elm|php|phtml|html)($|\?)/,
172
- "src/**/*.{js,ts,jsx,tsx,vue,svelte,astro}",
173
- uiSrcGlob,
174
- "../ui/src/**/*.{js,ts,jsx,tsx,vue,svelte,astro}"
175
- ]
176
- },
177
- filesystem: [uiFilesystemGlob, "../ui/src/**/*", "src/components/**/*", "src/pages/**/*"]
178
- },
179
- shortcuts: {
180
- "container": "mx-auto w-full max-w-90rem px-md",
181
- "sr-only":
182
- "absolute w-px h-px p-0 m-0 overflow-hidden clip-rect-1-1-1-1 whitespace-nowrap border-0"
183
- },
184
- rules: [
185
- [
186
- /^clip-rect-(\d+)-(\d+)-(\d+)-(\d+)$/,
187
- ([, t, r, b, l]) => ({ clip: `rect(${t}px, ${r}px, ${b}px, ${l}px)` })
188
- ]
189
- ],
190
- configResolved(config) {
191
- if (process.env.NODE_ENV === "development" && !process.env.UNO_CONFIG_LOGGED) {
192
- process.env.UNO_CONFIG_LOGGED = "true"
193
- console.log(`[UnoCSS] Presets: ${config.presets.map((p) => p.name).join(", ")}`)
194
- console.log(`[UnoCSS] Rules: ${config.rules.length}`)
195
- console.log(`[UnoCSS] Shortcuts: ${Object.keys(config.shortcuts).length}`)
196
- const ruleNames = config.rules.map((r) => (Array.isArray(r) ? r[0].toString() : "dynamic"))
197
- const duplicates = ruleNames.filter((item, index) => ruleNames.indexOf(item) !== index)
198
- const filtered = duplicates.filter((d) => d !== "/^(.+?)-(\\$.+)$/")
199
- if (filtered.length > 0) console.warn(`[UnoCSS] Rule collisions: ${filtered.join(", ")}`)
200
- }
201
- }
202
- }),
203
- vue({
204
- appEntrypoint: "@rimelight/ui/integrations/vue-entrypoint"
205
- }),
206
- rimelightUIIntegration
207
- ]
208
- }
1
+ import type { AstroIntegration } from "astro"
2
+ import UnoCSS from "unocss/astro"
3
+ import vue from "@astrojs/vue"
4
+ import defu from "defu"
5
+ import { defaultUIConfig } from "../themes"
6
+ import type { ComponentTheme } from "../utils/defineTheme"
7
+ import rimelightUiPreset, {
8
+ uiSrcGlob,
9
+ uiFilesystemGlob,
10
+ type ColorConfigValue,
11
+ type RimelightPresetOptions
12
+ } from "../presets"
13
+
14
+ /**
15
+ * Shape of the `ui` config that can be passed to the integration.
16
+ */
17
+ export type UIConfigOverrides = Record<string, Partial<ComponentTheme>>
18
+
19
+ export interface UIOptions {
20
+ /**
21
+ * Configuration for the Logo component variants.
22
+ */
23
+ logos?: Record<
24
+ string,
25
+ | string
26
+ | {
27
+ light?: string
28
+ dark?: string
29
+ color?: string
30
+ white?: string
31
+ black?: string
32
+ [key: string]: string | undefined
33
+ }
34
+ >
35
+ /**
36
+ * Global UI overrides applied to all components. Merged with defaults via `defu` (first arg
37
+ * wins).
38
+ */
39
+ ui?: UIConfigOverrides
40
+ /**
41
+ * Custom colors. Each color can be:
42
+ *
43
+ * - **Flat format**: `{ "500": "#7146ff", "600": "#6222ff" }` used in all modes. No mode-specific
44
+ * buckets needed.
45
+ * - **Mode format**: flat shades at root define the base; `light`, `dark`, `flat` buckets layer on
46
+ * top:
47
+ *
48
+ * ```ts
49
+ * { "500": "base", light: { "600": "light-blue" }, dark: { "500": "dark-blue" } }
50
+ * ```
51
+ *
52
+ * Each shade falls back through: **mode bucket → flat → unthemed → light → dark**. Defining a
53
+ * single source (e.g. only `dark`) propagates to all modes.
54
+ *
55
+ * Use the `theme` prop on components to pin colors: `<Button theme="flat">` forces the flat
56
+ * bucket regardless of current mode.
57
+ */
58
+ colors?: Record<
59
+ string,
60
+ | Record<string, string>
61
+ | {
62
+ light?: Record<string, string>
63
+ dark?: Record<string, string>
64
+ flat?: Record<string, string>
65
+ }
66
+ >
67
+ /**
68
+ * When `true`, auto-generates missing `light`/`dark` mode buckets from flat color values using
69
+ * `color-mix(in oklch, ...)`. Explicitly provided buckets always take precedence. Defaults to
70
+ * `true`.
71
+ */
72
+ autogenerateColorModes?: boolean
73
+ }
74
+
75
+ /**
76
+ * Astro integration for `@rimelight/ui`.
77
+ *
78
+ * Provides global UI configuration via a virtual module. Components import `virtual:rimelight-ui`
79
+ * to access the merged config.
80
+ *
81
+ * @example
82
+ * // astro.config.mjs
83
+ * import { ui } from "@rimelight/ui/integrations"
84
+ *
85
+ * export default defineConfig({
86
+ * integrations: [
87
+ * ui({
88
+ * ui: {
89
+ * button: {
90
+ * defaultVariants: { variant: "primary" }
91
+ * }
92
+ * }
93
+ * })
94
+ * ]
95
+ * })
96
+ */
97
+ export function ui(options: UIOptions = {}): AstroIntegration[] {
98
+ const resolvedUI = defu(options.ui ?? {}, defaultUIConfig)
99
+ const coreColors = [
100
+ "primary",
101
+ "secondary",
102
+ "info",
103
+ "success",
104
+ "warning",
105
+ "error",
106
+ "commentary",
107
+ "ideation",
108
+ "source"
109
+ ]
110
+ const userColors = (options.colors ?? {}) as Record<string, ColorConfigValue>
111
+ const userColorNames = Object.keys(userColors)
112
+ const mergedColors = [...new Set([...coreColors, ...userColorNames])]
113
+ const presetOptions: RimelightPresetOptions = {
114
+ colors: userColors
115
+ }
116
+ if (options.autogenerateColorModes !== undefined) {
117
+ presetOptions.autogenerateColorModes = options.autogenerateColorModes
118
+ }
119
+ const resolvedConfig = {
120
+ ...resolvedUI,
121
+ logos: options.logos ?? {},
122
+ colors: mergedColors
123
+ }
124
+
125
+ const virtualModuleId = "virtual:rimelight-ui"
126
+ const resolvedVirtualModuleId = "\0" + virtualModuleId
127
+
128
+ function setViteConfig(updateConfig: (config: Record<string, unknown>) => void) {
129
+ updateConfig({
130
+ vite: {
131
+ optimizeDeps: {
132
+ exclude: ["@rimelight/ui"]
133
+ },
134
+ ssr: {
135
+ noExternal: ["@rimelight/ui"]
136
+ },
137
+ plugins: [
138
+ {
139
+ name: "vite-plugin-rimelight-ui-config",
140
+ enforce: "pre",
141
+ resolveId(id: string) {
142
+ if (id === virtualModuleId) return resolvedVirtualModuleId
143
+ return null
144
+ },
145
+ load(id: string) {
146
+ if (id === resolvedVirtualModuleId) {
147
+ return `export const getUIConfig = () => (${JSON.stringify(resolvedConfig)});`
148
+ }
149
+ return null
150
+ }
151
+ }
152
+ ]
153
+ }
154
+ })
155
+ }
156
+
157
+ const rimelightUIIntegration: AstroIntegration = {
158
+ name: "@rimelight/ui",
159
+ hooks: {
160
+ "astro:config:setup": ({ updateConfig, logger }) => {
161
+ logger.info("Initializing @rimelight/ui core")
162
+ setViteConfig(updateConfig)
163
+ }
164
+ }
165
+ }
166
+
167
+ return [
168
+ UnoCSS({
169
+ presets: [rimelightUiPreset(presetOptions)],
170
+ content: {
171
+ pipeline: {
172
+ include: [
173
+ /\.(vue|svelte|[jt]sx|mdx?|astro|elm|php|phtml|html)($|\?)/,
174
+ "src/**/*.{js,ts,jsx,tsx,vue,svelte,astro}",
175
+ uiSrcGlob,
176
+ "../ui/src/**/*.{js,ts,jsx,tsx,vue,svelte,astro}"
177
+ ]
178
+ },
179
+ filesystem: [uiFilesystemGlob, "../ui/src/**/*", "src/components/**/*", "src/pages/**/*"]
180
+ },
181
+ configResolved(config) {
182
+ if (process.env.NODE_ENV === "development" && !process.env.UNO_CONFIG_LOGGED) {
183
+ process.env.UNO_CONFIG_LOGGED = "true"
184
+ console.log(`[UnoCSS] Presets: ${config.presets.map((p) => p.name).join(", ")}`)
185
+ console.log(`[UnoCSS] Rules: ${config.rules.length}`)
186
+ console.log(`[UnoCSS] Shortcuts: ${Object.keys(config.shortcuts).length}`)
187
+ const ruleNames = config.rules.map((r) =>
188
+ Array.isArray(r) ? r[0].toString() : "dynamic"
189
+ )
190
+ const duplicates = ruleNames.filter((item, index) => ruleNames.indexOf(item) !== index)
191
+ const filtered = duplicates.filter((d) => d !== "/^(.+?)-(\\$.+)$/")
192
+ if (filtered.length > 0) console.warn(`[UnoCSS] Rule collisions: ${filtered.join(", ")}`)
193
+ }
194
+ }
195
+ }),
196
+ vue(),
197
+ rimelightUIIntegration
198
+ ]
199
+ }