@rimelight/ui 0.0.42 → 0.0.44

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 (434) hide show
  1. package/README.md +18 -26
  2. package/package.json +24 -37
  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 +11 -39
  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 +24 -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 +114 -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 +13 -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 +159 -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 +11 -18
  39. package/src/components/callout/callout.theme.ts +55 -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 +45 -13
  46. package/src/components/carousel/carousel.theme.ts +28 -32
  47. package/src/components/chart/RLAChart.astro +6 -12
  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 +3 -17
  69. package/src/components/checkbox/RLSCheckbox.tsx +65 -0
  70. package/src/components/checkbox/checkbox.theme.ts +31 -46
  71. package/src/components/checkbox/checkbox.ts +1 -1
  72. package/src/components/chip/RLAChip.astro +33 -56
  73. package/src/components/chip/chip.theme.ts +62 -72
  74. package/src/components/chip/chip.ts +3 -1
  75. package/src/components/collapsible/RLACollapsible.astro +3 -13
  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 +3 -13
  79. package/src/components/color-area/color-area.theme.ts +16 -32
  80. package/src/components/color-area/color-area.ts +1 -1
  81. package/src/components/color-field/RLAColorField.astro +4 -14
  82. package/src/components/color-field/color-field.theme.ts +15 -31
  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 +3 -13
  87. package/src/components/color-slider/color-slider.theme.ts +17 -33
  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 +15 -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 -12
  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 +122 -21
  119. package/src/components/dashboard-sidebar/dashboard-sidebar.theme.ts +41 -11
  120. package/src/components/dashboard-sidebar/dashboard-sidebar.ts +8 -6
  121. package/src/components/dashboard-sidebar-collapse/RLADashboardSidebarCollapse.astro +25 -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/editor.theme.ts +9 -12
  140. package/src/components/empty/RLAEmpty.astro +86 -20
  141. package/src/components/empty/empty.theme.ts +79 -11
  142. package/src/components/empty/empty.ts +59 -2
  143. package/src/components/error/RLAError.astro +9 -20
  144. package/src/components/error/error.theme.ts +9 -12
  145. package/src/components/field-group/RLAFieldGroup.astro +2 -11
  146. package/src/components/field-group/field-group.theme.ts +18 -22
  147. package/src/components/fieldset/RLAFieldset.astro +9 -20
  148. package/src/components/fieldset/fieldset.theme.ts +9 -12
  149. package/src/components/file-upload/RLAFileUpload.astro +4 -13
  150. package/src/components/file-upload/file-upload.theme.ts +19 -22
  151. package/src/components/file-upload/file-upload.ts +1 -1
  152. package/src/components/floating-action/RLAFloatingAction.astro +9 -20
  153. package/src/components/floating-action/floating-action.theme.ts +9 -12
  154. package/src/components/footer/RLAFooter.astro +34 -38
  155. package/src/components/footer/footer.theme.ts +24 -27
  156. package/src/components/footer/footer.ts +4 -0
  157. package/src/components/form/RLAForm.astro +9 -20
  158. package/src/components/form/form.theme.ts +9 -12
  159. package/src/components/form-field/RLAFormField.astro +5 -12
  160. package/src/components/form-field/RLSFormField.tsx +71 -0
  161. package/src/components/form-field/RLVFormField.vue +5 -14
  162. package/src/components/form-field/form-field.theme.ts +19 -22
  163. package/src/components/form-field/form-field.ts +1 -0
  164. package/src/components/gallery/RLAGallery.astro +9 -20
  165. package/src/components/gallery/gallery.theme.ts +9 -12
  166. package/src/components/gamepad/RLAGamepad.astro +1 -1
  167. package/src/components/grid/RLAGrid.astro +2 -15
  168. package/src/components/grid/grid.theme.ts +31 -34
  169. package/src/components/head/UIHead.astro +297 -0
  170. package/src/components/head/head.theme.ts +9 -12
  171. package/src/components/header/HeaderLayer.astro +63 -0
  172. package/src/components/header/RLAHeader.astro +29 -48
  173. package/src/components/header/header.theme.ts +37 -40
  174. package/src/components/header/header.ts +4 -0
  175. package/src/{utils → components/header}/headerStack.ts +30 -22
  176. package/src/components/hover-card/RLAHoverCard.astro +24 -35
  177. package/src/components/hover-card/hover-card.theme.ts +23 -27
  178. package/src/components/icon/RLAIcon.astro +26 -36
  179. package/src/components/icon/RLSIcon.tsx +8 -9
  180. package/src/components/icon/RLVIcon.vue +23 -12
  181. package/src/components/icon/icon.theme.ts +18 -28
  182. package/src/components/image/RLAImage.astro +20 -23
  183. package/src/components/image/image.theme.ts +29 -32
  184. package/src/components/input/RLAInput.astro +7 -21
  185. package/src/components/input/RLSInput.tsx +101 -0
  186. package/src/components/input/RLVInput.vue +11 -20
  187. package/src/components/input/input.theme.ts +37 -44
  188. package/src/components/input/input.ts +1 -1
  189. package/src/components/input-date/RLAInputDate.astro +9 -20
  190. package/src/components/input-date/input-date.theme.ts +9 -12
  191. package/src/components/input-menu/RLAInputMenu.astro +4 -14
  192. package/src/components/input-menu/input-menu.theme.ts +29 -32
  193. package/src/components/input-menu/input-menu.ts +1 -1
  194. package/src/components/input-number/RLAInputNumber.astro +9 -20
  195. package/src/components/input-number/input-number.theme.ts +9 -12
  196. package/src/components/input-pin/RLAInputPin.astro +9 -22
  197. package/src/components/input-pin/input-pin.theme.ts +9 -13
  198. package/src/components/input-rating/RLAInputRating.astro +2 -23
  199. package/src/components/input-rating/input-rating.theme.ts +64 -76
  200. package/src/components/input-rating/input-rating.ts +1 -1
  201. package/src/components/input-tags/RLAInputTags.astro +174 -21
  202. package/src/components/input-tags/input-tags.theme.ts +37 -12
  203. package/src/components/input-tags/input-tags.ts +50 -0
  204. package/src/components/input-time/RLAInputTime.astro +9 -20
  205. package/src/components/input-time/input-time.theme.ts +9 -12
  206. package/src/components/kbd/RLAKbd.astro +18 -32
  207. package/src/components/kbd/kbd.theme.ts +45 -91
  208. package/src/components/kbd/kbd.ts +3 -0
  209. package/src/components/keyboard/RLAKeyboard.astro +1 -1
  210. package/src/components/knob/RLAKnob.astro +9 -20
  211. package/src/components/knob/knob.theme.ts +9 -12
  212. package/src/components/label/RLALabel.astro +16 -27
  213. package/src/components/label/label.theme.ts +16 -20
  214. package/src/components/layout-grid/RLALayoutGrid.astro +5 -11
  215. package/src/components/layout-grid/layout-grid.theme.ts +12 -15
  216. package/src/components/link/RLALink.astro +7 -20
  217. package/src/components/link/RLSLink.tsx +8 -16
  218. package/src/components/link/RLVLink.vue +7 -16
  219. package/src/components/link/link.theme.ts +33 -37
  220. package/src/components/link/link.ts +5 -5
  221. package/src/components/link-group/RLALinkGroup.astro +8 -45
  222. package/src/components/link-group/link-group.theme.ts +13 -27
  223. package/src/components/link-group/link-group.ts +5 -16
  224. package/src/components/listbox/RLAListbox.astro +9 -20
  225. package/src/components/listbox/listbox.theme.ts +9 -12
  226. package/src/components/locale-selector/RLALocaleSelector.astro +12 -52
  227. package/src/components/locale-selector/locale-selector.theme.ts +42 -45
  228. package/src/components/locale-selector/locale-selector.ts +4 -0
  229. package/src/components/logo/RLALogo.astro +13 -27
  230. package/src/components/logo/logo.theme.ts +9 -12
  231. package/src/components/main/RLAMain.astro +31 -36
  232. package/src/components/main/main.theme.ts +9 -12
  233. package/src/components/marquee/RLAMarquee.astro +62 -43
  234. package/src/components/marquee/marquee.theme.ts +22 -26
  235. package/src/components/meter/RLAMeter.astro +9 -20
  236. package/src/components/meter/meter.theme.ts +9 -12
  237. package/src/components/modal/RLAModal.astro +71 -73
  238. package/src/components/modal/RLSModal.tsx +156 -0
  239. package/src/components/modal/RLVModal.vue +5 -6
  240. package/src/components/modal/modal.theme.ts +42 -46
  241. package/src/components/modal/modal.ts +1 -0
  242. package/src/components/navigation-menu/RLANavigationMenu.astro +22 -31
  243. package/src/components/navigation-menu/navigation-menu.theme.ts +33 -40
  244. package/src/components/navigation-menu/navigation-menu.ts +19 -18
  245. package/src/components/page/RLAPage.astro +9 -20
  246. package/src/components/page/page.theme.ts +9 -12
  247. package/src/components/page-aside/RLAPageAside.astro +9 -20
  248. package/src/components/page-aside/page-aside.theme.ts +9 -12
  249. package/src/components/page-body/RLAPageBody.astro +9 -20
  250. package/src/components/page-body/page-body.theme.ts +9 -12
  251. package/src/components/page-header/RLAPageHeader.astro +9 -20
  252. package/src/components/page-header/page-header.theme.ts +9 -12
  253. package/src/components/page-section/RLAPageSection.astro +11 -15
  254. package/src/components/page-section/page-section.theme.ts +193 -176
  255. package/src/components/pagination/RLAPagination.astro +91 -97
  256. package/src/components/pagination/pagination.theme.ts +22 -26
  257. package/src/components/password/RLAPassword.astro +9 -20
  258. package/src/components/password/password.theme.ts +9 -12
  259. package/src/components/phone-mockup/RLAPhoneMockup.astro +9 -20
  260. package/src/components/phone-mockup/phone-mockup.theme.ts +9 -12
  261. package/src/components/placeholder/RLAPlaceholder.astro +32 -43
  262. package/src/components/placeholder/placeholder.theme.ts +11 -14
  263. package/src/components/popover/RLAPopover.astro +241 -129
  264. package/src/components/popover/popover.theme.ts +23 -27
  265. package/src/components/post/RLAPost.astro +2 -10
  266. package/src/components/post/post.theme.ts +45 -48
  267. package/src/components/pricing-plan/RLAPricingPlan.astro +9 -20
  268. package/src/components/pricing-plan/pricing-plan.theme.ts +9 -12
  269. package/src/components/pricing-table/RLAPricingTable.astro +9 -20
  270. package/src/components/pricing-table/pricing-table.theme.ts +9 -12
  271. package/src/components/progress/RLAProgress.astro +3 -16
  272. package/src/components/progress/progress.theme.ts +19 -35
  273. package/src/components/progress/progress.ts +1 -1
  274. package/src/components/prose/RLAProse.astro +9 -20
  275. package/src/components/prose/prose.theme.ts +9 -12
  276. package/src/components/qr-code/RLAQrCode.astro +9 -20
  277. package/src/components/qr-code/qr-code.theme.ts +9 -12
  278. package/src/components/quote/quote.theme.ts +9 -12
  279. package/src/components/radio-group/RLARadioGroup.astro +9 -20
  280. package/src/components/radio-group/radio-group.theme.ts +9 -12
  281. package/src/components/rating/RLARating.astro +9 -20
  282. package/src/components/rating/rating.theme.ts +9 -12
  283. package/src/components/scroll-area/RLAScrollArea.astro +2 -10
  284. package/src/components/scroll-area/scroll-area.theme.ts +21 -24
  285. package/src/components/scroll-to-top/RLAScrollToTop.astro +70 -45
  286. package/src/components/scroll-to-top/RLVScrollToTop.vue +13 -17
  287. package/src/components/scroll-to-top/scroll-to-top.theme.ts +28 -46
  288. package/src/components/scroll-to-top/scroll-to-top.ts +1 -1
  289. package/src/{utils → components/scroll-to-top}/scroll.ts +19 -6
  290. package/src/components/search/RLASearch.astro +6 -12
  291. package/src/components/search/search.theme.ts +60 -63
  292. package/src/components/select/RLASelect.astro +101 -132
  293. package/src/components/select/RLSSelect.tsx +180 -0
  294. package/src/components/select/RLVSelect.vue +64 -15
  295. package/src/components/select/select.theme.ts +21 -27
  296. package/src/components/select/select.ts +58 -36
  297. package/src/components/separator/RLASeparator.astro +62 -83
  298. package/src/components/separator/separator.theme.ts +135 -138
  299. package/src/components/separator/separator.ts +4 -0
  300. package/src/components/shortcuts/RLAShortcuts.astro +11 -12
  301. package/src/components/sidebar/RLASidebar.astro +14 -24
  302. package/src/components/sidebar/sidebar.theme.ts +39 -42
  303. package/src/components/sidebar/sidebar.ts +2 -0
  304. package/src/components/skeleton/RLASkeleton.astro +13 -22
  305. package/src/components/skeleton/skeleton.theme.ts +16 -19
  306. package/src/components/slideover/RLASlideover.astro +3 -13
  307. package/src/components/slideover/slideover.theme.ts +51 -55
  308. package/src/components/slider/RLASlider.astro +3 -15
  309. package/src/components/slider/slider.theme.ts +17 -34
  310. package/src/components/slider/slider.ts +1 -1
  311. package/src/components/speed-dial/RLASpeedDial.astro +9 -20
  312. package/src/components/speed-dial/speed-dial.theme.ts +9 -12
  313. package/src/components/spinner/RLASpinner.astro +3 -17
  314. package/src/components/spinner/spinner.theme.ts +25 -30
  315. package/src/components/spinner/spinner.ts +1 -1
  316. package/src/components/splitter/RLASplitter.astro +3 -11
  317. package/src/components/splitter/splitter.theme.ts +18 -21
  318. package/src/components/spoiler/RLASpoiler.astro +9 -20
  319. package/src/components/spoiler/spoiler.theme.ts +9 -12
  320. package/src/components/stepper/RLAStepper.astro +300 -21
  321. package/src/components/stepper/stepper.theme.ts +213 -12
  322. package/src/components/stepper/stepper.ts +23 -6
  323. package/src/components/steps/RLASteps.astro +5 -11
  324. package/src/components/steps/steps.theme.ts +9 -12
  325. package/src/components/sticky-surface/RLAStickySurface.astro +67 -38
  326. package/src/components/sticky-surface/sticky-surface.theme.ts +7 -11
  327. package/src/components/sticky-surface/sticky-surface.ts +1 -0
  328. package/src/components/surround/RLASurround.astro +5 -5
  329. package/src/components/switch/RLASwitch.astro +3 -18
  330. package/src/components/switch/switch.theme.ts +46 -61
  331. package/src/components/switch/switch.ts +1 -1
  332. package/src/components/table/RLATable.astro +566 -50
  333. package/src/components/table/table.theme.ts +112 -31
  334. package/src/components/table/table.ts +207 -6
  335. package/src/components/table-of-contents/RLATableOfContents.astro +12 -17
  336. package/src/components/table-of-contents/table-of-contents.theme.ts +60 -63
  337. package/src/components/tabs/RLATabs.astro +195 -51
  338. package/src/components/tabs/tabs.theme.ts +81 -84
  339. package/src/components/tabs/tabs.ts +18 -1
  340. package/src/components/textarea/RLATextarea.astro +16 -13
  341. package/src/components/textarea/RLSTextarea.tsx +69 -0
  342. package/src/components/textarea/RLVTextarea.vue +8 -16
  343. package/src/components/textarea/textarea.theme.ts +21 -24
  344. package/src/components/textarea/textarea.ts +2 -1
  345. package/src/components/theme-selector/RLAThemeSelector.astro +21 -27
  346. package/src/components/theme-selector/theme-selector.theme.ts +11 -14
  347. package/src/components/timeline/RLATimeline.astro +24 -44
  348. package/src/components/timeline/timeline.theme.ts +302 -307
  349. package/src/components/toast/RLAToast.astro +50 -24
  350. package/src/components/toast/store.ts +97 -0
  351. package/src/components/toast/toast.theme.ts +31 -34
  352. package/src/components/toast/toast.ts +1 -1
  353. package/src/components/toaster/RLAToaster.astro +76 -6
  354. package/src/components/tooltip/RLATooltip.astro +136 -33
  355. package/src/components/tooltip/tooltip.theme.ts +23 -26
  356. package/src/components/tour/RLATour.astro +9 -20
  357. package/src/components/tour/tour.theme.ts +9 -12
  358. package/src/components/tree/RLATree.astro +9 -20
  359. package/src/components/tree/tree.theme.ts +9 -12
  360. package/src/components/user/RLAUser.astro +9 -20
  361. package/src/components/user/user.theme.ts +9 -12
  362. package/src/components/video/RLAVideo.astro +5 -10
  363. package/src/components/video/video.theme.ts +13 -16
  364. package/src/components/watermark/RLAWatermark.astro +9 -20
  365. package/src/components/watermark/watermark.theme.ts +9 -12
  366. package/src/components/window-mockup/RLAWindowMockup.astro +9 -20
  367. package/src/components/window-mockup/window-mockup.theme.ts +9 -12
  368. package/src/icons.raw.ts +67 -0
  369. package/src/icons.ts +35 -0
  370. package/src/index.ts +32 -0
  371. package/src/preset.ts +148 -0
  372. package/src/resolver.ts +132 -0
  373. package/src/shortcuts.ts +191 -0
  374. package/src/stores.ts +22 -0
  375. package/src/types.ts +75 -0
  376. package/src/virtual.d.ts +4 -0
  377. package/src/components/editor/PageEditor.vue +0 -459
  378. package/src/components/editor/PageMention.vue +0 -87
  379. package/src/components/editor/PagePropertiesEditor.vue +0 -358
  380. package/src/components/editor/PagePropertiesRenderer.vue +0 -285
  381. package/src/components/editor/PageRenderer.vue +0 -155
  382. package/src/components/editor/PageSurround.vue +0 -130
  383. package/src/components/editor/PageVersionSelector.vue +0 -371
  384. package/src/components/editor/blocks/AddBlockModal.vue +0 -196
  385. package/src/components/editor/blocks/Block.vue +0 -141
  386. package/src/components/editor/blocks/BlockEditRenderer.vue +0 -26
  387. package/src/components/editor/blocks/BlockEditor.vue +0 -141
  388. package/src/components/editor/blocks/BlockViewRenderer.vue +0 -65
  389. package/src/components/editor/blocks/TextRenderer.vue +0 -31
  390. package/src/components/editor/blocks/editor/CalloutBlockEditor.vue +0 -53
  391. package/src/components/editor/blocks/editor/ImageBlockEditor.vue +0 -55
  392. package/src/components/editor/blocks/editor/ParagraphBlockEditor.vue +0 -31
  393. package/src/components/editor/blocks/editor/SectionBlockEditor.vue +0 -65
  394. package/src/components/editor/blocks/nodes/LinkNode.vue +0 -28
  395. package/src/components/editor/blocks/nodes/TextNode.vue +0 -22
  396. package/src/components/editor/blocks/renderer/CalloutBlockRenderer.vue +0 -66
  397. package/src/components/editor/blocks/renderer/ImageBlockRenderer.vue +0 -20
  398. package/src/components/editor/blocks/renderer/ParagraphBlockRenderer.vue +0 -21
  399. package/src/components/editor/blocks/renderer/SectionBlockRenderer.vue +0 -55
  400. package/src/components/editor/composables/injectionKeys.ts +0 -3
  401. package/src/components/editor/composables/useBlockEditor.ts +0 -261
  402. package/src/components/editor/composables/usePageEditor.ts +0 -97
  403. package/src/components/editor/modals/CreatePageModal.vue +0 -160
  404. package/src/components/editor/modals/DeletePageModal.vue +0 -116
  405. package/src/components/editor/modals/PageTreeModal.vue +0 -275
  406. package/src/components/editor/types/blocks.ts +0 -100
  407. package/src/components/editor/types/pages.ts +0 -89
  408. package/src/components/editor/types/schemas.ts +0 -36
  409. package/src/components/editor/utils/blocks.ts +0 -42
  410. package/src/components/editor/utils/editorHelpers.ts +0 -24
  411. package/src/components/editor/utils/page.ts +0 -219
  412. package/src/components/editor/utils/richTextHelpers.ts +0 -35
  413. package/src/components/editor/views/PageEditView.vue +0 -195
  414. package/src/components/editor/views/PageLiveView.vue +0 -90
  415. package/src/components/editor/views/PageReviewView.vue +0 -308
  416. package/src/components/head/RLAHead.astro +0 -528
  417. package/src/components/icon/resolver.ts +0 -37
  418. package/src/config/color.config.ts +0 -300
  419. package/src/config/site.config.ts +0 -28
  420. package/src/config/ui.config.ts +0 -89
  421. package/src/env.d.ts +0 -23
  422. package/src/icons/defaults.ts +0 -44
  423. package/src/presets/index.ts +0 -577
  424. package/src/stores/toast.ts +0 -24
  425. package/src/themes.ts +0 -26
  426. package/src/types/component.ts +0 -28
  427. package/src/ui.ts +0 -159
  428. package/src/utils/defineTheme.ts +0 -5
  429. package/src/utils/merge.ts +0 -62
  430. package/src/utils/resolveClasses.ts +0 -39
  431. package/src/utils/resolveTheme.ts +0 -13
  432. package/src/utils/shortcuts.ts +0 -322
  433. package/src/utils/toast.ts +0 -36
  434. package/src/utils/useUi.ts +0 -33
@@ -44,6 +44,8 @@ export function getHeaderStack(): HeaderStackManager {
44
44
  }
45
45
 
46
46
  if (!window.RLHeaderStack) {
47
+ let updateScheduled = false
48
+
47
49
  window.RLHeaderStack = {
48
50
  layers: [] as HeaderLayer[],
49
51
  register(
@@ -59,15 +61,17 @@ export function getHeaderStack(): HeaderStackManager {
59
61
  if (!layer) {
60
62
  layer = { id, type, order, naturalHeight, isVisible, el }
61
63
  this.layers.push(layer)
62
- this.layers.sort((a: HeaderLayer, b: HeaderLayer) => {
63
- if (a.type !== b.type) return a.type === "banner" ? -1 : 1
64
- return a.order - b.order
65
- })
66
64
  } else {
65
+ layer.type = type
66
+ layer.order = order
67
67
  layer.naturalHeight = naturalHeight
68
68
  layer.isVisible = isVisible
69
69
  layer.el = el
70
70
  }
71
+ this.layers.sort((a: HeaderLayer, b: HeaderLayer) => {
72
+ if (a.type !== b.type) return a.type === "banner" ? -1 : 1
73
+ return a.order - b.order
74
+ })
71
75
  this.update()
72
76
  },
73
77
  unregister(id: string) {
@@ -88,26 +92,30 @@ export function getHeaderStack(): HeaderStackManager {
88
92
  this.update()
89
93
  },
90
94
  update() {
91
- let currentTop = 0
92
- for (const layer of this.layers) {
93
- if (layer.el) {
94
- // If hidden, slide it up out of view (or exactly to its negative height so it's ready to slide down)
95
- const topPx = layer.isVisible ? `${currentTop}px` : `-${layer.naturalHeight}px`
96
- layer.el.style.top = topPx
97
- layer.el.style.opacity = layer.isVisible ? "1" : "0"
98
- layer.el.style.pointerEvents = layer.isVisible ? "auto" : "none"
99
- layer.el.style.setProperty(
100
- "--rl-header-bottom",
101
- `calc(${topPx} + ${layer.naturalHeight}px)`
102
- )
103
- }
104
- if (layer.isVisible) {
105
- currentTop += layer.naturalHeight
95
+ if (updateScheduled) return
96
+ updateScheduled = true
97
+
98
+ requestAnimationFrame(() => {
99
+ updateScheduled = false
100
+ let currentTop = 0
101
+ for (const layer of this.layers) {
102
+ if (layer.el) {
103
+ // If hidden, slide it up out of view (or exactly to its negative height so it's ready to slide down)
104
+ const topPx = layer.isVisible ? `${currentTop}px` : `-${layer.naturalHeight}px`
105
+ layer.el.style.top = topPx
106
+ layer.el.style.opacity = layer.isVisible ? "1" : "0"
107
+ layer.el.style.pointerEvents = layer.isVisible ? "auto" : "none"
108
+ layer.el.style.setProperty(
109
+ "--rl-header-bottom",
110
+ `calc(${topPx} + ${layer.naturalHeight}px)`
111
+ )
112
+ }
113
+ if (layer.isVisible) {
114
+ currentTop += layer.naturalHeight
115
+ }
106
116
  }
107
- }
108
- if (currentTop > 0) {
109
117
  document.documentElement.style.setProperty("--rl-total-header-height", `${currentTop}px`)
110
- }
118
+ })
111
119
  }
112
120
  }
113
121
  }
@@ -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,26 @@
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 "../../icons"
3
+ import type { IconProps } from "./icon"
4
+ import { iconTheme } from "./icon.theme"
5
+
6
+ const {
7
+ name,
8
+ ...rest
9
+ } = Astro.props as IconProps
10
+
11
+ const classes = iconTheme(Astro.props)
12
+ const resolved = resolveIcon(name)
13
+ ---
14
+
15
+ <span
16
+ class={classes.root}
17
+ data-slot="icon"
18
+ aria-hidden="true"
19
+ {...rest}
20
+ >
21
+ {resolved.isClass ? (
22
+ <span class:list={[resolved.content, "block size-full"]} /> ) : (
23
+ <Fragment set:html={resolved.content} />
24
+ )}
25
+ </span>
26
+
@@ -1,23 +1,22 @@
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
- import { resolveIcon } from "./resolver"
2
+ import { resolveIcon } from "../../icons"
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}>
19
18
  {resolved().isClass ? (
20
- <span class={resolved().content} />
19
+ <span class={`${resolved().content} size-full`} />
21
20
  ) : (
22
21
  <span innerHTML={resolved().content} />
23
22
  )}
@@ -1,31 +1,42 @@
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
- import { resolveIcon } from "./resolver"
3
+ import { resolveIcon } from "../../icons"
7
4
  import type { IconProps } from "./icon"
8
- import iconThemeDefault from "./icon.theme"
5
+ import { iconTheme } from "./icon.theme"
9
6
 
10
- defineOptions({ name: "RLVIcon" })
7
+ defineOptions({ name: "RLVIcon", inheritAttrs: false })
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))
24
23
  </script>
25
24
 
26
25
  <template>
27
- <span v-bind="attrs" :class="resolvedClasses.root" data-slot="icon" aria-hidden="true">
28
- <span v-if="resolved.isClass" :class="resolved.content" />
29
- <span v-else v-html="resolved.content" />
30
- </span>
26
+ <span
27
+ v-if="resolved.isClass"
28
+ v-bind="attrs"
29
+ :class="resolvedClasses.root"
30
+ data-slot="icon"
31
+ aria-hidden="true"
32
+ ><span :class="[resolved.content, 'size-full']"
33
+ /></span>
34
+ <span
35
+ v-else
36
+ v-bind="attrs"
37
+ :class="resolvedClasses.root"
38
+ data-slot="icon"
39
+ aria-hidden="true"
40
+ v-html="resolved.content"
41
+ />
31
42
  </template>
@@ -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-block 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
+ })
@@ -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-accented 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,28 +15,18 @@ const {
19
15
  error = false,
20
16
  leadingIcon,
21
17
  trailingIcon,
22
- variant = "default",
23
- size = "md",
24
- color = "primary",
25
18
  theme,
26
- ui: uiProp,
27
- class: className,
28
19
  ...rest
29
20
  } = Astro.props as InputProps
30
21
 
31
- const hasLeading = !!leadingIcon || Astro.slots.has("leading")
32
- const hasTrailing = !!trailingIcon || Astro.slots.has("trailing")
33
22
 
34
- const classes = resolveClasses(input, {
35
- variant,
36
- size,
37
- hasLeading,
38
- hasTrailing,
39
- error: !!error,
40
- theme
41
- }, useUi("input", uiProp), className);
23
+
24
+ const classes = inputTheme({
25
+ ...Astro.props,
26
+ error: !!error
27
+ });
42
28
  ---
43
- <div class={classes.root} data-slot="root">
29
+ <div class={classes.root} data-slot="root" data-theme={theme}>
44
30
  {(leadingIcon || Astro.slots.has("leading")) && (
45
31
  <span class={classes.leading} data-slot="leading">
46
32
  {leadingIcon ? <span class={leadingIcon} /> : <slot name="leading" />}