@rimelight/ui 0.0.37 → 0.0.39

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 (863) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +6 -4
  3. package/package.json +13 -32
  4. package/src/components/3d-hover/3d-hover.theme.ts +13 -0
  5. package/src/components/3d-hover/RLA3dHover.astro +21 -0
  6. package/src/components/accordion/RLAAccordion.astro +97 -0
  7. package/src/components/accordion/accordion.theme.ts +39 -0
  8. package/src/components/app/RLAApp.astro +21 -0
  9. package/src/components/app/app.theme.ts +13 -0
  10. package/src/components/aspect-ratio/RLAAspectRatio.astro +27 -0
  11. package/src/components/aspect-ratio/aspect-ratio.theme.ts +13 -0
  12. package/src/components/audio/RLAAudio.astro +26 -0
  13. package/src/components/audio/audio.theme.ts +13 -0
  14. package/src/components/avatar/RLAAvatar.astro +136 -0
  15. package/src/components/avatar/avatar.theme.ts +84 -0
  16. package/src/components/avatar/avatar.ts +76 -0
  17. package/src/components/avatar-group/RLAAvatarGroup.astro +23 -0
  18. package/src/components/avatar-group/avatar-group.theme.ts +12 -0
  19. package/src/components/badge/RLABadge.astro +36 -0
  20. package/src/components/badge/RLVBadge.vue +40 -0
  21. package/src/components/badge/badge.theme.ts +171 -0
  22. package/src/components/badge/badge.ts +33 -0
  23. package/src/components/banner/RLABanner.astro +136 -0
  24. package/src/components/banner/banner.theme.ts +49 -0
  25. package/src/components/breadcrumb/RLABreadcrumb.astro +62 -0
  26. package/src/components/breadcrumb/breadcrumb.theme.ts +17 -0
  27. package/src/components/browser-mockup/RLABrowserMockup.astro +21 -0
  28. package/src/components/browser-mockup/browser-mockup.theme.ts +13 -0
  29. package/src/components/button/RLAButton.astro +177 -0
  30. package/src/components/button/RLVButton.vue +108 -0
  31. package/src/components/button/button.theme.ts +226 -0
  32. package/src/components/button/button.ts +74 -0
  33. package/src/components/calendar/RLACalendar.astro +21 -0
  34. package/src/components/calendar/calendar.theme.ts +13 -0
  35. package/src/components/callout/RLACallout.astro +113 -0
  36. package/src/components/callout/callout.theme.ts +107 -0
  37. package/src/components/callout/callout.ts +37 -0
  38. package/src/components/card/RLACard.astro +77 -0
  39. package/src/components/card/RLVCard.vue +85 -0
  40. package/src/components/card/card.theme.ts +50 -0
  41. package/src/components/carousel/RLACarousel.astro +285 -0
  42. package/src/components/carousel/carousel.theme.ts +34 -0
  43. package/src/components/chart/RLAChart.astro +225 -0
  44. package/src/components/chart/chart.theme.ts +22 -0
  45. package/src/components/chart/chart.ts +39 -0
  46. package/src/components/chat/RLAChat.astro +21 -0
  47. package/src/components/chat/chat.theme.ts +13 -0
  48. package/src/components/chat-message/RLAChatMessage.astro +21 -0
  49. package/src/components/chat-message/chat-message.theme.ts +13 -0
  50. package/src/components/chat-messages/RLAChatMessages.astro +21 -0
  51. package/src/components/chat-messages/chat-messages.theme.ts +13 -0
  52. package/src/components/chat-palette/RLAChatPalette.astro +21 -0
  53. package/src/components/chat-palette/chat-palette.theme.ts +13 -0
  54. package/src/components/chat-prompt/RLAChatPrompt.astro +21 -0
  55. package/src/components/chat-prompt/chat-prompt.theme.ts +13 -0
  56. package/src/components/chat-prompt-submit/RLAChatPromptSubmit.astro +21 -0
  57. package/src/components/chat-prompt-submit/chat-prompt-submit.theme.ts +13 -0
  58. package/src/components/chat-reasoning/RLAChatReasoning.astro +21 -0
  59. package/src/components/chat-reasoning/chat-reasoning.theme.ts +13 -0
  60. package/src/components/chat-shimmer/RLAChatShimmer.astro +21 -0
  61. package/src/components/chat-shimmer/chat-shimmer.theme.ts +13 -0
  62. package/src/components/chat-tool/RLAChatTool.astro +21 -0
  63. package/src/components/chat-tool/chat-tool.theme.ts +13 -0
  64. package/src/components/checkbox/RLACheckbox.astro +53 -0
  65. package/src/components/checkbox/checkbox.theme.ts +49 -0
  66. package/src/components/checkbox/checkbox.ts +41 -0
  67. package/src/components/chip/RLAChip.astro +57 -0
  68. package/src/components/chip/chip.theme.ts +76 -0
  69. package/src/components/chip/chip.ts +17 -0
  70. package/src/components/collapsible/RLACollapsible.astro +40 -0
  71. package/src/components/collapsible/collapsible.theme.ts +22 -0
  72. package/src/components/collapsible/collapsible.ts +32 -0
  73. package/src/components/color-area/RLAColorArea.astro +432 -0
  74. package/src/components/color-area/color-area.theme.ts +33 -0
  75. package/src/components/color-area/color-area.ts +19 -0
  76. package/src/components/color-field/RLAColorField.astro +300 -0
  77. package/src/components/color-field/color-field.theme.ts +32 -0
  78. package/src/components/color-field/color-field.ts +21 -0
  79. package/src/components/color-picker/RLAColorPicker.astro +21 -0
  80. package/src/components/color-picker/color-picker.theme.ts +13 -0
  81. package/src/components/color-slider/RLAColorSlider.astro +413 -0
  82. package/src/components/color-slider/color-slider.theme.ts +34 -0
  83. package/src/components/color-slider/color-slider.ts +20 -0
  84. package/src/components/command-palette/RLACommandPalette.astro +21 -0
  85. package/src/components/command-palette/command-palette.theme.ts +13 -0
  86. package/src/components/compare/RLACompare.astro +21 -0
  87. package/src/components/compare/compare.theme.ts +13 -0
  88. package/src/components/confirm/RLAConfirm.astro +122 -0
  89. package/src/components/confirm/confirm.theme.ts +48 -0
  90. package/src/components/container/RLAContainer.astro +21 -0
  91. package/src/components/container/container.theme.ts +13 -0
  92. package/src/components/context-menu/RLAContextMenu.astro +21 -0
  93. package/src/components/context-menu/context-menu.theme.ts +13 -0
  94. package/src/components/copy-markdown/RLACopyMarkdown.astro +78 -0
  95. package/src/components/dashboard-group/RLADashboardGroup.astro +21 -0
  96. package/src/components/dashboard-group/dashboard-group.theme.ts +13 -0
  97. package/src/components/dashboard-navbar/RLADashboardNavbar.astro +21 -0
  98. package/src/components/dashboard-navbar/dashboard-navbar.theme.ts +13 -0
  99. package/src/components/dashboard-panel/RLADashboardPanel.astro +21 -0
  100. package/src/components/dashboard-panel/dashboard-panel.theme.ts +13 -0
  101. package/src/components/dashboard-resize-handle/RLADashboardResizeHandle.astro +21 -0
  102. package/src/components/dashboard-resize-handle/dashboard-resize-handle.theme.ts +13 -0
  103. package/src/components/dashboard-search/RLADashboardSearch.astro +21 -0
  104. package/src/components/dashboard-search/dashboard-search.theme.ts +13 -0
  105. package/src/components/dashboard-search-button/RLADashboardSearchButton.astro +21 -0
  106. package/src/components/dashboard-search-button/dashboard-search-button.theme.ts +13 -0
  107. package/src/components/dashboard-sidebar/RLADashboardSidebar.astro +21 -0
  108. package/src/components/dashboard-sidebar/dashboard-sidebar.theme.ts +13 -0
  109. package/src/components/dashboard-sidebar-collapse/RLADashboardSidebarCollapse.astro +21 -0
  110. package/src/components/dashboard-sidebar-collapse/dashboard-sidebar-collapse.theme.ts +13 -0
  111. package/src/components/dashboard-sidebar-toggle/RLADashboardSidebarToggle.astro +21 -0
  112. package/src/components/dashboard-sidebar-toggle/dashboard-sidebar-toggle.theme.ts +13 -0
  113. package/src/components/dashboard-toolbar/RLADashboardToolbar.astro +21 -0
  114. package/src/components/dashboard-toolbar/dashboard-toolbar.theme.ts +13 -0
  115. package/src/components/dock/RLADock.astro +21 -0
  116. package/src/components/dock/dock.theme.ts +13 -0
  117. package/src/components/drawer/RLADrawer.astro +126 -0
  118. package/src/components/drawer/drawer.theme.ts +61 -0
  119. package/src/components/dropdown-menu/RLADropdownMenu.astro +108 -0
  120. package/src/components/dropdown-menu/dropdown-menu.theme.ts +29 -0
  121. package/src/components/dropdown-menu/dropdown-menu.ts +43 -0
  122. package/src/components/editor/PageEditor.vue +459 -0
  123. package/src/components/editor/PageMention.vue +87 -0
  124. package/src/components/editor/PagePropertiesEditor.vue +358 -0
  125. package/src/components/editor/PagePropertiesRenderer.vue +285 -0
  126. package/src/components/editor/PageRenderer.vue +155 -0
  127. package/src/components/editor/PageSurround.vue +130 -0
  128. package/src/components/editor/PageVersionSelector.vue +371 -0
  129. package/src/components/editor/RLAEditor.astro +21 -0
  130. package/src/components/editor/blocks/AddBlockModal.vue +196 -0
  131. package/src/components/editor/blocks/Block.vue +141 -0
  132. package/src/components/editor/blocks/BlockEditRenderer.vue +26 -0
  133. package/src/components/editor/blocks/BlockEditor.vue +141 -0
  134. package/src/components/editor/blocks/BlockViewRenderer.vue +65 -0
  135. package/src/components/editor/blocks/TextRenderer.vue +31 -0
  136. package/src/components/editor/blocks/editor/CalloutBlockEditor.vue +53 -0
  137. package/src/components/editor/blocks/editor/ImageBlockEditor.vue +55 -0
  138. package/src/components/editor/blocks/editor/ParagraphBlockEditor.vue +31 -0
  139. package/src/components/editor/blocks/editor/SectionBlockEditor.vue +65 -0
  140. package/src/components/editor/blocks/nodes/LinkNode.vue +28 -0
  141. package/src/components/editor/blocks/nodes/TextNode.vue +22 -0
  142. package/src/components/editor/blocks/renderer/CalloutBlockRenderer.vue +66 -0
  143. package/src/components/editor/blocks/renderer/ImageBlockRenderer.vue +20 -0
  144. package/src/components/editor/blocks/renderer/ParagraphBlockRenderer.vue +21 -0
  145. package/src/components/editor/blocks/renderer/SectionBlockRenderer.vue +55 -0
  146. package/src/components/editor/composables/injectionKeys.ts +3 -0
  147. package/src/components/editor/composables/useBlockEditor.ts +261 -0
  148. package/src/components/editor/composables/usePageEditor.ts +97 -0
  149. package/src/components/editor/editor.theme.ts +13 -0
  150. package/src/components/editor/modals/CreatePageModal.vue +160 -0
  151. package/src/components/editor/modals/DeletePageModal.vue +116 -0
  152. package/src/components/editor/modals/PageTreeModal.vue +275 -0
  153. package/src/components/editor/types/blocks.ts +100 -0
  154. package/src/components/editor/types/pages.ts +89 -0
  155. package/src/components/editor/types/schemas.ts +36 -0
  156. package/src/components/editor/utils/blocks.ts +42 -0
  157. package/src/components/editor/utils/editorHelpers.ts +24 -0
  158. package/src/components/editor/utils/page.ts +219 -0
  159. package/src/components/editor/utils/richTextHelpers.ts +35 -0
  160. package/src/components/editor/views/PageEditView.vue +195 -0
  161. package/src/components/editor/views/PageLiveView.vue +90 -0
  162. package/src/components/editor/views/PageReviewView.vue +308 -0
  163. package/src/components/empty/RLAEmpty.astro +21 -0
  164. package/src/components/empty/empty.theme.ts +13 -0
  165. package/src/components/error/RLAError.astro +21 -0
  166. package/src/components/error/error.theme.ts +13 -0
  167. package/src/components/field-group/RLAFieldGroup.astro +36 -0
  168. package/src/components/field-group/field-group.theme.ts +24 -0
  169. package/src/components/fieldset/RLAFieldset.astro +21 -0
  170. package/src/components/fieldset/fieldset.theme.ts +13 -0
  171. package/src/components/file-upload/RLAFileUpload.astro +147 -0
  172. package/src/components/file-upload/file-upload.theme.ts +24 -0
  173. package/src/components/file-upload/file-upload.ts +40 -0
  174. package/src/components/floating-action/RLAFloatingAction.astro +21 -0
  175. package/src/components/floating-action/floating-action.theme.ts +13 -0
  176. package/src/components/footer/RLAFooter.astro +38 -0
  177. package/src/components/footer/footer.theme.ts +30 -0
  178. package/src/components/form/RLAForm.astro +21 -0
  179. package/src/components/form/form.theme.ts +13 -0
  180. package/src/components/form-field/RLAFormField.astro +45 -0
  181. package/src/components/form-field/RLVFormField.vue +59 -0
  182. package/src/components/form-field/form-field.theme.ts +24 -0
  183. package/src/components/gallery/RLAGallery.astro +21 -0
  184. package/src/components/gallery/gallery.theme.ts +13 -0
  185. package/src/components/gamepad/RLAGamepad.astro +226 -0
  186. package/src/components/grid/RLAGrid.astro +29 -0
  187. package/src/components/grid/grid.theme.ts +38 -0
  188. package/src/components/head/RLAHead.astro +528 -0
  189. package/src/components/head/head.theme.ts +13 -0
  190. package/src/components/header/RLAHeader.astro +65 -0
  191. package/src/components/header/header.theme.ts +46 -0
  192. package/src/components/hover-card/RLAHoverCard.astro +35 -0
  193. package/src/components/hover-card/hover-card.theme.ts +29 -0
  194. package/src/components/icon/RLAIcon.astro +36 -0
  195. package/src/components/icon/RLSIcon.tsx +28 -0
  196. package/src/components/icon/RLVIcon.vue +31 -0
  197. package/src/components/icon/icon.theme.ts +30 -0
  198. package/src/components/icon/resolver.ts +37 -0
  199. package/src/components/image/RLAImage.astro +271 -0
  200. package/src/components/image/image.theme.ts +33 -0
  201. package/src/components/input/RLAInput.astro +65 -0
  202. package/src/components/input/RLVInput.vue +95 -0
  203. package/src/components/input/input.theme.ts +48 -0
  204. package/src/components/input/input.ts +69 -0
  205. package/src/components/input-date/RLAInputDate.astro +21 -0
  206. package/src/components/input-date/input-date.theme.ts +13 -0
  207. package/src/components/input-menu/RLAInputMenu.astro +166 -0
  208. package/src/components/input-menu/input-menu.theme.ts +35 -0
  209. package/src/components/input-menu/input-menu.ts +44 -0
  210. package/src/components/input-number/RLAInputNumber.astro +21 -0
  211. package/src/components/input-number/input-number.theme.ts +13 -0
  212. package/src/components/input-pin/RLAInputPin.astro +23 -0
  213. package/src/components/input-pin/input-pin.theme.ts +14 -0
  214. package/src/components/input-pin/input-pin.ts +11 -0
  215. package/src/components/input-rating/RLAInputRating.astro +265 -0
  216. package/src/components/input-rating/input-rating.theme.ts +84 -0
  217. package/src/components/input-rating/input-rating.ts +106 -0
  218. package/src/components/input-tags/RLAInputTags.astro +21 -0
  219. package/src/components/input-tags/input-tags.theme.ts +13 -0
  220. package/src/components/input-time/RLAInputTime.astro +21 -0
  221. package/src/components/input-time/input-time.theme.ts +13 -0
  222. package/src/components/kbd/RLAKbd.astro +32 -0
  223. package/src/components/kbd/kbd.theme.ts +97 -0
  224. package/src/components/keyboard/RLAKeyboard.astro +350 -0
  225. package/src/components/knob/RLAKnob.astro +21 -0
  226. package/src/components/knob/knob.theme.ts +13 -0
  227. package/src/components/label/RLALabel.astro +27 -0
  228. package/src/components/label/label.theme.ts +22 -0
  229. package/src/components/layout-grid/RLALayoutGrid.astro +393 -0
  230. package/src/components/layout-grid/layout-grid.theme.ts +16 -0
  231. package/src/components/link/RLALink.astro +93 -0
  232. package/src/components/link/RLSLink.tsx +108 -0
  233. package/src/components/link/RLVLink.vue +85 -0
  234. package/src/components/link/helpers.ts +47 -0
  235. package/src/components/link/link.theme.ts +40 -0
  236. package/src/components/link/link.ts +99 -0
  237. package/src/components/link-group/RLALinkGroup.astro +96 -0
  238. package/src/components/link-group/link-group.theme.ts +28 -0
  239. package/src/components/link-group/link-group.ts +50 -0
  240. package/src/components/listbox/RLAListbox.astro +21 -0
  241. package/src/components/listbox/listbox.theme.ts +13 -0
  242. package/src/components/locale-selector/RLALocaleSelector.astro +142 -0
  243. package/src/components/locale-selector/locale-selector.theme.ts +49 -0
  244. package/src/components/locale-selector/locale-selector.ts +59 -0
  245. package/src/components/logo/RLALogo.astro +116 -0
  246. package/src/components/logo/logo.theme.ts +13 -0
  247. package/src/components/main/RLAMain.astro +37 -0
  248. package/src/components/main/main.theme.ts +13 -0
  249. package/src/components/marquee/RLAMarquee.astro +43 -0
  250. package/src/components/marquee/marquee.theme.ts +29 -0
  251. package/src/components/meter/RLAMeter.astro +21 -0
  252. package/src/components/meter/meter.theme.ts +13 -0
  253. package/src/components/modal/RLAModal.astro +183 -0
  254. package/src/components/modal/RLVModal.vue +97 -0
  255. package/src/components/modal/modal.theme.ts +49 -0
  256. package/src/components/modal/modal.ts +43 -0
  257. package/src/components/navigation-menu/RLANavigationMenu.astro +380 -0
  258. package/src/components/navigation-menu/navigation-menu.theme.ts +44 -0
  259. package/src/components/navigation-menu/navigation-menu.ts +59 -0
  260. package/src/components/package-managers/RLAPackageManagers.astro +81 -0
  261. package/src/components/page/RLAPage.astro +21 -0
  262. package/src/components/page/page.theme.ts +13 -0
  263. package/src/components/page-aside/RLAPageAside.astro +21 -0
  264. package/src/components/page-aside/page-aside.theme.ts +13 -0
  265. package/src/components/page-body/RLAPageBody.astro +21 -0
  266. package/src/components/page-body/page-body.theme.ts +13 -0
  267. package/src/components/page-header/RLAPageHeader.astro +21 -0
  268. package/src/components/page-header/page-header.theme.ts +13 -0
  269. package/src/components/page-section/RLAPageSection.astro +166 -0
  270. package/src/components/page-section/page-section.theme.ts +189 -0
  271. package/src/components/page-section/page-section.ts +71 -0
  272. package/src/components/pagination/RLAPagination.astro +97 -0
  273. package/src/components/pagination/pagination.theme.ts +28 -0
  274. package/src/components/password/RLAPassword.astro +21 -0
  275. package/src/components/password/password.theme.ts +13 -0
  276. package/src/components/phone-mockup/RLAPhoneMockup.astro +21 -0
  277. package/src/components/phone-mockup/phone-mockup.theme.ts +13 -0
  278. package/src/components/placeholder/RLAPlaceholder.astro +43 -0
  279. package/src/components/placeholder/placeholder.theme.ts +15 -0
  280. package/src/components/popover/RLAPopover.astro +130 -0
  281. package/src/components/popover/popover.theme.ts +27 -0
  282. package/src/components/post/RLAPost.astro +72 -0
  283. package/src/components/post/post.theme.ts +53 -0
  284. package/src/components/pricing-plan/RLAPricingPlan.astro +21 -0
  285. package/src/components/pricing-plan/pricing-plan.theme.ts +13 -0
  286. package/src/components/pricing-table/RLAPricingTable.astro +21 -0
  287. package/src/components/pricing-table/pricing-table.theme.ts +13 -0
  288. package/src/components/progress/RLAProgress.astro +51 -0
  289. package/src/components/progress/progress.theme.ts +37 -0
  290. package/src/components/progress/progress.ts +33 -0
  291. package/src/components/prose/RLAProse.astro +21 -0
  292. package/src/components/prose/prose.theme.ts +13 -0
  293. package/src/components/qr-code/RLAQrCode.astro +21 -0
  294. package/src/components/qr-code/qr-code.theme.ts +13 -0
  295. package/src/components/quote/RLAQuote.astro +15 -0
  296. package/src/components/quote/quote.theme.ts +13 -0
  297. package/src/components/radio-group/RLARadioGroup.astro +21 -0
  298. package/src/components/radio-group/radio-group.theme.ts +13 -0
  299. package/src/components/rating/RLARating.astro +21 -0
  300. package/src/components/rating/rating.theme.ts +13 -0
  301. package/src/components/scroll-area/RLAScrollArea.astro +158 -0
  302. package/src/components/scroll-area/scroll-area.theme.ts +26 -0
  303. package/src/components/scroll-to-top/RLAScrollToTop.astro +189 -0
  304. package/src/components/scroll-to-top/RLVScrollToTop.vue +148 -0
  305. package/src/components/scroll-to-top/scroll-to-top.theme.ts +51 -0
  306. package/src/components/scroll-to-top/scroll-to-top.ts +37 -0
  307. package/src/components/search/RLASearch.astro +281 -0
  308. package/src/components/search/search.theme.ts +64 -0
  309. package/src/components/select/RLASelect.astro +150 -0
  310. package/src/components/select/RLVSelect.vue +73 -0
  311. package/src/components/select/select.theme.ts +29 -0
  312. package/src/components/select/select.ts +44 -0
  313. package/src/components/separator/RLASeparator.astro +83 -0
  314. package/src/components/separator/separator.theme.ts +147 -0
  315. package/src/components/share/RLAShare.astro +60 -0
  316. package/src/components/shortcuts/RLAShortcuts.astro +430 -0
  317. package/src/components/sidebar/RLASidebar.astro +162 -0
  318. package/src/components/sidebar/sidebar.theme.ts +48 -0
  319. package/src/components/sidebar/sidebar.ts +53 -0
  320. package/src/components/skeleton/RLASkeleton.astro +22 -0
  321. package/src/components/skeleton/skeleton.theme.ts +21 -0
  322. package/src/components/slideover/RLASlideover.astro +221 -0
  323. package/src/components/slideover/slideover.theme.ts +59 -0
  324. package/src/components/slideover/slideover.ts +35 -0
  325. package/src/components/slider/RLASlider.astro +58 -0
  326. package/src/components/slider/slider.theme.ts +35 -0
  327. package/src/components/slider/slider.ts +41 -0
  328. package/src/components/speed-dial/RLASpeedDial.astro +21 -0
  329. package/src/components/speed-dial/speed-dial.theme.ts +13 -0
  330. package/src/components/spinner/RLASpinner.astro +27 -0
  331. package/src/components/spinner/spinner.theme.ts +33 -0
  332. package/src/components/spinner/spinner.ts +25 -0
  333. package/src/components/splitter/RLASplitter.astro +238 -0
  334. package/src/components/splitter/splitter.theme.ts +23 -0
  335. package/src/components/spoiler/RLASpoiler.astro +21 -0
  336. package/src/components/spoiler/spoiler.theme.ts +13 -0
  337. package/src/components/stepper/RLAStepper.astro +21 -0
  338. package/src/components/stepper/stepper.theme.ts +13 -0
  339. package/src/components/steps/RLASteps.astro +116 -0
  340. package/src/components/steps/steps.theme.ts +13 -0
  341. package/src/components/sticky-surface/RLAStickySurface.astro +38 -0
  342. package/src/components/sticky-surface/sticky-surface.theme.ts +12 -0
  343. package/src/components/surround/RLASurround.astro +40 -0
  344. package/src/components/switch/RLASwitch.astro +51 -0
  345. package/src/components/switch/switch.theme.ts +66 -0
  346. package/src/components/switch/switch.ts +41 -0
  347. package/src/components/table/RLATable.astro +63 -0
  348. package/src/components/table/table.theme.ts +36 -0
  349. package/src/components/table/table.ts +35 -0
  350. package/src/components/table-of-contents/RLATableOfContents.astro +157 -0
  351. package/src/components/table-of-contents/table-of-contents.theme.ts +67 -0
  352. package/src/components/tabs/RLATabs.astro +241 -0
  353. package/src/components/tabs/tabs.theme.ts +80 -0
  354. package/src/components/tabs/tabs.ts +79 -0
  355. package/src/components/textarea/RLATextarea.astro +43 -0
  356. package/src/components/textarea/RLVTextarea.vue +52 -0
  357. package/src/components/textarea/textarea.theme.ts +27 -0
  358. package/src/components/textarea/textarea.ts +52 -0
  359. package/src/components/theme-selector/RLAThemeSelector.astro +106 -0
  360. package/src/components/theme-selector/theme-selector.theme.ts +15 -0
  361. package/src/components/timeline/RLATimeline.astro +195 -0
  362. package/src/components/timeline/timeline.theme.ts +316 -0
  363. package/src/components/timeline/timeline.ts +61 -0
  364. package/src/components/toast/RLAToast.astro +120 -0
  365. package/src/components/toast/toast.theme.ts +37 -0
  366. package/src/components/toast/toast.ts +40 -0
  367. package/src/components/tooltip/RLATooltip.astro +33 -0
  368. package/src/components/tooltip/tooltip.theme.ts +28 -0
  369. package/src/components/tour/RLATour.astro +21 -0
  370. package/src/components/tour/tour.theme.ts +13 -0
  371. package/src/components/tree/RLATree.astro +21 -0
  372. package/src/components/tree/tree.theme.ts +13 -0
  373. package/src/components/user/RLAUser.astro +21 -0
  374. package/src/components/user/user.theme.ts +13 -0
  375. package/src/components/video/RLAVideo.astro +205 -0
  376. package/src/components/video/video.theme.ts +17 -0
  377. package/src/components/watermark/RLAWatermark.astro +21 -0
  378. package/src/components/watermark/watermark.theme.ts +13 -0
  379. package/src/components/window-mockup/RLAWindowMockup.astro +21 -0
  380. package/src/components/window-mockup/window-mockup.theme.ts +13 -0
  381. package/src/config/color.config.ts +300 -0
  382. package/src/config/ui.config.ts +89 -0
  383. package/src/env.d.ts +23 -25
  384. package/src/icons/defaults.ts +41 -0
  385. package/src/presets/index.ts +98 -59
  386. package/src/themes.ts +26 -0
  387. package/src/types/component.ts +28 -0
  388. package/src/ui.ts +159 -0
  389. package/src/utils/defineTheme.ts +1 -7
  390. package/src/utils/resolveClasses.ts +22 -4
  391. package/src/utils/resolveTheme.ts +13 -0
  392. package/src/utils/shortcuts.ts +57 -57
  393. package/src/utils/toast.ts +3 -4
  394. package/src/utils/useUi.ts +26 -12
  395. package/src/components/astro/RLA3dHover.astro +0 -23
  396. package/src/components/astro/RLAAccordion.astro +0 -94
  397. package/src/components/astro/RLAApp.astro +0 -23
  398. package/src/components/astro/RLAAspectRatio.astro +0 -27
  399. package/src/components/astro/RLAAudio.astro +0 -23
  400. package/src/components/astro/RLAAvatar.astro +0 -135
  401. package/src/components/astro/RLAAvatarGroup.astro +0 -23
  402. package/src/components/astro/RLABadge.astro +0 -36
  403. package/src/components/astro/RLABanner.astro +0 -138
  404. package/src/components/astro/RLABreadcrumb.astro +0 -61
  405. package/src/components/astro/RLABrowserMockup.astro +0 -23
  406. package/src/components/astro/RLAButton.astro +0 -177
  407. package/src/components/astro/RLACalendar.astro +0 -23
  408. package/src/components/astro/RLACallout.astro +0 -112
  409. package/src/components/astro/RLACard.astro +0 -79
  410. package/src/components/astro/RLACarousel.astro +0 -280
  411. package/src/components/astro/RLAChart.astro +0 -227
  412. package/src/components/astro/RLAChat.astro +0 -23
  413. package/src/components/astro/RLAChatMessage.astro +0 -23
  414. package/src/components/astro/RLAChatMessages.astro +0 -23
  415. package/src/components/astro/RLAChatPalette.astro +0 -23
  416. package/src/components/astro/RLAChatPrompt.astro +0 -23
  417. package/src/components/astro/RLAChatPromptSubmit.astro +0 -23
  418. package/src/components/astro/RLAChatReasoning.astro +0 -23
  419. package/src/components/astro/RLAChatShimmer.astro +0 -23
  420. package/src/components/astro/RLAChatTool.astro +0 -23
  421. package/src/components/astro/RLACheckbox.astro +0 -53
  422. package/src/components/astro/RLAChip.astro +0 -57
  423. package/src/components/astro/RLACollapsible.astro +0 -41
  424. package/src/components/astro/RLAColorArea.astro +0 -432
  425. package/src/components/astro/RLAColorField.astro +0 -300
  426. package/src/components/astro/RLAColorPicker.astro +0 -23
  427. package/src/components/astro/RLAColorSlider.astro +0 -413
  428. package/src/components/astro/RLACommandPalette.astro +0 -23
  429. package/src/components/astro/RLACompare.astro +0 -23
  430. package/src/components/astro/RLAConfirm.astro +0 -119
  431. package/src/components/astro/RLAContainer.astro +0 -23
  432. package/src/components/astro/RLAContextMenu.astro +0 -23
  433. package/src/components/astro/RLACopyMarkdown.astro +0 -78
  434. package/src/components/astro/RLADashboardGroup.astro +0 -23
  435. package/src/components/astro/RLADashboardNavbar.astro +0 -23
  436. package/src/components/astro/RLADashboardPanel.astro +0 -23
  437. package/src/components/astro/RLADashboardResizeHandle.astro +0 -23
  438. package/src/components/astro/RLADashboardSearch.astro +0 -23
  439. package/src/components/astro/RLADashboardSearchButton.astro +0 -23
  440. package/src/components/astro/RLADashboardSidebar.astro +0 -23
  441. package/src/components/astro/RLADashboardSidebarCollapse.astro +0 -23
  442. package/src/components/astro/RLADashboardSidebarToggle.astro +0 -23
  443. package/src/components/astro/RLADashboardToolbar.astro +0 -23
  444. package/src/components/astro/RLADock.astro +0 -23
  445. package/src/components/astro/RLADocsGamepad.astro +0 -178
  446. package/src/components/astro/RLADocsKeyboard.astro +0 -319
  447. package/src/components/astro/RLADrawer.astro +0 -125
  448. package/src/components/astro/RLADropdownMenu.astro +0 -109
  449. package/src/components/astro/RLAEditor.astro +0 -23
  450. package/src/components/astro/RLAEmpty.astro +0 -23
  451. package/src/components/astro/RLAError.astro +0 -23
  452. package/src/components/astro/RLAFieldGroup.astro +0 -38
  453. package/src/components/astro/RLAFieldset.astro +0 -23
  454. package/src/components/astro/RLAFileUpload.astro +0 -148
  455. package/src/components/astro/RLAFloatingAction.astro +0 -23
  456. package/src/components/astro/RLAFooter.astro +0 -40
  457. package/src/components/astro/RLAForm.astro +0 -23
  458. package/src/components/astro/RLAFormField.astro +0 -47
  459. package/src/components/astro/RLAGallery.astro +0 -23
  460. package/src/components/astro/RLAGrid.astro +0 -31
  461. package/src/components/astro/RLAHead.astro +0 -528
  462. package/src/components/astro/RLAHeader.astro +0 -67
  463. package/src/components/astro/RLAHoverCard.astro +0 -35
  464. package/src/components/astro/RLAIcon.astro +0 -31
  465. package/src/components/astro/RLAImage.astro +0 -274
  466. package/src/components/astro/RLAInput.astro +0 -67
  467. package/src/components/astro/RLAInputDate.astro +0 -23
  468. package/src/components/astro/RLAInputMenu.astro +0 -167
  469. package/src/components/astro/RLAInputNumber.astro +0 -23
  470. package/src/components/astro/RLAInputTags.astro +0 -23
  471. package/src/components/astro/RLAInputTime.astro +0 -23
  472. package/src/components/astro/RLAKbd.astro +0 -32
  473. package/src/components/astro/RLAKnob.astro +0 -23
  474. package/src/components/astro/RLALabel.astro +0 -27
  475. package/src/components/astro/RLALayoutGrid.astro +0 -395
  476. package/src/components/astro/RLALink.astro +0 -42
  477. package/src/components/astro/RLALinkGroup.astro +0 -100
  478. package/src/components/astro/RLAListbox.astro +0 -23
  479. package/src/components/astro/RLALocaleSelector.astro +0 -131
  480. package/src/components/astro/RLALogo.astro +0 -117
  481. package/src/components/astro/RLAMain.astro +0 -39
  482. package/src/components/astro/RLAMarquee.astro +0 -43
  483. package/src/components/astro/RLAMeter.astro +0 -23
  484. package/src/components/astro/RLAModal.astro +0 -129
  485. package/src/components/astro/RLANavigationMenu.astro +0 -381
  486. package/src/components/astro/RLAPackageManagers.astro +0 -81
  487. package/src/components/astro/RLAPage.astro +0 -23
  488. package/src/components/astro/RLAPageAside.astro +0 -23
  489. package/src/components/astro/RLAPageBody.astro +0 -23
  490. package/src/components/astro/RLAPageHeader.astro +0 -23
  491. package/src/components/astro/RLAPageSection.astro +0 -157
  492. package/src/components/astro/RLAPagination.astro +0 -96
  493. package/src/components/astro/RLAPassword.astro +0 -23
  494. package/src/components/astro/RLAPhoneMockup.astro +0 -23
  495. package/src/components/astro/RLAPinInput.astro +0 -23
  496. package/src/components/astro/RLAPlaceholder.astro +0 -45
  497. package/src/components/astro/RLAPopover.astro +0 -130
  498. package/src/components/astro/RLAPost.astro +0 -74
  499. package/src/components/astro/RLAPricingPlan.astro +0 -23
  500. package/src/components/astro/RLAPricingTable.astro +0 -23
  501. package/src/components/astro/RLAProgress.astro +0 -51
  502. package/src/components/astro/RLAProse.astro +0 -23
  503. package/src/components/astro/RLAQrCode.astro +0 -23
  504. package/src/components/astro/RLAQuote.astro +0 -15
  505. package/src/components/astro/RLARadioGroup.astro +0 -23
  506. package/src/components/astro/RLARating.astro +0 -23
  507. package/src/components/astro/RLAScrollArea.astro +0 -160
  508. package/src/components/astro/RLAScrollToTop.astro +0 -191
  509. package/src/components/astro/RLASearch.astro +0 -282
  510. package/src/components/astro/RLASelect.astro +0 -151
  511. package/src/components/astro/RLASeparator.astro +0 -83
  512. package/src/components/astro/RLAShare.astro +0 -60
  513. package/src/components/astro/RLAShortcuts.astro +0 -429
  514. package/src/components/astro/RLASidebar.astro +0 -158
  515. package/src/components/astro/RLASkeleton.astro +0 -24
  516. package/src/components/astro/RLASlideover.astro +0 -171
  517. package/src/components/astro/RLASlider.astro +0 -58
  518. package/src/components/astro/RLASpeedDial.astro +0 -23
  519. package/src/components/astro/RLASpinner.astro +0 -27
  520. package/src/components/astro/RLASplitter.astro +0 -242
  521. package/src/components/astro/RLASpoiler.astro +0 -23
  522. package/src/components/astro/RLAStepper.astro +0 -23
  523. package/src/components/astro/RLASteps.astro +0 -118
  524. package/src/components/astro/RLAStickySurface.astro +0 -38
  525. package/src/components/astro/RLASurround.astro +0 -39
  526. package/src/components/astro/RLASwitch.astro +0 -51
  527. package/src/components/astro/RLATable.astro +0 -63
  528. package/src/components/astro/RLATableOfContents.astro +0 -158
  529. package/src/components/astro/RLATabs.astro +0 -147
  530. package/src/components/astro/RLATextarea.astro +0 -45
  531. package/src/components/astro/RLAThemeSelector.astro +0 -107
  532. package/src/components/astro/RLATimeline.astro +0 -23
  533. package/src/components/astro/RLAToast.astro +0 -121
  534. package/src/components/astro/RLATooltip.astro +0 -35
  535. package/src/components/astro/RLATour.astro +0 -23
  536. package/src/components/astro/RLATree.astro +0 -23
  537. package/src/components/astro/RLAUser.astro +0 -23
  538. package/src/components/astro/RLAVideo.astro +0 -201
  539. package/src/components/astro/RLAWatermark.astro +0 -23
  540. package/src/components/astro/RLAWindowMockup.astro +0 -23
  541. package/src/components/vue/RLVBanner.vue +0 -230
  542. package/src/components/vue/RLVButton.vue +0 -105
  543. package/src/components/vue/RLVCheckbox.vue +0 -70
  544. package/src/components/vue/RLVFooter.vue +0 -38
  545. package/src/components/vue/RLVForm.vue +0 -44
  546. package/src/components/vue/RLVFormField.vue +0 -58
  547. package/src/components/vue/RLVHeader.vue +0 -122
  548. package/src/components/vue/RLVIcon.vue +0 -27
  549. package/src/components/vue/RLVInput.vue +0 -94
  550. package/src/components/vue/RLVLogo.vue +0 -90
  551. package/src/components/vue/RLVPlaceholder.vue +0 -50
  552. package/src/components/vue/RLVPost.vue +0 -69
  553. package/src/components/vue/RLVPosts.vue +0 -21
  554. package/src/components/vue/RLVProgress.vue +0 -60
  555. package/src/components/vue/RLVScrollToTop.vue +0 -147
  556. package/src/components/vue/RLVSection.vue +0 -151
  557. package/src/components/vue/RLVToast.vue +0 -81
  558. package/src/components/vue/RLVToaster.vue +0 -41
  559. package/src/config/index.ts +0 -1
  560. package/src/docs/components/ApiChangelog.astro +0 -147
  561. package/src/docs/components/ApiEmits.astro +0 -46
  562. package/src/docs/components/ApiProps.astro +0 -47
  563. package/src/docs/components/ApiSlots.astro +0 -50
  564. package/src/docs/components/ApiTheme.astro +0 -100
  565. package/src/docs/extractAll.ts +0 -94
  566. package/src/docs/extractors/extractAstro.ts +0 -69
  567. package/src/docs/extractors/extractTheme.ts +0 -56
  568. package/src/docs/extractors/extractVue.ts +0 -435
  569. package/src/docs/types.ts +0 -40
  570. package/src/docs/utils.ts +0 -44
  571. package/src/integrations/index.ts +0 -2
  572. package/src/integrations/ui.ts +0 -216
  573. package/src/presets/defaults.ts +0 -297
  574. package/src/styles/index.css +0 -158
  575. package/src/themes/3d-hover.theme.ts +0 -13
  576. package/src/themes/accordion.theme.ts +0 -39
  577. package/src/themes/app.theme.ts +0 -13
  578. package/src/themes/aspect-ratio.theme.ts +0 -13
  579. package/src/themes/audio.theme.ts +0 -13
  580. package/src/themes/avatar-group.theme.ts +0 -12
  581. package/src/themes/avatar.theme.ts +0 -84
  582. package/src/themes/badge.theme.ts +0 -168
  583. package/src/themes/banner.theme.ts +0 -49
  584. package/src/themes/breadcrumb.theme.ts +0 -17
  585. package/src/themes/browser-mockup.theme.ts +0 -13
  586. package/src/themes/button.theme.ts +0 -223
  587. package/src/themes/calendar.theme.ts +0 -13
  588. package/src/themes/callout.theme.ts +0 -104
  589. package/src/themes/card.theme.ts +0 -50
  590. package/src/themes/carousel.theme.ts +0 -34
  591. package/src/themes/chart.theme.ts +0 -22
  592. package/src/themes/chat-message.theme.ts +0 -13
  593. package/src/themes/chat-messages.theme.ts +0 -13
  594. package/src/themes/chat-palette.theme.ts +0 -13
  595. package/src/themes/chat-prompt-submit.theme.ts +0 -13
  596. package/src/themes/chat-prompt.theme.ts +0 -13
  597. package/src/themes/chat-reasoning.theme.ts +0 -13
  598. package/src/themes/chat-shimmer.theme.ts +0 -13
  599. package/src/themes/chat-tool.theme.ts +0 -13
  600. package/src/themes/chat.theme.ts +0 -13
  601. package/src/themes/checkbox.theme.ts +0 -49
  602. package/src/themes/chip.theme.ts +0 -73
  603. package/src/themes/collapsible.theme.ts +0 -22
  604. package/src/themes/color-area.theme.ts +0 -33
  605. package/src/themes/color-field.theme.ts +0 -32
  606. package/src/themes/color-picker.theme.ts +0 -13
  607. package/src/themes/color-slider.theme.ts +0 -34
  608. package/src/themes/command-palette.theme.ts +0 -13
  609. package/src/themes/compare.theme.ts +0 -13
  610. package/src/themes/confirm.theme.ts +0 -48
  611. package/src/themes/container.theme.ts +0 -13
  612. package/src/themes/context-menu.theme.ts +0 -13
  613. package/src/themes/dashboard-group.theme.ts +0 -13
  614. package/src/themes/dashboard-navbar.theme.ts +0 -13
  615. package/src/themes/dashboard-panel.theme.ts +0 -13
  616. package/src/themes/dashboard-resize-handle.theme.ts +0 -13
  617. package/src/themes/dashboard-search-button.theme.ts +0 -13
  618. package/src/themes/dashboard-search.theme.ts +0 -13
  619. package/src/themes/dashboard-sidebar-collapse.theme.ts +0 -13
  620. package/src/themes/dashboard-sidebar-toggle.theme.ts +0 -13
  621. package/src/themes/dashboard-sidebar.theme.ts +0 -13
  622. package/src/themes/dashboard-toolbar.theme.ts +0 -13
  623. package/src/themes/dock.theme.ts +0 -13
  624. package/src/themes/drawer.theme.ts +0 -61
  625. package/src/themes/dropdown-menu.theme.ts +0 -29
  626. package/src/themes/editor.theme.ts +0 -13
  627. package/src/themes/empty.theme.ts +0 -13
  628. package/src/themes/error.theme.ts +0 -13
  629. package/src/themes/field-group.theme.ts +0 -24
  630. package/src/themes/fieldset.theme.ts +0 -13
  631. package/src/themes/file-upload.theme.ts +0 -24
  632. package/src/themes/floating-action.theme.ts +0 -13
  633. package/src/themes/footer.theme.ts +0 -30
  634. package/src/themes/form-field.theme.ts +0 -24
  635. package/src/themes/form.theme.ts +0 -13
  636. package/src/themes/gallery.theme.ts +0 -13
  637. package/src/themes/grid.theme.ts +0 -38
  638. package/src/themes/head.theme.ts +0 -13
  639. package/src/themes/header.theme.ts +0 -46
  640. package/src/themes/hover-card.theme.ts +0 -29
  641. package/src/themes/icon.theme.ts +0 -23
  642. package/src/themes/image.theme.ts +0 -33
  643. package/src/themes/index.ts +0 -18
  644. package/src/themes/input-date.theme.ts +0 -13
  645. package/src/themes/input-menu.theme.ts +0 -35
  646. package/src/themes/input-number.theme.ts +0 -13
  647. package/src/themes/input-tags.theme.ts +0 -13
  648. package/src/themes/input-time.theme.ts +0 -13
  649. package/src/themes/input.theme.ts +0 -48
  650. package/src/themes/kbd.theme.ts +0 -94
  651. package/src/themes/knob.theme.ts +0 -13
  652. package/src/themes/label.theme.ts +0 -22
  653. package/src/themes/layout-grid.theme.ts +0 -16
  654. package/src/themes/link-group.theme.ts +0 -28
  655. package/src/themes/link.theme.ts +0 -13
  656. package/src/themes/listbox.theme.ts +0 -13
  657. package/src/themes/locale-selector.theme.ts +0 -49
  658. package/src/themes/logo.theme.ts +0 -13
  659. package/src/themes/main.theme.ts +0 -13
  660. package/src/themes/marquee.theme.ts +0 -29
  661. package/src/themes/meter.theme.ts +0 -13
  662. package/src/themes/modal.theme.ts +0 -49
  663. package/src/themes/navigation-menu.theme.ts +0 -44
  664. package/src/themes/page-aside.theme.ts +0 -13
  665. package/src/themes/page-body.theme.ts +0 -13
  666. package/src/themes/page-header.theme.ts +0 -13
  667. package/src/themes/page-section.theme.ts +0 -189
  668. package/src/themes/page.theme.ts +0 -13
  669. package/src/themes/pagination.theme.ts +0 -28
  670. package/src/themes/password.theme.ts +0 -13
  671. package/src/themes/phone-mockup.theme.ts +0 -13
  672. package/src/themes/pin-input.theme.ts +0 -14
  673. package/src/themes/placeholder.theme.ts +0 -15
  674. package/src/themes/popover.theme.ts +0 -27
  675. package/src/themes/post.theme.ts +0 -53
  676. package/src/themes/pricing-plan.theme.ts +0 -13
  677. package/src/themes/pricing-table.theme.ts +0 -13
  678. package/src/themes/progress.theme.ts +0 -37
  679. package/src/themes/prose.theme.ts +0 -13
  680. package/src/themes/qr-code.theme.ts +0 -13
  681. package/src/themes/quote.theme.ts +0 -13
  682. package/src/themes/radio-group.theme.ts +0 -13
  683. package/src/themes/rating.theme.ts +0 -13
  684. package/src/themes/scroll-area.theme.ts +0 -26
  685. package/src/themes/scroll-to-top.theme.ts +0 -51
  686. package/src/themes/search.theme.ts +0 -64
  687. package/src/themes/select.theme.ts +0 -29
  688. package/src/themes/separator.theme.ts +0 -147
  689. package/src/themes/sidebar.theme.ts +0 -38
  690. package/src/themes/skeleton.theme.ts +0 -21
  691. package/src/themes/slideover.theme.ts +0 -59
  692. package/src/themes/slider.theme.ts +0 -35
  693. package/src/themes/speed-dial.theme.ts +0 -13
  694. package/src/themes/spinner.theme.ts +0 -33
  695. package/src/themes/splitter.theme.ts +0 -23
  696. package/src/themes/spoiler.theme.ts +0 -13
  697. package/src/themes/stepper.theme.ts +0 -13
  698. package/src/themes/steps.theme.ts +0 -13
  699. package/src/themes/sticky-surface.theme.ts +0 -12
  700. package/src/themes/switch.theme.ts +0 -66
  701. package/src/themes/table-of-contents.theme.ts +0 -67
  702. package/src/themes/table.theme.ts +0 -36
  703. package/src/themes/tabs.theme.ts +0 -52
  704. package/src/themes/textarea.theme.ts +0 -27
  705. package/src/themes/theme-selector.theme.ts +0 -15
  706. package/src/themes/timeline.theme.ts +0 -18
  707. package/src/themes/toast.theme.ts +0 -37
  708. package/src/themes/tooltip.theme.ts +0 -28
  709. package/src/themes/tour.theme.ts +0 -13
  710. package/src/themes/tree.theme.ts +0 -13
  711. package/src/themes/user.theme.ts +0 -13
  712. package/src/themes/video.theme.ts +0 -17
  713. package/src/themes/watermark.theme.ts +0 -13
  714. package/src/themes/window-mockup.theme.ts +0 -13
  715. package/src/types/componentVariant.ts +0 -14
  716. package/src/types/components/avatar.ts +0 -76
  717. package/src/types/components/badge.ts +0 -33
  718. package/src/types/components/button.ts +0 -74
  719. package/src/types/components/callout.ts +0 -37
  720. package/src/types/components/changelog.ts +0 -11
  721. package/src/types/components/chart.ts +0 -39
  722. package/src/types/components/checkbox.ts +0 -41
  723. package/src/types/components/chip.ts +0 -17
  724. package/src/types/components/collapsible.ts +0 -32
  725. package/src/types/components/color-area.ts +0 -19
  726. package/src/types/components/color-field.ts +0 -21
  727. package/src/types/components/color-slider.ts +0 -20
  728. package/src/types/components/dropdown-menu.ts +0 -43
  729. package/src/types/components/file-upload.ts +0 -40
  730. package/src/types/components/input-menu.ts +0 -44
  731. package/src/types/components/input-pin.ts +0 -36
  732. package/src/types/components/input.ts +0 -69
  733. package/src/types/components/link-group.ts +0 -47
  734. package/src/types/components/link.ts +0 -32
  735. package/src/types/components/locale-selector.ts +0 -33
  736. package/src/types/components/modal.ts +0 -39
  737. package/src/types/components/navigation-menu.ts +0 -59
  738. package/src/types/components/page-section.ts +0 -63
  739. package/src/types/components/pin-input.ts +0 -11
  740. package/src/types/components/progress.ts +0 -33
  741. package/src/types/components/scroll-to-top.ts +0 -37
  742. package/src/types/components/select.ts +0 -44
  743. package/src/types/components/sidebar.ts +0 -83
  744. package/src/types/components/slideover.ts +0 -31
  745. package/src/types/components/slider.ts +0 -41
  746. package/src/types/components/spinner.ts +0 -25
  747. package/src/types/components/switch.ts +0 -41
  748. package/src/types/components/table.ts +0 -31
  749. package/src/types/components/tabs.ts +0 -44
  750. package/src/types/components/textarea.ts +0 -52
  751. package/src/types/components/timeline.ts +0 -11
  752. package/src/types/components/toast.ts +0 -40
  753. package/src/types/docs.ts +0 -40
  754. package/src/types/index.ts +0 -153
  755. package/src/types/theme.ts +0 -11
  756. package/src/utils/docs.ts +0 -365
  757. package/src/utils/embed.ts +0 -105
  758. package/src/utils/index.ts +0 -9
  759. /package/src/{types/components → components/3d-hover}/3d-hover.ts +0 -0
  760. /package/src/{types/components → components/accordion}/accordion.ts +0 -0
  761. /package/src/{types/components → components/app}/app.ts +0 -0
  762. /package/src/{types/components → components/aspect-ratio}/aspect-ratio.ts +0 -0
  763. /package/src/{types/components → components/audio}/audio.ts +0 -0
  764. /package/src/{types/components → components/avatar-group}/avatar-group.ts +0 -0
  765. /package/src/{types/components → components/banner}/banner.ts +0 -0
  766. /package/src/{types/components → components/breadcrumb}/breadcrumb.ts +0 -0
  767. /package/src/{types/components → components/browser-mockup}/browser-mockup.ts +0 -0
  768. /package/src/{types/components → components/calendar}/calendar.ts +0 -0
  769. /package/src/{types/components → components/card}/card.ts +0 -0
  770. /package/src/{types/components → components/carousel}/carousel.ts +0 -0
  771. /package/src/{types/components → components/chat}/chat.ts +0 -0
  772. /package/src/{types/components → components/chat-message}/chat-message.ts +0 -0
  773. /package/src/{types/components → components/chat-messages}/chat-messages.ts +0 -0
  774. /package/src/{types/components → components/chat-palette}/chat-palette.ts +0 -0
  775. /package/src/{types/components → components/chat-prompt}/chat-prompt.ts +0 -0
  776. /package/src/{types/components → components/chat-prompt-submit}/chat-prompt-submit.ts +0 -0
  777. /package/src/{types/components → components/chat-reasoning}/chat-reasoning.ts +0 -0
  778. /package/src/{types/components → components/chat-shimmer}/chat-shimmer.ts +0 -0
  779. /package/src/{types/components → components/chat-tool}/chat-tool.ts +0 -0
  780. /package/src/{types/components → components/color-picker}/color-picker.ts +0 -0
  781. /package/src/{utils → components/color-picker}/color.ts +0 -0
  782. /package/src/{types/components → components/command-palette}/command-palette.ts +0 -0
  783. /package/src/{types/components → components/compare}/compare.ts +0 -0
  784. /package/src/{types/components → components/confirm}/confirm.ts +0 -0
  785. /package/src/{types/components → components/container}/container.ts +0 -0
  786. /package/src/{types/components → components/context-menu}/context-menu.ts +0 -0
  787. /package/src/{types/components → components/dashboard-group}/dashboard-group.ts +0 -0
  788. /package/src/{types/components → components/dashboard-navbar}/dashboard-navbar.ts +0 -0
  789. /package/src/{types/components → components/dashboard-panel}/dashboard-panel.ts +0 -0
  790. /package/src/{types/components → components/dashboard-resize-handle}/dashboard-resize-handle.ts +0 -0
  791. /package/src/{types/components → components/dashboard-search}/dashboard-search.ts +0 -0
  792. /package/src/{types/components → components/dashboard-search-button}/dashboard-search-button.ts +0 -0
  793. /package/src/{types/components → components/dashboard-sidebar}/dashboard-sidebar.ts +0 -0
  794. /package/src/{types/components → components/dashboard-sidebar-collapse}/dashboard-sidebar-collapse.ts +0 -0
  795. /package/src/{types/components → components/dashboard-sidebar-toggle}/dashboard-sidebar-toggle.ts +0 -0
  796. /package/src/{types/components → components/dashboard-toolbar}/dashboard-toolbar.ts +0 -0
  797. /package/src/components/{astro → date}/RLADate.astro +0 -0
  798. /package/src/{types/components → components/dock}/dock.ts +0 -0
  799. /package/src/{types/components → components/drawer}/drawer.ts +0 -0
  800. /package/src/{types/components → components/editor}/editor.ts +0 -0
  801. /package/src/{types/components → components/empty}/empty.ts +0 -0
  802. /package/src/{types/components → components/error}/error.ts +0 -0
  803. /package/src/{types/components → components/field-group}/field-group.ts +0 -0
  804. /package/src/{types/components → components/fieldset}/fieldset.ts +0 -0
  805. /package/src/{types/components → components/floating-action}/floating-action.ts +0 -0
  806. /package/src/{types/components → components/footer}/footer.ts +0 -0
  807. /package/src/{types/components → components/form}/form.ts +0 -0
  808. /package/src/{types/components → components/form-field}/form-field.ts +0 -0
  809. /package/src/{types/components → components/gallery}/gallery.ts +0 -0
  810. /package/src/{types/components → components/grid}/grid.ts +0 -0
  811. /package/src/{types/components → components/header}/header.ts +0 -0
  812. /package/src/{types/components → components/hover-card}/hover-card.ts +0 -0
  813. /package/src/{types/components → components/icon}/icon.ts +0 -0
  814. /package/src/{types/components → components/image}/image.ts +0 -0
  815. /package/src/{types/components → components/input-date}/input-date.ts +0 -0
  816. /package/src/{types/components → components/input-number}/input-number.ts +0 -0
  817. /package/src/{types/components → components/input-tags}/input-tags.ts +0 -0
  818. /package/src/{types/components → components/input-time}/input-time.ts +0 -0
  819. /package/src/{types/components → components/kbd}/kbd.ts +0 -0
  820. /package/src/{types/components → components/knob}/knob.ts +0 -0
  821. /package/src/{types/components → components/label}/label.ts +0 -0
  822. /package/src/{types/components → components/layout-grid}/layout-grid.ts +0 -0
  823. /package/src/{types/components → components/listbox}/listbox.ts +0 -0
  824. /package/src/{types/components → components/logo}/logo.ts +0 -0
  825. /package/src/{types/components → components/main}/main.ts +0 -0
  826. /package/src/{types/components → components/marquee}/marquee.ts +0 -0
  827. /package/src/{types/components → components/meter}/meter.ts +0 -0
  828. /package/src/{types/components → components/page}/page.ts +0 -0
  829. /package/src/{types/components → components/page-aside}/page-aside.ts +0 -0
  830. /package/src/{types/components → components/page-body}/page-body.ts +0 -0
  831. /package/src/{types/components → components/page-header}/page-header.ts +0 -0
  832. /package/src/{types/components → components/pagination}/pagination.ts +0 -0
  833. /package/src/{types/components → components/password}/password.ts +0 -0
  834. /package/src/{types/components → components/phone-mockup}/phone-mockup.ts +0 -0
  835. /package/src/{types/components → components/placeholder}/placeholder.ts +0 -0
  836. /package/src/{types/components → components/popover}/popover.ts +0 -0
  837. /package/src/{types/components → components/post}/post.ts +0 -0
  838. /package/src/{types/components → components/pricing-plan}/pricing-plan.ts +0 -0
  839. /package/src/{types/components → components/pricing-table}/pricing-table.ts +0 -0
  840. /package/src/{types/components → components/prose}/prose.ts +0 -0
  841. /package/src/{types/components → components/qr-code}/qr-code.ts +0 -0
  842. /package/src/{types/components → components/quote}/quote.ts +0 -0
  843. /package/src/{types/components → components/radio-group}/radio-group.ts +0 -0
  844. /package/src/{types/components → components/rating}/rating.ts +0 -0
  845. /package/src/{types/components → components/scroll-area}/scroll-area.ts +0 -0
  846. /package/src/{types/components → components/search}/search.ts +0 -0
  847. /package/src/{types/components → components/separator}/separator.ts +0 -0
  848. /package/src/{types/components → components/skeleton}/skeleton.ts +0 -0
  849. /package/src/{types/components → components/speed-dial}/speed-dial.ts +0 -0
  850. /package/src/{types/components → components/splitter}/splitter.ts +0 -0
  851. /package/src/{types/components → components/spoiler}/spoiler.ts +0 -0
  852. /package/src/{types/components → components/stepper}/stepper.ts +0 -0
  853. /package/src/{types/components → components/steps}/steps.ts +0 -0
  854. /package/src/{types/components → components/sticky-surface}/sticky-surface.ts +0 -0
  855. /package/src/{types/components → components/table-of-contents}/table-of-contents.ts +0 -0
  856. /package/src/{types/components → components/theme-selector}/theme-selector.ts +0 -0
  857. /package/src/{types/components → components/tooltip}/tooltip.ts +0 -0
  858. /package/src/{types/components → components/tour}/tour.ts +0 -0
  859. /package/src/{types/components → components/tree}/tree.ts +0 -0
  860. /package/src/{types/components → components/user}/user.ts +0 -0
  861. /package/src/{types/components → components/video}/video.ts +0 -0
  862. /package/src/{types/components → components/watermark}/watermark.ts +0 -0
  863. /package/src/{types/components → components/window-mockup}/window-mockup.ts +0 -0
@@ -0,0 +1,393 @@
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi } from "../../utils/useUi"
4
+ import { resolveClasses } from "../../utils/resolveClasses"
5
+ import type { LayoutGridProps } from "./layout-grid"
6
+ import layoutGridTheme from "./layout-grid.theme"
7
+
8
+ const layoutGrid = scv(layoutGridTheme)
9
+
10
+ const {
11
+ cols = 4,
12
+ smCols = 4,
13
+ mdCols = 8,
14
+ lgCols = 12,
15
+ xlCols = 12,
16
+ smBreakpoint = 640,
17
+ mdBreakpoint = 768,
18
+ lgBreakpoint = 1024,
19
+ xlBreakpoint = 1280,
20
+ gutter = [0.75, 1, 1.5, 1.5, 1.5],
21
+ margin = [0.75, 1, 1.5, 1.5, 1.5],
22
+ gridColor = "#ff0000",
23
+ gridOpacity = 0.1,
24
+ maxWidth = "1440px",
25
+ innerMaxWidth = "768px",
26
+ innerGridColor = "#10b981",
27
+ innerGridOpacity = 0.1,
28
+ showInnerBackground = true,
29
+ showBackground = true,
30
+ showFullWidth = true,
31
+ fullWidthGridColor = "#3b82f6",
32
+ fullWidthGridOpacity = 0.05,
33
+ showFullWidthBackground = true,
34
+ zIndex = 1000,
35
+ shortcut = "meta_shift_g",
36
+ devOnly = true,
37
+ ui: uiProp,
38
+ class: className,
39
+ ...rest
40
+ } = Astro.props as LayoutGridProps
41
+
42
+ const isDev = import.meta.env.DEV
43
+ const shouldRender = !devOnly || isDev
44
+
45
+ const normalizeArray = (val: number | number[] | undefined, defaultVal: number): number[] => {
46
+ if (val === undefined) return [defaultVal, defaultVal, defaultVal, defaultVal, defaultVal]
47
+ if (!Array.isArray(val)) return [val, val, val, val, val]
48
+ const arr = [...val]
49
+ while (arr.length < 5) {
50
+ const lastVal = arr[arr.length - 1]
51
+ arr.push(lastVal !== undefined ? lastVal : defaultVal)
52
+ }
53
+ return arr
54
+ }
55
+
56
+ const gutterArray = normalizeArray(gutter, 1)
57
+ const marginArray = normalizeArray(margin, 1)
58
+
59
+ const classes = resolveClasses(layoutGrid, {}, useUi("layoutGrid", uiProp), className)
60
+ ---
61
+
62
+ {shouldRender && (
63
+ <rla-layout-grid
64
+ class={classes.root}
65
+ data-cols={cols}
66
+ data-sm-cols={smCols}
67
+ data-md-cols={mdCols}
68
+ data-lg-cols={lgCols}
69
+ data-xl-cols={xlCols}
70
+ data-sm-breakpoint={smBreakpoint}
71
+ data-md-breakpoint={mdBreakpoint}
72
+ data-lg-breakpoint={lgBreakpoint}
73
+ data-xl-breakpoint={xlBreakpoint}
74
+ data-gutter={JSON.stringify(gutterArray)}
75
+ data-margin={JSON.stringify(marginArray)}
76
+ data-grid-color={gridColor}
77
+ data-grid-opacity={gridOpacity}
78
+ data-show-background={showBackground ? "true" : "false"}
79
+ data-max-width={maxWidth}
80
+ data-inner-max-width={innerMaxWidth}
81
+ data-inner-color={innerGridColor}
82
+ data-inner-opacity={innerGridOpacity}
83
+ data-show-inner-background={showInnerBackground ? "true" : "false"}
84
+ data-show-full-width={showFullWidth ? "true" : "false"}
85
+ data-full-width-color={fullWidthGridColor}
86
+ data-full-width-opacity={fullWidthGridOpacity}
87
+ data-show-full-width-background={showFullWidthBackground ? "true" : "false"}
88
+ data-shortcut={shortcut}
89
+ {...rest}
90
+ >
91
+ <aside class={classes.overlay} data-slot="overlay" style={`z-index: ${zIndex}; display: none;`} id="rla-layout-grid-overlay">
92
+ <!-- Container holding absolutely-positioned viewport columns -->
93
+ <div style="position: relative; width: 100%; height: 100%;" data-slot="columns-container"></div>
94
+ <div data-slot="indicator" style="position: fixed; bottom: 20px; right: 20px; background: rgba(0,0,0,0.85); color: #fff; padding: 6px 12px; border-radius: 6px; font-family: var(--font-mono, monospace); font-size: 11px; font-weight: bold; pointer-events: none; border: 1px solid rgba(255,255,255,0.15); box-shadow: 0 4px 12px rgba(0,0,0,0.5); letter-spacing: 0.05em; display: flex; align-items: center; gap: 8px;"></div>
95
+ </aside>
96
+ </rla-layout-grid>
97
+ )}
98
+
99
+ <script>
100
+ import { defineShortcuts } from "../../utils/shortcuts"
101
+
102
+ function hexToRgba(hex: string, alpha: number): string {
103
+ const cleanHex = hex.replace('#', '')
104
+ const num = parseInt(cleanHex, 16)
105
+ const r = (num >> 16) & 255
106
+ const g = (num >> 8) & 255
107
+ const b = num & 255
108
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`
109
+ }
110
+
111
+ class RLALayoutGrid extends HTMLElement {
112
+ private isVisible = false
113
+ private gridElement: HTMLElement | null = null
114
+ private columnsContainer: HTMLElement | null = null
115
+ private indicatorElement: HTMLElement | null = null
116
+ private resizeObserver: ResizeObserver | null = null
117
+ private shortcutsCleanup: (() => void) | null = null
118
+ private currentBreakpoint: 'base' | 'sm' | 'md' | 'lg' | 'xl' = 'base'
119
+
120
+ constructor() {
121
+ super()
122
+ this.handleResize = this.handleResize.bind(this)
123
+ }
124
+
125
+ connectedCallback() {
126
+ this.style.display = 'contents'
127
+ this.gridElement = this.querySelector('[data-slot="overlay"], #rla-layout-grid-overlay') as HTMLElement
128
+ this.columnsContainer = this.querySelector('[data-slot="columns-container"]') as HTMLElement
129
+ this.indicatorElement = this.querySelector('[data-slot="indicator"]') as HTMLElement
130
+
131
+ // Restore visibility state from localStorage
132
+ this.isVisible = localStorage.getItem('rla-grid-visible') === 'true'
133
+ if (this.gridElement) {
134
+ this.gridElement.style.display = this.isVisible ? 'block' : 'none'
135
+ }
136
+
137
+ // Initialize ResizeObserver to monitor viewport changes
138
+ this.resizeObserver = new ResizeObserver(this.handleResize)
139
+ this.resizeObserver.observe(document.documentElement)
140
+
141
+ // Initialize grid
142
+ this.updateGrid()
143
+
144
+ // Set up shortcuts using the library system
145
+ const shortcutKey = this.dataset.shortcut || 'meta_shift_g'
146
+ this.shortcutsCleanup = defineShortcuts({
147
+ [shortcutKey]: {
148
+ handler: (e) => {
149
+ e.preventDefault()
150
+ this.toggleGrid()
151
+ },
152
+ label: "Toggle Layout Grid",
153
+ description: "Show or hide the development layout grid guide overlay",
154
+ category: "development"
155
+ }
156
+ })
157
+ }
158
+
159
+ disconnectedCallback() {
160
+ this.resizeObserver?.disconnect()
161
+ if (this.shortcutsCleanup) {
162
+ this.shortcutsCleanup()
163
+ this.shortcutsCleanup = null
164
+ }
165
+ }
166
+
167
+ private handleResize() {
168
+ const width = document.documentElement.clientWidth
169
+ const smBreakpoint = parseInt(this.dataset.smBreakpoint || '640')
170
+ const mdBreakpoint = parseInt(this.dataset.mdBreakpoint || '768')
171
+ const lgBreakpoint = parseInt(this.dataset.lgBreakpoint || '1024')
172
+ const xlBreakpoint = parseInt(this.dataset.xlBreakpoint || '1280')
173
+
174
+ let newBreakpoint: 'base' | 'sm' | 'md' | 'lg' | 'xl' = 'base'
175
+
176
+ if (width >= xlBreakpoint) {
177
+ newBreakpoint = 'xl'
178
+ } else if (width >= lgBreakpoint) {
179
+ newBreakpoint = 'lg'
180
+ } else if (width >= mdBreakpoint) {
181
+ newBreakpoint = 'md'
182
+ } else if (width >= smBreakpoint) {
183
+ newBreakpoint = 'sm'
184
+ }
185
+
186
+ this.currentBreakpoint = newBreakpoint
187
+ this.updateGrid()
188
+ }
189
+
190
+ private updateGrid() {
191
+ if (!this.columnsContainer) return
192
+
193
+ const width = document.documentElement.clientWidth
194
+ const smBreakpoint = parseInt(this.dataset.smBreakpoint || '640')
195
+ const mdBreakpoint = parseInt(this.dataset.mdBreakpoint || '768')
196
+ const lgBreakpoint = parseInt(this.dataset.lgBreakpoint || '1024')
197
+ const xlBreakpoint = parseInt(this.dataset.xlBreakpoint || '1280')
198
+
199
+ let breakpointIndex = 0
200
+ let colCount = parseInt(this.dataset.cols || '4')
201
+ let breakpointThreshold = 0
202
+
203
+ switch (this.currentBreakpoint) {
204
+ case 'xl':
205
+ breakpointIndex = 4
206
+ colCount = parseInt(this.dataset.xlCols || '12')
207
+ breakpointThreshold = xlBreakpoint
208
+ break
209
+ case 'lg':
210
+ breakpointIndex = 3
211
+ colCount = parseInt(this.dataset.lgCols || '12')
212
+ breakpointThreshold = lgBreakpoint
213
+ break
214
+ case 'md':
215
+ breakpointIndex = 2
216
+ colCount = parseInt(this.dataset.mdCols || '8')
217
+ breakpointThreshold = mdBreakpoint
218
+ break
219
+ case 'sm':
220
+ breakpointIndex = 1
221
+ colCount = parseInt(this.dataset.smCols || '4')
222
+ breakpointThreshold = smBreakpoint
223
+ break
224
+ default:
225
+ breakpointIndex = 0
226
+ colCount = parseInt(this.dataset.cols || '4')
227
+ breakpointThreshold = 0
228
+ break
229
+ }
230
+
231
+ const gutterArray = JSON.parse(this.dataset.gutter || '[1,1,1,1,1]')
232
+ const marginArray = JSON.parse(this.dataset.margin || '[1,1,1,1,1]')
233
+
234
+ const gutterValue = gutterArray[breakpointIndex] ?? gutterArray[gutterArray.length - 1]
235
+ const marginValue = marginArray[breakpointIndex] ?? marginArray[marginArray.length - 1]
236
+
237
+ const gridColor = this.dataset.gridColor || '#ff0000'
238
+ const gridOpacity = parseFloat(this.dataset.gridOpacity || '0.1')
239
+ const showBackground = this.dataset.showBackground === 'true'
240
+
241
+ const showFullWidth = this.dataset.showFullWidth !== 'false'
242
+ const fullWidthColor = this.dataset.fullWidthColor || '#3b82f6'
243
+ const fullWidthOpacity = parseFloat(this.dataset.fullWidthOpacity || '0.05')
244
+ const showFullWidthBackground = this.dataset.showFullWidthBackground === 'true'
245
+
246
+ // Convert rem spacings to pixels dynamically based on root font size
247
+ const rootFontSize = parseFloat(getComputedStyle(document.documentElement).fontSize) || 16
248
+ const marginPx = marginValue * rootFontSize
249
+ const gutterPx = gutterValue * rootFontSize
250
+
251
+ // Calculate max width boundaries
252
+ const maxWidthVal = this.dataset.maxWidth || '1440px'
253
+ let maxWidthPx = width
254
+ if (!maxWidthVal.includes('vw')) {
255
+ maxWidthPx = parseInt(maxWidthVal)
256
+ }
257
+
258
+ const innerMaxWidthVal = this.dataset.innerMaxWidth || '768px'
259
+ let innerMaxWidthPx = width
260
+ if (!innerMaxWidthVal.includes('vw')) {
261
+ innerMaxWidthPx = parseInt(innerMaxWidthVal)
262
+ }
263
+ const innerGridColor = this.dataset.innerColor || '#10b981'
264
+ const innerGridOpacity = parseFloat(this.dataset.innerOpacity || '0.1')
265
+ const showInnerBackground = this.dataset.showInnerBackground === 'true'
266
+
267
+ // Calculate grid properties based on container width or screen width
268
+ const activeWidth = width > maxWidthPx ? maxWidthPx : width
269
+ const innerWidth = activeWidth - 2 * marginPx
270
+ const colWidth = (innerWidth - (colCount - 1) * gutterPx) / colCount
271
+
272
+ // Center container boundaries (where we switch colors)
273
+ const containerLeft = (width - maxWidthPx) / 2
274
+ const containerRight = (width + maxWidthPx) / 2
275
+
276
+ // Clear container
277
+ this.columnsContainer.innerHTML = ''
278
+
279
+ // Set CSS custom properties on the host element and document root
280
+ this.style.setProperty('--rla-grid-cols', colCount.toString())
281
+ this.style.setProperty('--rla-grid-gap', `${gutterPx}px`)
282
+ this.style.setProperty('--rla-grid-margin', `${marginPx}px`)
283
+ this.style.setProperty('--rla-grid-max-width', maxWidthVal)
284
+
285
+ document.documentElement.style.setProperty('--rla-grid-cols', colCount.toString())
286
+ document.documentElement.style.setProperty('--rla-grid-gap', `${gutterPx}px`)
287
+ document.documentElement.style.setProperty('--rla-grid-gutter', `${gutterPx}px`)
288
+ document.documentElement.style.setProperty('--rla-grid-col-width', `${colWidth}px`)
289
+ document.documentElement.style.setProperty('--rla-grid-margin', `${marginPx}px`)
290
+ document.documentElement.style.setProperty('--rla-grid-max-width', maxWidthVal)
291
+
292
+ const containerStartX = width > maxWidthPx ? containerLeft + marginPx : marginPx
293
+ const step = colWidth + gutterPx
294
+
295
+ // Calculate total columns including outer ones
296
+ let totalCols = colCount
297
+ if (width > maxWidthPx && showFullWidth) {
298
+ let leftX = marginPx
299
+ while (leftX + colWidth < containerLeft) {
300
+ totalCols++
301
+ leftX += step
302
+ }
303
+ let rightX = width - marginPx - colWidth
304
+ while (rightX > containerRight) {
305
+ totalCols++
306
+ rightX -= step
307
+ }
308
+ }
309
+
310
+ if (this.indicatorElement) {
311
+ this.indicatorElement.innerHTML = `<span style="color: #3b82f6;">${this.currentBreakpoint.toUpperCase()} (${breakpointThreshold}px)</span> <span style="opacity: 0.35;">|</span> <span>${width}px</span> <span style="opacity: 0.35;">|</span> <span style="color: #ef4444;">${totalCols} Cols</span>`
312
+ }
313
+
314
+
315
+
316
+ // Create centered CSS Grid container using the exact same classes as the page container
317
+ const gridWrapper = document.createElement('div')
318
+ gridWrapper.className = "mx-auto w-full max-w-[1440px] px-xs sm:px-md md:px-xl lg:px-xl gap-xs sm:gap-md md:gap-xl lg:gap-xl h-full box-border grid"
319
+ gridWrapper.style.gridTemplateColumns = 'repeat(var(--rla-grid-cols), 1fr)'
320
+
321
+ const innerLeft = (width - innerMaxWidthPx) / 2
322
+ const innerRight = (width + innerMaxWidthPx) / 2
323
+
324
+ // Add container columns
325
+ for (let i = 0; i < colCount; i++) {
326
+ const colX = containerStartX + i * step
327
+ const colRight = colX + colWidth
328
+ const isInner = (colX >= innerLeft - 1) && (colRight <= innerRight + 1)
329
+
330
+ const col = document.createElement('div')
331
+ col.className = 'grid-column'
332
+ const color = isInner ? innerGridColor : gridColor
333
+ const opacity = isInner ? innerGridOpacity : gridOpacity
334
+ const bg = isInner ? showInnerBackground : showBackground
335
+
336
+ Object.assign(col.style, {
337
+ height: '100%',
338
+ borderInline: `1px solid ${color}`,
339
+ boxSizing: 'border-box',
340
+ backgroundColor: bg ? hexToRgba(color, opacity) : 'transparent'
341
+ })
342
+ gridWrapper.appendChild(col)
343
+ }
344
+
345
+ this.columnsContainer.appendChild(gridWrapper)
346
+
347
+ // If screen is wider than container, draw outer columns using absolute positioning
348
+ if (width > maxWidthPx && showFullWidth) {
349
+ const drawOuterColumn = (x: number) => {
350
+ const col = document.createElement('div')
351
+ col.className = 'rla-outer-column'
352
+ Object.assign(col.style, {
353
+ position: 'absolute',
354
+ top: '0',
355
+ left: `${x}px`,
356
+ width: `${colWidth}px`,
357
+ height: '100%',
358
+ borderInline: `1px solid ${fullWidthColor}`,
359
+ boxSizing: 'border-box',
360
+ backgroundColor: showFullWidthBackground ? hexToRgba(fullWidthColor, fullWidthOpacity) : 'transparent'
361
+ })
362
+ this.columnsContainer!.appendChild(col)
363
+ }
364
+
365
+ // Draw left columns starting from the viewport edge and going right
366
+ let leftX = marginPx
367
+ while (leftX + colWidth < containerLeft) {
368
+ drawOuterColumn(leftX)
369
+ leftX += step
370
+ }
371
+
372
+ // Draw right columns starting from the viewport edge and going left
373
+ let rightX = width - marginPx - colWidth
374
+ while (rightX > containerRight) {
375
+ drawOuterColumn(rightX)
376
+ rightX -= step
377
+ }
378
+ }
379
+ }
380
+
381
+ toggleGrid() {
382
+ this.isVisible = !this.isVisible
383
+ localStorage.setItem('rla-grid-visible', this.isVisible ? 'true' : 'false')
384
+ if (this.gridElement) {
385
+ this.gridElement.style.display = this.isVisible ? 'block' : 'none'
386
+ }
387
+ }
388
+ }
389
+
390
+ if (!customElements.get('rla-layout-grid')) {
391
+ customElements.define('rla-layout-grid', RLALayoutGrid)
392
+ }
393
+ </script>
@@ -0,0 +1,16 @@
1
+ import { defineTheme } from "../../utils/defineTheme"
2
+
3
+ export const createLayoutGridTheme = () =>
4
+ defineTheme({
5
+ slots: ["root", "overlay", "container", "columns"],
6
+ base: {
7
+ root: "",
8
+ overlay: "fixed top-0 left-0 w-full h-full pointer-events-none",
9
+ container: "h-full mx-auto",
10
+ columns: "grid h-full"
11
+ },
12
+ variants: {},
13
+ defaultVariants: {}
14
+ })
15
+
16
+ export default createLayoutGridTheme()
@@ -0,0 +1,93 @@
1
+ ---
2
+ import { scv } from "css-variants"
3
+ import { useUi } from "../../utils/useUi"
4
+ import { resolveClasses } from "../../utils/resolveClasses"
5
+ import type { LinkProps } from "./link"
6
+ import linkTheme from "./link.theme"
7
+ import RLAIcon from "../icon/RLAIcon.astro"
8
+ import { resolveLinkAttrs } from "./helpers"
9
+
10
+ const link = scv(linkTheme)
11
+
12
+ const {
13
+ label,
14
+ leadingIcon,
15
+ trailingIcon,
16
+ href,
17
+ external,
18
+ externalIcon,
19
+ noExternalIcon,
20
+ target,
21
+ rel,
22
+ prefetch,
23
+ active,
24
+ disabled,
25
+ raw,
26
+ ariaLabel,
27
+ ariaCurrentValue,
28
+ theme,
29
+ ui: uiProp,
30
+ class: className,
31
+ ...rest
32
+ } = Astro.props as LinkProps
33
+
34
+ const attrs = resolveLinkAttrs(Astro.props)
35
+
36
+ const classes = raw
37
+ ? { root: className || "" }
38
+ : resolveClasses(
39
+ link,
40
+ {
41
+ theme,
42
+ ...(active !== undefined ? { active } : {}),
43
+ disabled: !!disabled
44
+ },
45
+ useUi("link", uiProp),
46
+ className
47
+ )
48
+ ---
49
+
50
+ <a
51
+ class={classes.root}
52
+ data-slot="root"
53
+ href={attrs.href}
54
+ target={attrs.target}
55
+ rel={attrs.rel}
56
+ aria-label={ariaLabel}
57
+ aria-current={attrs.ariaCurrent}
58
+ aria-disabled={attrs.ariaDisabled}
59
+ data-astro-prefetch={attrs.prefetchAttr}
60
+ {...rest}
61
+ >
62
+ <slot name="leading">
63
+ {leadingIcon && (
64
+ <span class={classes.leadingIcon} data-slot="leading-icon">
65
+ <RLAIcon name={leadingIcon} size="sm" aria-hidden="true" />
66
+ </span>
67
+ )}
68
+ </slot>
69
+
70
+ {label !== undefined && label !== null ? (
71
+ <span class={classes.label} data-slot="label">{label}</span>
72
+ ) : (
73
+ <slot />
74
+ )}
75
+
76
+ <slot name="trailing">
77
+ {attrs.showTrailingIcon && (
78
+ <span class={classes.trailingIcon} data-slot="trailing-icon">
79
+ <RLAIcon
80
+ name={attrs.showTrailingIcon}
81
+ size="sm"
82
+ aria-hidden="true"
83
+ />
84
+ </span>
85
+ )}
86
+ </slot>
87
+
88
+ {attrs.isExternal && !ariaLabel && (
89
+ <span class="sr-only" data-slot="external-hint">
90
+ (opens in a new tab)
91
+ </span>
92
+ )}
93
+ </a>
@@ -0,0 +1,108 @@
1
+ import { createMemo, splitProps, type Component, type JSX } from "solid-js"
2
+ import { scv } from "css-variants"
3
+ import { useUi } from "../../utils/useUi"
4
+ import { resolveClasses } from "../../utils/resolveClasses"
5
+ import type { LinkProps } from "./link"
6
+ import linkTheme from "./link.theme"
7
+ import RLSIcon from "../icon/RLSIcon"
8
+ import { resolveLinkAttrs } from "./helpers"
9
+
10
+ const link = scv(linkTheme)
11
+
12
+ type RLSLinkProps = LinkProps & {
13
+ children?: JSX.Element
14
+ leading?: JSX.Element
15
+ trailing?: JSX.Element
16
+ }
17
+
18
+ const RLSLink: Component<RLSLinkProps> = (allProps) => {
19
+ const [props, rest] = splitProps(allProps, [
20
+ "label",
21
+ "leadingIcon",
22
+ "trailingIcon",
23
+ "href",
24
+ "external",
25
+ "externalIcon",
26
+ "noExternalIcon",
27
+ "target",
28
+ "rel",
29
+ "prefetch",
30
+ "active",
31
+ "disabled",
32
+ "raw",
33
+ "ariaLabel",
34
+ "ariaCurrentValue",
35
+ "theme",
36
+ "ui",
37
+ "class",
38
+ "children",
39
+ "leading",
40
+ "trailing"
41
+ ])
42
+
43
+ const attrs = createMemo(() => resolveLinkAttrs(props))
44
+
45
+ const classes = createMemo<Record<string, string>>(() => {
46
+ if (props.raw) {
47
+ return { root: props.class || "" }
48
+ }
49
+
50
+ return resolveClasses(
51
+ link,
52
+ {
53
+ theme: props.theme,
54
+ ...(props.active !== undefined ? { active: props.active } : {}),
55
+ disabled: !!props.disabled
56
+ },
57
+ useUi("link", props.ui),
58
+ props.class
59
+ )
60
+ })
61
+
62
+ return (
63
+ <a
64
+ class={classes().root}
65
+ data-slot="root"
66
+ href={attrs().href}
67
+ target={attrs().target}
68
+ rel={attrs().rel}
69
+ aria-label={props.ariaLabel}
70
+ aria-current={attrs().ariaCurrent}
71
+ aria-disabled={attrs().ariaDisabled}
72
+ data-astro-prefetch={attrs().prefetchAttr}
73
+ {...rest}
74
+ >
75
+ {props.leading ? (
76
+ props.leading
77
+ ) : props.leadingIcon ? (
78
+ <span class={classes().leadingIcon} data-slot="leading-icon">
79
+ <RLSIcon name={props.leadingIcon} size="sm" aria-hidden="true" />
80
+ </span>
81
+ ) : null}
82
+
83
+ {props.children !== undefined && props.children !== null ? (
84
+ props.children
85
+ ) : props.label !== undefined && props.label !== null ? (
86
+ <span class={classes().label} data-slot="label">
87
+ {props.label}
88
+ </span>
89
+ ) : null}
90
+
91
+ {props.trailing ? (
92
+ props.trailing
93
+ ) : attrs().showTrailingIcon ? (
94
+ <span class={classes().trailingIcon} data-slot="trailing-icon">
95
+ <RLSIcon name={attrs().showTrailingIcon!} size="sm" aria-hidden="true" />
96
+ </span>
97
+ ) : null}
98
+
99
+ {attrs().isExternal && !props.ariaLabel && (
100
+ <span class="sr-only" data-slot="external-hint">
101
+ (opens in a new tab)
102
+ </span>
103
+ )}
104
+ </a>
105
+ )
106
+ }
107
+
108
+ export default RLSLink
@@ -0,0 +1,85 @@
1
+ <script setup lang="ts">
2
+ import { computed } from "vue"
3
+ import { scv } from "css-variants"
4
+ import { useUi } from "../../utils/useUi"
5
+ import { resolveClasses } from "../../utils/resolveClasses"
6
+ import type { LinkProps } from "./link"
7
+ import linkTheme from "./link.theme"
8
+ import RLVIcon from "../icon/RLVIcon.vue"
9
+ import { resolveLinkAttrs } from "./helpers"
10
+
11
+ const link = scv(linkTheme)
12
+
13
+ defineOptions({ name: "RLVLink", inheritAttrs: false })
14
+
15
+ const props = defineProps<LinkProps>()
16
+
17
+ defineSlots<{
18
+ default(props: {}): any
19
+ leading(props: {}): any
20
+ trailing(props: {}): any
21
+ }>()
22
+
23
+ const attrs = computed(() => resolveLinkAttrs(props))
24
+
25
+ const resolvedClasses = computed(() => {
26
+ if (props.raw) {
27
+ return { root: props.class || "" } as Record<string, string>
28
+ }
29
+
30
+ return resolveClasses(
31
+ link,
32
+ {
33
+ theme: props.theme,
34
+ ...(props.active !== undefined ? { active: props.active } : {}),
35
+ disabled: !!props.disabled
36
+ },
37
+ useUi("link", props.ui),
38
+ props.class
39
+ )
40
+ })
41
+ </script>
42
+
43
+ <template>
44
+ <a
45
+ v-bind="$attrs"
46
+ :href="attrs.href"
47
+ :target="attrs.target"
48
+ :rel="attrs.rel"
49
+ :aria-label="props.ariaLabel"
50
+ :aria-current="attrs.ariaCurrent"
51
+ :aria-disabled="attrs.ariaDisabled"
52
+ :data-astro-prefetch="attrs.prefetchAttr"
53
+ :class="resolvedClasses.root"
54
+ data-slot="root"
55
+ >
56
+ <slot name="leading">
57
+ <span v-if="props.leadingIcon" :class="resolvedClasses.leadingIcon" data-slot="leading-icon">
58
+ <RLVIcon :name="props.leadingIcon" size="sm" aria-hidden="true" />
59
+ </span>
60
+ </slot>
61
+
62
+ <slot v-if="$slots.default" />
63
+ <span
64
+ v-else-if="props.label !== undefined && props.label !== null"
65
+ :class="resolvedClasses.label"
66
+ data-slot="label"
67
+ >
68
+ {{ props.label }}
69
+ </span>
70
+
71
+ <slot name="trailing">
72
+ <span
73
+ v-if="attrs.showTrailingIcon"
74
+ :class="resolvedClasses.trailingIcon"
75
+ data-slot="trailing-icon"
76
+ >
77
+ <RLVIcon :name="attrs.showTrailingIcon" size="sm" aria-hidden="true" />
78
+ </span>
79
+ </slot>
80
+
81
+ <span v-if="attrs.isExternal && !props.ariaLabel" class="sr-only" data-slot="external-hint">
82
+ (opens in a new tab)
83
+ </span>
84
+ </a>
85
+ </template>