@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
@@ -1,13 +1,214 @@
1
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
2
2
 
3
- export const createStepperTheme = () =>
4
- defineTheme({
5
- slots: ["root"],
6
- base: {
7
- root: ""
8
- },
9
- variants: {},
10
- defaultVariants: {}
11
- })
12
-
13
- export default createStepperTheme()
3
+ export const stepperTheme = defineTheme("stepper", {
4
+ slots: [
5
+ "root",
6
+ "header",
7
+ "item",
8
+ "container",
9
+ "trigger",
10
+ "indicator",
11
+ "icon",
12
+ "separator",
13
+ "wrapper",
14
+ "title",
15
+ "description",
16
+ "content"
17
+ ],
18
+ base: {
19
+ root: "flex gap-4 w-full",
20
+ header: "flex justify-between items-start w-full",
21
+ item: "group flex-1 flex flex-col items-center text-center relative",
22
+ container: "flex items-center justify-center relative w-full",
23
+ trigger:
24
+ "rounded-full font-medium text-center align-middle flex items-center justify-center font-semibold group-data-[state=completed]:bg-primary-600 group-data-[state=completed]:border-primary-600 group-data-[state=completed]:!text-white group-data-[state=active]:bg-primary-600 group-data-[state=active]:border-primary-600 group-data-[state=active]:!text-white text-neutral-400 bg-neutral-100 border border-neutral-300 transition-all cursor-pointer z-10",
25
+ indicator: "flex items-center justify-center size-full text-current",
26
+ icon: "shrink-0 size-4 text-current transition-colors",
27
+ separator: "flex-1 h-0.5 mx-2 self-start mt-4 transition-colors rounded-full",
28
+ wrapper: "mt-2 text-center",
29
+ title:
30
+ "text-xs font-semibold group-data-[state=active]:font-bold group-data-[state=active]:text-primary-600 group-data-[state=completed]:text-primary-600 text-neutral-400 transition-colors",
31
+ description: "text-neutral-500 text-wrap text-xs",
32
+ content: "size-full"
33
+ },
34
+ variants: {
35
+ orientation: {
36
+ horizontal: {
37
+ root: "flex-col",
38
+ header: "flex-row",
39
+ container: "flex justify-center items-center",
40
+ separator: "top-1/2 -translate-y-1/2 h-0.5",
41
+ wrapper: "mt-1.5"
42
+ },
43
+ vertical: {
44
+ header: "flex-col gap-4",
45
+ item: "flex flex-row text-start items-start gap-3",
46
+ container: "flex flex-col items-center justify-start h-full",
47
+ separator: "start-1/2 -translate-x-1/2 w-0.5"
48
+ }
49
+ },
50
+ size: {
51
+ xs: {
52
+ trigger: "size-6 text-xs",
53
+ icon: "size-3",
54
+ title: "text-xs",
55
+ description: "text-xs",
56
+ wrapper: "mt-1"
57
+ },
58
+ sm: {
59
+ trigger: "size-8 text-sm",
60
+ icon: "size-4",
61
+ title: "text-xs",
62
+ description: "text-xs",
63
+ wrapper: "mt-1.5"
64
+ },
65
+ md: {
66
+ trigger: "size-10 text-base",
67
+ icon: "size-5",
68
+ title: "text-sm",
69
+ description: "text-sm",
70
+ wrapper: "mt-2"
71
+ },
72
+ lg: {
73
+ trigger: "size-12 text-lg",
74
+ icon: "size-6",
75
+ title: "text-base",
76
+ description: "text-base",
77
+ wrapper: "mt-2.5"
78
+ },
79
+ xl: {
80
+ trigger: "size-14 text-xl",
81
+ icon: "size-7",
82
+ title: "text-lg",
83
+ description: "text-lg",
84
+ wrapper: "mt-3"
85
+ }
86
+ },
87
+ color: {
88
+ primary: {
89
+ trigger:
90
+ "group-data-[state=completed]:bg-primary-600 group-data-[state=completed]:border-primary-600 group-data-[state=active]:bg-primary-600 group-data-[state=active]:border-primary-600 group-data-[state=active]:shadow-sm",
91
+ icon: "group-data-[state=completed]:text-white group-data-[state=active]:text-white",
92
+ separator: "group-data-[state=completed]:bg-primary-600"
93
+ },
94
+ secondary: {
95
+ trigger:
96
+ "group-data-[state=completed]:bg-secondary-600 group-data-[state=completed]:border-secondary-600 group-data-[state=active]:bg-secondary-600 group-data-[state=active]:border-secondary-600",
97
+ icon: "group-data-[state=completed]:text-white group-data-[state=active]:text-white",
98
+ separator: "group-data-[state=completed]:bg-secondary-600"
99
+ },
100
+ success: {
101
+ trigger:
102
+ "group-data-[state=completed]:bg-success-500 group-data-[state=completed]:border-success-500 group-data-[state=active]:bg-success-500 group-data-[state=active]:border-success-500",
103
+ icon: "group-data-[state=completed]:text-white group-data-[state=active]:text-white",
104
+ separator: "group-data-[state=completed]:bg-success-500"
105
+ },
106
+ info: {
107
+ trigger:
108
+ "group-data-[state=completed]:bg-info-500 group-data-[state=completed]:border-info-500 group-data-[state=active]:bg-info-500 group-data-[state=active]:border-info-500",
109
+ icon: "group-data-[state=completed]:text-white group-data-[state=active]:text-white",
110
+ separator: "group-data-[state=completed]:bg-info-500"
111
+ },
112
+ warning: {
113
+ trigger:
114
+ "group-data-[state=completed]:bg-warning-500 group-data-[state=completed]:border-warning-500 group-data-[state=active]:bg-warning-500 group-data-[state=active]:border-warning-500",
115
+ icon: "group-data-[state=completed]:text-white group-data-[state=active]:text-white",
116
+ separator: "group-data-[state=completed]:bg-warning-500"
117
+ },
118
+ error: {
119
+ trigger:
120
+ "group-data-[state=completed]:bg-error-500 group-data-[state=completed]:border-error-500 group-data-[state=active]:bg-error-500 group-data-[state=active]:border-error-500",
121
+ icon: "group-data-[state=completed]:text-white group-data-[state=active]:text-white",
122
+ separator: "group-data-[state=completed]:bg-error-500"
123
+ },
124
+ neutral: {
125
+ trigger:
126
+ "group-data-[state=completed]:bg-neutral-950 group-data-[state=completed]:border-neutral-950 group-data-[state=active]:bg-neutral-950 group-data-[state=active]:border-neutral-950",
127
+ icon: "group-data-[state=completed]:text-neutral-50 group-data-[state=active]:text-neutral-50",
128
+ separator: "group-data-[state=completed]:bg-neutral-950"
129
+ }
130
+ }
131
+ },
132
+ compoundVariants: [
133
+ {
134
+ orientation: "horizontal",
135
+ size: "xs",
136
+ classNames: {
137
+ separator: "mt-3"
138
+ }
139
+ },
140
+ {
141
+ orientation: "horizontal",
142
+ size: "sm",
143
+ classNames: {
144
+ separator: "mt-4"
145
+ }
146
+ },
147
+ {
148
+ orientation: "horizontal",
149
+ size: "md",
150
+ classNames: {
151
+ separator: "mt-5"
152
+ }
153
+ },
154
+ {
155
+ orientation: "horizontal",
156
+ size: "lg",
157
+ classNames: {
158
+ separator: "mt-6"
159
+ }
160
+ },
161
+ {
162
+ orientation: "horizontal",
163
+ size: "xl",
164
+ classNames: {
165
+ separator: "mt-7"
166
+ }
167
+ },
168
+ {
169
+ orientation: "vertical",
170
+ size: "xs",
171
+ classNames: {
172
+ separator: "top-[24px] bottom-[-16px]",
173
+ item: "gap-1.5"
174
+ }
175
+ },
176
+ {
177
+ orientation: "vertical",
178
+ size: "sm",
179
+ classNames: {
180
+ separator: "top-[32px] bottom-[-16px]",
181
+ item: "gap-2"
182
+ }
183
+ },
184
+ {
185
+ orientation: "vertical",
186
+ size: "md",
187
+ classNames: {
188
+ separator: "top-[40px] bottom-[-16px]",
189
+ item: "gap-2.5"
190
+ }
191
+ },
192
+ {
193
+ orientation: "vertical",
194
+ size: "lg",
195
+ classNames: {
196
+ separator: "top-[48px] bottom-[-16px]",
197
+ item: "gap-3"
198
+ }
199
+ },
200
+ {
201
+ orientation: "vertical",
202
+ size: "xl",
203
+ classNames: {
204
+ separator: "top-[56px] bottom-[-16px]",
205
+ item: "gap-3.5"
206
+ }
207
+ }
208
+ ],
209
+ defaultVariants: {
210
+ size: "sm",
211
+ color: "primary",
212
+ orientation: "horizontal"
213
+ }
214
+ })
@@ -1,11 +1,28 @@
1
+ export interface StepperItem {
2
+ title?: string
3
+ description?: string
4
+ content?: string
5
+ icon?: string
6
+ value?: string | number
7
+ disabled?: boolean
8
+ slot?: string
9
+ class?: any
10
+ ui?: Record<string, any>
11
+ [key: string]: any
12
+ }
13
+
1
14
  export interface StepperProps {
2
- /**
3
- * Slot-specific CSS class overrides.
4
- */
15
+ items?: StepperItem[]
16
+ value?: string | number
17
+ defaultValue?: string | number
18
+ modelValue?: string | number
19
+ valueKey?: string
20
+ linear?: boolean
21
+ disabled?: boolean
22
+ orientation?: "horizontal" | "vertical"
23
+ size?: "xs" | "sm" | "md" | "lg" | "xl"
24
+ color?: "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral"
5
25
  ui?: any
6
- /**
7
- * Additional CSS classes to apply to the root element.
8
- */
9
26
  class?: any
10
27
  [key: string]: unknown
11
28
  }
@@ -1,21 +1,15 @@
1
1
  ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
2
  import type { StepsProps } from "./steps"
6
- import stepsTheme from "./steps.theme"
3
+ import { stepsTheme } from "./steps.theme"
7
4
 
8
5
 
9
- const steps = scv(stepsTheme)
10
6
 
11
7
  const {
12
8
  size = "md",
13
- ui: uiProp,
14
- class: className,
15
9
  ...rest
16
10
  } = Astro.props as StepsProps
17
11
 
18
- const classes = resolveClasses(steps, { size }, useUi("steps", uiProp), className)
12
+ const classes = stepsTheme(Astro.props)
19
13
  ---
20
14
 
21
15
  <div class:list={[classes.root, "rl-steps"]} data-slot="root" data-size={size} {...rest}>
@@ -60,8 +54,8 @@ const classes = resolveClasses(steps, { size }, useUi("steps", uiProp), classNam
60
54
  font-size: 0.75rem;
61
55
  font-weight: 700;
62
56
  line-height: 1;
63
- color: var(--color-primary-foreground, #fff);
64
- background-color: var(--color-primary, #3b82f6);
57
+ color: var(--rl-neutral-50);
58
+ background-color: var(--primary, #3b82f6);
65
59
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
66
60
  z-index: 1;
67
61
  }
@@ -73,7 +67,7 @@ const classes = resolveClasses(steps, { size }, useUi("steps", uiProp), classNam
73
67
  top: calc(1.75rem + 0.375rem);
74
68
  bottom: 0;
75
69
  width: 2px;
76
- background-color: var(--color-border, #e5e7eb);
70
+ background-color: var(--rl-neutral-200);
77
71
  }
78
72
 
79
73
  .rl-steps-list > li:last-child::after {
@@ -1,13 +1,10 @@
1
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
2
2
 
3
- export const createStepsTheme = () =>
4
- defineTheme({
5
- slots: ["root"],
6
- base: {
7
- root: "w-full"
8
- },
9
- variants: {},
10
- defaultVariants: {}
11
- })
12
-
13
- export default createStepsTheme()
3
+ export const stepsTheme = defineTheme("steps", {
4
+ slots: ["root"],
5
+ base: {
6
+ root: "w-full"
7
+ },
8
+ variants: {},
9
+ defaultVariants: {}
10
+ })
@@ -1,38 +1,67 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
- import type { StickySurfaceProps } from "./sticky-surface"
6
- import { resolveTheme } from "../../utils/resolveTheme"
7
- import stickySurfaceThemeDefault, { createStickySurfaceTheme } from "./sticky-surface.theme"
8
- const stickySurfaceTheme = resolveTheme(stickySurfaceThemeDefault, createStickySurfaceTheme)
9
-
10
-
11
- const stickySurface = scv(stickySurfaceTheme)
12
-
13
- const {
14
- offsetTop = 0,
15
- zIndex = 10,
16
- ui: uiProp,
17
- class: className,
18
- ...rest
19
- } = Astro.props as StickySurfaceProps
20
-
21
- const classes = resolveClasses(stickySurface, {}, useUi("stickySurface", uiProp), className)
22
- const topOffset = `${offsetTop}px`
23
- const id = `sticky-${Math.random().toString(36).substring(2, 9)}`
24
- ---
25
- <div
26
- class:list={[classes.root, id]}
27
- data-slot="root"
28
- {...rest}
29
- >
30
- <slot />
31
- </div>
32
-
33
- <style is:inline set:html={`
34
- .${id} {
35
- top: ${topOffset} !important;
36
- z-index: ${zIndex} !important;
37
- }
38
- `} />
1
+ ---
2
+ import type { StickySurfaceProps } from "./sticky-surface"
3
+ import { stickySurfaceTheme } from "./sticky-surface.theme"
4
+
5
+
6
+
7
+ const {
8
+ offsetTop = 0,
9
+ zIndex = 10,
10
+ stuckShadow = true,
11
+ ...rest
12
+ } = Astro.props as StickySurfaceProps
13
+
14
+
15
+
16
+ const classes = stickySurfaceTheme(Astro.props)
17
+ const topOffset = `${offsetTop}px`
18
+ const id = `sticky-${Math.random().toString(36).substring(2, 9)}`
19
+ ---
20
+ <div
21
+ class:list={[classes.root, id, stuckShadow && "rla-sticky-shadow"]}
22
+ data-slot="root"
23
+ {...rest}
24
+ >
25
+ <slot />
26
+ </div>
27
+
28
+ <style is:inline set:html={`
29
+ .${id} {
30
+ top: ${topOffset} !important;
31
+ z-index: ${zIndex} !important;
32
+ /*
33
+ * CSS scroll-state(stuck: top) — Chrome 133+
34
+ *
35
+ * Declare this element as a scroll-state container so it can query
36
+ * its own stuck state. When position: sticky causes it to be pinned
37
+ * at the top, the browser marks it as "stuck: top".
38
+ */
39
+ container-type: scroll-state;
40
+ container-name: rla-sticky-${id};
41
+ }
42
+ `} />
43
+
44
+ <!--
45
+ The stuck shadow is applied via a nested CSS @container scroll-state rule.
46
+ This is progressive enhancement — browsers that don't support scroll-state()
47
+ silently ignore it and the surface just has no shadow (which is fine).
48
+ -->
49
+ {stuckShadow && (
50
+ <style is:inline set:html={`
51
+ @container rla-sticky-${id} scroll-state(stuck: top) {
52
+ .${id} {
53
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.10), 0 1px 4px 0 rgba(0, 0, 0, 0.06);
54
+ border-bottom: 1px solid rgba(0, 0, 0, 0.06);
55
+ }
56
+ }
57
+
58
+ @media (prefers-color-scheme: dark) {
59
+ @container rla-sticky-${id} scroll-state(stuck: top) {
60
+ .${id} {
61
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.40), 0 1px 4px 0 rgba(0, 0, 0, 0.20);
62
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
63
+ }
64
+ }
65
+ }
66
+ `} />
67
+ )}
@@ -1,12 +1,8 @@
1
- import { colorConfig } from "../../config/color.config"
2
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
3
2
 
4
- export const createStickySurfaceTheme = (_colors: readonly string[] = colorConfig.colors) =>
5
- defineTheme({
6
- slots: ["root"],
7
- base: {
8
- root: "sticky top-0 self-start transition-all duration-300"
9
- }
10
- })
11
-
12
- export default createStickySurfaceTheme()
3
+ export const stickySurfaceTheme = defineTheme("sticky-surface", {
4
+ slots: ["root"],
5
+ base: {
6
+ root: "sticky top-0 self-start transition-all duration-300"
7
+ }
8
+ })
@@ -1,4 +1,5 @@
1
1
  export interface StickySurfaceProps {
2
+ stuckShadow?: boolean
2
3
  /**
3
4
  * Pixels offset from top when sticky.
4
5
  */
@@ -14,13 +14,13 @@ import RLAIcon from "../icon/RLAIcon.astro"
14
14
  ---
15
15
 
16
16
  {(prev || next) && (
17
- <div class="mt-12 pt-6 border-t border-border flex justify-between gap-4">
17
+ <div class="mt-12 pt-6 border-t border-default flex justify-between gap-4">
18
18
  {prev ? (
19
19
  <a href={prev.href} class="flex flex-col gap-1 text-left group no-underline max-w-[45%]">
20
- <span class="text-xs text-muted-foreground font-medium flex items-center gap-1 group-hover:text-primary transition-colors">
20
+ <span class="text-xs text-muted font-medium flex items-center gap-1 group-hover:text-primary transition-colors">
21
21
  <RLAIcon name="arrowLeft" class="size-3" /> Previous
22
22
  </span>
23
- <span class="text-sm font-semibold text-foreground group-hover:text-primary transition-colors truncate">
23
+ <span class="text-sm font-semibold text-highlighted group-hover:text-primary transition-colors truncate">
24
24
  {prev.label}
25
25
  </span>
26
26
  </a>
@@ -28,10 +28,10 @@ import RLAIcon from "../icon/RLAIcon.astro"
28
28
 
29
29
  {next ? (
30
30
  <a href={next.href} class="flex flex-col gap-1 text-right group no-underline max-w-[45%]">
31
- <span class="text-xs text-muted-foreground font-medium flex items-center justify-end gap-1 group-hover:text-primary transition-colors">
31
+ <span class="text-xs text-muted font-medium flex items-center justify-end gap-1 group-hover:text-primary transition-colors">
32
32
  Next <RLAIcon name="arrowRight" class="size-3" />
33
33
  </span>
34
- <span class="text-sm font-semibold text-foreground group-hover:text-primary transition-colors truncate">
34
+ <span class="text-sm font-semibold text-highlighted group-hover:text-primary transition-colors truncate">
35
35
  {next.label}
36
36
  </span>
37
37
  </a>
@@ -1,36 +1,21 @@
1
1
  ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
2
  import type { SwitchProps } from "./switch"
6
- import { resolveTheme } from "../../utils/resolveTheme"
7
- import switchThemeDefault, { createSwitchTheme } from "./switch.theme"
8
- const switchTheme = resolveTheme(switchThemeDefault, createSwitchTheme)
3
+ import { switchTheme } from "./switch.theme"
9
4
 
10
5
 
11
- const switchFn = scv(switchTheme)
12
6
 
13
7
  const {
14
8
  checked = false,
15
9
  disabled = false,
16
10
  name,
17
11
  label,
18
- color = "primary",
19
- size = "md",
20
12
  theme,
21
- ui: uiProp,
22
- class: className,
23
13
  ...rest
24
14
  } = Astro.props as SwitchProps
25
15
 
26
- const classes = resolveClasses(switchFn, {
27
- color,
28
- size,
29
- checked,
30
- theme
31
- }, useUi("switch", uiProp), className);
16
+ const classes = switchTheme(Astro.props);
32
17
  ---
33
- <label class={classes.root} data-slot="root">
18
+ <label class={classes.root} data-slot="root" data-theme={theme}>
34
19
  <input
35
20
  type="checkbox"
36
21
  class={classes.input}
@@ -1,66 +1,51 @@
1
- import { colorConfig } from "../../config/color.config"
2
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
3
2
 
4
- export const createSwitchTheme = (colors: readonly string[] = colorConfig.colors) =>
5
- defineTheme({
6
- slots: ["root", "input", "track", "thumb", "label"],
7
- base: {
8
- root: "inline-flex items-center gap-2 cursor-pointer select-none",
9
- input: "absolute opacity-0 size-0 pointer-events-none peer",
10
- track: [
11
- "inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 border-transparent bg-muted transition-all focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2",
12
- "peer-disabled:cursor-not-allowed peer-disabled:opacity-50"
13
- ],
14
- thumb:
15
- "pointer-events-none block size-4 rounded-full bg-background shadow-lg ring-0 transition-transform duration-200 translate-x-0",
16
- label: "text-sm text-foreground leading-none"
3
+ export const switchTheme = defineTheme("switch", {
4
+ slots: ["root", "input", "track", "thumb", "label"],
5
+ base: {
6
+ root: "inline-flex items-center gap-2 cursor-pointer select-none",
7
+ input: "absolute opacity-0 size-0 pointer-events-none peer",
8
+ track: [
9
+ "inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 border-transparent bg-muted transition-all focus-within:ring-2 focus-within:ring-[var(--rl-ring)]/50 focus-within:ring-offset-2",
10
+ "peer-checked:bg-[var(--rl-bg)]",
11
+ "peer-disabled:cursor-not-allowed peer-disabled:opacity-50"
12
+ ],
13
+ thumb:
14
+ "pointer-events-none block size-4 rounded-full bg-default shadow-lg ring-0 transition-transform duration-200 translate-x-0",
15
+ label: "text-sm text-highlighted leading-none"
16
+ },
17
+ variants: {
18
+ color: "auto",
19
+ size: {
20
+ sm: { track: "h-4 w-7", thumb: "size-3", label: "text-xs" },
21
+ md: { track: "h-5 w-9", thumb: "size-4", label: "text-sm" },
22
+ lg: { track: "h-6 w-11", thumb: "size-5", label: "text-base" }
17
23
  },
18
- variants: {
19
- color: Object.fromEntries(
20
- colors.map((color) => [
21
- color,
22
- {
23
- root: "rl-color-" + color,
24
- track: `peer-checked:bg-[var(--rl-bg)] focus-within:ring-[var(--rl-ring)]/50`
25
- }
26
- ])
27
- ),
28
- size: {
29
- sm: { track: "h-4 w-7", thumb: "size-3", label: "text-xs" },
30
- md: { track: "h-5 w-9", thumb: "size-4", label: "text-sm" },
31
- lg: { track: "h-6 w-11", thumb: "size-5", label: "text-base" }
32
- },
33
- checked: {
34
- true: { thumb: "translate-x-full" },
35
- false: { thumb: "translate-x-0" }
36
- },
37
- theme: {
38
- light: { root: "rl-light" },
39
- dark: { root: "rl-dark" }
40
- }
24
+ checked: {
25
+ true: { thumb: "translate-x-full" },
26
+ false: { thumb: "translate-x-0" }
27
+ }
28
+ },
29
+ compoundVariants: [
30
+ {
31
+ size: "sm",
32
+ checked: true,
33
+ classNames: { thumb: "translate-x-3" }
41
34
  },
42
- compoundVariants: [
43
- {
44
- size: "sm",
45
- checked: true,
46
- classNames: { thumb: "translate-x-3" }
47
- },
48
- {
49
- size: "md",
50
- checked: true,
51
- classNames: { thumb: "translate-x-4" }
52
- },
53
- {
54
- size: "lg",
55
- checked: true,
56
- classNames: { thumb: "translate-x-5" }
57
- }
58
- ],
59
- defaultVariants: {
60
- color: "primary",
35
+ {
61
36
  size: "md",
62
- checked: false
37
+ checked: true,
38
+ classNames: { thumb: "translate-x-4" }
39
+ },
40
+ {
41
+ size: "lg",
42
+ checked: true,
43
+ classNames: { thumb: "translate-x-5" }
63
44
  }
64
- })
65
-
66
- export default createSwitchTheme()
45
+ ],
46
+ defaultVariants: {
47
+ color: "primary",
48
+ size: "md",
49
+ checked: false
50
+ }
51
+ })
@@ -1,4 +1,4 @@
1
- import type { Theme, ThemeColor } from "../../types/component"
1
+ import type { Theme, ThemeColor } from "../../types"
2
2
 
3
3
  export interface SwitchProps {
4
4
  /**