@rimelight/ui 0.0.42 → 0.0.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (400) hide show
  1. package/README.md +4 -14
  2. package/package.json +20 -30
  3. package/src/components/3d-hover/3d-hover.theme.ts +9 -12
  4. package/src/components/3d-hover/RLA3dHover.astro +9 -20
  5. package/src/components/accordion/RLAAccordion.astro +5 -14
  6. package/src/components/accordion/accordion.theme.ts +34 -37
  7. package/src/components/app/RLAApp.astro +9 -20
  8. package/src/components/app/app.theme.ts +9 -12
  9. package/src/components/aspect-ratio/RLAAspectRatio.astro +19 -27
  10. package/src/components/aspect-ratio/aspect-ratio.theme.ts +8 -12
  11. package/src/components/audio/RLAAudio.astro +3 -14
  12. package/src/components/audio/audio.theme.ts +9 -12
  13. package/src/components/avatar/RLAAvatar.astro +9 -29
  14. package/src/components/avatar/avatar.theme.ts +66 -77
  15. package/src/components/avatar/avatar.ts +6 -11
  16. package/src/components/avatar-group/RLAAvatarGroup.astro +188 -23
  17. package/src/components/avatar-group/avatar-group.theme.ts +12 -11
  18. package/src/components/avatar-group/avatar-group.ts +41 -0
  19. package/src/components/badge/RLABadge.astro +23 -36
  20. package/src/components/badge/RLSBadge.tsx +41 -0
  21. package/src/components/badge/RLVBadge.vue +8 -16
  22. package/src/components/badge/badge.theme.ts +118 -160
  23. package/src/components/badge/badge.ts +2 -1
  24. package/src/components/banner/RLABanner.astro +88 -103
  25. package/src/components/banner/banner.theme.ts +40 -43
  26. package/src/components/breadcrumb/RLABreadcrumb.astro +241 -62
  27. package/src/components/breadcrumb/breadcrumb.theme.ts +12 -16
  28. package/src/components/breadcrumb/breadcrumb.ts +19 -0
  29. package/src/components/browser-mockup/RLABrowserMockup.astro +9 -20
  30. package/src/components/browser-mockup/browser-mockup.theme.ts +9 -12
  31. package/src/components/button/RLAButton.astro +10 -30
  32. package/src/components/button/RLSButton.tsx +169 -0
  33. package/src/components/button/RLVButton.vue +13 -26
  34. package/src/components/button/button.theme.ts +163 -220
  35. package/src/components/button/button.ts +1 -1
  36. package/src/components/calendar/RLACalendar.astro +9 -20
  37. package/src/components/calendar/calendar.theme.ts +9 -12
  38. package/src/components/callout/RLACallout.astro +5 -14
  39. package/src/components/callout/callout.theme.ts +59 -101
  40. package/src/components/callout/callout.ts +1 -1
  41. package/src/components/card/RLACard.astro +71 -77
  42. package/src/components/card/RLSCard.tsx +116 -0
  43. package/src/components/card/RLVCard.vue +6 -14
  44. package/src/components/card/card.theme.ts +41 -44
  45. package/src/components/carousel/RLACarousel.astro +43 -11
  46. package/src/components/carousel/carousel.theme.ts +28 -32
  47. package/src/components/chart/RLAChart.astro +5 -11
  48. package/src/components/chart/chart.theme.ts +18 -21
  49. package/src/components/chart/chart.ts +1 -1
  50. package/src/components/chat/RLAChat.astro +9 -20
  51. package/src/components/chat/chat.theme.ts +9 -12
  52. package/src/components/chat-message/RLAChatMessage.astro +9 -20
  53. package/src/components/chat-message/chat-message.theme.ts +9 -12
  54. package/src/components/chat-messages/RLAChatMessages.astro +9 -20
  55. package/src/components/chat-messages/chat-messages.theme.ts +9 -12
  56. package/src/components/chat-palette/RLAChatPalette.astro +9 -20
  57. package/src/components/chat-palette/chat-palette.theme.ts +9 -12
  58. package/src/components/chat-prompt/RLAChatPrompt.astro +9 -20
  59. package/src/components/chat-prompt/chat-prompt.theme.ts +9 -12
  60. package/src/components/chat-prompt-submit/RLAChatPromptSubmit.astro +9 -20
  61. package/src/components/chat-prompt-submit/chat-prompt-submit.theme.ts +9 -12
  62. package/src/components/chat-reasoning/RLAChatReasoning.astro +9 -20
  63. package/src/components/chat-reasoning/chat-reasoning.theme.ts +9 -12
  64. package/src/components/chat-shimmer/RLAChatShimmer.astro +9 -20
  65. package/src/components/chat-shimmer/chat-shimmer.theme.ts +9 -12
  66. package/src/components/chat-tool/RLAChatTool.astro +9 -20
  67. package/src/components/chat-tool/chat-tool.theme.ts +9 -12
  68. package/src/components/checkbox/RLACheckbox.astro +2 -17
  69. package/src/components/checkbox/RLSCheckbox.tsx +65 -0
  70. package/src/components/checkbox/checkbox.theme.ts +34 -45
  71. package/src/components/checkbox/checkbox.ts +1 -1
  72. package/src/components/chip/RLAChip.astro +32 -56
  73. package/src/components/chip/chip.theme.ts +66 -72
  74. package/src/components/chip/chip.ts +3 -1
  75. package/src/components/collapsible/RLACollapsible.astro +2 -12
  76. package/src/components/collapsible/collapsible.theme.ts +17 -20
  77. package/src/components/collapsible/collapsible.ts +1 -1
  78. package/src/components/color-area/RLAColorArea.astro +2 -13
  79. package/src/components/color-area/color-area.theme.ts +19 -31
  80. package/src/components/color-area/color-area.ts +1 -1
  81. package/src/components/color-field/RLAColorField.astro +3 -14
  82. package/src/components/color-field/color-field.theme.ts +18 -30
  83. package/src/components/color-field/color-field.ts +1 -1
  84. package/src/components/color-picker/RLAColorPicker.astro +9 -20
  85. package/src/components/color-picker/color-picker.theme.ts +9 -12
  86. package/src/components/color-slider/RLAColorSlider.astro +2 -13
  87. package/src/components/color-slider/color-slider.theme.ts +20 -32
  88. package/src/components/color-slider/color-slider.ts +1 -1
  89. package/src/components/command-palette/RLACommandPalette.astro +9 -20
  90. package/src/components/command-palette/command-palette.theme.ts +9 -12
  91. package/src/components/compare/RLACompare.astro +9 -20
  92. package/src/components/compare/compare.theme.ts +9 -12
  93. package/src/components/confirm/RLAConfirm.astro +114 -122
  94. package/src/components/confirm/confirm.theme.ts +40 -44
  95. package/src/components/confirm/confirm.ts +1 -0
  96. package/src/components/container/RLAContainer.astro +9 -20
  97. package/src/components/container/container.theme.ts +9 -12
  98. package/src/components/context-menu/RLAContextMenu.astro +9 -20
  99. package/src/components/context-menu/context-menu.theme.ts +9 -12
  100. package/src/components/dashboard-group/RLADashboardGroup.astro +17 -21
  101. package/src/components/dashboard-group/dashboard-group.theme.ts +9 -12
  102. package/src/components/dashboard-group/dashboard-group.ts +1 -6
  103. package/src/components/dashboard-navbar/RLADashboardNavbar.astro +61 -21
  104. package/src/components/dashboard-navbar/dashboard-navbar.theme.ts +26 -12
  105. package/src/components/dashboard-navbar/dashboard-navbar.ts +5 -6
  106. package/src/components/dashboard-panel/RLADashboardPanel.astro +25 -13
  107. package/src/components/dashboard-panel/dashboard-panel.theme.ts +22 -12
  108. package/src/components/dashboard-panel/dashboard-panel.ts +4 -6
  109. package/src/components/dashboard-resize-handle/RLADashboardResizeHandle.astro +21 -21
  110. package/src/components/dashboard-resize-handle/dashboard-resize-handle.theme.ts +9 -12
  111. package/src/components/dashboard-resize-handle/dashboard-resize-handle.ts +1 -6
  112. package/src/components/dashboard-search/RLADashboardSearch.astro +100 -21
  113. package/src/components/dashboard-search/dashboard-search.theme.ts +24 -11
  114. package/src/components/dashboard-search/dashboard-search.ts +2 -6
  115. package/src/components/dashboard-search-button/RLADashboardSearchButton.astro +45 -21
  116. package/src/components/dashboard-search-button/dashboard-search-button.theme.ts +20 -12
  117. package/src/components/dashboard-search-button/dashboard-search-button.ts +4 -6
  118. package/src/components/dashboard-sidebar/RLADashboardSidebar.astro +119 -21
  119. package/src/components/dashboard-sidebar/dashboard-sidebar.theme.ts +40 -11
  120. package/src/components/dashboard-sidebar/dashboard-sidebar.ts +8 -6
  121. package/src/components/dashboard-sidebar-collapse/RLADashboardSidebarCollapse.astro +24 -21
  122. package/src/components/dashboard-sidebar-collapse/dashboard-sidebar-collapse.theme.ts +16 -12
  123. package/src/components/dashboard-sidebar-collapse/dashboard-sidebar-collapse.ts +2 -6
  124. package/src/components/dashboard-sidebar-toggle/RLADashboardSidebarToggle.astro +23 -21
  125. package/src/components/dashboard-sidebar-toggle/dashboard-sidebar-toggle.theme.ts +16 -12
  126. package/src/components/dashboard-sidebar-toggle/dashboard-sidebar-toggle.ts +2 -6
  127. package/src/components/dashboard-toolbar/RLADashboardToolbar.astro +25 -21
  128. package/src/components/dashboard-toolbar/dashboard-toolbar.theme.ts +11 -12
  129. package/src/components/dashboard-toolbar/dashboard-toolbar.ts +1 -6
  130. package/src/components/dock/RLADock.astro +9 -20
  131. package/src/components/dock/dock.theme.ts +9 -12
  132. package/src/components/drawer/RLADrawer.astro +115 -126
  133. package/src/components/drawer/drawer.theme.ts +53 -57
  134. package/src/components/dropdown-menu/RLADropdownMenu.astro +180 -47
  135. package/src/components/dropdown-menu/RLSDropdownMenu.tsx +196 -0
  136. package/src/components/dropdown-menu/dropdown-menu.theme.ts +51 -27
  137. package/src/components/dropdown-menu/dropdown-menu.ts +47 -9
  138. package/src/components/editor/RLAEditor.astro +9 -20
  139. package/src/components/editor/blocks/AddBlockModal.vue +3 -3
  140. package/src/components/editor/blocks/Block.vue +4 -3
  141. package/src/components/editor/blocks/BlockEditor.vue +3 -3
  142. package/src/components/editor/blocks/BlockViewRenderer.vue +8 -2
  143. package/src/components/editor/blocks/editor/CalloutBlockEditor.vue +2 -2
  144. package/src/components/editor/blocks/editor/ParagraphBlockEditor.vue +1 -1
  145. package/src/components/editor/blocks/editor/SectionBlockEditor.vue +3 -3
  146. package/src/components/editor/blocks/renderer/CalloutBlockRenderer.vue +2 -3
  147. package/src/components/editor/blocks/renderer/SectionBlockRenderer.vue +2 -2
  148. package/src/components/editor/editor.theme.ts +9 -12
  149. package/src/components/empty/RLAEmpty.astro +86 -20
  150. package/src/components/empty/empty.theme.ts +79 -11
  151. package/src/components/empty/empty.ts +59 -2
  152. package/src/components/error/RLAError.astro +9 -20
  153. package/src/components/error/error.theme.ts +9 -12
  154. package/src/components/field-group/RLAFieldGroup.astro +2 -11
  155. package/src/components/field-group/field-group.theme.ts +18 -22
  156. package/src/components/fieldset/RLAFieldset.astro +9 -20
  157. package/src/components/fieldset/fieldset.theme.ts +9 -12
  158. package/src/components/file-upload/RLAFileUpload.astro +4 -13
  159. package/src/components/file-upload/file-upload.theme.ts +19 -22
  160. package/src/components/file-upload/file-upload.ts +1 -1
  161. package/src/components/floating-action/RLAFloatingAction.astro +9 -20
  162. package/src/components/floating-action/floating-action.theme.ts +9 -12
  163. package/src/components/footer/RLAFooter.astro +32 -38
  164. package/src/components/footer/footer.theme.ts +31 -26
  165. package/src/components/footer/footer.ts +4 -0
  166. package/src/components/form/RLAForm.astro +9 -20
  167. package/src/components/form/form.theme.ts +9 -12
  168. package/src/components/form-field/RLAFormField.astro +5 -12
  169. package/src/components/form-field/RLSFormField.tsx +71 -0
  170. package/src/components/form-field/RLVFormField.vue +5 -14
  171. package/src/components/form-field/form-field.theme.ts +19 -22
  172. package/src/components/form-field/form-field.ts +1 -0
  173. package/src/components/gallery/RLAGallery.astro +9 -20
  174. package/src/components/gallery/gallery.theme.ts +9 -12
  175. package/src/components/grid/RLAGrid.astro +2 -15
  176. package/src/components/grid/grid.theme.ts +31 -34
  177. package/src/components/head/UIHead.astro +298 -0
  178. package/src/components/head/head.theme.ts +9 -12
  179. package/src/components/header/HeaderLayer.astro +63 -0
  180. package/src/components/header/RLAHeader.astro +29 -48
  181. package/src/components/header/header.theme.ts +37 -40
  182. package/src/components/header/header.ts +4 -0
  183. package/src/{utils → components/header}/headerStack.ts +30 -22
  184. package/src/components/hover-card/RLAHoverCard.astro +24 -35
  185. package/src/components/hover-card/hover-card.theme.ts +23 -27
  186. package/src/components/icon/RLAIcon.astro +29 -36
  187. package/src/components/icon/RLSIcon.tsx +6 -7
  188. package/src/components/icon/RLVIcon.vue +5 -6
  189. package/src/components/icon/icon.theme.ts +18 -28
  190. package/src/components/icon/resolver.ts +15 -29
  191. package/src/components/image/RLAImage.astro +20 -23
  192. package/src/components/image/image.theme.ts +29 -32
  193. package/src/components/input/RLAInput.astro +6 -21
  194. package/src/components/input/RLSInput.tsx +101 -0
  195. package/src/components/input/RLVInput.vue +11 -20
  196. package/src/components/input/input.theme.ts +41 -44
  197. package/src/components/input/input.ts +1 -1
  198. package/src/components/input-date/RLAInputDate.astro +9 -20
  199. package/src/components/input-date/input-date.theme.ts +9 -12
  200. package/src/components/input-menu/RLAInputMenu.astro +2 -12
  201. package/src/components/input-menu/input-menu.theme.ts +29 -32
  202. package/src/components/input-menu/input-menu.ts +1 -1
  203. package/src/components/input-number/RLAInputNumber.astro +9 -20
  204. package/src/components/input-number/input-number.theme.ts +9 -12
  205. package/src/components/input-pin/RLAInputPin.astro +9 -22
  206. package/src/components/input-pin/input-pin.theme.ts +9 -13
  207. package/src/components/input-rating/RLAInputRating.astro +2 -23
  208. package/src/components/input-rating/input-rating.theme.ts +64 -76
  209. package/src/components/input-rating/input-rating.ts +1 -1
  210. package/src/components/input-tags/RLAInputTags.astro +174 -21
  211. package/src/components/input-tags/input-tags.theme.ts +37 -12
  212. package/src/components/input-tags/input-tags.ts +50 -0
  213. package/src/components/input-time/RLAInputTime.astro +9 -20
  214. package/src/components/input-time/input-time.theme.ts +9 -12
  215. package/src/components/kbd/RLAKbd.astro +17 -32
  216. package/src/components/kbd/kbd.theme.ts +49 -91
  217. package/src/components/kbd/kbd.ts +3 -0
  218. package/src/components/knob/RLAKnob.astro +9 -20
  219. package/src/components/knob/knob.theme.ts +9 -12
  220. package/src/components/label/RLALabel.astro +16 -27
  221. package/src/components/label/label.theme.ts +16 -20
  222. package/src/components/layout-grid/RLALayoutGrid.astro +5 -11
  223. package/src/components/layout-grid/layout-grid.theme.ts +12 -15
  224. package/src/components/link/RLALink.astro +6 -20
  225. package/src/components/link/RLSLink.tsx +8 -16
  226. package/src/components/link/RLVLink.vue +7 -16
  227. package/src/components/link/link.theme.ts +37 -37
  228. package/src/components/link/link.ts +5 -5
  229. package/src/components/link-group/RLALinkGroup.astro +7 -44
  230. package/src/components/link-group/link-group.theme.ts +21 -26
  231. package/src/components/link-group/link-group.ts +5 -16
  232. package/src/components/listbox/RLAListbox.astro +9 -20
  233. package/src/components/listbox/listbox.theme.ts +9 -12
  234. package/src/components/locale-selector/RLALocaleSelector.astro +13 -21
  235. package/src/components/locale-selector/locale-selector.theme.ts +49 -44
  236. package/src/components/locale-selector/locale-selector.ts +4 -0
  237. package/src/components/logo/RLALogo.astro +13 -26
  238. package/src/components/logo/logo.theme.ts +9 -12
  239. package/src/components/main/RLAMain.astro +31 -36
  240. package/src/components/main/main.theme.ts +9 -12
  241. package/src/components/marquee/RLAMarquee.astro +62 -43
  242. package/src/components/marquee/marquee.theme.ts +22 -26
  243. package/src/components/meter/RLAMeter.astro +9 -20
  244. package/src/components/meter/meter.theme.ts +9 -12
  245. package/src/components/modal/RLAModal.astro +70 -72
  246. package/src/components/modal/RLSModal.tsx +156 -0
  247. package/src/components/modal/RLVModal.vue +5 -6
  248. package/src/components/modal/modal.theme.ts +42 -46
  249. package/src/components/modal/modal.ts +1 -0
  250. package/src/components/navigation-menu/RLANavigationMenu.astro +7 -12
  251. package/src/components/navigation-menu/navigation-menu.theme.ts +36 -39
  252. package/src/components/navigation-menu/navigation-menu.ts +19 -18
  253. package/src/components/page/RLAPage.astro +9 -20
  254. package/src/components/page/page.theme.ts +9 -12
  255. package/src/components/page-aside/RLAPageAside.astro +9 -20
  256. package/src/components/page-aside/page-aside.theme.ts +9 -12
  257. package/src/components/page-body/RLAPageBody.astro +9 -20
  258. package/src/components/page-body/page-body.theme.ts +9 -12
  259. package/src/components/page-header/RLAPageHeader.astro +9 -20
  260. package/src/components/page-header/page-header.theme.ts +9 -12
  261. package/src/components/page-section/RLAPageSection.astro +11 -15
  262. package/src/components/page-section/page-section.theme.ts +193 -176
  263. package/src/components/pagination/RLAPagination.astro +91 -97
  264. package/src/components/pagination/pagination.theme.ts +22 -26
  265. package/src/components/password/RLAPassword.astro +9 -20
  266. package/src/components/password/password.theme.ts +9 -12
  267. package/src/components/phone-mockup/RLAPhoneMockup.astro +9 -20
  268. package/src/components/phone-mockup/phone-mockup.theme.ts +9 -12
  269. package/src/components/placeholder/RLAPlaceholder.astro +32 -43
  270. package/src/components/placeholder/placeholder.theme.ts +11 -14
  271. package/src/components/popover/RLAPopover.astro +205 -132
  272. package/src/components/popover/popover.theme.ts +23 -27
  273. package/src/components/post/RLAPost.astro +2 -10
  274. package/src/components/post/post.theme.ts +45 -48
  275. package/src/components/pricing-plan/RLAPricingPlan.astro +9 -20
  276. package/src/components/pricing-plan/pricing-plan.theme.ts +9 -12
  277. package/src/components/pricing-table/RLAPricingTable.astro +9 -20
  278. package/src/components/pricing-table/pricing-table.theme.ts +9 -12
  279. package/src/components/progress/RLAProgress.astro +2 -17
  280. package/src/components/progress/progress.theme.ts +22 -34
  281. package/src/components/progress/progress.ts +1 -1
  282. package/src/components/prose/RLAProse.astro +9 -20
  283. package/src/components/prose/prose.theme.ts +9 -12
  284. package/src/components/qr-code/RLAQrCode.astro +9 -20
  285. package/src/components/qr-code/qr-code.theme.ts +9 -12
  286. package/src/components/quote/quote.theme.ts +9 -12
  287. package/src/components/radio-group/RLARadioGroup.astro +9 -20
  288. package/src/components/radio-group/radio-group.theme.ts +9 -12
  289. package/src/components/rating/RLARating.astro +9 -20
  290. package/src/components/rating/rating.theme.ts +9 -12
  291. package/src/components/scroll-area/RLAScrollArea.astro +2 -10
  292. package/src/components/scroll-area/scroll-area.theme.ts +21 -24
  293. package/src/components/scroll-to-top/RLAScrollToTop.astro +67 -43
  294. package/src/components/scroll-to-top/RLVScrollToTop.vue +6 -10
  295. package/src/components/scroll-to-top/scroll-to-top.theme.ts +32 -46
  296. package/src/components/scroll-to-top/scroll-to-top.ts +1 -1
  297. package/src/{utils → components/scroll-to-top}/scroll.ts +19 -6
  298. package/src/components/search/RLASearch.astro +3 -9
  299. package/src/components/search/search.theme.ts +60 -63
  300. package/src/components/select/RLASelect.astro +514 -113
  301. package/src/components/select/RLSSelect.tsx +126 -0
  302. package/src/components/select/RLVSelect.vue +7 -15
  303. package/src/components/select/select.theme.ts +104 -25
  304. package/src/components/select/select.ts +58 -36
  305. package/src/components/separator/RLASeparator.astro +62 -83
  306. package/src/components/separator/separator.theme.ts +135 -138
  307. package/src/components/separator/separator.ts +4 -0
  308. package/src/components/shortcuts/RLAShortcuts.astro +3 -4
  309. package/src/components/sidebar/RLASidebar.astro +11 -21
  310. package/src/components/sidebar/sidebar.theme.ts +39 -42
  311. package/src/components/sidebar/sidebar.ts +2 -0
  312. package/src/components/skeleton/RLASkeleton.astro +13 -22
  313. package/src/components/skeleton/skeleton.theme.ts +16 -19
  314. package/src/components/slideover/RLASlideover.astro +2 -12
  315. package/src/components/slideover/slideover.theme.ts +51 -55
  316. package/src/components/slider/RLASlider.astro +2 -15
  317. package/src/components/slider/slider.theme.ts +20 -33
  318. package/src/components/slider/slider.ts +1 -1
  319. package/src/components/speed-dial/RLASpeedDial.astro +9 -20
  320. package/src/components/speed-dial/speed-dial.theme.ts +9 -12
  321. package/src/components/spinner/RLASpinner.astro +2 -17
  322. package/src/components/spinner/spinner.theme.ts +29 -30
  323. package/src/components/spinner/spinner.ts +1 -1
  324. package/src/components/splitter/RLASplitter.astro +3 -11
  325. package/src/components/splitter/splitter.theme.ts +18 -21
  326. package/src/components/spoiler/RLASpoiler.astro +9 -20
  327. package/src/components/spoiler/spoiler.theme.ts +9 -12
  328. package/src/components/stepper/RLAStepper.astro +300 -21
  329. package/src/components/stepper/stepper.theme.ts +214 -12
  330. package/src/components/stepper/stepper.ts +23 -6
  331. package/src/components/steps/RLASteps.astro +2 -8
  332. package/src/components/steps/steps.theme.ts +9 -12
  333. package/src/components/sticky-surface/RLAStickySurface.astro +67 -38
  334. package/src/components/sticky-surface/sticky-surface.theme.ts +7 -11
  335. package/src/components/sticky-surface/sticky-surface.ts +1 -0
  336. package/src/components/surround/RLASurround.astro +5 -5
  337. package/src/components/switch/RLASwitch.astro +2 -18
  338. package/src/components/switch/switch.theme.ts +50 -61
  339. package/src/components/switch/switch.ts +1 -1
  340. package/src/components/table/RLATable.astro +566 -50
  341. package/src/components/table/table.theme.ts +112 -31
  342. package/src/components/table/table.ts +207 -6
  343. package/src/components/table-of-contents/RLATableOfContents.astro +8 -13
  344. package/src/components/table-of-contents/table-of-contents.theme.ts +60 -63
  345. package/src/components/tabs/RLATabs.astro +195 -51
  346. package/src/components/tabs/tabs.theme.ts +81 -84
  347. package/src/components/tabs/tabs.ts +18 -1
  348. package/src/components/textarea/RLATextarea.astro +16 -13
  349. package/src/components/textarea/RLSTextarea.tsx +69 -0
  350. package/src/components/textarea/RLVTextarea.vue +8 -16
  351. package/src/components/textarea/textarea.theme.ts +21 -24
  352. package/src/components/textarea/textarea.ts +2 -1
  353. package/src/components/theme-selector/RLAThemeSelector.astro +5 -13
  354. package/src/components/theme-selector/theme-selector.theme.ts +11 -14
  355. package/src/components/timeline/RLATimeline.astro +24 -44
  356. package/src/components/timeline/timeline.theme.ts +302 -307
  357. package/src/components/toast/RLAToast.astro +44 -18
  358. package/src/components/toast/store.ts +97 -0
  359. package/src/components/toast/toast.theme.ts +31 -34
  360. package/src/components/toast/toast.ts +1 -1
  361. package/src/components/toaster/RLAToaster.astro +76 -6
  362. package/src/components/tooltip/RLATooltip.astro +136 -33
  363. package/src/components/tooltip/tooltip.theme.ts +23 -26
  364. package/src/components/tour/RLATour.astro +9 -20
  365. package/src/components/tour/tour.theme.ts +9 -12
  366. package/src/components/tree/RLATree.astro +9 -20
  367. package/src/components/tree/tree.theme.ts +9 -12
  368. package/src/components/user/RLAUser.astro +9 -20
  369. package/src/components/user/user.theme.ts +9 -12
  370. package/src/components/video/RLAVideo.astro +5 -10
  371. package/src/components/video/video.theme.ts +13 -16
  372. package/src/components/watermark/RLAWatermark.astro +9 -20
  373. package/src/components/watermark/watermark.theme.ts +9 -12
  374. package/src/components/window-mockup/RLAWindowMockup.astro +9 -20
  375. package/src/components/window-mockup/window-mockup.theme.ts +9 -12
  376. package/src/icons.ts +68 -0
  377. package/src/index.ts +31 -0
  378. package/src/preset.ts +146 -0
  379. package/src/resolver.ts +20 -0
  380. package/src/shortcuts.ts +172 -0
  381. package/src/types.ts +57 -0
  382. package/LICENSE +0 -21
  383. package/src/components/head/RLAHead.astro +0 -528
  384. package/src/config/color.config.ts +0 -300
  385. package/src/config/site.config.ts +0 -28
  386. package/src/config/ui.config.ts +0 -89
  387. package/src/env.d.ts +0 -23
  388. package/src/icons/defaults.ts +0 -44
  389. package/src/presets/index.ts +0 -577
  390. package/src/stores/toast.ts +0 -24
  391. package/src/themes.ts +0 -26
  392. package/src/types/component.ts +0 -28
  393. package/src/ui.ts +0 -159
  394. package/src/utils/defineTheme.ts +0 -5
  395. package/src/utils/merge.ts +0 -62
  396. package/src/utils/resolveClasses.ts +0 -39
  397. package/src/utils/resolveTheme.ts +0 -13
  398. package/src/utils/shortcuts.ts +0 -322
  399. package/src/utils/toast.ts +0 -36
  400. package/src/utils/useUi.ts +0 -33
@@ -1,84 +1,72 @@
1
- import { colorConfig } from "../../config/color.config"
2
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
3
2
 
4
- export const createInputRatingTheme = (colors: readonly string[] = colorConfig.colors) => {
5
- const colorVariants: Record<string, { root?: string; indicator: string; item: string }> = {
6
- neutral: {
7
- indicator: "text-highlighted",
8
- item: "focus-visible:outline-inverted"
9
- }
10
- }
11
- for (const c of colors) {
12
- colorVariants[c] = {
13
- root: "rl-color-" + c,
14
- indicator: "text-[var(--rl-bg)]",
15
- item: "focus-visible:outline-[var(--rl-ring)]"
16
- }
17
- }
18
-
19
- return defineTheme({
20
- slots: ["root", "item", "indicator", "icon", "emptyIcon"],
21
- base: {
22
- root: "inline-flex select-none",
23
- item: [
24
- "relative inline-block cursor-pointer select-none rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2",
25
- "transition-all duration-150"
26
- ],
27
- indicator:
28
- "absolute inset-y-0 left-0 overflow-hidden outline-none pointer-events-none flex items-center justify-start",
29
- icon: "block w-[var(--item-size)] h-[var(--item-size)] max-w-none shrink-0",
30
- emptyIcon:
31
- "absolute inset-0 overflow-hidden pointer-events-none flex items-center justify-start text-muted"
32
- },
33
- variants: {
34
- orientation: {
35
- horizontal: {
36
- root: "flex-row items-center gap-0.5"
37
- },
38
- vertical: {
39
- root: "flex-col items-center gap-0.5"
40
- }
3
+ export const inputRatingTheme = defineTheme("input-rating", {
4
+ slots: ["root", "item", "indicator", "icon", "emptyIcon"],
5
+ base: {
6
+ root: "inline-flex select-none",
7
+ item: [
8
+ "relative inline-block cursor-pointer select-none rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--rl-ring)]",
9
+ "transition-all duration-150"
10
+ ],
11
+ indicator:
12
+ "absolute inset-y-0 left-0 overflow-hidden outline-none pointer-events-none flex items-center justify-start text-[var(--rl-bg)]",
13
+ icon: "block w-[var(--item-size)] h-[var(--item-size)] max-w-none shrink-0",
14
+ emptyIcon:
15
+ "absolute inset-0 overflow-hidden pointer-events-none flex items-center justify-start text-muted"
16
+ },
17
+ variants: {
18
+ orientation: {
19
+ horizontal: {
20
+ root: "flex-row items-center gap-0.5"
41
21
  },
42
- size: {
43
- xs: { item: "size-3" },
44
- sm: { item: "size-4" },
45
- md: { item: "size-5" },
46
- lg: { item: "size-6" },
47
- xl: { item: "size-7" }
22
+ vertical: {
23
+ root: "flex-col items-center gap-0.5"
24
+ }
25
+ },
26
+ size: {
27
+ xs: { item: "size-3" },
28
+ sm: { item: "size-4" },
29
+ md: { item: "size-5" },
30
+ lg: { item: "size-6" },
31
+ xl: { item: "size-7" }
32
+ },
33
+ color: "auto",
34
+ readonly: {
35
+ true: {
36
+ root: "cursor-default",
37
+ item: "cursor-default pointer-events-none"
48
38
  },
49
- color: colorVariants,
50
- readonly: {
51
- true: {
52
- root: "cursor-default",
53
- item: "cursor-default pointer-events-none"
54
- },
55
- false: {}
39
+ false: {}
40
+ },
41
+ disabled: {
42
+ true: {
43
+ root: "opacity-75 cursor-not-allowed",
44
+ item: "cursor-not-allowed pointer-events-none"
56
45
  },
57
- disabled: {
58
- true: {
59
- root: "opacity-75 cursor-not-allowed",
60
- item: "cursor-not-allowed pointer-events-none"
61
- },
62
- false: {}
46
+ false: {}
47
+ }
48
+ },
49
+ defaultVariants: {
50
+ color: "primary",
51
+ size: "md",
52
+ orientation: "horizontal",
53
+ readonly: false,
54
+ disabled: false
55
+ },
56
+ compoundVariants: [
57
+ {
58
+ color: "neutral",
59
+ classNames: {
60
+ indicator: "text-highlighted",
61
+ item: "focus-visible:outline-inverted"
63
62
  }
64
63
  },
65
- defaultVariants: {
66
- color: "primary",
67
- size: "md",
68
- orientation: "horizontal",
64
+ {
69
65
  readonly: false,
70
- disabled: false
71
- },
72
- compoundVariants: [
73
- {
74
- readonly: false,
75
- disabled: false,
76
- classNames: {
77
- item: "hover:scale-110"
78
- }
66
+ disabled: false,
67
+ classNames: {
68
+ item: "hover:scale-110"
79
69
  }
80
- ]
81
- })
82
- }
83
-
84
- export default createInputRatingTheme()
70
+ }
71
+ ]
72
+ })
@@ -1,4 +1,4 @@
1
- import type { ThemeColor } from "../../types/component"
1
+ import type { ThemeColor } from "../../types"
2
2
 
3
3
  export interface InputRatingProps {
4
4
  /**
@@ -1,21 +1,174 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
- import type { InputTagsProps } from "./input-tags"
6
- import inputTagsTheme from "./input-tags.theme"
7
-
8
-
9
- const inputTags = scv(inputTagsTheme)
10
-
11
- const {
12
- ui: uiProp,
13
- class: className,
14
- ...rest
15
- } = Astro.props as InputTagsProps
16
-
17
- const classes = resolveClasses(inputTags, {}, useUi("inputTags", uiProp), className);
18
- ---
19
- <div class={classes.root} data-slot="root" {...rest}>
20
- <slot />
21
- </div>
1
+ ---
2
+ import type { InputTagsProps, TagItem } from "./input-tags"
3
+ import { inputTagsTheme } from "./input-tags.theme"
4
+
5
+
6
+
7
+ const {
8
+ items,
9
+ displayLimit = 4,
10
+ estimatedTagWidth = 80,
11
+ showInput = false,
12
+ name,
13
+ placeholder = "Add tag…",
14
+ ...rest
15
+ } = Astro.props as InputTagsProps
16
+
17
+ const classes = inputTagsTheme(Astro.props)
18
+
19
+ // ─── Responsive CSS Item Counter ────────────────────────────────────────────
20
+ //
21
+ // Each tag is a flat DOM sibling. Container queries hide tags from the right
22
+ // as the container shrinks and set --hidden-items. CSS counters combine it
23
+ // with the server-side --base-hidden to render "+N more" — no resize observer.
24
+ //
25
+ // Unlike AvatarGroup (fixed-size items), tags have variable widths. We use
26
+ // `estimatedTagWidth` as the per-tag width approximation for breakpoints.
27
+ // Users can tune this prop for label-length mismatches.
28
+ // ─────────────────────────────────────────────────────────────────────────────
29
+
30
+ const uid = Math.random().toString(36).substring(2, 9)
31
+ const cName = `rla-it-${uid}`
32
+
33
+ // Normalize items to TagItem objects
34
+ const normalizedItems: TagItem[] = (items ?? []).map(item =>
35
+ typeof item === "string" ? { label: item, value: item } : item
36
+ )
37
+
38
+ const renderedItems = normalizedItems.slice(0, displayLimit)
39
+ const baseHiddenCount = Math.max(0, normalizedItems.length - displayLimit)
40
+ const needsOverflow = normalizedItems.length >= displayLimit
41
+
42
+ // Gap between tags in px (gap-1.5 = 6px)
43
+ const tagGapPx = 6
44
+ // Width of the "+N more" chip
45
+ const morePx = 56
46
+
47
+ // Generate per-instance container-query CSS
48
+ // Same cascade-based approach as AvatarGroup:
49
+ // each breakpoint hides ONE new nth-child, smaller containers match more rules.
50
+ let instanceCss = ""
51
+ if (needsOverflow && renderedItems.length > 1) {
52
+ const maxBreaks = renderedItems.length - 1 // keep at least the first tag
53
+ for (let i = 0; i < maxBreaks; i++) {
54
+ const hiddenItems = i + 1
55
+ const visibleCount = renderedItems.length - hiddenItems
56
+ // Min container width for visibleCount tags + more chip + gaps
57
+ const maxWidth = visibleCount * estimatedTagWidth + (visibleCount) * tagGapPx + morePx + tagGapPx
58
+ const hideNthChild = renderedItems.length - i // counting from the end
59
+
60
+ instanceCss += `\n@container ${cName} (max-width: ${maxWidth}px) {`
61
+ instanceCss += `\n [data-it="${uid}"] { --hidden-items: ${hiddenItems}; }`
62
+ instanceCss += `\n [data-it="${uid}"] > .rla-it-tag.hidable:nth-child(${hideNthChild}) { display: none; }`
63
+ if (baseHiddenCount === 0) {
64
+ instanceCss += `\n [data-it="${uid}"] > .rla-it-more-hidden { display: inline-flex; }`
65
+ }
66
+ instanceCss += `\n}`
67
+ }
68
+ }
69
+ ---
70
+
71
+ {normalizedItems.length > 0 ? (
72
+ <div
73
+ class="rla-it-host"
74
+ style={`container-type: inline-size; container-name: ${cName};`}
75
+ {...rest}
76
+ >
77
+ <div
78
+ class:list={[classes.root, "rla-it-list"]}
79
+ data-slot="root"
80
+ data-it={uid}
81
+ style={`--base-hidden: ${baseHiddenCount}; --hidden-items: 0;`}
82
+ >
83
+ {renderedItems.map((item, idx) => (
84
+ <span
85
+ class:list={[
86
+ classes.tag,
87
+ "rla-it-tag",
88
+ needsOverflow && idx > 0 && "hidable"
89
+ ]}
90
+ data-slot="tag"
91
+ >
92
+ <span class={classes.tagLabel}>{item.label}</span>
93
+ {name && <input type="hidden" name={name} value={item.value ?? item.label} />}
94
+ </span>
95
+ ))}
96
+
97
+ {needsOverflow && (
98
+ <span
99
+ class:list={[
100
+ classes.more,
101
+ "rla-it-more",
102
+ baseHiddenCount === 0 && "rla-it-more-hidden"
103
+ ]}
104
+ aria-hidden="true"
105
+ data-slot="more"
106
+ >
107
+ +<span class="rla-it-count" /> more
108
+ </span>
109
+ )}
110
+
111
+ {showInput && (
112
+ <input
113
+ type="text"
114
+ name={name ? `${name}__input` : undefined}
115
+ placeholder={placeholder}
116
+ class:list={[classes.input]}
117
+ data-slot="input"
118
+ autocomplete="off"
119
+ />
120
+ )}
121
+ </div>
122
+ </div>
123
+ ) : (
124
+ <div class={classes.root} data-slot="root" {...rest}>
125
+ <slot />
126
+ {showInput && (
127
+ <input
128
+ type="text"
129
+ name={name ? `${name}__input` : undefined}
130
+ placeholder={placeholder}
131
+ class:list={[classes.input]}
132
+ data-slot="input"
133
+ autocomplete="off"
134
+ />
135
+ )}
136
+ </div>
137
+ )}
138
+
139
+ <!-- Per-instance CSS scoped via unique data-it attribute -->
140
+ <style is:inline set:html={instanceCss} />
141
+
142
+ <style>
143
+ .rla-it-host {
144
+ display: block;
145
+ width: 100%;
146
+ }
147
+
148
+ .rla-it-tag {
149
+ display: inline-flex;
150
+ flex-shrink: 0;
151
+ }
152
+
153
+ /* "+more" chip — flex, visible by default when base-hidden > 0 */
154
+ .rla-it-more {
155
+ display: inline-flex;
156
+ flex-shrink: 0;
157
+ align-items: center;
158
+ gap: 0.125rem;
159
+ }
160
+
161
+ /* Hidden by default when base-hidden is 0 (revealed by container queries) */
162
+ .rla-it-more-hidden {
163
+ display: none;
164
+ }
165
+
166
+ /*
167
+ * CSS Counter — sums --base-hidden (render-time) + --hidden-items (CSS queries).
168
+ * Zero JS. The browser does the arithmetic via counter-reset: calc().
169
+ */
170
+ .rla-it-count::after {
171
+ counter-reset: rla-it-cnt calc(var(--base-hidden, 0) + var(--hidden-items, 0));
172
+ content: counter(rla-it-cnt);
173
+ }
174
+ </style>
@@ -1,13 +1,38 @@
1
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
2
2
 
3
- export const createInputTagsTheme = () =>
4
- defineTheme({
5
- slots: ["root"],
6
- base: {
7
- root: ""
8
- },
9
- variants: {},
10
- defaultVariants: {}
11
- })
12
-
13
- export default createInputTagsTheme()
3
+ export const inputTagsTheme = defineTheme("input-tags", {
4
+ slots: ["root", "tag", "tagLabel", "more", "input"],
5
+ base: {
6
+ root: "flex flex-wrap items-center gap-1.5",
7
+ tag: [
8
+ "inline-flex items-center gap-1 px-2 py-0.5",
9
+ "rounded-full text-xs font-medium",
10
+ "bg-[var(--rl-bg)]/10 text-[var(--rl-text)]",
11
+ "ring-1 ring-[var(--rl-border)]/30",
12
+ "whitespace-nowrap select-none"
13
+ ],
14
+ tagLabel: "leading-none",
15
+ more: [
16
+ "inline-flex items-center justify-center px-2 py-0.5",
17
+ "rounded-full text-xs font-semibold",
18
+ "bg-muted text-muted",
19
+ "ring-1 ring-border/40",
20
+ "whitespace-nowrap select-none cursor-default"
21
+ ],
22
+ input: ["flex-1 min-w-[6rem] bg-transparent text-sm outline-none", "placeholder:text-muted"]
23
+ },
24
+ variants: {
25
+ color: "auto"
26
+ },
27
+ compoundVariants: [
28
+ {
29
+ color: "neutral",
30
+ classNames: {
31
+ tag: "bg-elevated text-highlighted ring-border/60"
32
+ }
33
+ }
34
+ ],
35
+ defaultVariants: {
36
+ color: "neutral"
37
+ }
38
+ })
@@ -1,4 +1,54 @@
1
+ export interface TagItem {
2
+ /**
3
+ * Visible label.
4
+ */
5
+ label: string
6
+ /**
7
+ * Optional value (used as key; falls back to label).
8
+ */
9
+ value?: string
10
+ /**
11
+ * Color variant for the tag chip.
12
+ */
13
+ color?: string
14
+ }
15
+
1
16
  export interface InputTagsProps {
17
+ /**
18
+ * Array of tag data to render automatically. Enables the CSS responsive item counter. When
19
+ * omitted, falls back to `<slot />`.
20
+ */
21
+ items?: Array<string | TagItem>
22
+ /**
23
+ * Maximum number of tags to show at full container width. Additional tags are pre-hidden
24
+ * server-side and counted. Container queries will responsively hide more as width shrinks.
25
+ *
26
+ * @default 4
27
+ */
28
+ displayLimit?: number
29
+ /**
30
+ * Estimated width (px) of each tag chip — used to compute container-query breakpoints. Increase
31
+ * for longer labels, decrease for shorter ones.
32
+ *
33
+ * @default 80
34
+ */
35
+ estimatedTagWidth?: number
36
+ /**
37
+ * When true, renders a text input after the tags for entering new values. Tag addition/removal is
38
+ * handled natively via form submission; for client-side interactivity use the Vue variant or a
39
+ * custom slot.
40
+ *
41
+ * @default false
42
+ */
43
+ showInput?: boolean
44
+ /**
45
+ * `name` attribute forwarded to the hidden inputs and text input.
46
+ */
47
+ name?: string
48
+ /**
49
+ * Placeholder for the optional text input.
50
+ */
51
+ placeholder?: string
2
52
  /**
3
53
  * Slot-specific CSS class overrides.
4
54
  */
@@ -1,21 +1,10 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
- import type { InputTimeProps } from "./input-time"
6
- import inputTimeTheme from "./input-time.theme"
7
-
8
-
9
- const inputTime = scv(inputTimeTheme)
10
-
11
- const {
12
- ui: uiProp,
13
- class: className,
14
- ...rest
15
- } = Astro.props as InputTimeProps
16
-
17
- const classes = resolveClasses(inputTime, {}, useUi("inputTime", uiProp), className);
18
- ---
19
- <div class={classes.root} data-slot="root" {...rest}>
20
- <slot />
1
+ ---
2
+ import { inputTimeTheme } from "./input-time.theme"
3
+
4
+
5
+
6
+ const classes = inputTimeTheme(Astro.props)
7
+ ---
8
+ <div class={classes.root} data-slot="root" {...Astro.props}>
9
+ <slot />
21
10
  </div>
@@ -1,13 +1,10 @@
1
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
2
2
 
3
- export const createInputTimeTheme = () =>
4
- defineTheme({
5
- slots: ["root"],
6
- base: {
7
- root: ""
8
- },
9
- variants: {},
10
- defaultVariants: {}
11
- })
12
-
13
- export default createInputTimeTheme()
3
+ export const inputTimeTheme = defineTheme("input-time", {
4
+ slots: ["root"],
5
+ base: {
6
+ root: ""
7
+ },
8
+ variants: {},
9
+ defaultVariants: {}
10
+ })
@@ -1,32 +1,17 @@
1
- ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
- import type { KbdProps } from "./kbd"
6
- import { resolveTheme } from "../../utils/resolveTheme"
7
- import kbdThemeDefault, { createKbdTheme } from "./kbd.theme"
8
- const kbdTheme = resolveTheme(kbdThemeDefault, createKbdTheme)
9
-
10
-
11
- const kbd = scv(kbdTheme)
12
-
13
- const {
14
- size = "md",
15
- color = "neutral",
16
- variant = "outline",
17
- theme,
18
- ui: uiProp,
19
- class: className,
20
- ...rest
21
- } = Astro.props as KbdProps & { color?: string; variant?: string; theme?: string }
22
-
23
- const classes = resolveClasses(kbd, {
24
- size,
25
- color: color as "neutral",
26
- variant: variant as "solid",
27
- theme: theme as "dark"
28
- }, useUi("kbd", uiProp), className)
29
- ---
30
- <kbd class={classes.root} data-slot="root" {...rest}>
31
- <slot />
32
- </kbd>
1
+ ---
2
+ import type { KbdProps } from "./kbd"
3
+ import { kbdTheme } from "./kbd.theme"
4
+
5
+
6
+
7
+ const {
8
+ ...rest
9
+ } = Astro.props as KbdProps
10
+
11
+
12
+
13
+ const classes = kbdTheme(Astro.props)
14
+ ---
15
+ <kbd class={classes.root} data-slot="root" {...rest}>
16
+ <slot />
17
+ </kbd>