@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,528 +0,0 @@
1
- ---
2
- import { ClientRouter } from 'astro:transitions';
3
- import type { SiteConfig } from '@/config/site.config';
4
-
5
- export interface OGImage {
6
- /** Image URL (relative or absolute) */
7
- src: string;
8
- /** Alt text for the image */
9
- alt: string;
10
- }
11
-
12
- export interface RSSFeed {
13
- /** RSS feed URL */
14
- href: string;
15
- /** Feed title (defaults to "RSS") */
16
- title?: string;
17
- }
18
-
19
- export interface HeadProps {
20
- /** Page title */
21
- title?: string;
22
- /** Page description */
23
- description?: string;
24
- /** Open Graph image with alt text */
25
- ogImage?: OGImage;
26
- /** Open Graph type (e.g., "website", "article") */
27
- ogType?: string;
28
- /** Open Graph locale (defaults to "en_US") */
29
- ogLocale?: string;
30
- /** Whether to prevent indexing */
31
- noindex?: boolean;
32
- /** Whether this is a 404 page */
33
- is404?: boolean;
34
- /** Robots metadata (overrides noindex/is404 logic if provided) */
35
- robots?: string;
36
- /** Canonical URL */
37
- canonical?: string;
38
- /** Language alternates for i18n */
39
- languageAlternates?: Array<{ hreflang: string; href: string }>;
40
- /** Site configuration for defaults */
41
- config?: SiteConfig;
42
- /** Whether to enable View Transitions (ClientRouter) */
43
- transitions?: boolean;
44
- /** Meta charset */
45
- charset?: string;
46
- /** Meta viewport */
47
- viewport?: string;
48
- /** RSS feed configuration */
49
- rssFeed?: RSSFeed;
50
- }
51
-
52
- const {
53
- title,
54
- description,
55
- ogImage,
56
- ogType = 'website',
57
- ogLocale = 'en_US',
58
- noindex = false,
59
- is404 = false,
60
- robots,
61
- canonical,
62
- languageAlternates = [],
63
- config,
64
- transitions = true,
65
- charset = 'utf-8',
66
- viewport = 'width=device-width, initial-scale=1',
67
- rssFeed,
68
- } = Astro.props as HeadProps;
69
-
70
- // Resolve defaults from config if available
71
- const siteName = config?.name || 'Rimelight';
72
- const siteDescription = config?.description || '';
73
- const ogImageFallback = config?.seo?.ogImageFallback || config?.ogImage || '';
74
- const themeColor = config?.branding?.colors?.themeColor;
75
- const favicon = config?.branding?.favicon?.svg || '/favicon.svg';
76
- const twitterHandle = config?.seo?.authorHandle;
77
- const titleTemplate = config?.seo?.titleTemplate || `%s | ${siteName}`;
78
-
79
- // Calculated Values
80
- const displayTitle = is404
81
- ? `404 - Not Found | ${siteName}`
82
- : title
83
- ? titleTemplate.replace('%s', title)
84
- : siteName;
85
-
86
- const finalDescription = description || siteDescription;
87
- const safeDescription = finalDescription && config?.seo?.maxDescriptionLength
88
- ? (finalDescription.length > config.seo.maxDescriptionLength
89
- ? finalDescription.slice(0, config.seo.maxDescriptionLength - 3) + '...'
90
- : finalDescription)
91
- : finalDescription;
92
-
93
- const finalOgImage = ogImage || (ogImageFallback ? { src: ogImageFallback, alt: siteName } : undefined);
94
- const absoluteOgImage = finalOgImage
95
- ? new URL(finalOgImage.src, Astro.site).toString()
96
- : undefined;
97
-
98
- function formatCanonicalURL(url: string | URL) {
99
- const resolved = new URL(url, Astro.site);
100
- const path = resolved.toString();
101
- const hasQueryParams = path.includes('?');
102
- if (hasQueryParams) {
103
- return path.replace(/\/?$/, '');
104
- }
105
- return path.replace(/\/?$/, '/');
106
- }
107
-
108
- const finalCanonical = canonical
109
- ? formatCanonicalURL(canonical)
110
- : (!is404 ? formatCanonicalURL(Astro.url) : undefined);
111
-
112
- const isIndexable = !noindex && !is404;
113
- const defaultRobots = isIndexable ? 'index, follow, max-image-preview:large' : 'noindex, nofollow';
114
- ---
115
-
116
- <!-- Basic Metadata -->
117
- <meta charset={charset} />
118
- <meta name="viewport" content={viewport} />
119
- <meta name="generator" content={Astro.generator} />
120
-
121
- <!-- Sitemap -->
122
- <link rel="sitemap" href="/sitemap-index.xml" />
123
-
124
- <!-- RSS Feed -->
125
- {rssFeed && <link rel="alternate" type="application/rss+xml" href={rssFeed.href} title={rssFeed.title || 'RSS'} />}
126
-
127
- <!-- SEO -->
128
- <title>{displayTitle}</title>
129
- {safeDescription && <meta name="description" content={safeDescription} />}
130
- <meta name="robots" content={robots || defaultRobots} />
131
- {finalCanonical && <link rel="canonical" href={finalCanonical} />}
132
-
133
- <!-- i18n Alternates -->
134
- {languageAlternates.map((alt) => (
135
- <link rel="alternate" hreflang={alt.hreflang} href={alt.href} />
136
- ))}
137
-
138
- <!-- Open Graph / Facebook -->
139
- <meta property="og:type" content={ogType} />
140
- <meta property="og:locale" content={ogLocale} />
141
- <meta property="og:url" content={Astro.url.href} />
142
- <meta property="og:title" content={title || siteName} />
143
- {safeDescription && <meta property="og:description" content={safeDescription} />}
144
- {absoluteOgImage && <meta property="og:image" content={absoluteOgImage} />}
145
- {finalOgImage && <meta property="og:image:alt" content={finalOgImage.alt} />}
146
- <meta property="og:site_name" content={siteName} />
147
-
148
- <!-- Twitter -->
149
- <meta property="twitter:card" content="summary_large_image" />
150
- <meta property="twitter:url" content={Astro.url.href} />
151
- <meta property="twitter:title" content={title || siteName} />
152
- {safeDescription && <meta property="twitter:description" content={safeDescription} />}
153
- {absoluteOgImage && <meta property="twitter:image" content={absoluteOgImage} />}
154
- {finalOgImage && <meta property="twitter:image:alt" content={finalOgImage.alt} />}
155
- {twitterHandle && <meta property="twitter:site" content={twitterHandle} />}
156
- {twitterHandle && <meta property="twitter:creator" content={twitterHandle} />}
157
-
158
- <!-- Icons & Manifest -->
159
- <link rel="icon" type="image/svg+xml" href={favicon} />
160
- <link rel="icon" href="/favicon.ico" sizes="32x32" />
161
- <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
162
- <link rel="manifest" href="/site.webmanifest" />
163
-
164
- <!-- Theme -->
165
- <meta name="color-scheme" content="light dark" />
166
- <meta name="theme-color" media="(prefers-color-scheme: light)" content={themeColor || "#ffffff"} />
167
- <meta name="theme-color" media="(prefers-color-scheme: dark)" content="#0a0a0a" />
168
-
169
- <script is:inline>
170
- (function() {
171
- if (window.trustedTypes && trustedTypes.createPolicy) {
172
- trustedTypes.createPolicy('default', {
173
- createHTML: function(input) { return input; },
174
- createScript: function(input) { return input; },
175
- createScriptURL: function(input) { return input; }
176
- });
177
- }
178
- })();
179
- </script>
180
- <script is:inline>
181
- (function() {
182
- if (!window.initialCspNonce) {
183
- window.initialCspNonce = document.querySelector('meta[name="csp-nonce"]')?.getAttribute('content') ||
184
- Array.from(document.querySelectorAll('script')).find(function(s) { return s.nonce; })?.nonce ||
185
- document.querySelector('script[nonce]')?.nonce ||
186
- document.querySelector('style[nonce]')?.nonce;
187
- }
188
-
189
- var orig = document.createElement;
190
- document.createElement = function(tag, opts) {
191
- var el = orig.call(document, tag, opts);
192
- var lowTag = tag.toLowerCase();
193
- if (lowTag === 'script' || lowTag === 'style') {
194
- var nonce = window.initialCspNonce;
195
- if (nonce) {
196
- el.setAttribute('nonce', nonce);
197
- el.nonce = nonce;
198
- }
199
- }
200
- return el;
201
- };
202
-
203
- // Synchronous DOM insertion overrides to catch cloned, imported, or createElementNS tags
204
- var origAppend = Element.prototype.appendChild;
205
- Element.prototype.appendChild = function(child) {
206
- if (child && (child.tagName === 'SCRIPT' || child.tagName === 'STYLE')) {
207
- var nonce = window.initialCspNonce;
208
- if (nonce && !child.getAttribute('nonce')) {
209
- child.setAttribute('nonce', nonce);
210
- child.nonce = nonce;
211
- }
212
- }
213
- return origAppend.apply(this, arguments);
214
- };
215
-
216
- var origInsert = Element.prototype.insertBefore;
217
- Element.prototype.insertBefore = function(newChild, refChild) {
218
- if (newChild && (newChild.tagName === 'SCRIPT' || newChild.tagName === 'STYLE')) {
219
- var nonce = window.initialCspNonce;
220
- if (nonce && !newChild.getAttribute('nonce')) {
221
- newChild.setAttribute('nonce', nonce);
222
- newChild.nonce = nonce;
223
- }
224
- }
225
- return origInsert.apply(this, arguments);
226
- };
227
-
228
- var origAppendMethod = Element.prototype.append;
229
- if (origAppendMethod) {
230
- Element.prototype.append = function() {
231
- for (var i = 0; i < arguments.length; i++) {
232
- var arg = arguments[i];
233
- if (arg && (arg.tagName === 'SCRIPT' || arg.tagName === 'STYLE')) {
234
- var nonce = window.initialCspNonce;
235
- if (nonce && !arg.getAttribute('nonce')) {
236
- arg.setAttribute('nonce', nonce);
237
- arg.nonce = nonce;
238
- }
239
- }
240
- }
241
- return origAppendMethod.apply(this, arguments);
242
- };
243
- }
244
-
245
- var origPrependMethod = Element.prototype.prepend;
246
- if (origPrependMethod) {
247
- Element.prototype.prepend = function() {
248
- for (var i = 0; i < arguments.length; i++) {
249
- var arg = arguments[i];
250
- if (arg && (arg.tagName === 'SCRIPT' || arg.tagName === 'STYLE')) {
251
- var nonce = window.initialCspNonce;
252
- if (nonce && !arg.getAttribute('nonce')) {
253
- arg.setAttribute('nonce', nonce);
254
- arg.nonce = nonce;
255
- }
256
- }
257
- }
258
- return origPrependMethod.apply(this, arguments);
259
- };
260
- }
261
-
262
- function getThemePreference() {
263
- var stored = localStorage.getItem('theme');
264
- if (stored === 'dark' || stored === 'light') return stored;
265
- return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
266
- }
267
-
268
- function applyTheme(doc) {
269
- var pref = getThemePreference();
270
- doc.documentElement.classList.toggle('dark', pref === 'dark');
271
- doc.documentElement.classList.toggle('light', pref === 'light');
272
- }
273
-
274
- // Apply immediately on initial load
275
- applyTheme(document);
276
-
277
- // Apply to incoming document BEFORE the swap — eliminates the flash
278
- document.addEventListener('astro:before-swap', function(e) {
279
- applyTheme(e.newDocument);
280
- var nonce = window.initialCspNonce;
281
- if (nonce) {
282
- e.newDocument.querySelectorAll('script').forEach(function(s) {
283
- s.setAttribute('nonce', nonce);
284
- });
285
- e.newDocument.querySelectorAll('style').forEach(function(s) {
286
- s.setAttribute('nonce', nonce);
287
- });
288
- }
289
- });
290
-
291
- // Safety net: re-apply after swap in case anything overrides it
292
- document.addEventListener('astro:after-swap', function() {
293
- applyTheme(document);
294
- });
295
- })();
296
- </script>
297
-
298
- <script is:inline data-astro-rerun>
299
- (function() {
300
- 'use strict';
301
- if (window.rlHeaderObserver) window.rlHeaderObserver.disconnect();
302
-
303
- if (!window.RLHeaderStack) {
304
- window.RLHeaderStack = {
305
- layers: [],
306
- register: function(id, order, naturalHeight, isVisible, el, type) {
307
- if (el && !el.isConnected) return;
308
- if (type === undefined) type = el && el.getAttribute ? (el.getAttribute('data-layer-type') || 'header') : 'header';
309
- let layer = this.layers.find(function(l) { return l.id === id; });
310
- if (!layer) {
311
- layer = { id: id, type: type, order: order, naturalHeight: naturalHeight, isVisible: isVisible, el: el };
312
- this.layers.push(layer);
313
- this.sortLayers();
314
- } else {
315
- layer.naturalHeight = naturalHeight;
316
- layer.isVisible = isVisible;
317
- layer.el = el;
318
- }
319
- if (el) {
320
- el.rlNaturalHeight = naturalHeight;
321
- el.rlIsVisible = isVisible;
322
- }
323
- this.update();
324
- },
325
- unregister: function(id) {
326
- const layer = this.layers.find(function(l) { return l.id === id; });
327
- if (layer && layer.el) {
328
- const el = layer.el;
329
- if (el.rlScrollListener) {
330
- window.removeEventListener('scroll', el.rlScrollListener);
331
- }
332
- if (el.rlResizeObserver) {
333
- el.rlResizeObserver.disconnect();
334
- }
335
- }
336
- this.layers = this.layers.filter(function(l) { return l.id !== id; });
337
- this.update();
338
- },
339
- sortLayers: function() {
340
- this.layers.sort(function(a, b) {
341
- if (a.type !== b.type) return a.type === 'banner' ? -1 : 1;
342
- return a.order - b.order;
343
- });
344
- },
345
- update: function() {
346
- let currentTop = 0;
347
- for (let i = 0; i < this.layers.length; i++) {
348
- const layer = this.layers[i];
349
- if (layer.el) {
350
- const topPx = layer.isVisible ? currentTop + 'px' : '-' + layer.naturalHeight + 'px';
351
- layer.el.style.top = topPx;
352
- layer.el.style.opacity = layer.isVisible ? '1' : '0';
353
- layer.el.style.pointerEvents = layer.isVisible ? 'auto' : 'none';
354
- layer.el.style.setProperty('--rl-header-bottom', 'calc(' + topPx + ' + ' + layer.naturalHeight + 'px)');
355
- }
356
- if (layer.isVisible) currentTop += layer.naturalHeight;
357
- }
358
- if (currentTop > 0) {
359
- document.documentElement.style.setProperty('--rl-total-header-height', currentTop + 'px');
360
- }
361
- }
362
- };
363
- }
364
- const RL = window.RLHeaderStack;
365
- RL.layers = [];
366
-
367
- function getHeight(el) {
368
- if (!el) return 64;
369
- const h = el.offsetHeight;
370
- return h > 0 ? h : 64;
371
- }
372
-
373
- function initLayer(el) {
374
- const id = el.id;
375
- const type = el.getAttribute('data-layer-type') || 'header';
376
- const stackIndex = parseInt(el.getAttribute('data-stack-index') || '0', 10);
377
- const hideOnScroll = el.getAttribute('data-hide-on-scroll') === 'true';
378
- const contentEl = el.querySelector('[data-header-content]');
379
-
380
- if (el.rlManaged) {
381
- const naturalHeight = el.rlNaturalHeight || getHeight(contentEl);
382
- const isVisible = el.rlIsVisible !== false;
383
- RL.register(id, stackIndex, naturalHeight, isVisible, el, type);
384
- return;
385
- }
386
- el.rlManaged = true;
387
-
388
- let naturalHeight = getHeight(contentEl);
389
- let isVisible = true;
390
-
391
- RL.register(id, stackIndex, naturalHeight, isVisible, el, type);
392
-
393
- if (typeof ResizeObserver !== 'undefined' && contentEl) {
394
- const ro = new ResizeObserver(function(entries) {
395
- if (!el.isConnected) {
396
- ro.disconnect();
397
- return;
398
- }
399
- const h = entries[0] && entries[0].contentRect.height;
400
- if (h && h > 0) {
401
- naturalHeight = h;
402
- RL.register(id, stackIndex, naturalHeight, isVisible, el, type);
403
- }
404
- });
405
- ro.observe(contentEl);
406
- el.rlResizeObserver = ro;
407
- }
408
-
409
- if (hideOnScroll) {
410
- let lastScrollY = window.scrollY;
411
- const scrollListener = function() {
412
- if (!el.isConnected) {
413
- window.removeEventListener('scroll', scrollListener);
414
- return;
415
- }
416
- const current = window.scrollY;
417
- const diff = current - lastScrollY;
418
- if (Math.abs(diff) >= 10) {
419
- const newVisible = current <= 50 ? true : diff <= 0;
420
- if (newVisible !== isVisible) {
421
- isVisible = newVisible;
422
- RL.register(id, stackIndex, naturalHeight, isVisible, el, type);
423
- }
424
- lastScrollY = current;
425
- }
426
- };
427
- el.rlScrollListener = scrollListener;
428
- window.addEventListener('scroll', scrollListener, { passive: true });
429
- }
430
-
431
- (function retry() {
432
- if (!el.isConnected) return;
433
- const h = getHeight(contentEl);
434
- if (h !== naturalHeight) {
435
- naturalHeight = h;
436
- RL.register(id, stackIndex, naturalHeight, isVisible, el, type);
437
- }
438
- if (h > 0 && h !== 64 && contentEl && contentEl.offsetHeight > 0) return;
439
- requestAnimationFrame(retry);
440
- })();
441
- }
442
-
443
- function dismissBanner(banner) {
444
- var key = banner.getAttribute('data-dismiss-key');
445
- if (key) localStorage.setItem(key, 'true');
446
- banner.style.display = 'none';
447
- banner.setAttribute('data-rla-banner', 'false');
448
- if (window.RLHeaderStack) RL.unregister(banner.id);
449
- }
450
-
451
- function checkDismissed() {
452
- var banners = document.querySelectorAll("[data-rla-banner='true']");
453
- for (var i = 0; i < banners.length; i++) {
454
- var b = banners[i];
455
- var key = b.getAttribute('data-dismiss-key');
456
- if (key && localStorage.getItem(key) === 'true') {
457
- b.style.display = 'none';
458
- b.setAttribute('data-rla-banner', 'false');
459
- }
460
- }
461
- }
462
-
463
- if (!window.rlBannerInit) {
464
- window.rlBannerInit = true;
465
- document.addEventListener('click', function(e) {
466
- var btn = e.target.closest('[data-banner-close]');
467
- if (!btn) return;
468
- var banner = btn.closest('[data-rla-banner]');
469
- if (!banner) return;
470
- dismissBanner(banner);
471
- });
472
- }
473
-
474
- function selector() {
475
- return "[data-rla-header='true'],[data-rla-banner='true']";
476
- }
477
-
478
- function startObserver() {
479
- if (document.body) {
480
- checkDismissed();
481
- const layers = document.querySelectorAll(selector());
482
- for (let i = 0; i < layers.length; i++) initLayer(layers[i]);
483
-
484
- window.rlHeaderObserver = new MutationObserver(function(mutations) {
485
- for (let i = 0; i < mutations.length; i++) {
486
- const added = mutations[i].addedNodes;
487
- for (let j = 0; j < added.length; j++) {
488
- const node = added[j];
489
- if (node.nodeType !== 1) continue;
490
- if (node.matches && node.matches(selector())) initLayer(node);
491
- if (node.querySelectorAll) {
492
- const nested = node.querySelectorAll(selector());
493
- for (let k = 0; k < nested.length; k++) initLayer(nested[k]);
494
- }
495
- }
496
- const removed = mutations[i].removedNodes;
497
- for (let j = 0; j < removed.length; j++) {
498
- const node = removed[j];
499
- if (node.nodeType !== 1) continue;
500
- if (node.matches && node.matches(selector())) RL.unregister(node.id);
501
- if (node.querySelectorAll) {
502
- const nested = node.querySelectorAll(selector());
503
- for (let k = 0; k < nested.length; k++) RL.unregister(nested[k].id);
504
- }
505
- }
506
- }
507
- });
508
- window.rlHeaderObserver.observe(document.body, { childList: true, subtree: true });
509
- } else {
510
- document.addEventListener('DOMContentLoaded', startObserver);
511
- }
512
- }
513
-
514
- startObserver();
515
- })();
516
- </script>
517
-
518
- {transitions && <ClientRouter />}
519
-
520
- {config && (
521
- <script type="application/ld+json" is:inline set:html={JSON.stringify({
522
- "@context": "https://schema.org",
523
- "@type": "WebSite",
524
- "name": config.name,
525
- "url": Astro.site ? Astro.site.toString() : config.url,
526
- "description": config.description
527
- })} />
528
- )}
@@ -1,37 +0,0 @@
1
- import { DEFAULT_ICONS } from "../../icons/defaults"
2
- import { getUIConfig } from "virtual:rimelight-ui"
3
-
4
- export interface ResolvedIcon {
5
- isClass: boolean
6
- content: string
7
- }
8
-
9
- const defaultIconsLookup = DEFAULT_ICONS as Record<string, string>
10
-
11
- /**
12
- * Resolves whether an icon is a CSS class or raw inline SVG string, falling back to DEFAULT_ICONS.
13
- * Supports both static virtual config overrides and custom dynamic overrides (e.g. props).
14
- */
15
- export function resolveIcon(iconKey?: string, customProp?: string): ResolvedIcon {
16
- if (!iconKey) {
17
- return { isClass: false, content: "" }
18
- }
19
- if (iconKey.startsWith("i-") || iconKey.includes(":")) {
20
- return { isClass: true, content: iconKey }
21
- }
22
-
23
- let config: Record<string, any> = {}
24
- try {
25
- config = getUIConfig()
26
- } catch {}
27
-
28
- const resolved = customProp || config.icons?.[iconKey]
29
-
30
- if (!resolved) {
31
- return { isClass: false, content: defaultIconsLookup[iconKey] || "" }
32
- }
33
-
34
- const isClass =
35
- typeof resolved === "string" && (resolved.startsWith("i-") || resolved.includes(":"))
36
- return { isClass, content: resolved }
37
- }