@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
@@ -2,7 +2,11 @@
2
2
  import { scv } from "css-variants"
3
3
  import { useUi, resolveClasses } from "../../utils"
4
4
  import type { HeaderProps } from "../../types"
5
- import headerTheme from "../../themes/header.theme"
5
+ import headerThemeDefault, { createHeaderTheme } from "../../themes/header.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const headerTheme = uiConfig.colors ? createHeaderTheme() : headerThemeDefault
6
10
 
7
11
  const header = scv(headerTheme)
8
12
 
@@ -34,7 +38,7 @@ const zIndex = 100 - stackIndex;
34
38
  data-rla-header={fixed ? "true" : undefined}
35
39
  data-stack-index={stackIndex}
36
40
  data-hide-on-scroll={String(hideOnScroll)}
37
- style={fixed ? `z-index: ${zIndex};` : undefined}
41
+ data-header-layer-id={headerId}
38
42
  {...rest}
39
43
  >
40
44
  <div class:list={[classes.content]} data-header-content>
@@ -53,55 +57,10 @@ const zIndex = 100 - stackIndex;
53
57
  </header>
54
58
 
55
59
  {fixed && (
56
- <script>
57
- import { getHeaderStack } from "../../utils/headerStack";
58
-
59
- const stack = getHeaderStack();
60
- const headers = document.querySelectorAll("[data-rla-header='true']");
61
-
62
- headers.forEach(header => {
63
- if ((header as any)._rl_initialized) return;
64
- (header as any)._rl_initialized = true;
65
-
66
- const id = header.id;
67
- const stackIndex = parseInt(header.getAttribute("data-stack-index") || "0", 10);
68
- const hideOnScroll = header.getAttribute("data-hide-on-scroll") === "true";
69
- const contentEl = header.querySelector("[data-header-content]") as HTMLElement;
70
-
71
- let naturalHeight = contentEl ? contentEl.offsetHeight : 0;
72
- let isVisible = true;
73
-
74
- const updateStack = () => {
75
- stack.register(id, stackIndex, naturalHeight, isVisible, header as HTMLElement);
76
- };
77
-
78
- if (typeof ResizeObserver !== "undefined" && contentEl) {
79
- new ResizeObserver(entries => {
80
- const h = entries[0]?.contentRect.height;
81
- if (h && h > 0) {
82
- naturalHeight = h;
83
- updateStack();
84
- }
85
- }).observe(contentEl);
86
- }
87
-
88
- if (hideOnScroll) {
89
- let localLastScrollY = window.scrollY;
90
- window.addEventListener("scroll", () => {
91
- const current = window.scrollY;
92
- const diff = current - localLastScrollY;
93
- if (Math.abs(diff) >= 10) {
94
- const newVisible = current <= 50 ? true : diff <= 0;
95
- if (newVisible !== isVisible) {
96
- isVisible = newVisible;
97
- updateStack();
98
- }
99
- localLastScrollY = current;
100
- }
101
- }, { passive: true });
102
- }
103
-
104
- updateStack();
105
- });
106
- </script>
60
+ <style is:inline set:html={`
61
+ #${headerId} {
62
+ z-index: ${zIndex} !important;
63
+ }
64
+ `} />
107
65
  )}
66
+
@@ -1,31 +1,35 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { HoverCardProps } from "../../types"
5
- import hoverCardTheme from "../../themes/hover-card.theme"
6
-
7
- const hoverCard = scv(hoverCardTheme)
8
-
9
- const {
10
- triggerLabel,
11
- placement = "bottom",
12
- ui: uiProp,
13
- class: className,
14
- ...rest
15
- } = Astro.props as HoverCardProps
16
-
17
- const classes = resolveClasses(hoverCard, {
18
- placement
19
- }, useUi("hoverCard", uiProp), className)
20
- ---
21
- <div class={classes.root} data-slot="hover-card-container" {...rest}>
22
- <div class={classes.trigger} data-slot="trigger" tabindex="0">
23
- <slot name="trigger">
24
- {triggerLabel && <span class="cursor-help underline decoration-dotted">{triggerLabel}</span>}
25
- </slot>
26
- </div>
27
-
28
- <div class={classes.content} data-slot="content">
29
- <slot />
30
- </div>
31
- </div>
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { HoverCardProps } from "../../types"
5
+ import hoverCardThemeDefault, { createHoverCardTheme } from "../../themes/hover-card.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const hoverCardTheme = uiConfig.colors ? createHoverCardTheme() : hoverCardThemeDefault
10
+
11
+ const hoverCard = scv(hoverCardTheme)
12
+
13
+ const {
14
+ triggerLabel,
15
+ placement = "bottom",
16
+ ui: uiProp,
17
+ class: className,
18
+ ...rest
19
+ } = Astro.props as HoverCardProps
20
+
21
+ const classes = resolveClasses(hoverCard, {
22
+ placement
23
+ }, useUi("hoverCard", uiProp), className)
24
+ ---
25
+ <div class={classes.root} data-slot="hover-card-container" {...rest}>
26
+ <div class={classes.trigger} data-slot="trigger" tabindex="0">
27
+ <slot name="trigger">
28
+ {triggerLabel && <span class="cursor-help underline decoration-dotted">{triggerLabel}</span>}
29
+ </slot>
30
+ </div>
31
+
32
+ <div class={classes.content} data-slot="content">
33
+ <slot />
34
+ </div>
35
+ </div>
@@ -1,27 +1,31 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { IconProps } from "../../types"
5
- import iconTheme from "../../themes/icon.theme"
6
-
7
- const icon = scv(iconTheme)
8
-
9
- const {
10
- name,
11
- size = "md",
12
- ui: uiProp,
13
- class: className,
14
- ...rest
15
- } = Astro.props as IconProps
16
-
17
- const classes = resolveClasses(icon, { size }, useUi("icon", uiProp), className)
18
- ---
19
-
20
- <span
21
- class={classes.root}
22
- data-slot="root"
23
- aria-hidden="true"
24
- {...rest}
25
- >
26
- <span class={name} />
27
- </span>
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { IconProps } from "../../types"
5
+ import iconThemeDefault, { createIconTheme } from "../../themes/icon.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const iconTheme = uiConfig.colors ? createIconTheme() : iconThemeDefault
10
+
11
+ const icon = scv(iconTheme)
12
+
13
+ const {
14
+ name,
15
+ size = "md",
16
+ ui: uiProp,
17
+ class: className,
18
+ ...rest
19
+ } = Astro.props as IconProps
20
+
21
+ const classes = resolveClasses(icon, { size }, useUi("icon", uiProp), className)
22
+ ---
23
+
24
+ <span
25
+ class={classes.root}
26
+ data-slot="root"
27
+ aria-hidden="true"
28
+ {...rest}
29
+ >
30
+ <span class={name} />
31
+ </span>
@@ -1,19 +1,251 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { ImageProps } from "../../types"
5
- import imageThemeDefault from "../../themes/image.theme"
6
-
7
- const image = scv(imageThemeDefault)
8
-
9
- const {
10
- ui: uiProp,
11
- class: className,
12
- ...rest
13
- } = Astro.props as ImageProps
14
-
15
- const classes = resolveClasses(image, {}, useUi("image", uiProp), className);
16
- ---
17
- <div class={classes.root} data-slot="root" {...rest}>
18
- <slot />
19
- </div>
1
+ ---
2
+ import { Image, Picture, getImage } from "astro:assets"
3
+ import { scv } from "css-variants"
4
+ import { useUi, resolveClasses } from "../../utils"
5
+ import type { ImageProps, ImageMetadataInfo } from "../../types"
6
+ import imageThemeDefault, { createImageTheme } from "../../themes/image.theme"
7
+ import { getUIConfig } from "virtual:rimelight-ui"
8
+
9
+ const uiConfig = getUIConfig()
10
+ const imageTheme = uiConfig.colors ? createImageTheme() : imageThemeDefault
11
+
12
+ const img = scv(imageTheme)
13
+
14
+ const {
15
+ src,
16
+ mobileSrc,
17
+ desktopSrc,
18
+ breakpoint,
19
+ formats,
20
+ alt = "",
21
+ height,
22
+ width,
23
+ loading = "lazy",
24
+ fit = "cover",
25
+ metadata: preMetadata,
26
+ open,
27
+ ui: uiProp,
28
+ class: className,
29
+ metaSource = true,
30
+ metaFormat = true,
31
+ metaDimensions = true,
32
+ metaSize = true,
33
+ metaAlt = true,
34
+ metaDownload = true,
35
+ ...rest
36
+ } = Astro.props as ImageProps
37
+
38
+ const classes = resolveClasses(img, {}, useUi("image", uiProp), className)
39
+
40
+ const isResponsive = !!(mobileSrc && desktopSrc)
41
+ const isFormatFallback = !isResponsive && !!(formats && formats.length > 0)
42
+ const breakpointVal = breakpoint ?? 768
43
+
44
+ let mobileImg = null
45
+ let desktopImg = null
46
+
47
+ if (isResponsive) {
48
+ mobileImg = await getImage({
49
+ src: mobileSrc!,
50
+ format: "webp",
51
+ })
52
+ desktopImg = await getImage({
53
+ src: desktopSrc!,
54
+ format: "webp",
55
+ })
56
+ }
57
+
58
+ const activeSrc = isResponsive ? desktopSrc : src
59
+ const isMetadata = typeof activeSrc !== "string" && activeSrc !== undefined
60
+ const imgWidth = width ?? (isMetadata ? (activeSrc as any).width : undefined)
61
+ const imgHeight = height ?? (isMetadata ? (activeSrc as any).height : undefined)
62
+ const imgFormat = isMetadata ? (activeSrc as any).format : (preMetadata?.format ?? undefined)
63
+ const rawName = activeSrc
64
+ ? (typeof activeSrc === "string" ? activeSrc.split("/").pop() || "image" : (activeSrc as any).src.split("/").pop() || "image")
65
+ : "image"
66
+ const fileName = rawName.split("?")[0]
67
+ const fileExtension = imgFormat?.toUpperCase() || (fileName.includes(".") ? fileName.split(".").pop()?.toUpperCase() : "IMG")
68
+ const initialSize = preMetadata?.size ?? undefined
69
+ ---
70
+
71
+ <div class={classes.root} data-slot="root" {...rest}>
72
+ <slot name="trigger">
73
+ <button
74
+ type="button"
75
+ class={classes.trigger}
76
+ data-image-trigger
77
+ >
78
+ {isResponsive && mobileImg && desktopImg ? (
79
+ <picture>
80
+ <source media={`(max-width: ${breakpointVal - 1}px)`} srcset={mobileImg.src} />
81
+ <source media={`(min-width: ${breakpointVal}px)`} srcset={desktopImg.src} />
82
+ <img src={desktopImg.src} alt={alt} loading={loading} class="w-full h-full object-cover rounded-lg" />
83
+ </picture>
84
+ ) : isFormatFallback ? (
85
+ <Picture src={src!} formats={formats!} alt={alt} width={imgWidth ?? 800} height={imgHeight ?? 400} loading={loading} class="w-full h-full object-cover rounded-lg" />
86
+ ) : (
87
+ <Image src={src!} alt={alt} width={imgWidth ?? 800} height={imgHeight ?? 400} loading={loading} fit={fit} />
88
+ )}
89
+ </button>
90
+ </slot>
91
+
92
+ <dialog
93
+ class={classes.dialog}
94
+ data-image-dialog
95
+ >
96
+ <div class="flex flex-col bg-background text-foreground max-h-[90vh]">
97
+ <div class="flex-1 min-h-0 flex items-center justify-center p-4 overflow-hidden">
98
+ {isResponsive && mobileImg && desktopImg ? (
99
+ <picture class="max-w-full max-h-[65vh] flex items-center justify-center overflow-hidden">
100
+ <source media={`(max-width: ${breakpointVal - 1}px)`} srcset={mobileImg.src} />
101
+ <source media={`(min-width: ${breakpointVal}px)`} srcset={desktopImg.src} />
102
+ <img src={desktopImg.src} alt={alt} class={classes.image} data-modal-img />
103
+ </picture>
104
+ ) : (
105
+ <img
106
+ src={typeof src === "string" ? src : src!.src}
107
+ alt={alt}
108
+ class={classes.image}
109
+ data-modal-img
110
+ />
111
+ )}
112
+ </div>
113
+
114
+ <hr class="border-border mx-4 mb-3 shrink-0" />
115
+
116
+ <div class={classes.fileInfo}>
117
+ <div class="flex flex-col gap-xs text-sm">
118
+ {
119
+ metaSource && (
120
+ <div class="flex flex-row gap-xs items-center">
121
+ <span class="i-lucide-image size-4 shrink-0 text-muted-foreground" />
122
+ <span class="text-muted-foreground">Source:</span>
123
+ <span class="text-dimmed truncate max-w-[40vw]">{fileName}</span>
124
+ </div>
125
+ )
126
+ }
127
+ {
128
+ metaFormat && (
129
+ <div class="flex flex-row gap-xs items-center">
130
+ <span class="i-lucide-file-question-mark size-4 shrink-0 text-muted-foreground" />
131
+ <span class="text-muted-foreground">Format:</span>
132
+ <span class="text-dimmed" data-metadata-format>{fileExtension || "IMG"}</span>
133
+ </div>
134
+ )
135
+ }
136
+ {
137
+ metaDimensions && (
138
+ <div class="flex flex-row gap-xs items-center">
139
+ <span class="i-lucide-image-upscale size-4 shrink-0 text-muted-foreground" />
140
+ <span class="text-muted-foreground">Dimensions:</span>
141
+ <span class="text-dimmed">{(imgWidth || "?")} x {(imgHeight || "?")}</span>
142
+ </div>
143
+ )
144
+ }
145
+ {
146
+ metaSize && (
147
+ <div class="flex flex-row gap-xs items-center">
148
+ <span class="i-lucide-hard-drive size-4 shrink-0 text-muted-foreground" />
149
+ <span class="text-muted-foreground">Size:</span>
150
+ <span class="text-dimmed" data-metadata-size>{initialSize !== undefined ? `${initialSize} bytes` : "fetching..."}</span>
151
+ </div>
152
+ )
153
+ }
154
+ {
155
+ metaAlt && (
156
+ <div class="flex flex-row gap-xs items-center">
157
+ <span class="i-lucide-align-left size-4 shrink-0 text-muted-foreground" />
158
+ <span class="text-muted-foreground">Alt:</span>
159
+ <span class="text-dimmed truncate max-w-[30vw]" class:list={{ "italic opacity-50": !alt }}>{alt || "none"}</span>
160
+ </div>
161
+ )
162
+ }
163
+ </div>
164
+
165
+ {
166
+ metaDownload && (
167
+ <button
168
+ type="button"
169
+ class={classes.download}
170
+ data-image-download
171
+ >
172
+ <span class="i-lucide-download size-4 shrink-0" />
173
+ Download Original
174
+ </button>
175
+ )
176
+ }
177
+ </div>
178
+
179
+ <form method="dialog" class="absolute top-2 right-2">
180
+ <button
181
+ type="submit"
182
+ class={classes.closeButton}
183
+ aria-label="Close"
184
+ >
185
+ <span class="i-lucide-x size-4" />
186
+ </button>
187
+ </form>
188
+ </div>
189
+ </dialog>
190
+ </div>
191
+
192
+ <script>
193
+ const triggers = document.querySelectorAll("[data-image-trigger]")
194
+ for (const trigger of triggers) {
195
+ const parent = trigger.closest(".group\\/image") || trigger.parentElement
196
+ const dialog = parent?.querySelector("[data-image-dialog]")
197
+ if (!dialog) continue
198
+
199
+ const sizeEl = parent?.querySelector("[data-metadata-size]")
200
+ const formatEl = parent?.querySelector("[data-metadata-format]")
201
+ let fetched = false
202
+
203
+ trigger.addEventListener("click", () => {
204
+ if (!fetched) {
205
+ fetched = true
206
+ const imgEl = dialog.querySelector("[data-modal-img]")
207
+ if (imgEl) {
208
+ const src = imgEl.getAttribute("src")
209
+ if (src) {
210
+ fetch(src).then(r => r.blob()).then(blob => {
211
+ if (sizeEl) sizeEl.textContent = (blob.size / 1024).toFixed(2) + " KB"
212
+ if (formatEl && blob.type) {
213
+ const mime = blob.type.split("/").pop().toUpperCase()
214
+ if (mime && mime !== "OCTET-STREAM") formatEl.textContent = mime
215
+ }
216
+ }).catch(() => { if (sizeEl) sizeEl.textContent = "unavailable" })
217
+ }
218
+ }
219
+ }
220
+ dialog.showModal()
221
+ })
222
+
223
+ dialog.addEventListener("click", (e) => {
224
+ if (e.target === dialog) dialog.close()
225
+ })
226
+
227
+ const downloadBtn = dialog.querySelector("[data-image-download]")
228
+ if (downloadBtn) {
229
+ downloadBtn.addEventListener("click", async () => {
230
+ const img = dialog.querySelector("img")
231
+ const imgSrc = img?.getAttribute("src")
232
+ if (!imgSrc) return
233
+ try {
234
+ const response = await fetch(imgSrc)
235
+ const blob = await response.blob()
236
+ const url = URL.createObjectURL(blob)
237
+ const link = document.createElement("a")
238
+ link.href = url
239
+ const srcAttr = (trigger.querySelector("img") || {}).getAttribute("src") || ""
240
+ link.download = (srcAttr.split("/").pop() || "").split("?")[0] || `image-${Date.now()}`
241
+ document.body.appendChild(link)
242
+ link.click()
243
+ document.body.removeChild(link)
244
+ URL.revokeObjectURL(url)
245
+ } catch (err) {
246
+ console.error("Download failed", err)
247
+ }
248
+ })
249
+ }
250
+ }
251
+ </script>
@@ -1,19 +1,23 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { InputDateProps } from "../../types"
5
- import inputDateThemeDefault from "../../themes/input-date.theme"
6
-
7
- const inputDate = scv(inputDateThemeDefault)
8
-
9
- const {
10
- ui: uiProp,
11
- class: className,
12
- ...rest
13
- } = Astro.props as InputDateProps
14
-
15
- const classes = resolveClasses(inputDate, {}, useUi("inputDate", 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 { InputDateProps } from "../../types"
5
+ import inputDateThemeDefault, { createInputDateTheme } from "../../themes/input-date.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const inputDateTheme = uiConfig.colors ? createInputDateTheme() : inputDateThemeDefault
10
+
11
+ const inputDate = scv(inputDateTheme)
12
+
13
+ const {
14
+ ui: uiProp,
15
+ class: className,
16
+ ...rest
17
+ } = Astro.props as InputDateProps
18
+
19
+ const classes = resolveClasses(inputDate, {}, useUi("inputDate", uiProp), className);
20
+ ---
21
+ <div class={classes.root} data-slot="root" {...rest}>
22
+ <slot />
19
23
  </div>
@@ -1,19 +1,23 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { InputNumberProps } from "../../types"
5
- import inputNumberThemeDefault from "../../themes/input-number.theme"
6
-
7
- const inputNumber = scv(inputNumberThemeDefault)
8
-
9
- const {
10
- ui: uiProp,
11
- class: className,
12
- ...rest
13
- } = Astro.props as InputNumberProps
14
-
15
- const classes = resolveClasses(inputNumber, {}, useUi("inputNumber", 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 { InputNumberProps } from "../../types"
5
+ import inputNumberThemeDefault, { createInputNumberTheme } from "../../themes/input-number.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const inputNumberTheme = uiConfig.colors ? createInputNumberTheme() : inputNumberThemeDefault
10
+
11
+ const inputNumber = scv(inputNumberTheme)
12
+
13
+ const {
14
+ ui: uiProp,
15
+ class: className,
16
+ ...rest
17
+ } = Astro.props as InputNumberProps
18
+
19
+ const classes = resolveClasses(inputNumber, {}, useUi("inputNumber", uiProp), className);
20
+ ---
21
+ <div class={classes.root} data-slot="root" {...rest}>
22
+ <slot />
19
23
  </div>
@@ -1,19 +1,23 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { InputTagsProps } from "../../types"
5
- import inputTagsThemeDefault from "../../themes/input-tags.theme"
6
-
7
- const inputTags = scv(inputTagsThemeDefault)
8
-
9
- const {
10
- ui: uiProp,
11
- class: className,
12
- ...rest
13
- } = Astro.props as InputTagsProps
14
-
15
- const classes = resolveClasses(inputTags, {}, useUi("inputTags", 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 { InputTagsProps } from "../../types"
5
+ import inputTagsThemeDefault, { createInputTagsTheme } from "../../themes/input-tags.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const inputTagsTheme = uiConfig.colors ? createInputTagsTheme() : inputTagsThemeDefault
10
+
11
+ const inputTags = scv(inputTagsTheme)
12
+
13
+ const {
14
+ ui: uiProp,
15
+ class: className,
16
+ ...rest
17
+ } = Astro.props as InputTagsProps
18
+
19
+ const classes = resolveClasses(inputTags, {}, useUi("inputTags", uiProp), className);
20
+ ---
21
+ <div class={classes.root} data-slot="root" {...rest}>
22
+ <slot />
19
23
  </div>
@@ -1,19 +1,23 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi, resolveClasses } from "../../utils"
4
- import type { InputTimeProps } from "../../types"
5
- import inputTimeThemeDefault from "../../themes/input-time.theme"
6
-
7
- const inputTime = scv(inputTimeThemeDefault)
8
-
9
- const {
10
- ui: uiProp,
11
- class: className,
12
- ...rest
13
- } = Astro.props as InputTimeProps
14
-
15
- const classes = resolveClasses(inputTime, {}, useUi("inputTime", 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 { InputTimeProps } from "../../types"
5
+ import inputTimeThemeDefault, { createInputTimeTheme } from "../../themes/input-time.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const inputTimeTheme = uiConfig.colors ? createInputTimeTheme() : inputTimeThemeDefault
10
+
11
+ const inputTime = scv(inputTimeTheme)
12
+
13
+ const {
14
+ ui: uiProp,
15
+ class: className,
16
+ ...rest
17
+ } = Astro.props as InputTimeProps
18
+
19
+ const classes = resolveClasses(inputTime, {}, useUi("inputTime", uiProp), className);
20
+ ---
21
+ <div class={classes.root} data-slot="root" {...rest}>
22
+ <slot />
19
23
  </div>