@rimelight/ui 0.0.30 → 0.0.32

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 (397) hide show
  1. package/package.json +1 -1
  2. package/src/components/astro/RLA3dHover.astro +19 -0
  3. package/src/components/astro/RLAAlert.astro +62 -0
  4. package/src/components/astro/RLAApp.astro +19 -0
  5. package/src/components/astro/RLAAspectRatio.astro +23 -0
  6. package/src/components/astro/RLAAudio.astro +19 -0
  7. package/src/components/astro/RLAAvatar.astro +56 -0
  8. package/src/components/astro/RLAAvatarGroup.astro +19 -0
  9. package/src/components/astro/RLABadge.astro +33 -0
  10. package/src/components/astro/RLABanner.astro +19 -0
  11. package/src/components/astro/RLABreadcrumb.astro +44 -0
  12. package/src/components/astro/RLABrowserMockup.astro +19 -0
  13. package/src/components/astro/RLAButton.astro +3 -1
  14. package/src/components/astro/RLACalendar.astro +19 -0
  15. package/src/components/astro/RLACard.astro +74 -0
  16. package/src/components/astro/RLACarousel.astro +71 -0
  17. package/src/components/astro/RLAChangelog.astro +19 -0
  18. package/src/components/astro/RLAChart.astro +239 -0
  19. package/src/components/astro/RLAChat.astro +19 -0
  20. package/src/components/astro/RLAChatMessage.astro +19 -0
  21. package/src/components/astro/RLAChatMessages.astro +19 -0
  22. package/src/components/astro/RLAChatPalette.astro +19 -0
  23. package/src/components/astro/RLAChatPrompt.astro +19 -0
  24. package/src/components/astro/RLAChatPromptSubmit.astro +19 -0
  25. package/src/components/astro/RLAChatReasoning.astro +19 -0
  26. package/src/components/astro/RLAChatShimmer.astro +19 -0
  27. package/src/components/astro/RLAChatTool.astro +19 -0
  28. package/src/components/astro/RLACheckbox.astro +53 -0
  29. package/src/components/astro/RLAChip.astro +20 -0
  30. package/src/components/astro/RLACollapsible.astro +38 -0
  31. package/src/components/astro/RLAColorPicker.astro +19 -0
  32. package/src/components/astro/RLACommandPalette.astro +19 -0
  33. package/src/components/astro/RLACompare.astro +19 -0
  34. package/src/components/astro/RLAConfirm.astro +86 -0
  35. package/src/components/astro/RLAContainer.astro +19 -0
  36. package/src/components/astro/RLAContextMenu.astro +19 -0
  37. package/src/components/astro/RLADashboardGroup.astro +19 -0
  38. package/src/components/astro/RLADashboardNavbar.astro +19 -0
  39. package/src/components/astro/RLADashboardPanel.astro +19 -0
  40. package/src/components/astro/RLADashboardResizeHandle.astro +19 -0
  41. package/src/components/astro/RLADashboardSearch.astro +19 -0
  42. package/src/components/astro/RLADashboardSearchButton.astro +19 -0
  43. package/src/components/astro/RLADashboardSidebar.astro +19 -0
  44. package/src/components/astro/RLADashboardSidebarCollapse.astro +19 -0
  45. package/src/components/astro/RLADashboardSidebarToggle.astro +19 -0
  46. package/src/components/astro/RLADashboardToolbar.astro +19 -0
  47. package/src/components/astro/RLADock.astro +19 -0
  48. package/src/components/astro/RLADrawer.astro +74 -0
  49. package/src/components/astro/RLADropdownMenu.astro +82 -0
  50. package/src/components/astro/RLAEditor.astro +19 -0
  51. package/src/components/astro/RLAEmpty.astro +19 -0
  52. package/src/components/astro/RLAError.astro +19 -0
  53. package/src/components/astro/RLAFieldGroup.astro +35 -0
  54. package/src/components/astro/RLAFieldset.astro +19 -0
  55. package/src/components/astro/RLAFileUpload.astro +134 -0
  56. package/src/components/astro/RLAFloatingAction.astro +19 -0
  57. package/src/components/astro/RLAForm.astro +19 -0
  58. package/src/components/astro/RLAFormField.astro +43 -0
  59. package/src/components/astro/RLAGallery.astro +19 -0
  60. package/src/components/{Head.astro → astro/RLAHead.astro} +181 -199
  61. package/src/components/astro/RLAHoverCard.astro +31 -0
  62. package/src/components/astro/RLAImage.astro +19 -0
  63. package/src/components/astro/RLAInput.astro +62 -0
  64. package/src/components/astro/RLAInputDate.astro +19 -0
  65. package/src/components/astro/RLAInputMenu.astro +131 -0
  66. package/src/components/astro/RLAInputNumber.astro +19 -0
  67. package/src/components/astro/RLAInputPin.astro +19 -0
  68. package/src/components/astro/RLAInputTags.astro +19 -0
  69. package/src/components/astro/RLAInputTime.astro +19 -0
  70. package/src/components/astro/RLAKbd.astro +22 -0
  71. package/src/components/astro/RLAKnob.astro +19 -0
  72. package/src/components/astro/RLALabel.astro +23 -0
  73. package/src/components/astro/RLALink.astro +19 -0
  74. package/src/components/astro/RLALinkGroup.astro +19 -0
  75. package/src/components/astro/RLAListbox.astro +19 -0
  76. package/src/components/astro/RLALocaleSelector.astro +110 -0
  77. package/src/components/astro/RLAMarquee.astro +32 -0
  78. package/src/components/astro/RLAMegamenu.astro +19 -0
  79. package/src/components/astro/RLAMeter.astro +19 -0
  80. package/src/components/astro/RLAModal.astro +95 -0
  81. package/src/components/astro/RLANavigationMenu.astro +136 -0
  82. package/src/components/astro/RLAPage.astro +19 -0
  83. package/src/components/astro/RLAPageAside.astro +19 -0
  84. package/src/components/astro/RLAPageBody.astro +19 -0
  85. package/src/components/astro/RLAPageHeader.astro +19 -0
  86. package/src/components/astro/{RLASection.astro → RLAPageSection.astro} +6 -6
  87. package/src/components/astro/RLAPagination.astro +94 -0
  88. package/src/components/astro/RLAPassword.astro +19 -0
  89. package/src/components/astro/RLAPhoneMockup.astro +19 -0
  90. package/src/components/astro/RLAPopover.astro +31 -0
  91. package/src/components/astro/RLAPost.astro +19 -0
  92. package/src/components/astro/RLAPricingPlan.astro +19 -0
  93. package/src/components/astro/RLAPricingTable.astro +19 -0
  94. package/src/components/astro/RLAProgress.astro +45 -0
  95. package/src/components/astro/RLAProse.astro +19 -0
  96. package/src/components/astro/RLAQrCode.astro +19 -0
  97. package/src/components/astro/RLARadioGroup.astro +19 -0
  98. package/src/components/astro/RLARating.astro +19 -0
  99. package/src/components/astro/RLAScrollArea.astro +157 -0
  100. package/src/components/astro/RLAScrollToTop.astro +172 -159
  101. package/src/components/astro/RLASelect.astro +109 -0
  102. package/src/components/astro/RLASeparator.astro +27 -0
  103. package/src/components/astro/RLASidebar.astro +135 -0
  104. package/src/components/astro/RLASkeleton.astro +20 -0
  105. package/src/components/astro/RLASlideover.astro +72 -0
  106. package/src/components/astro/RLASlider.astro +58 -0
  107. package/src/components/astro/RLASpeedDial.astro +19 -0
  108. package/src/components/astro/RLASpinner.astro +27 -0
  109. package/src/components/astro/RLASplitter.astro +177 -0
  110. package/src/components/astro/RLASpoiler.astro +19 -0
  111. package/src/components/astro/RLAStepper.astro +19 -0
  112. package/src/components/astro/RLAStickySurface.astro +27 -0
  113. package/src/components/astro/RLASwitch.astro +51 -0
  114. package/src/components/astro/RLATable.astro +60 -0
  115. package/src/components/astro/RLATableOfContents.astro +19 -0
  116. package/src/components/astro/RLATabs.astro +92 -0
  117. package/src/components/astro/RLATextarea.astro +42 -0
  118. package/src/components/astro/RLAThemeSelector.astro +73 -0
  119. package/src/components/astro/RLATimeline.astro +19 -0
  120. package/src/components/astro/RLAToast.astro +107 -0
  121. package/src/components/astro/RLATooltip.astro +31 -0
  122. package/src/components/astro/RLATour.astro +19 -0
  123. package/src/components/astro/RLATree.astro +19 -0
  124. package/src/components/astro/RLAUser.astro +19 -0
  125. package/src/components/astro/{RLAEmbedYoutube.astro → RLAVideo.astro} +6 -6
  126. package/src/components/astro/RLAWatermark.astro +19 -0
  127. package/src/components/astro/RLAWindowMockup.astro +19 -0
  128. package/src/integrations/ui.ts +208 -142
  129. package/src/presets/defaults.ts +285 -0
  130. package/src/presets/index.ts +537 -256
  131. package/src/styles/index.css +6 -0
  132. package/src/themes/3d-hover.theme.ts +10 -0
  133. package/src/themes/accordion.theme.ts +10 -0
  134. package/src/themes/alert.theme.ts +56 -0
  135. package/src/themes/app.theme.ts +10 -0
  136. package/src/themes/aspect-ratio.theme.ts +11 -0
  137. package/src/themes/audio.theme.ts +10 -0
  138. package/src/themes/avatar-group.theme.ts +10 -0
  139. package/src/themes/avatar.theme.ts +28 -0
  140. package/src/themes/badge.theme.ts +66 -0
  141. package/src/themes/banner.theme.ts +10 -0
  142. package/src/themes/breadcrumb.theme.ts +15 -0
  143. package/src/themes/browser-mockup.theme.ts +10 -0
  144. package/src/themes/button.theme.ts +195 -190
  145. package/src/themes/calendar.theme.ts +10 -0
  146. package/src/themes/card.theme.ts +34 -0
  147. package/src/themes/carousel.theme.ts +32 -0
  148. package/src/themes/changelog.theme.ts +10 -0
  149. package/src/themes/chart.theme.ts +21 -0
  150. package/src/themes/chat-message.theme.ts +10 -0
  151. package/src/themes/chat-messages.theme.ts +10 -0
  152. package/src/themes/chat-palette.theme.ts +10 -0
  153. package/src/themes/chat-prompt-submit.theme.ts +10 -0
  154. package/src/themes/chat-prompt.theme.ts +10 -0
  155. package/src/themes/chat-reasoning.theme.ts +10 -0
  156. package/src/themes/chat-shimmer.theme.ts +10 -0
  157. package/src/themes/chat-tool.theme.ts +10 -0
  158. package/src/themes/chat.theme.ts +10 -0
  159. package/src/themes/checkbox.theme.ts +48 -0
  160. package/src/themes/chip.theme.ts +16 -0
  161. package/src/themes/collapsible.theme.ts +22 -0
  162. package/src/themes/color-picker.theme.ts +10 -0
  163. package/src/themes/command-palette.theme.ts +10 -0
  164. package/src/themes/compare.theme.ts +10 -0
  165. package/src/themes/confirm.theme.ts +33 -0
  166. package/src/themes/container.theme.ts +10 -0
  167. package/src/themes/context-menu.theme.ts +10 -0
  168. package/src/themes/dashboard-group.theme.ts +10 -0
  169. package/src/themes/dashboard-navbar.theme.ts +10 -0
  170. package/src/themes/dashboard-panel.theme.ts +10 -0
  171. package/src/themes/dashboard-resize-handle.theme.ts +10 -0
  172. package/src/themes/dashboard-search-button.theme.ts +10 -0
  173. package/src/themes/dashboard-search.theme.ts +10 -0
  174. package/src/themes/dashboard-sidebar-collapse.theme.ts +10 -0
  175. package/src/themes/dashboard-sidebar-toggle.theme.ts +10 -0
  176. package/src/themes/dashboard-sidebar.theme.ts +10 -0
  177. package/src/themes/dashboard-toolbar.theme.ts +10 -0
  178. package/src/themes/dock.theme.ts +10 -0
  179. package/src/themes/drawer.theme.ts +44 -0
  180. package/src/themes/dropdown-menu.theme.ts +27 -0
  181. package/src/themes/editor.theme.ts +10 -0
  182. package/src/themes/empty.theme.ts +10 -0
  183. package/src/themes/error.theme.ts +10 -0
  184. package/src/themes/field-group.theme.ts +23 -0
  185. package/src/themes/fieldset.theme.ts +10 -0
  186. package/src/themes/file-upload.theme.ts +24 -0
  187. package/src/themes/floating-action.theme.ts +10 -0
  188. package/src/themes/form-field.theme.ts +24 -0
  189. package/src/themes/form.theme.ts +10 -0
  190. package/src/themes/gallery.theme.ts +10 -0
  191. package/src/themes/head.theme.ts +10 -0
  192. package/src/themes/hover-card.theme.ts +27 -0
  193. package/src/themes/image.theme.ts +10 -0
  194. package/src/themes/input-date.theme.ts +10 -0
  195. package/src/themes/input-menu.theme.ts +28 -0
  196. package/src/themes/input-number.theme.ts +10 -0
  197. package/src/themes/input-pin.theme.ts +10 -0
  198. package/src/themes/input-tags.theme.ts +10 -0
  199. package/src/themes/input-time.theme.ts +10 -0
  200. package/src/themes/input.theme.ts +41 -0
  201. package/src/themes/kbd.theme.ts +24 -0
  202. package/src/themes/knob.theme.ts +10 -0
  203. package/src/themes/label.theme.ts +20 -0
  204. package/src/themes/link-group.theme.ts +10 -0
  205. package/src/themes/link.theme.ts +10 -0
  206. package/src/themes/listbox.theme.ts +10 -0
  207. package/src/themes/locale-selector.theme.ts +50 -0
  208. package/src/themes/marquee.theme.ts +27 -0
  209. package/src/themes/megamenu.theme.ts +10 -0
  210. package/src/themes/meter.theme.ts +10 -0
  211. package/src/themes/modal.theme.ts +37 -0
  212. package/src/themes/navigation-menu.theme.ts +19 -0
  213. package/src/themes/page-aside.theme.ts +10 -0
  214. package/src/themes/page-body.theme.ts +10 -0
  215. package/src/themes/page-header.theme.ts +10 -0
  216. package/src/themes/{section.theme.ts → page-section.theme.ts} +1 -2
  217. package/src/themes/page.theme.ts +10 -0
  218. package/src/themes/pagination.theme.ts +26 -0
  219. package/src/themes/password.theme.ts +10 -0
  220. package/src/themes/phone-mockup.theme.ts +10 -0
  221. package/src/themes/popover.theme.ts +28 -0
  222. package/src/themes/post.theme.ts +10 -0
  223. package/src/themes/pricing-plan.theme.ts +10 -0
  224. package/src/themes/pricing-table.theme.ts +10 -0
  225. package/src/themes/progress.theme.ts +37 -0
  226. package/src/themes/prose.theme.ts +10 -0
  227. package/src/themes/qr-code.theme.ts +10 -0
  228. package/src/themes/quote.theme.ts +10 -0
  229. package/src/themes/radio-group.theme.ts +10 -0
  230. package/src/themes/rating.theme.ts +10 -0
  231. package/src/themes/scroll-area.theme.ts +24 -0
  232. package/src/themes/scroll-to-top.theme.ts +44 -40
  233. package/src/themes/select.theme.ts +27 -0
  234. package/src/themes/separator.theme.ts +19 -0
  235. package/src/themes/sidebar.theme.ts +33 -0
  236. package/src/themes/skeleton.theme.ts +20 -0
  237. package/src/themes/slideover.theme.ts +43 -0
  238. package/src/themes/slider.theme.ts +34 -0
  239. package/src/themes/speed-dial.theme.ts +10 -0
  240. package/src/themes/spinner.theme.ts +35 -0
  241. package/src/themes/splitter.theme.ts +22 -0
  242. package/src/themes/spoiler.theme.ts +10 -0
  243. package/src/themes/stepper.theme.ts +10 -0
  244. package/src/themes/sticky-surface.theme.ts +10 -0
  245. package/src/themes/switch.theme.ts +65 -0
  246. package/src/themes/table-of-contents.theme.ts +10 -0
  247. package/src/themes/table.theme.ts +36 -0
  248. package/src/themes/tabs.theme.ts +44 -0
  249. package/src/themes/textarea.theme.ts +26 -0
  250. package/src/themes/theme-selector.theme.ts +16 -0
  251. package/src/themes/timeline.theme.ts +10 -0
  252. package/src/themes/toast.theme.ts +25 -0
  253. package/src/themes/tooltip.theme.ts +27 -0
  254. package/src/themes/tour.theme.ts +10 -0
  255. package/src/themes/tree.theme.ts +10 -0
  256. package/src/themes/user.theme.ts +10 -0
  257. package/src/themes/watermark.theme.ts +10 -0
  258. package/src/themes/window-mockup.theme.ts +10 -0
  259. package/src/types/components/3d-hover.ts +11 -0
  260. package/src/types/components/accordion.ts +1 -1
  261. package/src/types/components/alert.ts +37 -0
  262. package/src/types/components/app.ts +11 -0
  263. package/src/types/components/aspect-ratio.ts +15 -0
  264. package/src/types/components/audio.ts +11 -0
  265. package/src/types/components/avatar-group.ts +12 -0
  266. package/src/types/components/avatar.ts +35 -0
  267. package/src/types/components/badge.ts +33 -0
  268. package/src/types/components/banner.ts +11 -0
  269. package/src/types/components/breadcrumb.ts +24 -0
  270. package/src/types/components/browser-mockup.ts +11 -0
  271. package/src/types/components/button.ts +7 -1
  272. package/src/types/components/calendar.ts +11 -0
  273. package/src/types/components/card.ts +31 -0
  274. package/src/types/components/carousel.ts +25 -0
  275. package/src/types/components/changelog.ts +11 -0
  276. package/src/types/components/chart.ts +38 -0
  277. package/src/types/components/chat-message.ts +11 -0
  278. package/src/types/components/chat-messages.ts +11 -0
  279. package/src/types/components/chat-palette.ts +11 -0
  280. package/src/types/components/chat-prompt-submit.ts +11 -0
  281. package/src/types/components/chat-prompt.ts +11 -0
  282. package/src/types/components/chat-reasoning.ts +11 -0
  283. package/src/types/components/chat-shimmer.ts +11 -0
  284. package/src/types/components/chat-tool.ts +11 -0
  285. package/src/types/components/chat.ts +11 -0
  286. package/src/types/components/checkbox.ts +41 -0
  287. package/src/types/components/chip.ts +17 -0
  288. package/src/types/components/collapsible.ts +31 -0
  289. package/src/types/components/color-picker.ts +11 -0
  290. package/src/types/components/command-palette.ts +11 -0
  291. package/src/types/components/compare.ts +11 -0
  292. package/src/types/components/confirm.ts +35 -0
  293. package/src/types/components/container.ts +11 -0
  294. package/src/types/components/context-menu.ts +11 -0
  295. package/src/types/components/dashboard-group.ts +11 -0
  296. package/src/types/components/dashboard-navbar.ts +11 -0
  297. package/src/types/components/dashboard-panel.ts +11 -0
  298. package/src/types/components/dashboard-resize-handle.ts +11 -0
  299. package/src/types/components/dashboard-search-button.ts +11 -0
  300. package/src/types/components/dashboard-search.ts +11 -0
  301. package/src/types/components/dashboard-sidebar-collapse.ts +11 -0
  302. package/src/types/components/dashboard-sidebar-toggle.ts +11 -0
  303. package/src/types/components/dashboard-sidebar.ts +11 -0
  304. package/src/types/components/dashboard-toolbar.ts +11 -0
  305. package/src/types/components/dock.ts +11 -0
  306. package/src/types/components/drawer.ts +31 -0
  307. package/src/types/components/dropdown-menu.ts +42 -0
  308. package/src/types/components/editor.ts +11 -0
  309. package/src/types/components/empty.ts +11 -0
  310. package/src/types/components/error.ts +11 -0
  311. package/src/types/components/field-group.ts +23 -0
  312. package/src/types/components/fieldset.ts +11 -0
  313. package/src/types/components/file-upload.ts +39 -0
  314. package/src/types/components/floating-action.ts +11 -0
  315. package/src/types/components/footer.ts +1 -1
  316. package/src/types/components/form-field.ts +31 -0
  317. package/src/types/components/form.ts +11 -0
  318. package/src/types/components/gallery.ts +11 -0
  319. package/src/types/components/header.ts +1 -1
  320. package/src/types/components/hover-card.ts +19 -0
  321. package/src/types/components/icon.ts +2 -1
  322. package/src/types/components/image.ts +11 -0
  323. package/src/types/components/index.ts +134 -13
  324. package/src/types/components/input-date.ts +11 -0
  325. package/src/types/components/input-menu.ts +44 -0
  326. package/src/types/components/input-number.ts +11 -0
  327. package/src/types/components/input-pin.ts +11 -0
  328. package/src/types/components/input-tags.ts +11 -0
  329. package/src/types/components/input-time.ts +11 -0
  330. package/src/types/components/input.ts +65 -0
  331. package/src/types/components/kbd.ts +15 -0
  332. package/src/types/components/knob.ts +11 -0
  333. package/src/types/components/label.ts +19 -0
  334. package/src/types/components/link-group.ts +11 -0
  335. package/src/types/components/link.ts +1 -1
  336. package/src/types/components/listbox.ts +11 -0
  337. package/src/types/components/locale-selector.ts +33 -0
  338. package/src/types/components/logo.ts +1 -1
  339. package/src/types/components/main.ts +1 -1
  340. package/src/types/components/marquee.ts +23 -0
  341. package/src/types/components/megamenu.ts +11 -0
  342. package/src/types/components/meter.ts +11 -0
  343. package/src/types/components/modal.ts +40 -0
  344. package/src/types/components/{navigation.ts → navigation-menu.ts} +22 -2
  345. package/src/types/components/page-aside.ts +11 -0
  346. package/src/types/components/page-body.ts +11 -0
  347. package/src/types/components/page-header.ts +11 -0
  348. package/src/types/components/{section.ts → page-section.ts} +2 -2
  349. package/src/types/components/page.ts +11 -0
  350. package/src/types/components/pagination.ts +23 -0
  351. package/src/types/components/password.ts +11 -0
  352. package/src/types/components/phone-mockup.ts +5 -0
  353. package/src/types/components/placeholder.ts +1 -1
  354. package/src/types/components/popover.ts +24 -0
  355. package/src/types/components/post.ts +11 -0
  356. package/src/types/components/pricing-plan.ts +11 -0
  357. package/src/types/components/pricing-table.ts +11 -0
  358. package/src/types/components/progress.ts +34 -0
  359. package/src/types/components/prose.ts +11 -0
  360. package/src/types/components/qr-code.ts +11 -0
  361. package/src/types/components/quote.ts +11 -0
  362. package/src/types/components/radio-group.ts +11 -0
  363. package/src/types/components/rating.ts +11 -0
  364. package/src/types/components/scroll-area.ts +24 -0
  365. package/src/types/components/scroll-to-top.ts +7 -1
  366. package/src/types/components/select.ts +43 -0
  367. package/src/types/components/separator.ts +20 -0
  368. package/src/types/components/sidebar.ts +37 -0
  369. package/src/types/components/skeleton.ts +15 -0
  370. package/src/types/components/slideover.ts +32 -0
  371. package/src/types/components/slider.ts +41 -0
  372. package/src/types/components/speed-dial.ts +11 -0
  373. package/src/types/components/spinner.ts +26 -0
  374. package/src/types/components/splitter.ts +20 -0
  375. package/src/types/components/spoiler.ts +11 -0
  376. package/src/types/components/stepper.ts +11 -0
  377. package/src/types/components/sticky-surface.ts +20 -0
  378. package/src/types/components/switch.ts +42 -0
  379. package/src/types/components/table-of-contents.ts +11 -0
  380. package/src/types/components/table.ts +31 -0
  381. package/src/types/components/tabs.ts +43 -0
  382. package/src/types/components/textarea.ts +51 -0
  383. package/src/types/components/theme-selector.ts +15 -0
  384. package/src/types/components/timeline.ts +11 -0
  385. package/src/types/components/toast.ts +35 -0
  386. package/src/types/components/tooltip.ts +24 -0
  387. package/src/types/components/tour.ts +11 -0
  388. package/src/types/components/tree.ts +11 -0
  389. package/src/types/components/user.ts +11 -0
  390. package/src/types/components/{embed-youtube.ts → video.ts} +2 -2
  391. package/src/types/components/watermark.ts +11 -0
  392. package/src/types/components/window-mockup.ts +11 -0
  393. package/src/types/index.ts +2 -1
  394. package/src/types/theme.ts +1 -0
  395. package/src/components/ThemeToggle.astro +0 -57
  396. package/src/preset.ts +0 -393
  397. /package/src/themes/{embedYoutube.theme.ts → video.theme.ts} +0 -0
@@ -0,0 +1,19 @@
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { FloatingActionProps } from "../../types"
5
+ import floatingActionThemeDefault from "../../themes/floating-action.theme"
6
+
7
+ const floatingAction = scv(floatingActionThemeDefault)
8
+
9
+ const {
10
+ ui: uiProp,
11
+ class: className,
12
+ ...rest
13
+ } = Astro.props as FloatingActionProps
14
+
15
+ const classes = resolveClasses(floatingAction, {}, useUi("floatingAction", uiProp), className);
16
+ ---
17
+ <div class={classes.root} data-slot="root" {...rest}>
18
+ <slot />
19
+ </div>
@@ -0,0 +1,19 @@
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { FormProps } from "../../types"
5
+ import formThemeDefault from "../../themes/form.theme"
6
+
7
+ const form = scv(formThemeDefault)
8
+
9
+ const {
10
+ ui: uiProp,
11
+ class: className,
12
+ ...rest
13
+ } = Astro.props as FormProps
14
+
15
+ const classes = resolveClasses(form, {}, useUi("form", uiProp), className);
16
+ ---
17
+ <div class={classes.root} data-slot="root" {...rest}>
18
+ <slot />
19
+ </div>
@@ -0,0 +1,43 @@
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { FormFieldProps } from "../../types"
5
+ import formFieldThemeDefault, { createFormFieldTheme } from "../../themes/form-field.theme"
6
+
7
+ const formFieldTheme = formFieldThemeDefault
8
+ const formField = scv(formFieldTheme)
9
+
10
+ const {
11
+ label,
12
+ description,
13
+ error,
14
+ required = false,
15
+ size = "md",
16
+ ui: uiProp,
17
+ class: className,
18
+ ...rest
19
+ } = Astro.props as FormFieldProps
20
+
21
+ const classes = resolveClasses(formField, {
22
+ size
23
+ }, useUi("formField", uiProp), className);
24
+ ---
25
+ <div class={classes.root} data-slot="root" {...rest}>
26
+ {label && (
27
+ <label class={classes.label} data-slot="label">
28
+ {label}
29
+ {required && <span class="text-error-500 ml-0.5">*</span>}
30
+ </label>
31
+ )}
32
+ <slot />
33
+ {description && (
34
+ <p class={classes.description} data-slot="description">
35
+ {description}
36
+ </p>
37
+ )}
38
+ {error && (
39
+ <p class={classes.error} data-slot="error">
40
+ {error}
41
+ </p>
42
+ )}
43
+ </div>
@@ -0,0 +1,19 @@
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { GalleryProps } from "../../types"
5
+ import galleryThemeDefault from "../../themes/gallery.theme"
6
+
7
+ const gallery = scv(galleryThemeDefault)
8
+
9
+ const {
10
+ ui: uiProp,
11
+ class: className,
12
+ ...rest
13
+ } = Astro.props as GalleryProps
14
+
15
+ const classes = resolveClasses(gallery, {}, useUi("gallery", uiProp), className);
16
+ ---
17
+ <div class={classes.root} data-slot="root" {...rest}>
18
+ <slot />
19
+ </div>
@@ -1,199 +1,181 @@
1
- ---
2
- import { ClientRouter } from 'astro:transitions';
3
- import type { SiteConfig } from '@/config';
4
- import { App } from '../nuxt.ts';
5
-
6
- export interface OGImage {
7
- /** Image URL (relative or absolute) */
8
- src: string;
9
- /** Alt text for the image */
10
- alt: string;
11
- }
12
-
13
- export interface RSSFeed {
14
- /** RSS feed URL */
15
- href: string;
16
- /** Feed title (defaults to "RSS") */
17
- title?: string;
18
- }
19
-
20
- export interface HeadProps {
21
- /** Page title */
22
- title?: string;
23
- /** Page description */
24
- description?: string;
25
- /** Open Graph image with alt text */
26
- ogImage?: OGImage;
27
- /** Open Graph type (e.g., "website", "article") */
28
- ogType?: string;
29
- /** Open Graph locale (defaults to "en_US") */
30
- ogLocale?: string;
31
- /** Whether to prevent indexing */
32
- noindex?: boolean;
33
- /** Whether this is a 404 page */
34
- is404?: boolean;
35
- /** Robots metadata (overrides noindex/is404 logic if provided) */
36
- robots?: string;
37
- /** Canonical URL */
38
- canonical?: string;
39
- /** Language alternates for i18n */
40
- languageAlternates?: Array<{ hreflang: string; href: string }>;
41
- /** Site configuration for defaults */
42
- config?: SiteConfig;
43
- /** Whether to enable View Transitions (ClientRouter) */
44
- transitions?: boolean;
45
- /** Meta charset */
46
- charset?: string;
47
- /** Meta viewport */
48
- viewport?: string;
49
- /** RSS feed configuration */
50
- rssFeed?: RSSFeed;
51
- }
52
-
53
- const {
54
- title,
55
- description,
56
- ogImage,
57
- ogType = 'website',
58
- ogLocale = 'en_US',
59
- noindex = false,
60
- is404 = false,
61
- robots,
62
- canonical,
63
- languageAlternates = [],
64
- config,
65
- transitions = true,
66
- charset = 'utf-8',
67
- viewport = 'width=device-width,initial-scale=1',
68
- rssFeed,
69
- } = Astro.props as HeadProps;
70
-
71
- // Resolve defaults from config if available
72
- const siteName = config?.name || 'Rimelight';
73
- const siteDescription = config?.description || '';
74
- const ogImageFallback = config?.seo?.ogImageFallback || config?.ogImage || '';
75
- const themeColor = config?.branding?.colors?.themeColor;
76
- const favicon = config?.branding?.favicon?.svg || '/favicon.svg';
77
- const twitterHandle = config?.seo?.authorHandle;
78
- const titleTemplate = config?.seo?.titleTemplate || `%s | ${siteName}`;
79
-
80
- // Calculated Values
81
- const displayTitle = is404
82
- ? `404 - Not Found | ${siteName}`
83
- : title
84
- ? titleTemplate.replace('%s', title)
85
- : siteName;
86
-
87
- const finalDescription = description || siteDescription;
88
- const safeDescription = finalDescription && config?.seo?.maxDescriptionLength
89
- ? (finalDescription.length > config.seo.maxDescriptionLength
90
- ? finalDescription.slice(0, config.seo.maxDescriptionLength - 3) + '...'
91
- : finalDescription)
92
- : finalDescription;
93
-
94
- const finalOgImage = ogImage || (ogImageFallback ? { src: ogImageFallback, alt: siteName } : undefined);
95
- const absoluteOgImage = finalOgImage
96
- ? new URL(finalOgImage.src, Astro.site).toString()
97
- : undefined;
98
-
99
- function formatCanonicalURL(url: string | URL) {
100
- const resolved = new URL(url, Astro.site);
101
- const path = resolved.toString();
102
- const hasQueryParams = path.includes('?');
103
- if (hasQueryParams) {
104
- return path.replace(/\/?$/, '');
105
- }
106
- return path.replace(/\/?$/, '/');
107
- }
108
-
109
- const finalCanonical = canonical
110
- ? formatCanonicalURL(canonical)
111
- : (!is404 ? formatCanonicalURL(Astro.url) : undefined);
112
-
113
- const isIndexable = !noindex && !is404;
114
- const defaultRobots = isIndexable ? 'index, follow, max-image-preview:large' : 'noindex, nofollow';
115
- ---
116
-
117
- <!-- Basic Metadata -->
118
- <meta charset={charset} />
119
- <meta name="viewport" content={viewport} />
120
- <meta name="generator" content={Astro.generator} />
121
-
122
- <!-- Sitemap -->
123
- <link rel="sitemap" href="/sitemap-index.xml" />
124
-
125
- <!-- RSS Feed -->
126
- {rssFeed && <link rel="alternate" type="application/rss+xml" href={rssFeed.href} title={rssFeed.title || 'RSS'} />}
127
-
128
- <!-- SEO -->
129
- <title>{displayTitle}</title>
130
- {safeDescription && <meta name="description" content={safeDescription} />}
131
- <meta name="robots" content={robots || defaultRobots} />
132
- {finalCanonical && <link rel="canonical" href={finalCanonical} />}
133
-
134
- <!-- i18n Alternates -->
135
- {languageAlternates.map((alt) => (
136
- <link rel="alternate" hreflang={alt.hreflang} href={alt.href} />
137
- ))}
138
-
139
- <!-- Open Graph / Facebook -->
140
- <meta property="og:type" content={ogType} />
141
- <meta property="og:locale" content={ogLocale} />
142
- <meta property="og:url" content={Astro.url.href} />
143
- <meta property="og:title" content={title || siteName} />
144
- {safeDescription && <meta property="og:description" content={safeDescription} />}
145
- {absoluteOgImage && <meta property="og:image" content={absoluteOgImage} />}
146
- {finalOgImage && <meta property="og:image:alt" content={finalOgImage.alt} />}
147
- <meta property="og:site_name" content={siteName} />
148
-
149
- <!-- Twitter -->
150
- <meta property="twitter:card" content="summary_large_image" />
151
- <meta property="twitter:url" content={Astro.url.href} />
152
- <meta property="twitter:title" content={title || siteName} />
153
- {safeDescription && <meta property="twitter:description" content={safeDescription} />}
154
- {absoluteOgImage && <meta property="twitter:image" content={absoluteOgImage} />}
155
- {finalOgImage && <meta property="twitter:image:alt" content={finalOgImage.alt} />}
156
- {twitterHandle && <meta property="twitter:site" content={twitterHandle} />}
157
- {twitterHandle && <meta property="twitter:creator" content={twitterHandle} />}
158
-
159
- <!-- Icons -->
160
- <link rel="icon" type="image/svg+xml" href={favicon} />
161
-
162
- <!-- Theme -->
163
- {themeColor && <meta name="theme-color" content={themeColor} />}
164
-
165
- <script is:inline>
166
- const theme = (() => {
167
- if (typeof localStorage !== 'undefined' && localStorage.getItem('theme')) {
168
- return localStorage.getItem('theme');
169
- }
170
- if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
171
- return 'dark';
172
- }
173
- return 'light';
174
- })();
175
-
176
- if (theme === 'dark') {
177
- document.documentElement.classList.add('dark');
178
- } else {
179
- document.documentElement.classList.remove('dark');
180
- }
181
-
182
- window.localStorage.setItem('theme', theme);
183
- </script>
184
-
185
- <script>
186
- document.addEventListener('astro:after-swap', () => {
187
- if (localStorage.getItem('theme') === 'dark') {
188
- document.documentElement.classList.add('dark');
189
- } else {
190
- document.documentElement.classList.remove('dark');
191
- }
192
- });
193
- </script>
194
-
195
- {transitions && <ClientRouter />}
196
-
197
- <App client:load>
198
- <slot />
199
- </App>
1
+ ---
2
+ import { ClientRouter } from 'astro:transitions';
3
+ import type { SiteConfig } from '@/config';
4
+
5
+ export interface OGImage {
6
+ /** Image URL (relative or absolute) */
7
+ src: string;
8
+ /** Alt text for the image */
9
+ alt: string;
10
+ }
11
+
12
+ export interface RSSFeed {
13
+ /** RSS feed URL */
14
+ href: string;
15
+ /** Feed title (defaults to "RSS") */
16
+ title?: string;
17
+ }
18
+
19
+ export interface HeadProps {
20
+ /** Page title */
21
+ title?: string;
22
+ /** Page description */
23
+ description?: string;
24
+ /** Open Graph image with alt text */
25
+ ogImage?: OGImage;
26
+ /** Open Graph type (e.g., "website", "article") */
27
+ ogType?: string;
28
+ /** Open Graph locale (defaults to "en_US") */
29
+ ogLocale?: string;
30
+ /** Whether to prevent indexing */
31
+ noindex?: boolean;
32
+ /** Whether this is a 404 page */
33
+ is404?: boolean;
34
+ /** Robots metadata (overrides noindex/is404 logic if provided) */
35
+ robots?: string;
36
+ /** Canonical URL */
37
+ canonical?: string;
38
+ /** Language alternates for i18n */
39
+ languageAlternates?: Array<{ hreflang: string; href: string }>;
40
+ /** Site configuration for defaults */
41
+ config?: SiteConfig;
42
+ /** Whether to enable View Transitions (ClientRouter) */
43
+ transitions?: boolean;
44
+ /** Meta charset */
45
+ charset?: string;
46
+ /** Meta viewport */
47
+ viewport?: string;
48
+ /** RSS feed configuration */
49
+ rssFeed?: RSSFeed;
50
+ }
51
+
52
+ const {
53
+ title,
54
+ description,
55
+ ogImage,
56
+ ogType = 'website',
57
+ ogLocale = 'en_US',
58
+ noindex = false,
59
+ is404 = false,
60
+ robots,
61
+ canonical,
62
+ languageAlternates = [],
63
+ config,
64
+ transitions = true,
65
+ charset = 'utf-8',
66
+ viewport = 'width=device-width,initial-scale=1',
67
+ rssFeed,
68
+ } = Astro.props as HeadProps;
69
+
70
+ // Resolve defaults from config if available
71
+ const siteName = config?.name || 'Rimelight';
72
+ const siteDescription = config?.description || '';
73
+ const ogImageFallback = config?.seo?.ogImageFallback || config?.ogImage || '';
74
+ const themeColor = config?.branding?.colors?.themeColor;
75
+ const favicon = config?.branding?.favicon?.svg || '/favicon.svg';
76
+ const twitterHandle = config?.seo?.authorHandle;
77
+ const titleTemplate = config?.seo?.titleTemplate || `%s | ${siteName}`;
78
+
79
+ // Calculated Values
80
+ const displayTitle = is404
81
+ ? `404 - Not Found | ${siteName}`
82
+ : title
83
+ ? titleTemplate.replace('%s', title)
84
+ : siteName;
85
+
86
+ const finalDescription = description || siteDescription;
87
+ const safeDescription = finalDescription && config?.seo?.maxDescriptionLength
88
+ ? (finalDescription.length > config.seo.maxDescriptionLength
89
+ ? finalDescription.slice(0, config.seo.maxDescriptionLength - 3) + '...'
90
+ : finalDescription)
91
+ : finalDescription;
92
+
93
+ const finalOgImage = ogImage || (ogImageFallback ? { src: ogImageFallback, alt: siteName } : undefined);
94
+ const absoluteOgImage = finalOgImage
95
+ ? new URL(finalOgImage.src, Astro.site).toString()
96
+ : undefined;
97
+
98
+ function formatCanonicalURL(url: string | URL) {
99
+ const resolved = new URL(url, Astro.site);
100
+ const path = resolved.toString();
101
+ const hasQueryParams = path.includes('?');
102
+ if (hasQueryParams) {
103
+ return path.replace(/\/?$/, '');
104
+ }
105
+ return path.replace(/\/?$/, '/');
106
+ }
107
+
108
+ const finalCanonical = canonical
109
+ ? formatCanonicalURL(canonical)
110
+ : (!is404 ? formatCanonicalURL(Astro.url) : undefined);
111
+
112
+ const isIndexable = !noindex && !is404;
113
+ const defaultRobots = isIndexable ? 'index, follow, max-image-preview:large' : 'noindex, nofollow';
114
+ ---
115
+
116
+ <!-- Basic Metadata -->
117
+ <meta charset={charset} />
118
+ <meta name="viewport" content={viewport} />
119
+ <meta name="generator" content={Astro.generator} />
120
+
121
+ <!-- Sitemap -->
122
+ <link rel="sitemap" href="/sitemap-index.xml" />
123
+
124
+ <!-- RSS Feed -->
125
+ {rssFeed && <link rel="alternate" type="application/rss+xml" href={rssFeed.href} title={rssFeed.title || 'RSS'} />}
126
+
127
+ <!-- SEO -->
128
+ <title>{displayTitle}</title>
129
+ {safeDescription && <meta name="description" content={safeDescription} />}
130
+ <meta name="robots" content={robots || defaultRobots} />
131
+ {finalCanonical && <link rel="canonical" href={finalCanonical} />}
132
+
133
+ <!-- i18n Alternates -->
134
+ {languageAlternates.map((alt) => (
135
+ <link rel="alternate" hreflang={alt.hreflang} href={alt.href} />
136
+ ))}
137
+
138
+ <!-- Open Graph / Facebook -->
139
+ <meta property="og:type" content={ogType} />
140
+ <meta property="og:locale" content={ogLocale} />
141
+ <meta property="og:url" content={Astro.url.href} />
142
+ <meta property="og:title" content={title || siteName} />
143
+ {safeDescription && <meta property="og:description" content={safeDescription} />}
144
+ {absoluteOgImage && <meta property="og:image" content={absoluteOgImage} />}
145
+ {finalOgImage && <meta property="og:image:alt" content={finalOgImage.alt} />}
146
+ <meta property="og:site_name" content={siteName} />
147
+
148
+ <!-- Twitter -->
149
+ <meta property="twitter:card" content="summary_large_image" />
150
+ <meta property="twitter:url" content={Astro.url.href} />
151
+ <meta property="twitter:title" content={title || siteName} />
152
+ {safeDescription && <meta property="twitter:description" content={safeDescription} />}
153
+ {absoluteOgImage && <meta property="twitter:image" content={absoluteOgImage} />}
154
+ {finalOgImage && <meta property="twitter:image:alt" content={finalOgImage.alt} />}
155
+ {twitterHandle && <meta property="twitter:site" content={twitterHandle} />}
156
+ {twitterHandle && <meta property="twitter:creator" content={twitterHandle} />}
157
+
158
+ <!-- Icons -->
159
+ <link rel="icon" type="image/svg+xml" href={favicon} />
160
+
161
+ <!-- Theme -->
162
+ {themeColor && <meta name="theme-color" content={themeColor} />}
163
+
164
+ <script is:inline>
165
+ (function() {
166
+ const stored = localStorage.getItem('theme');
167
+ if (stored) {
168
+ if (stored === 'dark') {
169
+ document.documentElement.classList.add('dark');
170
+ } else {
171
+ document.documentElement.classList.remove('dark');
172
+ }
173
+ } else {
174
+ if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
175
+ document.documentElement.classList.add('dark');
176
+ }
177
+ }
178
+ })();
179
+ </script>
180
+
181
+ {transitions && <ClientRouter />}
@@ -0,0 +1,31 @@
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>
@@ -0,0 +1,19 @@
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>
@@ -0,0 +1,62 @@
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { InputProps } from "../../types"
5
+ import inputThemeDefault, { createInputTheme } from "../../themes/input.theme"
6
+
7
+ const inputTheme = inputThemeDefault
8
+ const input = scv(inputTheme)
9
+
10
+ const {
11
+ type = "text",
12
+ value = "",
13
+ placeholder,
14
+ disabled = false,
15
+ readonly = false,
16
+ name,
17
+ required = false,
18
+ error = false,
19
+ leadingIcon,
20
+ trailingIcon,
21
+ size = "md",
22
+ color = "primary",
23
+ theme,
24
+ ui: uiProp,
25
+ class: className,
26
+ ...rest
27
+ } = Astro.props as InputProps
28
+
29
+ const hasLeading = !!leadingIcon
30
+ const hasTrailing = !!trailingIcon
31
+
32
+ const classes = resolveClasses(input, {
33
+ size,
34
+ hasLeading,
35
+ hasTrailing,
36
+ error: !!error,
37
+ theme
38
+ }, useUi("input", uiProp), className);
39
+ ---
40
+ <div class={classes.root} data-slot="root">
41
+ {leadingIcon && (
42
+ <span class={classes.leading} data-slot="leading-icon">
43
+ <span class={leadingIcon} />
44
+ </span>
45
+ )}
46
+ <input
47
+ type={type}
48
+ class={classes.input}
49
+ value={value}
50
+ placeholder={placeholder}
51
+ disabled={disabled}
52
+ readonly={readonly}
53
+ name={name}
54
+ required={required}
55
+ {...rest}
56
+ />
57
+ {trailingIcon && (
58
+ <span class={classes.trailing} data-slot="trailing-icon">
59
+ <span class={trailingIcon} />
60
+ </span>
61
+ )}
62
+ </div>
@@ -0,0 +1,19 @@
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 />
19
+ </div>