@rimelight/ui 0.0.41 → 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 +35 -21
  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,21 +1,100 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
- import type { DashboardSearchProps } from "./dashboard-search"
6
- import dashboardSearchTheme from "./dashboard-search.theme"
7
-
8
-
9
- const dashboardSearch = scv(dashboardSearchTheme)
10
-
11
- const {
12
- ui: uiProp,
13
- class: className,
14
- ...rest
15
- } = Astro.props as DashboardSearchProps
16
-
17
- const classes = resolveClasses(dashboardSearch, {}, useUi("dashboardSearch", uiProp), className);
18
- ---
19
- <div class={classes.root} data-slot="root" {...rest}>
20
- <slot />
21
- </div>
1
+ ---
2
+ import type { DashboardSearchProps } from "./dashboard-search"
3
+ import { dashboardSearchTheme } from "./dashboard-search.theme"
4
+ import RLAIcon from "../icon/RLAIcon.astro"
5
+
6
+
7
+ const props = Astro.props as DashboardSearchProps
8
+
9
+ const classes = dashboardSearchTheme({
10
+ ...Astro.props,
11
+ ...props,
12
+ fullscreen: false,
13
+ size: "md"
14
+ })
15
+ ---
16
+
17
+ <template id="dashboard-search-template">
18
+ <div data-dashboard-search data-slot="modal" class={classes.modal + " fixed inset-0 z-50 flex items-start justify-center sm:pt-16"} style="display:none">
19
+ <div class="fixed inset-0 bg-default/80 backdrop-blur-sm" data-dashboard-search-close></div>
20
+ <div class:list={["relative w-full bg-default border border-default sm:rounded-xl shadow-2xl overflow-hidden", classes.modal]}>
21
+ <div class="flex items-center gap-2 border-b border-default px-4">
22
+ <RLAIcon name="search" class="size-5 shrink-0 text-muted" />
23
+ <input
24
+ type="text"
25
+ data-dashboard-search-input
26
+ placeholder="Search..."
27
+ class="flex-1 h-12 bg-transparent border-0 outline-none text-default placeholder:text-muted"
28
+ />
29
+ <button type="button" data-dashboard-search-close class="shrink-0 size-8 flex items-center justify-center rounded-md hover:bg-muted text-muted">
30
+ <RLAIcon name="close" class="size-4" />
31
+ </button>
32
+ </div>
33
+ <div class="p-4 text-sm text-muted text-center">
34
+ Type to search...
35
+ </div>
36
+ </div>
37
+ </div>
38
+ </template>
39
+
40
+ <div data-dashboard-search-target>
41
+ <slot />
42
+ </div>
43
+
44
+ <script>
45
+ (function() {
46
+ const template = document.getElementById('dashboard-search-template') as HTMLTemplateElement | null;
47
+ if (!template) return;
48
+
49
+ let searchEl: HTMLElement | null = null;
50
+ const shortcutKey = 'k';
51
+
52
+ const open = () => {
53
+ if (searchEl) return;
54
+ const clone = template.content.cloneNode(true) as DocumentFragment;
55
+ searchEl = clone.firstElementChild as HTMLElement | null;
56
+ if (!searchEl) return;
57
+ document.body.appendChild(searchEl);
58
+
59
+ const input = searchEl.querySelector<HTMLInputElement>('[data-dashboard-search-input]');
60
+ const closeBtns = searchEl.querySelectorAll('[data-dashboard-search-close]');
61
+
62
+ setTimeout(() => input?.focus(), 50);
63
+
64
+ closeBtns.forEach(btn => {
65
+ btn.addEventListener('click', close);
66
+ });
67
+
68
+ searchEl.addEventListener('click', (e: MouseEvent) => {
69
+ if (e.target === searchEl) close();
70
+ });
71
+ };
72
+
73
+ const close = () => {
74
+ if (searchEl) {
75
+ searchEl.remove();
76
+ searchEl = null;
77
+ }
78
+ };
79
+
80
+ const toggle = () => {
81
+ if (searchEl) close();
82
+ else open();
83
+ };
84
+
85
+ document.addEventListener('keydown', (e) => {
86
+ if ((e.metaKey || e.ctrlKey) && e.key === shortcutKey) {
87
+ e.preventDefault();
88
+ toggle();
89
+ }
90
+ });
91
+
92
+ document.addEventListener('click', (e: MouseEvent) => {
93
+ const target = e.target as Element | null;
94
+ const btn = target?.closest('[data-dashboard-search-button]');
95
+ if (btn) toggle();
96
+ });
97
+
98
+ (window as any).dashboardSearch = { open, close, toggle };
99
+ })();
100
+ </script>
@@ -1,13 +1,26 @@
1
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
2
2
 
3
- export const createDashboardSearchTheme = () =>
4
- defineTheme({
5
- slots: ["root"],
6
- base: {
7
- root: ""
3
+ export const dashboardSearchTheme = defineTheme("dashboard-search", {
4
+ slots: ["modal", "input"],
5
+ base: {
6
+ modal: "",
7
+ input: ""
8
+ },
9
+ variants: {
10
+ fullscreen: {
11
+ false: {
12
+ modal: "sm:max-w-3xl h-full sm:h-[28rem]"
13
+ }
8
14
  },
9
- variants: {},
10
- defaultVariants: {}
11
- })
12
-
13
- export default createDashboardSearchTheme()
15
+ size: {
16
+ xs: {},
17
+ sm: {},
18
+ md: {},
19
+ lg: {},
20
+ xl: {}
21
+ }
22
+ },
23
+ defaultVariants: {
24
+ size: "md"
25
+ }
26
+ })
@@ -1,11 +1,7 @@
1
1
  export interface DashboardSearchProps {
2
- /**
3
- * Slot-specific CSS class overrides.
4
- */
2
+ open?: boolean
3
+ shortcut?: string
5
4
  ui?: any
6
- /**
7
- * Additional CSS classes to apply to the root element.
8
- */
9
5
  class?: any
10
6
  [key: string]: unknown
11
7
  }
@@ -1,21 +1,45 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
- import type { DashboardSearchButtonProps } from "./dashboard-search-button"
6
- import dashboardSearchButtonTheme from "./dashboard-search-button.theme"
7
-
8
-
9
- const dashboardSearchButton = scv(dashboardSearchButtonTheme)
10
-
11
- const {
12
- ui: uiProp,
13
- class: className,
14
- ...rest
15
- } = Astro.props as DashboardSearchButtonProps
16
-
17
- const classes = resolveClasses(dashboardSearchButton, {}, useUi("dashboardSearchButton", uiProp), className);
18
- ---
19
- <div class={classes.root} data-slot="root" {...rest}>
20
- <slot />
21
- </div>
1
+ ---
2
+ import type { DashboardSearchButtonProps } from "./dashboard-search-button"
3
+ import { dashboardSearchButtonTheme } from "./dashboard-search-button.theme"
4
+ import RLAIcon from "../icon/RLAIcon.astro"
5
+
6
+
7
+ const {
8
+ icon,
9
+ label = "Search",
10
+ kbds = [{ value: "meta" }, { value: "k" }],
11
+ ...rest
12
+ } = Astro.props as DashboardSearchButtonProps
13
+
14
+ const classes = dashboardSearchButtonTheme(Astro.props);
15
+ ---
16
+
17
+ <button
18
+ type="button"
19
+ data-dashboard-search-button
20
+ class={classes.base}
21
+ data-slot="root"
22
+ {...rest}
23
+ >
24
+ {icon !== false && (
25
+ <RLAIcon name={typeof icon === 'string' ? icon : 'search'} class="size-5 shrink-0 text-muted" />
26
+ )}
27
+
28
+ <span data-slot="label" class={classes.label}>
29
+ {label}
30
+ </span>
31
+
32
+ <span data-slot="trailing" class={classes.trailing}>
33
+ <slot name="trailing">
34
+ {kbds && kbds.length > 0 && (
35
+ <span class="flex items-center gap-0.5">
36
+ {kbds.map((kbd) => {
37
+ const value = typeof kbd === 'string' ? kbd : kbd.value;
38
+ const label = value === 'meta' ? '⌘' : value === 'k' ? 'K' : value;
39
+ return <kbd class="inline-flex items-center justify-center rounded border border-default bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted min-w-[20px] h-5">{label}</kbd>;
40
+ })}
41
+ </span>
42
+ )}
43
+ </slot>
44
+ </span>
45
+ </button>
@@ -1,13 +1,21 @@
1
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
2
2
 
3
- export const createDashboardSearchButtonTheme = () =>
4
- defineTheme({
5
- slots: ["root"],
6
- base: {
7
- root: ""
8
- },
9
- variants: {},
10
- defaultVariants: {}
11
- })
12
-
13
- export default createDashboardSearchButtonTheme()
3
+ export const dashboardSearchButtonTheme = defineTheme("dashboard-search-button", {
4
+ slots: ["base", "label", "trailing"],
5
+ base: {
6
+ base: "group flex items-center gap-2 w-full rounded-md border border-default px-3 py-2 text-sm text-muted hover:text-default hover:bg-muted transition-colors cursor-pointer",
7
+ label: "flex-1 text-start truncate",
8
+ trailing: "hidden lg:flex items-center gap-0.5 ms-auto"
9
+ },
10
+ variants: {
11
+ collapsed: {
12
+ true: {
13
+ label: "hidden",
14
+ trailing: "lg:hidden"
15
+ }
16
+ }
17
+ },
18
+ defaultVariants: {
19
+ collapsed: false
20
+ }
21
+ })
@@ -1,11 +1,9 @@
1
1
  export interface DashboardSearchButtonProps {
2
- /**
3
- * Slot-specific CSS class overrides.
4
- */
2
+ icon?: string | false
3
+ label?: string
4
+ collapsed?: boolean
5
+ kbds?: Array<string | { value: string; variant?: string }>
5
6
  ui?: any
6
- /**
7
- * Additional CSS classes to apply to the root element.
8
- */
9
7
  class?: any
10
8
  [key: string]: unknown
11
9
  }
@@ -1,21 +1,119 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
- import type { DashboardSidebarProps } from "./dashboard-sidebar"
6
- import dashboardSidebarTheme from "./dashboard-sidebar.theme"
7
-
8
-
9
- const dashboardSidebar = scv(dashboardSidebarTheme)
10
-
11
- const {
12
- ui: uiProp,
13
- class: className,
14
- ...rest
15
- } = Astro.props as DashboardSidebarProps
16
-
17
- const classes = resolveClasses(dashboardSidebar, {}, useUi("dashboardSidebar", uiProp), className);
18
- ---
19
- <div class={classes.root} data-slot="root" {...rest}>
20
- <slot />
21
- </div>
1
+ ---
2
+ import type { DashboardSidebarProps } from "./dashboard-sidebar"
3
+ import { dashboardSidebarTheme } from "./dashboard-sidebar.theme"
4
+
5
+
6
+ const {
7
+ side = "left",
8
+ collapsible = false,
9
+ collapsed = false,
10
+ ...rest
11
+ } = Astro.props as DashboardSidebarProps
12
+
13
+ const classes = dashboardSidebarTheme({
14
+ ...Astro.props,
15
+ collapsed: collapsible && collapsed
16
+ });
17
+
18
+ const collapsedWidth = "4rem";
19
+ const defaultWidth = "16rem";
20
+ ---
21
+
22
+ <div
23
+ data-dashboard-sidebar
24
+ data-side={side}
25
+ data-collapsible={collapsible ? "true" : "false"}
26
+ data-collapsed={collapsible && collapsed ? "true" : "false"}
27
+ data-slot="root"
28
+ class={classes.root}
29
+ {...rest}
30
+ style={`--width: ${defaultWidth}; --collapsed-width: ${collapsedWidth}`}
31
+ >
32
+ <div data-slot="header" class={classes.header}>
33
+ <slot name="header" />
34
+ </div>
35
+
36
+ <div data-slot="body" class={classes.body}>
37
+ <slot />
38
+ </div>
39
+
40
+ <div data-slot="footer" class={classes.footer}>
41
+ <slot name="footer" />
42
+ </div>
43
+ </div>
44
+
45
+ <div data-dashboard-sidebar-overlay data-slot="overlay" class={classes.overlay + " fixed inset-0 z-40 bg-default/80 backdrop-blur-sm transition-opacity duration-300 hidden"} />
46
+
47
+ <div
48
+ data-dashboard-sidebar-mobile
49
+ data-slot="content"
50
+ class={classes.content + " fixed inset-y-0 left-0 z-50 w-64 bg-default shadow-xl border-e border-default transform -translate-x-full transition-transform duration-300"}
51
+ >
52
+ <div data-slot="header" class={classes.header + " " + "sm:px-6"} data-menu>
53
+ <slot name="header" />
54
+ </div>
55
+ <div data-slot="body" class={classes.body + " " + "sm:px-6"} data-menu>
56
+ <slot />
57
+ </div>
58
+ <div data-slot="footer" class={classes.footer + " " + "sm:px-6"} data-menu>
59
+ <slot name="footer" />
60
+ </div>
61
+ </div>
62
+
63
+ <script>
64
+ (function() {
65
+ const sidebar = document.querySelector<HTMLElement>('[data-dashboard-sidebar]');
66
+ if (!sidebar) return;
67
+
68
+ const collapsible = sidebar.dataset.collapsible === 'true';
69
+ const mobilePanel = document.querySelector<HTMLElement>('[data-dashboard-sidebar-mobile]');
70
+ const overlay = document.querySelector<HTMLElement>('[data-dashboard-sidebar-overlay]');
71
+
72
+ const toggleMobile = () => {
73
+ if (!mobilePanel || !overlay) return;
74
+ const isOpen = mobilePanel.classList.toggle('translate-x-0');
75
+ mobilePanel.classList.toggle('-translate-x-full', !isOpen);
76
+ overlay.classList.toggle('hidden', !isOpen);
77
+ };
78
+
79
+ const collapseSidebar = (val?: boolean) => {
80
+ if (!collapsible) return;
81
+ const isCollapsed = val !== undefined ? val : sidebar.dataset.collapsed !== 'true';
82
+ sidebar.dataset.collapsed = isCollapsed ? 'true' : 'false';
83
+ sidebar.style.setProperty('--width', isCollapsed ? '4rem' : '16rem');
84
+
85
+ document.querySelectorAll('[data-dashboard-toggle="collapse"]').forEach(btn => {
86
+ btn.querySelectorAll('[data-dashboard-collapse-icon]').forEach(el => {
87
+ el.classList.toggle('hidden', el.matches(isCollapsed ? '[data-expanded]' : '[data-collapsed]'));
88
+ });
89
+ });
90
+ };
91
+
92
+ document.addEventListener('click', (e: MouseEvent) => {
93
+ const target = e.target as Element | null;
94
+ const toggle = target?.closest<HTMLElement>('[data-dashboard-toggle]');
95
+ if (toggle) {
96
+ const side = toggle.dataset.dashboardToggle;
97
+ if (side === 'mobile') toggleMobile();
98
+ if (side === 'collapse') collapseSidebar();
99
+ }
100
+
101
+ const navItem = target?.closest<HTMLElement>('[data-dashboard-nav]');
102
+ if (navItem) {
103
+ const container = navItem.closest('[data-dashboard-nav-container]');
104
+ if (container) {
105
+ container.querySelectorAll('[data-dashboard-nav]').forEach((item: Element) => {
106
+ item.classList.remove('bg-muted', 'text-highlighted');
107
+ item.classList.add('text-default', 'hover:text-highlighted', 'hover:bg-muted');
108
+ });
109
+ navItem.classList.remove('text-default', 'hover:text-highlighted', 'hover:bg-muted');
110
+ navItem.classList.add('bg-muted', 'text-highlighted');
111
+ }
112
+ }
113
+ });
114
+
115
+ overlay?.addEventListener('click', toggleMobile);
116
+
117
+ (window as any).dashboardSidebar = { toggleMobile, collapseSidebar };
118
+ })();
119
+ </script>
@@ -1,13 +1,42 @@
1
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
2
2
 
3
- export const createDashboardSidebarTheme = () =>
4
- defineTheme({
5
- slots: ["root"],
6
- base: {
7
- root: ""
3
+ export const dashboardSidebarTheme = defineTheme("dashboard-sidebar", {
4
+ slots: ["root", "header", "body", "footer", "toggle", "handle", "content", "overlay"],
5
+ base: {
6
+ root: "group relative hidden lg:flex flex-col h-full min-h-0 min-w-16 w-(--width) shrink-0 transition-[width] duration-300",
7
+ header:
8
+ "h-(--rl-header-height) shrink-0 flex items-center gap-1.5 px-3 group-data-[collapsed=true]:justify-center group-data-[collapsed=true]:gap-0 group-data-[collapsed=true]:px-0",
9
+ body: "flex flex-col gap-1 flex-1 overflow-y-auto px-3 py-2",
10
+ footer: "shrink-0 flex items-center gap-1.5 px-3 py-2 group-data-[collapsed=true]:px-0",
11
+ toggle: "",
12
+ handle: "",
13
+ content: "lg:hidden",
14
+ overlay: "lg:hidden"
15
+ },
16
+ variants: {
17
+ menu: {
18
+ true: {
19
+ header: "sm:px-6",
20
+ body: "sm:px-6",
21
+ footer: "sm:px-6"
22
+ }
8
23
  },
9
- variants: {},
10
- defaultVariants: {}
11
- })
12
-
13
- export default createDashboardSidebarTheme()
24
+ side: {
25
+ left: {
26
+ root: "border-e border-default"
27
+ },
28
+ right: {
29
+ root: ""
30
+ }
31
+ },
32
+ collapsed: {
33
+ true: {
34
+ root: "w-(--collapsed-width) overflow-hidden",
35
+ body: "overflow-hidden"
36
+ }
37
+ }
38
+ },
39
+ defaultVariants: {
40
+ side: "left"
41
+ }
42
+ })
@@ -1,11 +1,13 @@
1
1
  export interface DashboardSidebarProps {
2
- /**
3
- * Slot-specific CSS class overrides.
4
- */
2
+ side?: "left" | "right"
3
+ collapsible?: boolean
4
+ collapsed?: boolean
5
+ resizable?: boolean
6
+ defaultSize?: number
7
+ minSize?: number
8
+ maxSize?: number
9
+ collapsedSize?: number
5
10
  ui?: any
6
- /**
7
- * Additional CSS classes to apply to the root element.
8
- */
9
11
  class?: any
10
12
  [key: string]: unknown
11
13
  }
@@ -1,21 +1,24 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
- import type { DashboardSidebarCollapseProps } from "./dashboard-sidebar-collapse"
6
- import dashboardSidebarCollapseTheme from "./dashboard-sidebar-collapse.theme"
7
-
8
-
9
- const dashboardSidebarCollapse = scv(dashboardSidebarCollapseTheme)
10
-
11
- const {
12
- ui: uiProp,
13
- class: className,
14
- ...rest
15
- } = Astro.props as DashboardSidebarCollapseProps
16
-
17
- const classes = resolveClasses(dashboardSidebarCollapse, {}, useUi("dashboardSidebarCollapse", uiProp), className);
18
- ---
19
- <div class={classes.root} data-slot="root" {...rest}>
20
- <slot />
21
- </div>
1
+ ---
2
+ import type { DashboardSidebarCollapseProps } from "./dashboard-sidebar-collapse"
3
+ import { dashboardSidebarCollapseTheme } from "./dashboard-sidebar-collapse.theme"
4
+ import RLAIcon from "../icon/RLAIcon.astro"
5
+
6
+
7
+ const {
8
+ icon = "i-lucide-panel-left",
9
+ ...rest
10
+ } = Astro.props as DashboardSidebarCollapseProps
11
+
12
+ const classes = dashboardSidebarCollapseTheme(Astro.props);
13
+ ---
14
+ <button
15
+ type="button"
16
+ data-dashboard-toggle="collapse"
17
+ class={classes.root}
18
+ data-slot="root"
19
+ aria-label="Collapse sidebar"
20
+ {...rest}
21
+ >
22
+ <RLAIcon name="i-lucide-panel-left" class="size-5" data-dashboard-collapse-icon data-expanded />
23
+ <RLAIcon name="i-lucide-panel-right" class="size-5 hidden" data-dashboard-collapse-icon data-collapsed />
24
+ </button>
@@ -1,13 +1,17 @@
1
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
2
2
 
3
- export const createDashboardSidebarCollapseTheme = () =>
4
- defineTheme({
5
- slots: ["root"],
6
- base: {
7
- root: ""
8
- },
9
- variants: {},
10
- defaultVariants: {}
11
- })
12
-
13
- export default createDashboardSidebarCollapseTheme()
3
+ export const dashboardSidebarCollapseTheme = defineTheme("dashboard-sidebar-collapse", {
4
+ slots: ["root"],
5
+ base: {
6
+ root: "hidden lg:inline-flex items-center justify-center rounded-md size-8 text-muted hover:text-default hover:bg-muted transition-colors"
7
+ },
8
+ variants: {
9
+ side: {
10
+ left: {},
11
+ right: {}
12
+ }
13
+ },
14
+ defaultVariants: {
15
+ side: "left"
16
+ }
17
+ })
@@ -1,11 +1,7 @@
1
1
  export interface DashboardSidebarCollapseProps {
2
- /**
3
- * Slot-specific CSS class overrides.
4
- */
2
+ icon?: string
3
+ side?: "left" | "right"
5
4
  ui?: any
6
- /**
7
- * Additional CSS classes to apply to the root element.
8
- */
9
5
  class?: any
10
6
  [key: string]: unknown
11
7
  }
@@ -1,21 +1,23 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
- import type { DashboardSidebarToggleProps } from "./dashboard-sidebar-toggle"
6
- import dashboardSidebarToggleTheme from "./dashboard-sidebar-toggle.theme"
7
-
8
-
9
- const dashboardSidebarToggle = scv(dashboardSidebarToggleTheme)
10
-
11
- const {
12
- ui: uiProp,
13
- class: className,
14
- ...rest
15
- } = Astro.props as DashboardSidebarToggleProps
16
-
17
- const classes = resolveClasses(dashboardSidebarToggle, {}, useUi("dashboardSidebarToggle", uiProp), className);
18
- ---
19
- <div class={classes.root} data-slot="root" {...rest}>
20
- <slot />
21
- </div>
1
+ ---
2
+ import type { DashboardSidebarToggleProps } from "./dashboard-sidebar-toggle"
3
+ import { dashboardSidebarToggleTheme } from "./dashboard-sidebar-toggle.theme"
4
+ import RLAIcon from "../icon/RLAIcon.astro"
5
+
6
+
7
+ const {
8
+ icon = "menu",
9
+ ...rest
10
+ } = Astro.props as DashboardSidebarToggleProps
11
+
12
+ const classes = dashboardSidebarToggleTheme(Astro.props);
13
+ ---
14
+ <button
15
+ type="button"
16
+ data-dashboard-toggle="mobile"
17
+ class={classes.root}
18
+ data-slot="root"
19
+ aria-label="Toggle sidebar"
20
+ {...rest}
21
+ >
22
+ <RLAIcon name={icon} class="size-5" />
23
+ </button>