@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,84 +1,73 @@
1
- import { colorConfig } from "../../config/color.config"
2
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
3
2
 
4
- export const createAvatarTheme = (colors: readonly string[] = colorConfig.colors) =>
5
- defineTheme({
6
- slots: ["root", "image", "fallback", "icon", "badge"],
7
- base: {
8
- root: "inline-flex items-center justify-center shrink-0 select-none rounded-full align-middle relative",
9
- image: "h-full w-full rounded-[inherit] object-cover",
10
- fallback: "font-medium truncate",
11
- icon: "shrink-0",
12
- badge: "absolute rounded-full ring-2 ring-bg"
13
- },
14
- variants: {
15
- color: {
16
- ...Object.fromEntries(
17
- colors.map((color) => [
18
- color,
19
- {
20
- root: `bg-${color}/10`,
21
- fallback: `text-${color}`,
22
- icon: `text-${color}`
23
- }
24
- ])
25
- ),
26
- neutral: {
27
- root: "bg-elevated",
28
- fallback: "text-foreground",
29
- icon: "text-muted"
30
- }
3
+ export const avatarTheme = defineTheme("avatar", {
4
+ slots: ["root", "image", "fallback", "icon", "badge"],
5
+ base: {
6
+ root: "inline-flex items-center justify-center shrink-0 select-none rounded-full align-middle relative bg-[var(--rl-bg)]/10 text-[var(--rl-text)]",
7
+ image: "h-full w-full rounded-[inherit] object-cover",
8
+ fallback: "font-medium truncate text-inherit",
9
+ icon: "shrink-0 text-inherit",
10
+ badge: "absolute rounded-full ring-2 ring-bg"
11
+ },
12
+ variants: {
13
+ color: "auto",
14
+ size: {
15
+ "3xs": {
16
+ root: "size-4 text-[8px]",
17
+ badge: "size-1.5"
18
+ },
19
+ "2xs": {
20
+ root: "size-5 text-[10px]",
21
+ badge: "size-2"
22
+ },
23
+ "xs": {
24
+ root: "size-6 text-xs",
25
+ badge: "size-2"
26
+ },
27
+ "sm": {
28
+ root: "size-7 text-sm",
29
+ badge: "size-2.5"
30
+ },
31
+ "md": {
32
+ root: "size-8 text-base",
33
+ badge: "size-3"
31
34
  },
32
- size: {
33
- "3xs": {
34
- root: "size-4 text-[8px]",
35
- badge: "size-1.5"
36
- },
37
- "2xs": {
38
- root: "size-5 text-[10px]",
39
- badge: "size-2"
40
- },
41
- "xs": {
42
- root: "size-6 text-xs",
43
- badge: "size-2"
44
- },
45
- "sm": {
46
- root: "size-7 text-sm",
47
- badge: "size-2.5"
48
- },
49
- "md": {
50
- root: "size-8 text-base",
51
- badge: "size-3"
52
- },
53
- "lg": {
54
- root: "size-9 text-lg",
55
- badge: "size-3"
56
- },
57
- "xl": {
58
- root: "size-10 text-xl",
59
- badge: "size-3.5"
60
- },
61
- "2xl": {
62
- root: "size-11 text-[22px]",
63
- badge: "size-4"
64
- },
65
- "3xl": {
66
- root: "size-12 text-2xl",
67
- badge: "size-4"
68
- }
35
+ "lg": {
36
+ root: "size-9 text-lg",
37
+ badge: "size-3"
69
38
  },
70
- badgePosition: {
71
- "top-right": { badge: "top-0 right-0" },
72
- "bottom-right": { badge: "bottom-0 right-0" },
73
- "top-left": { badge: "top-0 left-0" },
74
- "bottom-left": { badge: "bottom-0 left-0" }
39
+ "xl": {
40
+ root: "size-10 text-xl",
41
+ badge: "size-3.5"
42
+ },
43
+ "2xl": {
44
+ root: "size-11 text-[22px]",
45
+ badge: "size-4"
46
+ },
47
+ "3xl": {
48
+ root: "size-12 text-2xl",
49
+ badge: "size-4"
75
50
  }
76
51
  },
77
- defaultVariants: {
78
- size: "md",
52
+ badgePosition: {
53
+ "top-right": { badge: "top-0 right-0" },
54
+ "bottom-right": { badge: "bottom-0 right-0" },
55
+ "top-left": { badge: "top-0 left-0" },
56
+ "bottom-left": { badge: "bottom-0 left-0" }
57
+ }
58
+ },
59
+ compoundVariants: [
60
+ {
79
61
  color: "neutral",
80
- badgePosition: "bottom-right"
62
+ classNames: {
63
+ root: "bg-elevated text-highlighted",
64
+ icon: "text-muted"
65
+ }
81
66
  }
82
- })
83
-
84
- export default createAvatarTheme()
67
+ ],
68
+ defaultVariants: {
69
+ size: "md",
70
+ color: "neutral",
71
+ badgePosition: "bottom-right"
72
+ }
73
+ })
@@ -1,3 +1,4 @@
1
+ import type { ThemeColor } from "../../types"
1
2
  import type { ChipProps } from "../chip/chip"
2
3
 
3
4
  export interface AvatarProps {
@@ -11,6 +12,7 @@ export interface AvatarProps {
11
12
  alt?: string
12
13
  icon?: any
13
14
  text?: string
15
+ fallback?: string
14
16
  /**
15
17
  * @default "md"
16
18
  */
@@ -18,18 +20,11 @@ export interface AvatarProps {
18
20
  /**
19
21
  * @default "neutral"
20
22
  */
21
- color?:
22
- | "neutral"
23
- | "primary"
24
- | "secondary"
25
- | "info"
26
- | "success"
27
- | "warning"
28
- | "error"
29
- | "commentary"
30
- | "ideation"
31
- | "source"
23
+ color?: ThemeColor
32
24
  chip?: boolean | ChipProps
25
+ badge?: boolean | string | number
26
+ badgeColor?: string
27
+ badgePosition?: "top-right" | "bottom-right" | "top-left" | "bottom-left"
33
28
  loading?: "lazy" | "eager"
34
29
  referrerpolicy?:
35
30
  | ""
@@ -1,23 +1,188 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
- import type { AvatarGroupProps } from "./avatar-group"
6
- import { resolveTheme } from "../../utils/resolveTheme"
7
- import avatarGroupThemeDefault, { createAvatarGroupTheme } from "./avatar-group.theme"
8
- const avatarGroupTheme = resolveTheme(avatarGroupThemeDefault, createAvatarGroupTheme)
9
-
10
-
11
- const avatarGroup = scv(avatarGroupTheme)
12
-
13
- const {
14
- ui: uiProp,
15
- class: className,
16
- ...rest
17
- } = Astro.props as AvatarGroupProps
18
-
19
- const classes = resolveClasses(avatarGroup, {}, useUi("avatarGroup", uiProp), className)
20
- ---
21
- <div class={classes.root} data-slot="avatar-group" {...rest}>
22
- <slot />
23
- </div>
1
+ ---
2
+ import type { AvatarGroupProps } from "./avatar-group"
3
+ import { avatarGroupTheme } from "./avatar-group.theme"
4
+ import RLAAvatar from "../avatar/RLAAvatar.astro"
5
+
6
+
7
+
8
+ const {
9
+ items,
10
+ displayLimit = 5,
11
+ size = "md",
12
+ ...rest
13
+ } = Astro.props as AvatarGroupProps
14
+
15
+ const classes = avatarGroupTheme(Astro.props)
16
+
17
+ // ─── Responsive CSS Item Counter ────────────────────────────────────────────
18
+ //
19
+ // Technique: CSS Container Queries + Custom Properties + CSS Counters.
20
+ //
21
+ // 1. Server-side: compute baseHiddenCount = max(0, total - displayLimit).
22
+ // Set --base-hidden on the list element.
23
+ // 2. Per-instance container queries: as the container shrinks, each breakpoint
24
+ // hides one more avatar (nth-child) and bumps --hidden-items.
25
+ // 3. CSS counter: "+N more" = counter-reset: calc(--base-hidden + --hidden-items).
26
+ // Entirely CSS arithmetic — zero JS resize observers.
27
+ //
28
+ // ─────────────────────────────────────────────────────────────────────────────
29
+
30
+ const uid = Math.random().toString(36).substring(2, 9)
31
+ const cName = `rla-ag-${uid}` // unique CSS container-name
32
+
33
+ // Avatar pixel sizes (matching avatar.theme.ts size variants)
34
+ const sizePx: Record<string, number> = {
35
+ "3xs": 16, "2xs": 20, "xs": 24, "sm": 28,
36
+ "md": 32, "lg": 36, "xl": 40, "2xl": 44, "3xl": 48
37
+ }
38
+ // UnoCSS utility classes for the "+more" bubble sized to match the avatar
39
+ const sizeCls: Record<string, string> = {
40
+ "3xs": "size-4 text-[7px]", "2xs": "size-5 text-[8px]",
41
+ "xs": "size-6 text-[9px]", "sm": "size-7 text-[10px]",
42
+ "md": "size-8 text-[11px]", "lg": "size-9 text-xs",
43
+ "xl": "size-10 text-xs", "2xl": "size-11 text-sm", "3xl": "size-12 text-sm"
44
+ }
45
+
46
+ const avatarPx = sizePx[size] ?? 32
47
+ const overlapPx = 12 // -space-x-3 = -0.75rem = 12px
48
+ const effectivePx = avatarPx - overlapPx // width each extra avatar adds
49
+ const morePx = avatarPx + 4 // "+more" bubble ~= avatar with tiny padding
50
+
51
+ const normalizedItems = items ?? []
52
+ const renderedItems = normalizedItems.slice(0, displayLimit)
53
+ const baseHiddenCount = Math.max(0, normalizedItems.length - displayLimit)
54
+
55
+ // We need an overflow indicator when total ≥ displayLimit so that even when
56
+ // base-hidden is 0, CSS breakpoints can still surface the "+N more" bubble.
57
+ const needsOverflow = normalizedItems.length >= displayLimit
58
+
59
+ // ── Generate per-instance container-query CSS ────────────────────────────────
60
+ // Each breakpoint hides exactly ONE new nth-child (CSS cascade accumulates them).
61
+ //
62
+ // Breakpoint i (0-indexed):
63
+ // hiddenItems = i + 1 → value set on --hidden-items
64
+ // visibleCount = rendered - hiddenItems → avatars still showing
65
+ // maxWidth = width of visibleCount avatars + more bubble
66
+ // hideNthChild = rendered - i → the avatar position to newly hide
67
+ //
68
+ // At container width W:
69
+ // every breakpoint with maxWidth ≥ W matches.
70
+ // Each matching rule adds one hidden nth-child and raises --hidden-items.
71
+ // The LAST matching rule's --hidden-items wins (correct, since smaller
72
+ // containers match more rules and the last has the highest count).
73
+ // ─────────────────────────────────────────────────────────────────────────────
74
+ let instanceCss = ""
75
+ if (needsOverflow && renderedItems.length > 1) {
76
+ const maxBreaks = renderedItems.length - 1 // keep at least 1 avatar always
77
+ for (let i = 0; i < maxBreaks; i++) {
78
+ const hiddenItems = i + 1
79
+ const visibleCount = renderedItems.length - hiddenItems
80
+ // Min container width for this many avatars + the more bubble
81
+ const maxWidth = avatarPx + Math.max(0, visibleCount - 1) * effectivePx + morePx + 4
82
+ const hideNthChild = renderedItems.length - i // count from end
83
+
84
+ instanceCss += `\n@container ${cName} (max-width: ${maxWidth}px) {`
85
+ instanceCss += `\n [data-ag="${uid}"] { --hidden-items: ${hiddenItems}; }`
86
+ instanceCss += `\n [data-ag="${uid}"] > .rla-ag-item.hidable:nth-child(${hideNthChild}) { display: none; }`
87
+ // When base-hidden is 0, the bubble starts hidden; show it once a breakpoint fires
88
+ if (baseHiddenCount === 0) {
89
+ instanceCss += `\n [data-ag="${uid}"] > .rla-ag-more-hidden { display: inline-flex; }`
90
+ }
91
+ instanceCss += `\n}`
92
+ }
93
+ }
94
+ ---
95
+
96
+ {normalizedItems.length > 0 ? (
97
+ <div
98
+ class="rla-ag-host"
99
+ style={`container-type: inline-size; container-name: ${cName};`}
100
+ {...rest}
101
+ >
102
+ <div
103
+ class:list={[classes.root, "rla-ag-list"]}
104
+ data-slot="avatar-group"
105
+ data-ag={uid}
106
+ style={`--base-hidden: ${baseHiddenCount}; --hidden-items: 0;`}
107
+ >
108
+ {renderedItems.map((item, idx) => (
109
+ <span class:list={["rla-ag-item", needsOverflow && idx > 0 && "hidable"]}>
110
+ <RLAAvatar
111
+ src={item.src}
112
+ alt={item.alt ?? ""}
113
+ fallback={item.fallback}
114
+ initials={item.initials}
115
+ size={size}
116
+ color={(item.color ?? "neutral") as any}
117
+ />
118
+ </span>
119
+ ))}
120
+
121
+ {needsOverflow && (
122
+ <span
123
+ class:list={[
124
+ classes.more,
125
+ sizeCls[size] ?? sizeCls["md"],
126
+ "rla-ag-more",
127
+ baseHiddenCount === 0 && "rla-ag-more-hidden"
128
+ ]}
129
+ aria-hidden="true"
130
+ data-slot="more"
131
+ >
132
+ +<span class="rla-ag-count" />
133
+ </span>
134
+ )}
135
+ </div>
136
+ </div>
137
+ ) : (
138
+ <div class={classes.root} data-slot="avatar-group" {...rest}>
139
+ <slot />
140
+ </div>
141
+ )}
142
+
143
+ <!-- Per-instance container-query CSS (scoped via unique data-ag attribute) -->
144
+ <style is:inline set:html={instanceCss} />
145
+
146
+ <style>
147
+ .rla-ag-host {
148
+ /* Inline so the group doesn't stretch to full column width */
149
+ display: inline-block;
150
+ }
151
+
152
+ .rla-ag-item {
153
+ display: inline-flex;
154
+ flex-shrink: 0;
155
+ }
156
+
157
+ /* "+more" bubble — base styles; size/color come from theme + sizeCls above */
158
+ .rla-ag-more {
159
+ display: inline-flex;
160
+ align-items: center;
161
+ justify-content: center;
162
+ flex-shrink: 0;
163
+ white-space: nowrap;
164
+ font-feature-settings: "tnum";
165
+ }
166
+
167
+ /* Hidden by default when base-hidden is 0 (no pre-truncation).
168
+ Container queries restore display when responsive hiding fires. */
169
+ .rla-ag-more-hidden {
170
+ display: none;
171
+ }
172
+
173
+ /*
174
+ * CSS Counter — the entire "+N" calculation happens here.
175
+ *
176
+ * counter-reset creates a named counter with an initial value equal to
177
+ * the sum of:
178
+ * --base-hidden (set at render time: total - displayLimit)
179
+ * --hidden-items (set by container queries: how many are responsively hidden)
180
+ *
181
+ * The `content` property reads it back as a string.
182
+ * Zero JS arithmetic. Automatic — no resize observers.
183
+ */
184
+ .rla-ag-count::after {
185
+ counter-reset: rla-ag-cnt calc(var(--base-hidden, 0) + var(--hidden-items, 0));
186
+ content: counter(rla-ag-cnt);
187
+ }
188
+ </style>
@@ -1,12 +1,13 @@
1
- import { colorConfig } from "../../config/color.config"
2
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
3
2
 
4
- export const createAvatarGroupTheme = (_colors: readonly string[] = colorConfig.colors) =>
5
- defineTheme({
6
- slots: ["root"],
7
- base: {
8
- root: "flex -space-x-3 hover:space-x-0 transition-all duration-300 [&_[data-slot=root]]:ring-2 [&_[data-slot=root]]:ring-background [&_[data-slot=root]]:transition-all"
9
- }
10
- })
11
-
12
- export default createAvatarGroupTheme()
3
+ export const avatarGroupTheme = defineTheme("avatar-group", {
4
+ slots: ["root", "more"],
5
+ base: {
6
+ root: "flex -space-x-3 hover:space-x-0 transition-all duration-300 [&_[data-slot=root]]:ring-2 [&_[data-slot=root]]:ring-background [&_[data-slot=root]]:transition-all",
7
+ more: [
8
+ "inline-flex items-center justify-center rounded-full shrink-0 select-none cursor-default",
9
+ "bg-elevated text-muted font-bold ring-2 ring-background",
10
+ "transition-all duration-300"
11
+ ]
12
+ }
13
+ })
@@ -1,4 +1,45 @@
1
+ export interface AvatarItemData {
2
+ /**
3
+ * Image URL.
4
+ */
5
+ src?: string
6
+ /**
7
+ * Alt text for the image.
8
+ */
9
+ alt?: string
10
+ /**
11
+ * Fallback text (initials or short label).
12
+ */
13
+ fallback?: string
14
+ /**
15
+ * Alias for fallback — two-letter initials.
16
+ */
17
+ initials?: string
18
+ /**
19
+ * Color variant passed to the inner Avatar.
20
+ */
21
+ color?: string
22
+ }
23
+
1
24
  export interface AvatarGroupProps {
25
+ /**
26
+ * Array of avatar data to render automatically. When provided, enables the CSS responsive item
27
+ * counter. When omitted, falls back to the default `<slot />` behaviour.
28
+ */
29
+ items?: AvatarItemData[]
30
+ /**
31
+ * Maximum number of avatars to show at full container width. Additional avatars are pre-hidden
32
+ * server-side and counted. Container queries will responsively hide more as width shrinks.
33
+ *
34
+ * @default 5
35
+ */
36
+ displayLimit?: number
37
+ /**
38
+ * Avatar size — forwarded to each inner RLAAvatar.
39
+ *
40
+ * @default "md"
41
+ */
42
+ size?: "3xs" | "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl"
2
43
  /**
3
44
  * Slot-specific CSS class overrides.
4
45
  */
@@ -1,36 +1,24 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
- import type { BadgeProps } from "./badge"
6
- import { resolveTheme } from "../../utils/resolveTheme"
7
- import badgeThemeDefault, { createBadgeTheme } from "./badge.theme"
8
- const badgeTheme = resolveTheme(badgeThemeDefault, createBadgeTheme)
9
-
10
- const badge = scv(badgeTheme)
11
-
12
- const {
13
- variant = "solid",
14
- color = "primary",
15
- size = "md",
16
- shape = "pill",
17
- label,
18
- theme,
19
- ui: uiProp,
20
- class: className,
21
- ...rest
22
- } = Astro.props as BadgeProps & { label?: string }
23
-
24
- const resolvedVariant = (variant === "ghost") ? "soft" : ((variant === "solid" || variant === "outline" || variant === "soft" || variant === "subtle") ? variant : "solid")
25
-
26
- const classes = resolveClasses(badge, {
27
- variant: resolvedVariant as "solid",
28
- color: color as "neutral",
29
- size,
30
- shape,
31
- theme
32
- }, useUi("badge", uiProp), className)
33
- ---
34
- <span class={classes.root} data-slot="root" {...rest}>
35
- <slot>{label}</slot>
36
- </span>
1
+ ---
2
+ import type { BadgeProps } from "./badge"
3
+ import { badgeTheme } from "./badge.theme"
4
+
5
+
6
+ const {
7
+ variant,
8
+ label,
9
+ theme,
10
+ ...rest
11
+ } = Astro.props as BadgeProps
12
+
13
+
14
+
15
+ const resolvedVariant = (variant === "ghost") ? "soft" : ((variant === "solid" || variant === "outline" || variant === "soft" || variant === "subtle") ? variant : "solid")
16
+
17
+ const classes = badgeTheme({
18
+ ...Astro.props,
19
+ variant: resolvedVariant as "solid"
20
+ })
21
+ ---
22
+ <span class={classes.root} data-slot="root" data-theme={theme} {...rest}>
23
+ <slot>{label}</slot>
24
+ </span>
@@ -0,0 +1,41 @@
1
+ import { createMemo, splitProps, type Component, type JSX } from "solid-js"
2
+ import type { BadgeProps } from "./badge"
3
+ import { badgeTheme } from "./badge.theme"
4
+
5
+ export interface RLSBadgeProps extends BadgeProps {
6
+ children?: JSX.Element
7
+ }
8
+
9
+ const RLSBadge: Component<RLSBadgeProps> = (allProps) => {
10
+ const [props, rest] = splitProps(allProps, [
11
+ "label",
12
+ "variant",
13
+ "color",
14
+ "size",
15
+ "shape",
16
+ "theme",
17
+ "ui",
18
+ "class",
19
+ "children"
20
+ ])
21
+
22
+ const resolvedClasses = createMemo(() =>
23
+ badgeTheme({
24
+ variant: props.variant ?? "solid",
25
+ color: props.color ?? "primary",
26
+ size: props.size ?? "md",
27
+ shape: props.shape ?? "pill",
28
+ theme: props.theme,
29
+ ui: props.ui,
30
+ class: props.class
31
+ })
32
+ )
33
+
34
+ return (
35
+ <span class={resolvedClasses().root} data-slot="root" {...rest}>
36
+ {props.children !== undefined && props.children !== null ? props.children : props.label}
37
+ </span>
38
+ )
39
+ }
40
+
41
+ export default RLSBadge
@@ -1,15 +1,11 @@
1
1
  <script setup lang="ts">
2
2
  import { computed, useAttrs } from "vue"
3
- import { scv } from "css-variants"
4
- import { useUi } from "../../utils/useUi"
5
- import { resolveClasses } from "../../utils/resolveClasses"
6
3
  import type { BadgeProps } from "./badge"
7
- import badgeThemeDefault from "./badge.theme"
4
+ import { badgeTheme } from "./badge.theme"
8
5
 
9
6
  defineOptions({ name: "RLVBadge" })
10
7
 
11
8
  const attrs = useAttrs()
12
- const badgeScv = scv(badgeThemeDefault)
13
9
 
14
10
  const props = withDefaults(defineProps<BadgeProps>(), {
15
11
  variant: "solid",
@@ -19,17 +15,13 @@ const props = withDefaults(defineProps<BadgeProps>(), {
19
15
  })
20
16
 
21
17
  const resolvedClasses = computed(() =>
22
- resolveClasses(
23
- badgeScv,
24
- {
25
- variant: props.variant,
26
- color: props.color,
27
- size: props.size,
28
- shape: props.shape
29
- },
30
- useUi("badge", props.ui),
31
- props.class
32
- )
18
+ badgeTheme({
19
+ variant: props.variant,
20
+ color: props.color,
21
+ size: props.size,
22
+ shape: props.shape,
23
+ class: props.class
24
+ })
33
25
  )
34
26
  </script>
35
27