@rimelight/ui 0.0.42 → 0.0.43

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 (400) hide show
  1. package/README.md +4 -14
  2. package/package.json +20 -30
  3. package/src/components/3d-hover/3d-hover.theme.ts +9 -12
  4. package/src/components/3d-hover/RLA3dHover.astro +9 -20
  5. package/src/components/accordion/RLAAccordion.astro +5 -14
  6. package/src/components/accordion/accordion.theme.ts +34 -37
  7. package/src/components/app/RLAApp.astro +9 -20
  8. package/src/components/app/app.theme.ts +9 -12
  9. package/src/components/aspect-ratio/RLAAspectRatio.astro +19 -27
  10. package/src/components/aspect-ratio/aspect-ratio.theme.ts +8 -12
  11. package/src/components/audio/RLAAudio.astro +3 -14
  12. package/src/components/audio/audio.theme.ts +9 -12
  13. package/src/components/avatar/RLAAvatar.astro +9 -29
  14. package/src/components/avatar/avatar.theme.ts +66 -77
  15. package/src/components/avatar/avatar.ts +6 -11
  16. package/src/components/avatar-group/RLAAvatarGroup.astro +188 -23
  17. package/src/components/avatar-group/avatar-group.theme.ts +12 -11
  18. package/src/components/avatar-group/avatar-group.ts +41 -0
  19. package/src/components/badge/RLABadge.astro +23 -36
  20. package/src/components/badge/RLSBadge.tsx +41 -0
  21. package/src/components/badge/RLVBadge.vue +8 -16
  22. package/src/components/badge/badge.theme.ts +118 -160
  23. package/src/components/badge/badge.ts +2 -1
  24. package/src/components/banner/RLABanner.astro +88 -103
  25. package/src/components/banner/banner.theme.ts +40 -43
  26. package/src/components/breadcrumb/RLABreadcrumb.astro +241 -62
  27. package/src/components/breadcrumb/breadcrumb.theme.ts +12 -16
  28. package/src/components/breadcrumb/breadcrumb.ts +19 -0
  29. package/src/components/browser-mockup/RLABrowserMockup.astro +9 -20
  30. package/src/components/browser-mockup/browser-mockup.theme.ts +9 -12
  31. package/src/components/button/RLAButton.astro +10 -30
  32. package/src/components/button/RLSButton.tsx +169 -0
  33. package/src/components/button/RLVButton.vue +13 -26
  34. package/src/components/button/button.theme.ts +163 -220
  35. package/src/components/button/button.ts +1 -1
  36. package/src/components/calendar/RLACalendar.astro +9 -20
  37. package/src/components/calendar/calendar.theme.ts +9 -12
  38. package/src/components/callout/RLACallout.astro +5 -14
  39. package/src/components/callout/callout.theme.ts +59 -101
  40. package/src/components/callout/callout.ts +1 -1
  41. package/src/components/card/RLACard.astro +71 -77
  42. package/src/components/card/RLSCard.tsx +116 -0
  43. package/src/components/card/RLVCard.vue +6 -14
  44. package/src/components/card/card.theme.ts +41 -44
  45. package/src/components/carousel/RLACarousel.astro +43 -11
  46. package/src/components/carousel/carousel.theme.ts +28 -32
  47. package/src/components/chart/RLAChart.astro +5 -11
  48. package/src/components/chart/chart.theme.ts +18 -21
  49. package/src/components/chart/chart.ts +1 -1
  50. package/src/components/chat/RLAChat.astro +9 -20
  51. package/src/components/chat/chat.theme.ts +9 -12
  52. package/src/components/chat-message/RLAChatMessage.astro +9 -20
  53. package/src/components/chat-message/chat-message.theme.ts +9 -12
  54. package/src/components/chat-messages/RLAChatMessages.astro +9 -20
  55. package/src/components/chat-messages/chat-messages.theme.ts +9 -12
  56. package/src/components/chat-palette/RLAChatPalette.astro +9 -20
  57. package/src/components/chat-palette/chat-palette.theme.ts +9 -12
  58. package/src/components/chat-prompt/RLAChatPrompt.astro +9 -20
  59. package/src/components/chat-prompt/chat-prompt.theme.ts +9 -12
  60. package/src/components/chat-prompt-submit/RLAChatPromptSubmit.astro +9 -20
  61. package/src/components/chat-prompt-submit/chat-prompt-submit.theme.ts +9 -12
  62. package/src/components/chat-reasoning/RLAChatReasoning.astro +9 -20
  63. package/src/components/chat-reasoning/chat-reasoning.theme.ts +9 -12
  64. package/src/components/chat-shimmer/RLAChatShimmer.astro +9 -20
  65. package/src/components/chat-shimmer/chat-shimmer.theme.ts +9 -12
  66. package/src/components/chat-tool/RLAChatTool.astro +9 -20
  67. package/src/components/chat-tool/chat-tool.theme.ts +9 -12
  68. package/src/components/checkbox/RLACheckbox.astro +2 -17
  69. package/src/components/checkbox/RLSCheckbox.tsx +65 -0
  70. package/src/components/checkbox/checkbox.theme.ts +34 -45
  71. package/src/components/checkbox/checkbox.ts +1 -1
  72. package/src/components/chip/RLAChip.astro +32 -56
  73. package/src/components/chip/chip.theme.ts +66 -72
  74. package/src/components/chip/chip.ts +3 -1
  75. package/src/components/collapsible/RLACollapsible.astro +2 -12
  76. package/src/components/collapsible/collapsible.theme.ts +17 -20
  77. package/src/components/collapsible/collapsible.ts +1 -1
  78. package/src/components/color-area/RLAColorArea.astro +2 -13
  79. package/src/components/color-area/color-area.theme.ts +19 -31
  80. package/src/components/color-area/color-area.ts +1 -1
  81. package/src/components/color-field/RLAColorField.astro +3 -14
  82. package/src/components/color-field/color-field.theme.ts +18 -30
  83. package/src/components/color-field/color-field.ts +1 -1
  84. package/src/components/color-picker/RLAColorPicker.astro +9 -20
  85. package/src/components/color-picker/color-picker.theme.ts +9 -12
  86. package/src/components/color-slider/RLAColorSlider.astro +2 -13
  87. package/src/components/color-slider/color-slider.theme.ts +20 -32
  88. package/src/components/color-slider/color-slider.ts +1 -1
  89. package/src/components/command-palette/RLACommandPalette.astro +9 -20
  90. package/src/components/command-palette/command-palette.theme.ts +9 -12
  91. package/src/components/compare/RLACompare.astro +9 -20
  92. package/src/components/compare/compare.theme.ts +9 -12
  93. package/src/components/confirm/RLAConfirm.astro +114 -122
  94. package/src/components/confirm/confirm.theme.ts +40 -44
  95. package/src/components/confirm/confirm.ts +1 -0
  96. package/src/components/container/RLAContainer.astro +9 -20
  97. package/src/components/container/container.theme.ts +9 -12
  98. package/src/components/context-menu/RLAContextMenu.astro +9 -20
  99. package/src/components/context-menu/context-menu.theme.ts +9 -12
  100. package/src/components/dashboard-group/RLADashboardGroup.astro +17 -21
  101. package/src/components/dashboard-group/dashboard-group.theme.ts +9 -12
  102. package/src/components/dashboard-group/dashboard-group.ts +1 -6
  103. package/src/components/dashboard-navbar/RLADashboardNavbar.astro +61 -21
  104. package/src/components/dashboard-navbar/dashboard-navbar.theme.ts +26 -12
  105. package/src/components/dashboard-navbar/dashboard-navbar.ts +5 -6
  106. package/src/components/dashboard-panel/RLADashboardPanel.astro +25 -13
  107. package/src/components/dashboard-panel/dashboard-panel.theme.ts +22 -12
  108. package/src/components/dashboard-panel/dashboard-panel.ts +4 -6
  109. package/src/components/dashboard-resize-handle/RLADashboardResizeHandle.astro +21 -21
  110. package/src/components/dashboard-resize-handle/dashboard-resize-handle.theme.ts +9 -12
  111. package/src/components/dashboard-resize-handle/dashboard-resize-handle.ts +1 -6
  112. package/src/components/dashboard-search/RLADashboardSearch.astro +100 -21
  113. package/src/components/dashboard-search/dashboard-search.theme.ts +24 -11
  114. package/src/components/dashboard-search/dashboard-search.ts +2 -6
  115. package/src/components/dashboard-search-button/RLADashboardSearchButton.astro +45 -21
  116. package/src/components/dashboard-search-button/dashboard-search-button.theme.ts +20 -12
  117. package/src/components/dashboard-search-button/dashboard-search-button.ts +4 -6
  118. package/src/components/dashboard-sidebar/RLADashboardSidebar.astro +119 -21
  119. package/src/components/dashboard-sidebar/dashboard-sidebar.theme.ts +40 -11
  120. package/src/components/dashboard-sidebar/dashboard-sidebar.ts +8 -6
  121. package/src/components/dashboard-sidebar-collapse/RLADashboardSidebarCollapse.astro +24 -21
  122. package/src/components/dashboard-sidebar-collapse/dashboard-sidebar-collapse.theme.ts +16 -12
  123. package/src/components/dashboard-sidebar-collapse/dashboard-sidebar-collapse.ts +2 -6
  124. package/src/components/dashboard-sidebar-toggle/RLADashboardSidebarToggle.astro +23 -21
  125. package/src/components/dashboard-sidebar-toggle/dashboard-sidebar-toggle.theme.ts +16 -12
  126. package/src/components/dashboard-sidebar-toggle/dashboard-sidebar-toggle.ts +2 -6
  127. package/src/components/dashboard-toolbar/RLADashboardToolbar.astro +25 -21
  128. package/src/components/dashboard-toolbar/dashboard-toolbar.theme.ts +11 -12
  129. package/src/components/dashboard-toolbar/dashboard-toolbar.ts +1 -6
  130. package/src/components/dock/RLADock.astro +9 -20
  131. package/src/components/dock/dock.theme.ts +9 -12
  132. package/src/components/drawer/RLADrawer.astro +115 -126
  133. package/src/components/drawer/drawer.theme.ts +53 -57
  134. package/src/components/dropdown-menu/RLADropdownMenu.astro +180 -47
  135. package/src/components/dropdown-menu/RLSDropdownMenu.tsx +196 -0
  136. package/src/components/dropdown-menu/dropdown-menu.theme.ts +51 -27
  137. package/src/components/dropdown-menu/dropdown-menu.ts +47 -9
  138. package/src/components/editor/RLAEditor.astro +9 -20
  139. package/src/components/editor/blocks/AddBlockModal.vue +3 -3
  140. package/src/components/editor/blocks/Block.vue +4 -3
  141. package/src/components/editor/blocks/BlockEditor.vue +3 -3
  142. package/src/components/editor/blocks/BlockViewRenderer.vue +8 -2
  143. package/src/components/editor/blocks/editor/CalloutBlockEditor.vue +2 -2
  144. package/src/components/editor/blocks/editor/ParagraphBlockEditor.vue +1 -1
  145. package/src/components/editor/blocks/editor/SectionBlockEditor.vue +3 -3
  146. package/src/components/editor/blocks/renderer/CalloutBlockRenderer.vue +2 -3
  147. package/src/components/editor/blocks/renderer/SectionBlockRenderer.vue +2 -2
  148. package/src/components/editor/editor.theme.ts +9 -12
  149. package/src/components/empty/RLAEmpty.astro +86 -20
  150. package/src/components/empty/empty.theme.ts +79 -11
  151. package/src/components/empty/empty.ts +59 -2
  152. package/src/components/error/RLAError.astro +9 -20
  153. package/src/components/error/error.theme.ts +9 -12
  154. package/src/components/field-group/RLAFieldGroup.astro +2 -11
  155. package/src/components/field-group/field-group.theme.ts +18 -22
  156. package/src/components/fieldset/RLAFieldset.astro +9 -20
  157. package/src/components/fieldset/fieldset.theme.ts +9 -12
  158. package/src/components/file-upload/RLAFileUpload.astro +4 -13
  159. package/src/components/file-upload/file-upload.theme.ts +19 -22
  160. package/src/components/file-upload/file-upload.ts +1 -1
  161. package/src/components/floating-action/RLAFloatingAction.astro +9 -20
  162. package/src/components/floating-action/floating-action.theme.ts +9 -12
  163. package/src/components/footer/RLAFooter.astro +32 -38
  164. package/src/components/footer/footer.theme.ts +31 -26
  165. package/src/components/footer/footer.ts +4 -0
  166. package/src/components/form/RLAForm.astro +9 -20
  167. package/src/components/form/form.theme.ts +9 -12
  168. package/src/components/form-field/RLAFormField.astro +5 -12
  169. package/src/components/form-field/RLSFormField.tsx +71 -0
  170. package/src/components/form-field/RLVFormField.vue +5 -14
  171. package/src/components/form-field/form-field.theme.ts +19 -22
  172. package/src/components/form-field/form-field.ts +1 -0
  173. package/src/components/gallery/RLAGallery.astro +9 -20
  174. package/src/components/gallery/gallery.theme.ts +9 -12
  175. package/src/components/grid/RLAGrid.astro +2 -15
  176. package/src/components/grid/grid.theme.ts +31 -34
  177. package/src/components/head/UIHead.astro +298 -0
  178. package/src/components/head/head.theme.ts +9 -12
  179. package/src/components/header/HeaderLayer.astro +63 -0
  180. package/src/components/header/RLAHeader.astro +29 -48
  181. package/src/components/header/header.theme.ts +37 -40
  182. package/src/components/header/header.ts +4 -0
  183. package/src/{utils → components/header}/headerStack.ts +30 -22
  184. package/src/components/hover-card/RLAHoverCard.astro +24 -35
  185. package/src/components/hover-card/hover-card.theme.ts +23 -27
  186. package/src/components/icon/RLAIcon.astro +29 -36
  187. package/src/components/icon/RLSIcon.tsx +6 -7
  188. package/src/components/icon/RLVIcon.vue +5 -6
  189. package/src/components/icon/icon.theme.ts +18 -28
  190. package/src/components/icon/resolver.ts +15 -29
  191. package/src/components/image/RLAImage.astro +20 -23
  192. package/src/components/image/image.theme.ts +29 -32
  193. package/src/components/input/RLAInput.astro +6 -21
  194. package/src/components/input/RLSInput.tsx +101 -0
  195. package/src/components/input/RLVInput.vue +11 -20
  196. package/src/components/input/input.theme.ts +41 -44
  197. package/src/components/input/input.ts +1 -1
  198. package/src/components/input-date/RLAInputDate.astro +9 -20
  199. package/src/components/input-date/input-date.theme.ts +9 -12
  200. package/src/components/input-menu/RLAInputMenu.astro +2 -12
  201. package/src/components/input-menu/input-menu.theme.ts +29 -32
  202. package/src/components/input-menu/input-menu.ts +1 -1
  203. package/src/components/input-number/RLAInputNumber.astro +9 -20
  204. package/src/components/input-number/input-number.theme.ts +9 -12
  205. package/src/components/input-pin/RLAInputPin.astro +9 -22
  206. package/src/components/input-pin/input-pin.theme.ts +9 -13
  207. package/src/components/input-rating/RLAInputRating.astro +2 -23
  208. package/src/components/input-rating/input-rating.theme.ts +64 -76
  209. package/src/components/input-rating/input-rating.ts +1 -1
  210. package/src/components/input-tags/RLAInputTags.astro +174 -21
  211. package/src/components/input-tags/input-tags.theme.ts +37 -12
  212. package/src/components/input-tags/input-tags.ts +50 -0
  213. package/src/components/input-time/RLAInputTime.astro +9 -20
  214. package/src/components/input-time/input-time.theme.ts +9 -12
  215. package/src/components/kbd/RLAKbd.astro +17 -32
  216. package/src/components/kbd/kbd.theme.ts +49 -91
  217. package/src/components/kbd/kbd.ts +3 -0
  218. package/src/components/knob/RLAKnob.astro +9 -20
  219. package/src/components/knob/knob.theme.ts +9 -12
  220. package/src/components/label/RLALabel.astro +16 -27
  221. package/src/components/label/label.theme.ts +16 -20
  222. package/src/components/layout-grid/RLALayoutGrid.astro +5 -11
  223. package/src/components/layout-grid/layout-grid.theme.ts +12 -15
  224. package/src/components/link/RLALink.astro +6 -20
  225. package/src/components/link/RLSLink.tsx +8 -16
  226. package/src/components/link/RLVLink.vue +7 -16
  227. package/src/components/link/link.theme.ts +37 -37
  228. package/src/components/link/link.ts +5 -5
  229. package/src/components/link-group/RLALinkGroup.astro +7 -44
  230. package/src/components/link-group/link-group.theme.ts +21 -26
  231. package/src/components/link-group/link-group.ts +5 -16
  232. package/src/components/listbox/RLAListbox.astro +9 -20
  233. package/src/components/listbox/listbox.theme.ts +9 -12
  234. package/src/components/locale-selector/RLALocaleSelector.astro +13 -21
  235. package/src/components/locale-selector/locale-selector.theme.ts +49 -44
  236. package/src/components/locale-selector/locale-selector.ts +4 -0
  237. package/src/components/logo/RLALogo.astro +13 -26
  238. package/src/components/logo/logo.theme.ts +9 -12
  239. package/src/components/main/RLAMain.astro +31 -36
  240. package/src/components/main/main.theme.ts +9 -12
  241. package/src/components/marquee/RLAMarquee.astro +62 -43
  242. package/src/components/marquee/marquee.theme.ts +22 -26
  243. package/src/components/meter/RLAMeter.astro +9 -20
  244. package/src/components/meter/meter.theme.ts +9 -12
  245. package/src/components/modal/RLAModal.astro +70 -72
  246. package/src/components/modal/RLSModal.tsx +156 -0
  247. package/src/components/modal/RLVModal.vue +5 -6
  248. package/src/components/modal/modal.theme.ts +42 -46
  249. package/src/components/modal/modal.ts +1 -0
  250. package/src/components/navigation-menu/RLANavigationMenu.astro +7 -12
  251. package/src/components/navigation-menu/navigation-menu.theme.ts +36 -39
  252. package/src/components/navigation-menu/navigation-menu.ts +19 -18
  253. package/src/components/page/RLAPage.astro +9 -20
  254. package/src/components/page/page.theme.ts +9 -12
  255. package/src/components/page-aside/RLAPageAside.astro +9 -20
  256. package/src/components/page-aside/page-aside.theme.ts +9 -12
  257. package/src/components/page-body/RLAPageBody.astro +9 -20
  258. package/src/components/page-body/page-body.theme.ts +9 -12
  259. package/src/components/page-header/RLAPageHeader.astro +9 -20
  260. package/src/components/page-header/page-header.theme.ts +9 -12
  261. package/src/components/page-section/RLAPageSection.astro +11 -15
  262. package/src/components/page-section/page-section.theme.ts +193 -176
  263. package/src/components/pagination/RLAPagination.astro +91 -97
  264. package/src/components/pagination/pagination.theme.ts +22 -26
  265. package/src/components/password/RLAPassword.astro +9 -20
  266. package/src/components/password/password.theme.ts +9 -12
  267. package/src/components/phone-mockup/RLAPhoneMockup.astro +9 -20
  268. package/src/components/phone-mockup/phone-mockup.theme.ts +9 -12
  269. package/src/components/placeholder/RLAPlaceholder.astro +32 -43
  270. package/src/components/placeholder/placeholder.theme.ts +11 -14
  271. package/src/components/popover/RLAPopover.astro +205 -132
  272. package/src/components/popover/popover.theme.ts +23 -27
  273. package/src/components/post/RLAPost.astro +2 -10
  274. package/src/components/post/post.theme.ts +45 -48
  275. package/src/components/pricing-plan/RLAPricingPlan.astro +9 -20
  276. package/src/components/pricing-plan/pricing-plan.theme.ts +9 -12
  277. package/src/components/pricing-table/RLAPricingTable.astro +9 -20
  278. package/src/components/pricing-table/pricing-table.theme.ts +9 -12
  279. package/src/components/progress/RLAProgress.astro +2 -17
  280. package/src/components/progress/progress.theme.ts +22 -34
  281. package/src/components/progress/progress.ts +1 -1
  282. package/src/components/prose/RLAProse.astro +9 -20
  283. package/src/components/prose/prose.theme.ts +9 -12
  284. package/src/components/qr-code/RLAQrCode.astro +9 -20
  285. package/src/components/qr-code/qr-code.theme.ts +9 -12
  286. package/src/components/quote/quote.theme.ts +9 -12
  287. package/src/components/radio-group/RLARadioGroup.astro +9 -20
  288. package/src/components/radio-group/radio-group.theme.ts +9 -12
  289. package/src/components/rating/RLARating.astro +9 -20
  290. package/src/components/rating/rating.theme.ts +9 -12
  291. package/src/components/scroll-area/RLAScrollArea.astro +2 -10
  292. package/src/components/scroll-area/scroll-area.theme.ts +21 -24
  293. package/src/components/scroll-to-top/RLAScrollToTop.astro +67 -43
  294. package/src/components/scroll-to-top/RLVScrollToTop.vue +6 -10
  295. package/src/components/scroll-to-top/scroll-to-top.theme.ts +32 -46
  296. package/src/components/scroll-to-top/scroll-to-top.ts +1 -1
  297. package/src/{utils → components/scroll-to-top}/scroll.ts +19 -6
  298. package/src/components/search/RLASearch.astro +3 -9
  299. package/src/components/search/search.theme.ts +60 -63
  300. package/src/components/select/RLASelect.astro +514 -113
  301. package/src/components/select/RLSSelect.tsx +126 -0
  302. package/src/components/select/RLVSelect.vue +7 -15
  303. package/src/components/select/select.theme.ts +104 -25
  304. package/src/components/select/select.ts +58 -36
  305. package/src/components/separator/RLASeparator.astro +62 -83
  306. package/src/components/separator/separator.theme.ts +135 -138
  307. package/src/components/separator/separator.ts +4 -0
  308. package/src/components/shortcuts/RLAShortcuts.astro +3 -4
  309. package/src/components/sidebar/RLASidebar.astro +11 -21
  310. package/src/components/sidebar/sidebar.theme.ts +39 -42
  311. package/src/components/sidebar/sidebar.ts +2 -0
  312. package/src/components/skeleton/RLASkeleton.astro +13 -22
  313. package/src/components/skeleton/skeleton.theme.ts +16 -19
  314. package/src/components/slideover/RLASlideover.astro +2 -12
  315. package/src/components/slideover/slideover.theme.ts +51 -55
  316. package/src/components/slider/RLASlider.astro +2 -15
  317. package/src/components/slider/slider.theme.ts +20 -33
  318. package/src/components/slider/slider.ts +1 -1
  319. package/src/components/speed-dial/RLASpeedDial.astro +9 -20
  320. package/src/components/speed-dial/speed-dial.theme.ts +9 -12
  321. package/src/components/spinner/RLASpinner.astro +2 -17
  322. package/src/components/spinner/spinner.theme.ts +29 -30
  323. package/src/components/spinner/spinner.ts +1 -1
  324. package/src/components/splitter/RLASplitter.astro +3 -11
  325. package/src/components/splitter/splitter.theme.ts +18 -21
  326. package/src/components/spoiler/RLASpoiler.astro +9 -20
  327. package/src/components/spoiler/spoiler.theme.ts +9 -12
  328. package/src/components/stepper/RLAStepper.astro +300 -21
  329. package/src/components/stepper/stepper.theme.ts +214 -12
  330. package/src/components/stepper/stepper.ts +23 -6
  331. package/src/components/steps/RLASteps.astro +2 -8
  332. package/src/components/steps/steps.theme.ts +9 -12
  333. package/src/components/sticky-surface/RLAStickySurface.astro +67 -38
  334. package/src/components/sticky-surface/sticky-surface.theme.ts +7 -11
  335. package/src/components/sticky-surface/sticky-surface.ts +1 -0
  336. package/src/components/surround/RLASurround.astro +5 -5
  337. package/src/components/switch/RLASwitch.astro +2 -18
  338. package/src/components/switch/switch.theme.ts +50 -61
  339. package/src/components/switch/switch.ts +1 -1
  340. package/src/components/table/RLATable.astro +566 -50
  341. package/src/components/table/table.theme.ts +112 -31
  342. package/src/components/table/table.ts +207 -6
  343. package/src/components/table-of-contents/RLATableOfContents.astro +8 -13
  344. package/src/components/table-of-contents/table-of-contents.theme.ts +60 -63
  345. package/src/components/tabs/RLATabs.astro +195 -51
  346. package/src/components/tabs/tabs.theme.ts +81 -84
  347. package/src/components/tabs/tabs.ts +18 -1
  348. package/src/components/textarea/RLATextarea.astro +16 -13
  349. package/src/components/textarea/RLSTextarea.tsx +69 -0
  350. package/src/components/textarea/RLVTextarea.vue +8 -16
  351. package/src/components/textarea/textarea.theme.ts +21 -24
  352. package/src/components/textarea/textarea.ts +2 -1
  353. package/src/components/theme-selector/RLAThemeSelector.astro +5 -13
  354. package/src/components/theme-selector/theme-selector.theme.ts +11 -14
  355. package/src/components/timeline/RLATimeline.astro +24 -44
  356. package/src/components/timeline/timeline.theme.ts +302 -307
  357. package/src/components/toast/RLAToast.astro +44 -18
  358. package/src/components/toast/store.ts +97 -0
  359. package/src/components/toast/toast.theme.ts +31 -34
  360. package/src/components/toast/toast.ts +1 -1
  361. package/src/components/toaster/RLAToaster.astro +76 -6
  362. package/src/components/tooltip/RLATooltip.astro +136 -33
  363. package/src/components/tooltip/tooltip.theme.ts +23 -26
  364. package/src/components/tour/RLATour.astro +9 -20
  365. package/src/components/tour/tour.theme.ts +9 -12
  366. package/src/components/tree/RLATree.astro +9 -20
  367. package/src/components/tree/tree.theme.ts +9 -12
  368. package/src/components/user/RLAUser.astro +9 -20
  369. package/src/components/user/user.theme.ts +9 -12
  370. package/src/components/video/RLAVideo.astro +5 -10
  371. package/src/components/video/video.theme.ts +13 -16
  372. package/src/components/watermark/RLAWatermark.astro +9 -20
  373. package/src/components/watermark/watermark.theme.ts +9 -12
  374. package/src/components/window-mockup/RLAWindowMockup.astro +9 -20
  375. package/src/components/window-mockup/window-mockup.theme.ts +9 -12
  376. package/src/icons.ts +68 -0
  377. package/src/index.ts +31 -0
  378. package/src/preset.ts +146 -0
  379. package/src/resolver.ts +20 -0
  380. package/src/shortcuts.ts +172 -0
  381. package/src/types.ts +57 -0
  382. package/LICENSE +0 -21
  383. package/src/components/head/RLAHead.astro +0 -528
  384. package/src/config/color.config.ts +0 -300
  385. package/src/config/site.config.ts +0 -28
  386. package/src/config/ui.config.ts +0 -89
  387. package/src/env.d.ts +0 -23
  388. package/src/icons/defaults.ts +0 -44
  389. package/src/presets/index.ts +0 -577
  390. package/src/stores/toast.ts +0 -24
  391. package/src/themes.ts +0 -26
  392. package/src/types/component.ts +0 -28
  393. package/src/ui.ts +0 -159
  394. package/src/utils/defineTheme.ts +0 -5
  395. package/src/utils/merge.ts +0 -62
  396. package/src/utils/resolveClasses.ts +0 -39
  397. package/src/utils/resolveTheme.ts +0 -13
  398. package/src/utils/shortcuts.ts +0 -322
  399. package/src/utils/toast.ts +0 -36
  400. package/src/utils/useUi.ts +0 -33
@@ -1,35 +1,24 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
- import type { HoverCardProps } from "./hover-card"
6
- import { resolveTheme } from "../../utils/resolveTheme"
7
- import hoverCardThemeDefault, { createHoverCardTheme } from "./hover-card.theme"
8
- const hoverCardTheme = resolveTheme(hoverCardThemeDefault, createHoverCardTheme)
9
-
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
+ ---
2
+ import type { HoverCardProps } from "./hover-card"
3
+ import { hoverCardTheme } from "./hover-card.theme"
4
+
5
+
6
+
7
+ const {
8
+ triggerLabel,
9
+ ...rest
10
+ } = Astro.props as HoverCardProps
11
+
12
+ const classes = hoverCardTheme(Astro.props)
13
+ ---
14
+ <div class={classes.root} data-slot="hover-card-container" {...rest}>
15
+ <div class={classes.trigger} data-slot="trigger" tabindex="0">
16
+ <slot name="trigger">
17
+ {triggerLabel && <span class="cursor-help underline decoration-dotted">{triggerLabel}</span>}
18
+ </slot>
19
+ </div>
20
+
21
+ <div class={classes.content} data-slot="content">
22
+ <slot />
23
+ </div>
24
+ </div>
@@ -1,29 +1,25 @@
1
- import { colorConfig } from "../../config/color.config"
2
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
3
2
 
4
- export const createHoverCardTheme = (_colors: readonly string[] = colorConfig.colors) =>
5
- defineTheme({
6
- slots: ["root", "trigger", "content"],
7
- base: {
8
- root: "relative inline-block group/hover-card",
9
- trigger: "",
10
- content: [
11
- "absolute z-50 w-80 rounded-lg border border-border bg-card p-4 text-card-foreground shadow-md outline-none",
12
- "transition-all duration-200 invisible opacity-0 scale-95 origin-center pointer-events-none",
13
- "group-hover/hover-card:visible group-hover/hover-card:opacity-100 group-hover/hover-card:scale-100 group-hover/hover-card:pointer-events-auto"
14
- ]
15
- },
16
- variants: {
17
- placement: {
18
- top: { content: "bottom-full left-1/2 -translate-x-1/2 mb-2" },
19
- bottom: { content: "top-full left-1/2 -translate-x-1/2 mt-2" },
20
- left: { content: "right-full top-1/2 -translate-y-1/2 mr-2" },
21
- right: { content: "left-full top-1/2 -translate-y-1/2 ml-2" }
22
- }
23
- },
24
- defaultVariants: {
25
- placement: "bottom"
3
+ export const hoverCardTheme = defineTheme("hover-card", {
4
+ slots: ["root", "trigger", "content"],
5
+ base: {
6
+ root: "relative inline-block group/hover-card",
7
+ trigger: "",
8
+ content: [
9
+ "absolute z-50 w-80 rounded-lg border border-default bg-elevated p-4 text-highlighted shadow-md outline-none",
10
+ "transition-all duration-200 invisible opacity-0 scale-95 origin-center pointer-events-none",
11
+ "group-hover/hover-card:visible group-hover/hover-card:opacity-100 group-hover/hover-card:scale-100 group-hover/hover-card:pointer-events-auto"
12
+ ]
13
+ },
14
+ variants: {
15
+ placement: {
16
+ top: { content: "bottom-full left-1/2 -translate-x-1/2 mb-2" },
17
+ bottom: { content: "top-full left-1/2 -translate-x-1/2 mt-2" },
18
+ left: { content: "right-full top-1/2 -translate-y-1/2 mr-2" },
19
+ right: { content: "left-full top-1/2 -translate-y-1/2 ml-2" }
26
20
  }
27
- })
28
-
29
- export default createHoverCardTheme()
21
+ },
22
+ defaultVariants: {
23
+ placement: "bottom"
24
+ }
25
+ })
@@ -1,36 +1,29 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
- import { resolveIcon } from "./resolver"
6
- import type { IconProps } from "./icon"
7
- import iconTheme from "./icon.theme"
8
-
9
-
10
- const icon = scv(iconTheme)
11
-
12
- const {
13
- name,
14
- size = "md",
15
- ui: uiProp,
16
- class: className,
17
- ...rest
18
- } = Astro.props as IconProps
19
-
20
- const classes = resolveClasses(icon, { size }, useUi("icon", uiProp), className)
21
- const resolved = resolveIcon(name)
22
- ---
23
-
24
- <span
25
- class={classes.root}
26
- data-slot="icon"
27
- aria-hidden="true"
28
- {...rest}
29
- >
30
- {resolved.isClass ? (
31
- <span class={resolved.content} />
32
- ) : (
33
- <Fragment set:html={resolved.content} />
34
- )}
35
- </span>
36
-
1
+ ---
2
+ import { resolveIcon } from "./resolver"
3
+ import type { IconProps } from "./icon"
4
+ import { iconTheme } from "./icon.theme"
5
+
6
+
7
+
8
+ const {
9
+ name,
10
+ ...rest
11
+ } = Astro.props as IconProps
12
+
13
+ const classes = iconTheme(Astro.props)
14
+ const resolved = resolveIcon(name)
15
+ ---
16
+
17
+ <span
18
+ class={classes.root}
19
+ data-slot="icon"
20
+ aria-hidden="true"
21
+ {...rest}
22
+ >
23
+ {resolved.isClass ? (
24
+ <span class={resolved.content} />
25
+ ) : (
26
+ <Fragment set:html={resolved.content} />
27
+ )}
28
+ </span>
29
+
@@ -1,18 +1,17 @@
1
1
  import { createMemo, splitProps, type Component } from "solid-js"
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
2
  import { resolveIcon } from "./resolver"
6
3
  import type { IconProps } from "./icon"
7
- import iconThemeDefault from "./icon.theme"
8
-
9
- const iconScv = scv(iconThemeDefault)
4
+ import { iconTheme } from "./icon.theme"
10
5
 
11
6
  const RLSIcon: Component<IconProps> = (allProps) => {
12
7
  const [props, rest] = splitProps(allProps, ["name", "size", "ui", "class"])
13
8
  const resolved = createMemo(() => resolveIcon(props.name))
14
9
  const classes = createMemo(() =>
15
- resolveClasses(iconScv, { size: props.size ?? "md" }, useUi("icon", props.ui), props.class)
10
+ iconTheme({
11
+ size: props.size ?? "md",
12
+ ui: props.ui,
13
+ class: props.class
14
+ })
16
15
  )
17
16
  return (
18
17
  <span class={classes().root} data-slot="icon" aria-hidden="true" {...rest}>
@@ -1,23 +1,22 @@
1
1
  <script setup lang="ts">
2
2
  import { computed, useAttrs } from "vue"
3
- import { scv } from "css-variants"
4
- import { useUi } from "../../utils/useUi"
5
- import { resolveClasses } from "../../utils/resolveClasses"
6
3
  import { resolveIcon } from "./resolver"
7
4
  import type { IconProps } from "./icon"
8
- import iconThemeDefault from "./icon.theme"
5
+ import { iconTheme } from "./icon.theme"
9
6
 
10
7
  defineOptions({ name: "RLVIcon" })
11
8
 
12
9
  const attrs = useAttrs()
13
- const iconScv = scv(iconThemeDefault)
14
10
 
15
11
  const props = withDefaults(defineProps<IconProps>(), {
16
12
  size: "md"
17
13
  })
18
14
 
19
15
  const resolvedClasses = computed(() =>
20
- resolveClasses(iconScv, { size: props.size }, useUi("icon", props.ui), props.class)
16
+ iconTheme({
17
+ size: props.size,
18
+ class: props.class
19
+ })
21
20
  )
22
21
 
23
22
  const resolved = computed(() => resolveIcon(props.name))
@@ -1,30 +1,20 @@
1
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
2
2
 
3
- export const createIconTheme = () =>
4
- defineTheme({
5
- slots: ["root"],
6
- base: {
7
- root: [
8
- "shrink-0",
9
- "inline-flex",
10
- "items-center",
11
- "justify-center",
12
- "align-middle",
13
- "leading-none"
14
- ]
15
- },
16
- variants: {
17
- size: {
18
- xs: { root: ["h-3", "w-3"] },
19
- sm: { root: ["h-4", "w-4"] },
20
- md: { root: ["h-5", "w-5"] },
21
- lg: { root: ["h-6", "w-6"] },
22
- xl: { root: ["h-8", "w-8"] }
23
- }
24
- },
25
- defaultVariants: {
26
- size: "md"
3
+ export const iconTheme = defineTheme("icon", {
4
+ slots: ["root"],
5
+ base: {
6
+ root: "shrink-0 inline-flex items-center justify-center align-middle leading-none"
7
+ },
8
+ variants: {
9
+ size: {
10
+ xs: { root: "h-3 w-3" },
11
+ sm: { root: "h-4 w-4" },
12
+ md: { root: "h-5 w-5" },
13
+ lg: { root: "h-6 w-6" },
14
+ xl: { root: "h-8 w-8" }
27
15
  }
28
- })
29
-
30
- export default createIconTheme()
16
+ },
17
+ defaultVariants: {
18
+ size: "md"
19
+ }
20
+ })
@@ -1,37 +1,23 @@
1
- import { DEFAULT_ICONS } from "../../icons/defaults"
2
- import { getUIConfig } from "virtual:rimelight-ui"
1
+ import { DEFAULT_ICONS } from "../../icons"
2
+ import { uiConfig } from "../../resolver"
3
3
 
4
4
  export interface ResolvedIcon {
5
5
  isClass: boolean
6
6
  content: string
7
7
  }
8
8
 
9
- const defaultIconsLookup = DEFAULT_ICONS as Record<string, string>
9
+ const c = new Map<string, ResolvedIcon>(),
10
+ isCls = (s: string) => s.startsWith("i-") || s.includes(":")
10
11
 
11
- /**
12
- * Resolves whether an icon is a CSS class or raw inline SVG string, falling back to DEFAULT_ICONS.
13
- * Supports both static virtual config overrides and custom dynamic overrides (e.g. props).
14
- */
15
- export function resolveIcon(iconKey?: string, customProp?: string): ResolvedIcon {
16
- if (!iconKey) {
17
- return { isClass: false, content: "" }
18
- }
19
- if (iconKey.startsWith("i-") || iconKey.includes(":")) {
20
- return { isClass: true, content: iconKey }
21
- }
22
-
23
- let config: Record<string, any> = {}
24
- try {
25
- config = getUIConfig()
26
- } catch {}
27
-
28
- const resolved = customProp || config.icons?.[iconKey]
29
-
30
- if (!resolved) {
31
- return { isClass: false, content: defaultIconsLookup[iconKey] || "" }
32
- }
33
-
34
- const isClass =
35
- typeof resolved === "string" && (resolved.startsWith("i-") || resolved.includes(":"))
36
- return { isClass, content: resolved }
12
+ export const resolveIcon = (k = "", custom?: string): ResolvedIcon => {
13
+ if (!k) return { isClass: false, content: "" }
14
+ const id = custom ? `${k}:${custom}` : k,
15
+ cached = c.get(id)
16
+ if (cached) return cached
17
+ const raw = custom || uiConfig.icons?.[k] || k,
18
+ res = isCls(raw)
19
+ ? { isClass: true, content: raw }
20
+ : { isClass: false, content: (DEFAULT_ICONS as any)[raw] || "" }
21
+ c.set(id, res)
22
+ return res
37
23
  }
@@ -2,14 +2,10 @@
2
2
  import { Image, Picture, getImage } from "astro:assets"
3
3
  import type { ImageMetadata } from "astro"
4
4
  import RLAIcon from "../icon/RLAIcon.astro"
5
- import { scv } from "css-variants"
6
- import { useUi } from "../../utils/useUi"
7
- import { resolveClasses } from "../../utils/resolveClasses"
8
5
  import type { ImageProps } from "./image"
9
- import imageTheme from "./image.theme"
6
+ import { imageTheme } from "./image.theme"
10
7
 
11
8
 
12
- const img = scv(imageTheme)
13
9
 
14
10
  const {
15
11
  src,
@@ -21,11 +17,7 @@ const {
21
17
  height,
22
18
  width,
23
19
  loading = "lazy",
24
- fit = "cover",
25
20
  metadata: preMetadata,
26
- open,
27
- ui: uiProp,
28
- class: className,
29
21
  metaSource = true,
30
22
  metaFormat = true,
31
23
  metaDimensions = true,
@@ -35,7 +27,7 @@ const {
35
27
  ...rest
36
28
  } = Astro.props as ImageProps
37
29
 
38
- const classes = resolveClasses(img, {}, useUi("image", uiProp), className)
30
+ const classes = imageTheme(Astro.props)
39
31
 
40
32
  const isResponsive = !!(mobileSrc && desktopSrc)
41
33
  const isFormatFallback = !isResponsive && !!(formats && formats.length > 0)
@@ -102,7 +94,7 @@ const initialSize = preMetadata?.size ?? undefined
102
94
  class={classes.dialog}
103
95
  data-image-dialog
104
96
  >
105
- <div class="flex flex-col bg-background text-foreground max-h-[90vh]">
97
+ <div class="flex flex-col bg-default text-highlighted max-h-[90vh]">
106
98
  <div class="flex-1 min-h-0 flex items-center justify-center p-4 overflow-hidden">
107
99
  {isResponsive && mobileImg && desktopImg ? (
108
100
  <picture class="max-w-full max-h-[65vh] flex items-center justify-center overflow-hidden">
@@ -120,15 +112,15 @@ const initialSize = preMetadata?.size ?? undefined
120
112
  )}
121
113
  </div>
122
114
 
123
- <hr class="border-border mx-4 mb-3 shrink-0" />
115
+ <hr class="border-default mx-4 mb-3 shrink-0" />
124
116
 
125
117
  <div class={classes.fileInfo}>
126
118
  <div class="flex flex-col gap-xs text-sm">
127
119
  {
128
120
  metaSource && (
129
121
  <div class="flex flex-row gap-xs items-center">
130
- <RLAIcon name="image" class="size-4 shrink-0 text-muted-foreground" />
131
- <span class="text-muted-foreground">Source:</span>
122
+ <RLAIcon name="image" class="size-4 shrink-0 text-muted" />
123
+ <span class="text-muted">Source:</span>
132
124
  <span class="text-dimmed truncate max-w-[40vw]">{fileName}</span>
133
125
  </div>
134
126
  )
@@ -136,8 +128,8 @@ const initialSize = preMetadata?.size ?? undefined
136
128
  {
137
129
  metaFormat && (
138
130
  <div class="flex flex-row gap-xs items-center">
139
- <RLAIcon name="fileQuestion" class="size-4 shrink-0 text-muted-foreground" />
140
- <span class="text-muted-foreground">Format:</span>
131
+ <RLAIcon name="fileQuestion" class="size-4 shrink-0 text-muted" />
132
+ <span class="text-muted">Format:</span>
141
133
  <span class="text-dimmed" data-metadata-format>{fileExtension || "IMG"}</span>
142
134
  </div>
143
135
  )
@@ -145,8 +137,8 @@ const initialSize = preMetadata?.size ?? undefined
145
137
  {
146
138
  metaDimensions && (
147
139
  <div class="flex flex-row gap-xs items-center">
148
- <RLAIcon name="imageUpscale" class="size-4 shrink-0 text-muted-foreground" />
149
- <span class="text-muted-foreground">Dimensions:</span>
140
+ <RLAIcon name="imageUpscale" class="size-4 shrink-0 text-muted" />
141
+ <span class="text-muted">Dimensions:</span>
150
142
  <span class="text-dimmed">{(imgWidth || "?")} x {(imgHeight || "?")}</span>
151
143
  </div>
152
144
  )
@@ -154,8 +146,8 @@ const initialSize = preMetadata?.size ?? undefined
154
146
  {
155
147
  metaSize && (
156
148
  <div class="flex flex-row gap-xs items-center">
157
- <RLAIcon name="hardDrive" class="size-4 shrink-0 text-muted-foreground" />
158
- <span class="text-muted-foreground">Size:</span>
149
+ <RLAIcon name="hardDrive" class="size-4 shrink-0 text-muted" />
150
+ <span class="text-muted">Size:</span>
159
151
  <span class="text-dimmed" data-metadata-size>{initialSize !== undefined ? `${initialSize} bytes` : "fetching..."}</span>
160
152
  </div>
161
153
  )
@@ -163,8 +155,8 @@ const initialSize = preMetadata?.size ?? undefined
163
155
  {
164
156
  metaAlt && (
165
157
  <div class="flex flex-row gap-xs items-center">
166
- <RLAIcon name="alignLeft" class="size-4 shrink-0 text-muted-foreground" />
167
- <span class="text-muted-foreground">Alt:</span>
158
+ <RLAIcon name="alignLeft" class="size-4 shrink-0 text-muted" />
159
+ <span class="text-muted">Alt:</span>
168
160
  <span class="text-dimmed truncate max-w-[30vw]" class:list={{ "italic opacity-50": !alt }}>{alt || "none"}</span>
169
161
  </div>
170
162
  )
@@ -199,10 +191,15 @@ const initialSize = preMetadata?.size ?? undefined
199
191
  </div>
200
192
  </rla-image>
201
193
 
194
+ <style>
195
+ rla-image {
196
+ display: contents;
197
+ }
198
+ </style>
199
+
202
200
  <script>
203
201
  class RLAImage extends HTMLElement {
204
202
  connectedCallback() {
205
- this.style.display = 'contents';
206
203
  const trigger = this.querySelector("[data-image-trigger]");
207
204
  if (!trigger) return;
208
205
 
@@ -1,33 +1,30 @@
1
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
2
2
 
3
- export const createImageTheme = () =>
4
- defineTheme({
5
- slots: [
6
- "root",
7
- "trigger",
8
- "triggerImage",
9
- "dialog",
10
- "image",
11
- "fileInfo",
12
- "download",
13
- "closeButton"
14
- ],
15
- base: {
16
- root: "relative inline-block group/image",
17
- trigger:
18
- "cursor-pointer overflow-hidden rounded-lg block hover:scale-[1.02] active:scale-95 transition-transform duration-300",
19
- triggerImage: "",
20
- dialog:
21
- "backdrop:bg-black/60 max-w-[98vw] sm:max-w-[95vw] w-fit max-h-[90vh] rounded-xl p-0 overflow-hidden border-0 m-auto",
22
- image: "object-contain max-w-full max-h-[65vh] rounded-lg",
23
- fileInfo: "flex items-center justify-between gap-xl px-4 pb-4 shrink-0",
24
- download:
25
- "inline-flex items-center justify-center rounded-md font-medium transition-colors outline-none h-9 px-4 py-2 text-sm gap-2 text-primary-500 hover:bg-primary-500/10 active:bg-primary-500/10",
26
- closeButton:
27
- "inline-flex items-center justify-center size-8 rounded-full bg-background/80 hover:bg-accent text-muted-foreground hover:text-foreground transition-colors"
28
- },
29
- variants: {},
30
- defaultVariants: {}
31
- })
32
-
33
- export default createImageTheme()
3
+ export const imageTheme = defineTheme("image", {
4
+ slots: [
5
+ "root",
6
+ "trigger",
7
+ "triggerImage",
8
+ "dialog",
9
+ "image",
10
+ "fileInfo",
11
+ "download",
12
+ "closeButton"
13
+ ],
14
+ base: {
15
+ root: "relative inline-block group/image",
16
+ trigger:
17
+ "cursor-pointer overflow-hidden rounded-lg block hover:scale-[1.02] active:scale-95 transition-transform duration-300",
18
+ triggerImage: "",
19
+ dialog:
20
+ "backdrop:bg-black/60 max-w-[98vw] sm:max-w-[95vw] w-fit max-h-[90vh] rounded-xl p-0 overflow-hidden border-0 m-auto",
21
+ image: "object-contain max-w-full max-h-[65vh] rounded-lg",
22
+ fileInfo: "flex items-center justify-between gap-xl px-4 pb-4 shrink-0",
23
+ download:
24
+ "inline-flex items-center justify-center rounded-md font-medium transition-colors outline-none h-9 px-4 py-2 text-sm gap-2 text-primary-500 hover:bg-primary-500/10 active:bg-primary-500/10",
25
+ closeButton:
26
+ "inline-flex items-center justify-center size-8 rounded-full bg-default/80 hover:bg-accent text-muted hover:text-highlighted transition-colors"
27
+ },
28
+ variants: {},
29
+ defaultVariants: {}
30
+ })
@@ -1,12 +1,8 @@
1
1
  ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
2
  import type { InputProps } from "./input"
6
- import inputTheme from "./input.theme"
3
+ import { inputTheme } from "./input.theme"
7
4
 
8
5
 
9
- const input = scv(inputTheme)
10
6
 
11
7
  const {
12
8
  type = "text",
@@ -19,26 +15,15 @@ const {
19
15
  error = false,
20
16
  leadingIcon,
21
17
  trailingIcon,
22
- variant = "default",
23
- size = "md",
24
- color = "primary",
25
- theme,
26
- ui: uiProp,
27
- class: className,
28
18
  ...rest
29
19
  } = Astro.props as InputProps
30
20
 
31
- const hasLeading = !!leadingIcon || Astro.slots.has("leading")
32
- const hasTrailing = !!trailingIcon || Astro.slots.has("trailing")
33
21
 
34
- const classes = resolveClasses(input, {
35
- variant,
36
- size,
37
- hasLeading,
38
- hasTrailing,
39
- error: !!error,
40
- theme
41
- }, useUi("input", uiProp), className);
22
+
23
+ const classes = inputTheme({
24
+ ...Astro.props,
25
+ error: !!error
26
+ });
42
27
  ---
43
28
  <div class={classes.root} data-slot="root">
44
29
  {(leadingIcon || Astro.slots.has("leading")) && (