@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,12 +1,8 @@
1
1
  ---
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
2
  import type { ScrollToTopProps } from "./scroll-to-top"
6
- import scrollToTopTheme from "./scroll-to-top.theme"
3
+ import { scrollToTopTheme } from "./scroll-to-top.theme"
7
4
 
8
5
 
9
- const scrollToTop = scv(scrollToTopTheme)
10
6
 
11
7
  const {
12
8
  color = "primary",
@@ -15,16 +11,14 @@ const {
15
11
  threshold = 200,
16
12
  showProgress = false,
17
13
  theme,
18
- ui: uiProp,
19
- class: className,
20
14
  ...rest
21
15
  } = Astro.props as ScrollToTopProps
22
16
 
23
- const classes = resolveClasses(scrollToTop, { color, theme }, useUi("scrollToTop", uiProp), className)
17
+ const classes = scrollToTopTheme(Astro.props)
24
18
 
25
19
  ---
26
20
 
27
- <rla-scroll-to-top data-threshold={threshold} data-duration={duration} data-color={color} data-progress-width={progressWidth} {...rest}>
21
+ <rla-scroll-to-top data-threshold={threshold} data-duration={duration} data-color={color} data-progress-width={progressWidth} data-theme={theme} {...rest}>
28
22
  <div
29
23
  class:list={["rla-scroll-to-top-inner", "fixed bottom-6 right-6 z-50", classes.root]}
30
24
  >
@@ -62,11 +56,10 @@ const classes = resolveClasses(scrollToTop, { color, theme }, useUi("scrollToTop
62
56
  </rla-scroll-to-top>
63
57
 
64
58
  <script>
65
- import { trackScroll, scrollToTop } from "../../utils/scroll"
59
+ import { trackScroll, scrollToTop } from "./scroll"
66
60
 
67
61
  class RLAScrollToTop extends HTMLElement {
68
62
  private cleanupScroll: (() => void) | null = null;
69
- private styleEl: HTMLStyleElement | null = null;
70
63
 
71
64
  connectedCallback() {
72
65
  this.style.display = 'contents';
@@ -80,50 +73,64 @@ const classes = resolveClasses(scrollToTop, { color, theme }, useUi("scrollToTop
80
73
  const color = this.dataset.color || 'primary';
81
74
  const progressWidth = Number(this.dataset.progressWidth) || 6;
82
75
  const gaugeBorderWidth = progressWidth * 0.5;
83
- const nonce = (document.querySelector('meta[name="csp-nonce"]')?.getAttribute('content') ?? '');
84
-
85
- const getStyleEl = () => {
86
- if (!this.styleEl) {
87
- this.styleEl = document.createElement('style');
88
- if (nonce) this.styleEl.setAttribute('nonce', nonce);
89
- document.head.appendChild(this.styleEl);
90
- }
91
- return this.styleEl;
92
- };
93
76
 
94
77
  innerElement.dataset.rlaInstance = String(id);
95
78
 
96
79
  button.addEventListener('click', scrollToTop);
97
80
 
98
- const unsubscribe = trackScroll({ threshold }, (state) => {
81
+ /**
82
+ * CSS scroll-state(scrollable: top) — Chrome 133+
83
+ *
84
+ * When supported, the body (or nearest scroll-state container) exposes
85
+ * its scrollability to CSS. The .rla-scroll-to-top-inner uses a
86
+ * \`@container\` scroll-state rule to hide itself when the page is already
87
+ * at the top. This eliminates the scroll event listener for show/hide.
88
+ *
89
+ * For browsers that don't support scroll-state() we fall back to the
90
+ * JS trackScroll() approach below.
91
+ */
92
+ // JS scroll tracking: show/hide via class toggling
93
+ const unsubscribeVisibility = trackScroll({ threshold }, (state) => {
99
94
  if (state.isVisible) {
100
- innerElement.classList.add('visible');
95
+ innerElement.classList.add('js-visible');
101
96
  } else {
102
- innerElement.classList.remove('visible');
97
+ innerElement.classList.remove('js-visible');
103
98
  }
104
-
105
- getStyleEl().textContent = `
106
- .rla-scroll-to-top-inner[data-rla-instance="${id}"] .gauge-track {
107
- border-width: ${gaugeBorderWidth}px;
108
- border-color: var(--color-${color}-900);
109
- background-color: #000;
110
- }
111
- .rla-scroll-to-top-inner[data-rla-instance="${id}"] .gauge-progress {
112
- --gauge-progress: ${state.scrollPercentage};
113
- --gauge-stroke-width: ${gaugeBorderWidth}px;
114
- --gauge-color: var(--color-${color}-500);
115
- }
116
- `;
117
99
  });
118
-
119
100
  this.cleanupScroll = () => {
120
101
  button.removeEventListener('click', scrollToTop);
121
- unsubscribe();
122
- if (this.styleEl) {
123
- this.styleEl.remove();
124
- this.styleEl = null;
102
+ unsubscribeVisibility();
103
+ const self = this as any;
104
+ if (self.styleEl) {
105
+ self.styleEl.remove();
106
+ self.styleEl = null;
125
107
  }
126
108
  };
109
+
110
+ // Progress ring scroll tracking using CSS variable on the element
111
+ const gaugeProgressEl = innerElement.querySelector('[data-gauge-progress]') as HTMLElement | null;
112
+ if (gaugeProgressEl) {
113
+ gaugeProgressEl.style.setProperty('--gauge-stroke-width', `${gaugeBorderWidth}px`);
114
+ gaugeProgressEl.style.setProperty('--gauge-color', `var(--rl-${color}-500)`);
115
+ }
116
+ const gaugeTrackEl = innerElement.querySelector('.gauge-track') as HTMLElement | null;
117
+ if (gaugeTrackEl) {
118
+ gaugeTrackEl.style.setProperty('border-width', `${gaugeBorderWidth}px`);
119
+ gaugeTrackEl.style.setProperty('border-color', `var(--rl-${color}-900)`);
120
+ gaugeTrackEl.style.setProperty('background-color', '#000');
121
+ }
122
+
123
+ const unsubscribeProgress = trackScroll({ threshold }, (state) => {
124
+ if (gaugeProgressEl) {
125
+ gaugeProgressEl.style.setProperty('--gauge-progress', String(state.scrollPercentage));
126
+ }
127
+ });
128
+
129
+ const previousCleanup = this.cleanupScroll;
130
+ this.cleanupScroll = () => {
131
+ if (previousCleanup) previousCleanup();
132
+ unsubscribeProgress();
133
+ };
127
134
  }
128
135
 
129
136
  disconnectedCallback() {
@@ -142,17 +149,35 @@ const classes = resolveClasses(scrollToTop, { color, theme }, useUi("scrollToTop
142
149
  </script>
143
150
 
144
151
  <style>
152
+ /*
153
+ * CSS scroll-state(scrollable: top) — Chrome 133+
154
+ *
155
+ * This declares the <body> as a scroll-state container so descendant
156
+ * elements can query whether the body is scrollable at the top.
157
+ * When the user is already at the top of the page, the button hides itself.
158
+ */
159
+ :global(body) {
160
+ container-type: scroll-state;
161
+ container-name: rla-page-scroll;
162
+ }
163
+
145
164
  .rla-scroll-to-top-inner {
165
+ /* Default: hidden (for JS fallback path) */
146
166
  opacity: 0;
147
167
  pointer-events: none;
148
168
  transition: opacity 0.3s ease-in-out;
149
169
  }
150
170
 
151
- .rla-scroll-to-top-inner.visible {
171
+ /* JS fallback visibility class */
172
+ .rla-scroll-to-top-inner.js-visible {
152
173
  opacity: 1;
153
174
  pointer-events: auto;
154
175
  }
155
176
 
177
+ /*
178
+ * Standard JS-backed scroll state visibility (CSP-compliant)
179
+ */
180
+
156
181
  .progress-circle-base {
157
182
  position: relative;
158
183
  transform: translateZ(0);
@@ -171,8 +196,8 @@ const classes = resolveClasses(scrollToTop, { color, theme }, useUi("scrollToTop
171
196
  border-radius: 50%;
172
197
  background: conic-gradient(
173
198
  from 0deg,
174
- var(--gauge-color, var(--color-primary-500)) 0deg,
175
- var(--gauge-color, var(--color-primary-500)) calc(var(--gauge-progress, 0) * 3.6deg),
199
+ var(--gauge-color, var(--rl-primary-500)) 0deg,
200
+ var(--gauge-color, var(--rl-primary-500)) calc(var(--gauge-progress, 0) * 3.6deg),
176
201
  transparent calc(var(--gauge-progress, 0) * 3.6deg)
177
202
  );
178
203
  -webkit-mask: radial-gradient(
@@ -1,26 +1,22 @@
1
1
  <script setup lang="ts">
2
- import { scv } from "css-variants"
3
- import { useUi } from "../../utils/useUi"
4
- import { resolveClasses } from "../../utils/resolveClasses"
5
2
  import type { ScrollToTopProps } from "./scroll-to-top"
6
- import scrollToTopTheme from "./scroll-to-top.theme"
7
- import { trackScroll, scrollToTop as scrollToTopFn } from "../../utils/scroll"
3
+ import { scrollToTopTheme } from "./scroll-to-top.theme"
4
+ import { trackScroll, scrollToTop as scrollToTopFn } from "./scroll"
8
5
  import { ref, computed, onMounted, onUnmounted, watch, useAttrs } from "vue"
9
6
 
10
7
  const attrs = useAttrs()
11
- const scrollToTop = scv(scrollToTopTheme)
12
8
 
13
9
  const {
14
10
  color = "primary",
15
11
  progressWidth = 6,
16
12
  duration = 0.1,
17
13
  threshold = 200,
18
- showProgress = false,
19
- ui: uiProp,
20
- class: className
14
+ showProgress = false
21
15
  } = defineProps<ScrollToTopProps>()
22
16
 
23
- const classes = resolveClasses(scrollToTop, { color }, useUi("scrollToTop", uiProp), className)
17
+ const classes = scrollToTopTheme({
18
+ color
19
+ })
24
20
 
25
21
  const isVisible = ref(false)
26
22
  const scrollPercentage = ref(0)
@@ -34,10 +30,10 @@ function updateCssVars() {
34
30
  if (!styleEl) return
35
31
  styleEl.textContent = `
36
32
  [data-rla-instance="${instanceId}"] {
37
- --gauge-track-border-color: var(--color-${color}-900);
38
- --gauge-track-bg: var(--color-${color}-950);
33
+ --gauge-track-border-color: var(--rl-${color}-900);
34
+ --gauge-track-bg: var(--rl-${color}-950);
39
35
  --gauge-stroke-width: ${gaugeBorderWidth}px;
40
- --gauge-color: var(--color-${color}-500);
36
+ --gauge-color: var(--rl-${color}-500);
41
37
  --gauge-progress: ${scrollPercentage.value};
42
38
  }
43
39
  `
@@ -120,8 +116,8 @@ onUnmounted(() => {
120
116
  border-radius: 50%;
121
117
  border-style: solid;
122
118
  border-width: var(--gauge-stroke-width, 3px);
123
- border-color: var(--gauge-track-border-color, var(--color-primary-900));
124
- background-color: var(--gauge-track-bg, var(--color-primary-950));
119
+ border-color: var(--gauge-track-border-color, var(--rl-primary-900));
120
+ background-color: var(--gauge-track-bg, var(--rl-primary-950));
125
121
  }
126
122
 
127
123
  .gauge-progress {
@@ -130,8 +126,8 @@ onUnmounted(() => {
130
126
  border-radius: 50%;
131
127
  background: conic-gradient(
132
128
  from 0deg,
133
- var(--gauge-color, var(--color-primary-500)) 0deg,
134
- var(--gauge-color, var(--color-primary-500)) calc(var(--gauge-progress, 0) * 3.6deg),
129
+ var(--gauge-color, var(--rl-primary-500)) 0deg,
130
+ var(--gauge-color, var(--rl-primary-500)) calc(var(--gauge-progress, 0) * 3.6deg),
135
131
  transparent calc(var(--gauge-progress, 0) * 3.6deg)
136
132
  );
137
133
  -webkit-mask: radial-gradient(
@@ -1,51 +1,33 @@
1
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
2
2
 
3
- export const createScrollToTopTheme = (colors: readonly string[] = ["primary", "secondary"]) =>
4
- defineTheme({
5
- slots: ["root", "button", "progressBase", "svg", "iconContainer", "icon"],
6
- base: {
7
- root: "fixed bottom-6 right-6 z-50",
8
- button: "size-14 lg:size-12 p-0 rounded-full bg-black/85",
9
- progressBase: "progress-circle-base size-full",
10
- svg: "size-full",
11
- iconContainer: "absolute inset-0 flex items-center justify-center text-center",
12
- icon: "size-6 text-white"
13
- },
14
- variants: {
15
- color: Object.fromEntries(
16
- colors.map((color) => [
17
- color,
18
- {
19
- root: "rl-color-" + color,
20
- progressBase: "",
21
- svg: "",
22
- iconContainer: "",
23
- icon: ""
24
- }
25
- ])
26
- ),
27
- theme: {
28
- light: { root: "rl-light" },
29
- dark: { root: "rl-dark" }
3
+ export const scrollToTopTheme = defineTheme("scroll-to-top", {
4
+ slots: ["root", "button", "progressBase", "svg", "iconContainer", "icon"],
5
+ base: {
6
+ root: "fixed bottom-6 right-6 z-50",
7
+ button: "size-14 lg:size-12 p-0 rounded-full bg-black/85",
8
+ progressBase: "progress-circle-base size-full",
9
+ svg: "size-full",
10
+ iconContainer: "absolute inset-0 flex items-center justify-center text-center",
11
+ icon: "size-6 text-white"
12
+ },
13
+ variants: {
14
+ color: "auto"
15
+ },
16
+ compoundVariants: [
17
+ {
18
+ color: "primary",
19
+ classNames: {
20
+ icon: "text-neutral-50"
30
21
  }
31
22
  },
32
- compoundVariants: [
33
- {
34
- color: "primary",
35
- classNames: {
36
- icon: "text-primary-foreground"
37
- }
38
- },
39
- {
40
- color: "secondary",
41
- classNames: {
42
- icon: "text-secondary-foreground"
43
- }
23
+ {
24
+ color: "secondary",
25
+ classNames: {
26
+ icon: "text-neutral-50"
44
27
  }
45
- ],
46
- defaultVariants: {
47
- color: "primary"
48
28
  }
49
- })
50
-
51
- export default createScrollToTopTheme()
29
+ ],
30
+ defaultVariants: {
31
+ color: "primary"
32
+ }
33
+ })
@@ -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 ScrollToTopProps {
4
4
  /**
@@ -14,13 +14,23 @@ export function trackScroll(
14
14
 
15
15
  const { threshold = 200 } = options
16
16
 
17
+ let ticking = false
18
+ let rafId: number | null = null
19
+
17
20
  function update() {
18
- const scrollTop = window.scrollY || document.documentElement.scrollTop
19
- const scrollHeight = document.documentElement.scrollHeight - window.innerHeight
20
- onUpdate({
21
- isVisible: scrollTop > threshold,
22
- scrollPercentage: scrollHeight > 0 ? (scrollTop / scrollHeight) * 100 : 0
23
- })
21
+ if (!ticking) {
22
+ rafId = requestAnimationFrame(() => {
23
+ const scrollTop = window.scrollY || document.documentElement.scrollTop
24
+ const scrollHeight = document.documentElement.scrollHeight - window.innerHeight
25
+ onUpdate({
26
+ isVisible: scrollTop > threshold,
27
+ scrollPercentage: scrollHeight > 0 ? (scrollTop / scrollHeight) * 100 : 0
28
+ })
29
+ ticking = false
30
+ rafId = null
31
+ })
32
+ ticking = true
33
+ }
24
34
  }
25
35
 
26
36
  window.addEventListener("scroll", update, { passive: true })
@@ -28,6 +38,9 @@ export function trackScroll(
28
38
 
29
39
  return () => {
30
40
  window.removeEventListener("scroll", update)
41
+ if (rafId !== null) {
42
+ cancelAnimationFrame(rafId)
43
+ }
31
44
  }
32
45
  }
33
46
 
@@ -1,27 +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 { SearchProps } from "./search"
6
- import searchTheme from "./search.theme"
3
+ import { searchTheme } from "./search.theme"
7
4
  import RLAIcon from "../icon/RLAIcon.astro"
8
5
  import RLAInput from "../input/RLAInput.astro"
9
6
  import RLAKbd from "../kbd/RLAKbd.astro"
10
7
  import RLAButton from "../button/RLAButton.astro"
11
8
 
12
9
 
13
- const search = scv(searchTheme)
14
10
 
15
11
  const {
16
12
  endpoint = "/api/search",
17
13
  placeholder = "Search...",
18
14
  messages = {},
19
- ui: uiProp,
20
- class: className,
21
15
  ...rest
22
16
  } = Astro.props as SearchProps
23
17
 
24
- const classes = resolveClasses(search, {}, useUi("search", uiProp), className)
18
+ const classes = searchTheme(Astro.props)
25
19
 
26
20
  // Default messages
27
21
  const searchPlaceholder = messages.searchPlaceholder || placeholder
@@ -61,7 +55,7 @@ const emptyId = `search-empty-${uniqueId}`
61
55
  square
62
56
  aria-label="Open Search"
63
57
  >
64
- <RLAIcon name="search" class="w-5 h-5" />
58
+ <RLAIcon name="i-rl-search" class="w-5 h-5" />
65
59
  </RLAButton>
66
60
  )}
67
61
 
@@ -83,11 +77,11 @@ const emptyId = `search-empty-${uniqueId}`
83
77
  trailing: "absolute right-0 flex items-center gap-2"
84
78
  }}
85
79
  >
86
- <RLAIcon name="search" class={classes.headerIcon} slot="leading" />
80
+ <RLAIcon name="i-rl-search" class={classes.headerIcon} slot="leading" />
87
81
  <div slot="trailing" class="flex items-center gap-2">
88
82
  <RLAKbd size="sm">Esc</RLAKbd>
89
83
  <button id={`${modalId}-close`} class={classes.close} aria-label="Close search">
90
- <RLAIcon name="close" class={classes.closeIcon} />
84
+ <RLAIcon name="i-rl-close" class={classes.closeIcon} />
91
85
  </button>
92
86
  </div>
93
87
  </RLAInput>
@@ -111,7 +105,7 @@ const emptyId = `search-empty-${uniqueId}`
111
105
  </rla-search>
112
106
 
113
107
  <script>
114
- import { defineShortcuts } from "../../utils/shortcuts"
108
+ import { defineShortcuts } from "../../shortcuts"
115
109
 
116
110
  class RLASearch extends HTMLElement {
117
111
  private searchCleanup: (() => void) | null = null;
@@ -1,64 +1,61 @@
1
- import { defineTheme } from "../../utils/defineTheme"
1
+ import { defineTheme } from "../../resolver"
2
2
 
3
- export const createSearchTheme = () =>
4
- defineTheme({
5
- slots: [
6
- "root",
7
- "trigger",
8
- "triggerIcon",
9
- "triggerLabel",
10
- "triggerKbd",
11
- "modal",
12
- "dialog",
13
- "header",
14
- "headerIcon",
15
- "input",
16
- "close",
17
- "closeIcon",
18
- "results",
19
- "resultItem",
20
- "resultHeader",
21
- "resultTitle",
22
- "resultBadge",
23
- "resultSnippet",
24
- "empty",
25
- "footer",
26
- "footerHint"
27
- ],
28
- base: {
29
- root: "relative inline-block",
30
- trigger:
31
- "flex items-center gap-xs text-neutral-400 hover:text-white transition-colors bg-neutral-900 border border-neutral-800 rounded-full px-3 py-1.5 text-sm cursor-pointer",
32
- triggerIcon: "w-4 h-4",
33
- triggerLabel: "hidden lg:inline text-xs opacity-60",
34
- triggerKbd:
35
- "hidden lg:inline-flex items-center gap-0.5 text-[10px] bg-neutral-800 border border-neutral-700 px-1.5 py-0.5 rounded font-sans text-neutral-400",
36
- modal:
37
- "fixed inset-0 z-[1000] hidden items-start justify-center pt-[10vh] px-4 bg-black/70 backdrop-blur-sm",
38
- dialog:
39
- "bg-neutral-900 border border-neutral-800 rounded-xl w-full max-w-xl shadow-2xl overflow-hidden flex flex-col",
40
- header: "flex items-center border-b border-neutral-800 px-4 py-3",
41
- headerIcon: "text-neutral-400 w-5 h-5 mr-3",
42
- input:
43
- "bg-transparent text-white placeholder-neutral-500 focus:outline-none flex-1 text-base border-none p-0",
44
- close:
45
- "text-neutral-400 hover:text-white transition-colors bg-transparent border-0 cursor-pointer p-0 flex items-center justify-center",
46
- closeIcon: "w-5 h-5",
47
- results: "max-h-[350px] overflow-y-auto p-2 empty:hidden flex flex-col gap-1",
48
- resultItem:
49
- "flex flex-col gap-1 p-3 hover:bg-neutral-800 rounded-lg transition-colors border border-transparent hover:border-neutral-700 text-left decoration-none",
50
- resultHeader: "flex items-center justify-between",
51
- resultTitle: "text-sm font-semibold text-white",
52
- resultBadge:
53
- "text-[10px] uppercase tracking-wider px-1.5 py-0.5 rounded bg-neutral-800 text-neutral-400 font-mono",
54
- resultSnippet: "text-xs text-neutral-400 line-clamp-2 m-0",
55
- empty: "p-6 text-center text-neutral-500 text-sm hidden",
56
- footer:
57
- "bg-neutral-950 border-t border-neutral-800 px-4 py-2 flex items-center justify-between text-[11px] text-neutral-500",
58
- footerHint: "flex items-center gap-1"
59
- },
60
- variants: {},
61
- defaultVariants: {}
62
- })
63
-
64
- export default createSearchTheme()
3
+ export const searchTheme = defineTheme("search", {
4
+ slots: [
5
+ "root",
6
+ "trigger",
7
+ "triggerIcon",
8
+ "triggerLabel",
9
+ "triggerKbd",
10
+ "modal",
11
+ "dialog",
12
+ "header",
13
+ "headerIcon",
14
+ "input",
15
+ "close",
16
+ "closeIcon",
17
+ "results",
18
+ "resultItem",
19
+ "resultHeader",
20
+ "resultTitle",
21
+ "resultBadge",
22
+ "resultSnippet",
23
+ "empty",
24
+ "footer",
25
+ "footerHint"
26
+ ],
27
+ base: {
28
+ root: "relative inline-block",
29
+ trigger:
30
+ "flex items-center gap-xs text-neutral-400 hover:text-white transition-colors bg-neutral-900 border border-neutral-800 rounded-full px-3 py-1.5 text-sm cursor-pointer",
31
+ triggerIcon: "w-4 h-4",
32
+ triggerLabel: "hidden lg:inline text-xs opacity-60",
33
+ triggerKbd:
34
+ "hidden lg:inline-flex items-center gap-0.5 text-[10px] bg-neutral-800 border border-neutral-700 px-1.5 py-0.5 rounded font-sans text-neutral-400",
35
+ modal:
36
+ "fixed inset-0 z-[1000] hidden items-start justify-center pt-[10vh] px-4 bg-black/70 backdrop-blur-sm",
37
+ dialog:
38
+ "bg-neutral-900 border border-neutral-800 rounded-xl w-full max-w-xl shadow-2xl overflow-hidden flex flex-col",
39
+ header: "flex items-center border-b border-neutral-800 px-4 py-3",
40
+ headerIcon: "text-neutral-400 w-5 h-5 mr-3",
41
+ input:
42
+ "bg-transparent text-white placeholder-neutral-500 focus:outline-none flex-1 text-base border-none p-0",
43
+ close:
44
+ "text-neutral-400 hover:text-white transition-colors bg-transparent border-0 cursor-pointer p-0 flex items-center justify-center",
45
+ closeIcon: "w-5 h-5",
46
+ results: "max-h-[350px] overflow-y-auto p-2 empty:hidden flex flex-col gap-1",
47
+ resultItem:
48
+ "flex flex-col gap-1 p-3 hover:bg-neutral-800 rounded-lg transition-colors border border-transparent hover:border-neutral-700 text-left decoration-none",
49
+ resultHeader: "flex items-center justify-between",
50
+ resultTitle: "text-sm font-semibold text-white",
51
+ resultBadge:
52
+ "text-[10px] uppercase tracking-wider px-1.5 py-0.5 rounded bg-neutral-800 text-neutral-400 font-mono",
53
+ resultSnippet: "text-xs text-neutral-400 line-clamp-2 m-0",
54
+ empty: "p-6 text-center text-neutral-500 text-sm hidden",
55
+ footer:
56
+ "bg-neutral-950 border-t border-neutral-800 px-4 py-2 flex items-center justify-between text-[11px] text-neutral-500",
57
+ footerHint: "flex items-center gap-1"
58
+ },
59
+ variants: {},
60
+ defaultVariants: {}
61
+ })