@rimelight/ui 0.0.32 → 0.0.34
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.
- package/README.md +135 -8
- package/package.json +17 -20
- package/src/components/TableOfContents.astro +44 -43
- package/src/components/astro/RLA3dHover.astro +22 -18
- package/src/components/astro/RLAAlert.astro +93 -62
- package/src/components/astro/RLAApp.astro +22 -18
- package/src/components/astro/RLAAspectRatio.astro +27 -23
- package/src/components/astro/RLAAudio.astro +22 -18
- package/src/components/astro/RLAAvatar.astro +68 -56
- package/src/components/astro/RLAAvatarGroup.astro +23 -19
- package/src/components/astro/RLABadge.astro +34 -33
- package/src/components/astro/RLABanner.astro +22 -18
- package/src/components/astro/RLABreadcrumb.astro +48 -44
- package/src/components/astro/RLABrowserMockup.astro +22 -18
- package/src/components/astro/RLAButton.astro +141 -90
- package/src/components/astro/RLACalendar.astro +22 -18
- package/src/components/astro/RLACard.astro +78 -74
- package/src/components/astro/RLACarousel.astro +75 -71
- package/src/components/astro/RLAChangelog.astro +22 -18
- package/src/components/astro/RLAChart.astro +19 -34
- package/src/components/astro/RLAChat.astro +22 -18
- package/src/components/astro/RLAChatMessage.astro +22 -18
- package/src/components/astro/RLAChatMessages.astro +22 -18
- package/src/components/astro/RLAChatPalette.astro +22 -18
- package/src/components/astro/RLAChatPrompt.astro +22 -18
- package/src/components/astro/RLAChatPromptSubmit.astro +22 -18
- package/src/components/astro/RLAChatReasoning.astro +22 -18
- package/src/components/astro/RLAChatShimmer.astro +22 -18
- package/src/components/astro/RLAChatTool.astro +22 -18
- package/src/components/astro/RLAChip.astro +51 -20
- package/src/components/astro/RLAColorPicker.astro +22 -18
- package/src/components/astro/RLACommandPalette.astro +22 -18
- package/src/components/astro/RLACompare.astro +22 -18
- package/src/components/astro/RLAConfirm.astro +117 -86
- package/src/components/astro/RLAContainer.astro +22 -18
- package/src/components/astro/RLAContextMenu.astro +22 -18
- package/src/components/astro/RLADashboardGroup.astro +22 -18
- package/src/components/astro/RLADashboardNavbar.astro +22 -18
- package/src/components/astro/RLADashboardPanel.astro +22 -18
- package/src/components/astro/RLADashboardResizeHandle.astro +22 -18
- package/src/components/astro/RLADashboardSearch.astro +22 -18
- package/src/components/astro/RLADashboardSearchButton.astro +22 -18
- package/src/components/astro/RLADashboardSidebar.astro +22 -18
- package/src/components/astro/RLADashboardSidebarCollapse.astro +22 -18
- package/src/components/astro/RLADashboardSidebarToggle.astro +22 -18
- package/src/components/astro/RLADashboardToolbar.astro +22 -18
- package/src/components/astro/RLADock.astro +22 -18
- package/src/{plugins/starlightAddons/components/Gamepad.astro → components/astro/RLADocsGamepad.astro} +178 -180
- package/src/{plugins/starlightAddons/components/Keyboard.astro → components/astro/RLADocsKeyboard.astro} +1 -3
- package/src/{plugins/starlightAddons/PackageManagers.astro → components/astro/RLADocsPackageManagers.astro} +28 -14
- package/src/components/astro/RLADrawer.astro +78 -74
- package/src/components/astro/RLAEditor.astro +22 -18
- package/src/components/astro/RLAEmpty.astro +22 -18
- package/src/components/astro/RLAError.astro +22 -18
- package/src/components/astro/RLAFieldset.astro +22 -18
- package/src/components/astro/RLAFloatingAction.astro +22 -18
- package/src/components/astro/RLAFooter.astro +39 -35
- package/src/components/astro/RLAForm.astro +23 -19
- package/src/components/astro/RLAGallery.astro +22 -18
- package/src/components/astro/RLAGrid.astro +39 -0
- package/src/components/astro/RLAHead.astro +427 -180
- package/src/components/astro/RLAHeader.astro +12 -53
- package/src/components/astro/RLAHoverCard.astro +35 -31
- package/src/components/astro/RLAIcon.astro +31 -27
- package/src/components/astro/RLAImage.astro +251 -19
- package/src/components/astro/RLAInputDate.astro +22 -18
- package/src/components/astro/RLAInputNumber.astro +22 -18
- package/src/components/astro/RLAInputTags.astro +22 -18
- package/src/components/astro/RLAInputTime.astro +22 -18
- package/src/components/astro/RLAKbd.astro +32 -22
- package/src/components/astro/RLAKnob.astro +22 -18
- package/src/components/astro/RLALabel.astro +27 -23
- package/src/components/astro/RLALink.astro +13 -10
- package/src/components/astro/RLALinkGroup.astro +99 -18
- package/src/components/astro/RLAListbox.astro +22 -18
- package/src/components/astro/RLALocaleSelector.astro +136 -109
- package/src/components/astro/RLALogo.astro +90 -56
- package/src/components/astro/RLAMain.astro +15 -4
- package/src/components/astro/RLAMarquee.astro +43 -32
- package/src/components/astro/RLAMegamenu.astro +22 -18
- package/src/components/astro/RLAMeter.astro +22 -18
- package/src/components/astro/RLAModal.astro +99 -95
- package/src/components/astro/RLANavigationMenu.astro +326 -136
- package/src/components/astro/RLAPage.astro +22 -18
- package/src/components/astro/RLAPageAside.astro +22 -18
- package/src/components/astro/RLAPageBody.astro +22 -18
- package/src/components/astro/RLAPageHeader.astro +22 -18
- package/src/components/astro/RLAPageSection.astro +5 -1
- package/src/components/astro/RLAPagination.astro +96 -94
- package/src/components/astro/RLAPassword.astro +22 -18
- package/src/components/astro/RLAPhoneMockup.astro +22 -18
- package/src/components/astro/RLAPinInput.astro +23 -0
- package/src/components/astro/RLAPlaceholder.astro +45 -41
- package/src/components/astro/RLAPopover.astro +35 -31
- package/src/components/astro/RLAPost.astro +65 -19
- package/src/components/astro/RLAPricingPlan.astro +22 -18
- package/src/components/astro/RLAPricingTable.astro +22 -18
- package/src/components/astro/RLAProgress.astro +8 -2
- package/src/components/astro/RLAProse.astro +22 -18
- package/src/components/astro/RLAQrCode.astro +22 -18
- package/src/components/astro/RLARadioGroup.astro +22 -18
- package/src/components/astro/RLARating.astro +22 -18
- package/src/components/astro/RLASelect.astro +38 -24
- package/src/components/astro/RLASeparator.astro +78 -27
- package/src/components/astro/RLASidebar.astro +212 -135
- package/src/components/astro/RLASkeleton.astro +24 -20
- package/src/components/astro/RLASlideover.astro +141 -72
- package/src/components/astro/RLASlider.astro +14 -14
- package/src/components/astro/RLASpeedDial.astro +22 -18
- package/src/components/astro/RLASplitter.astro +14 -2
- package/src/components/astro/RLASpoiler.astro +22 -18
- package/src/components/astro/RLAStepper.astro +22 -18
- package/src/components/astro/RLASteps.astro +71 -0
- package/src/components/astro/RLAStickySurface.astro +38 -27
- package/src/components/astro/RLATableOfContents.astro +22 -18
- package/src/components/astro/RLATabs.astro +133 -92
- package/src/components/astro/RLAThemeSelector.astro +5 -1
- package/src/components/astro/RLATimeline.astro +22 -18
- package/src/components/astro/RLATooltip.astro +35 -31
- package/src/components/astro/RLATour.astro +22 -18
- package/src/components/astro/RLATree.astro +22 -18
- package/src/components/astro/RLAUser.astro +22 -18
- package/src/components/astro/RLAVideo.astro +200 -196
- package/src/components/astro/RLAWatermark.astro +22 -18
- package/src/components/astro/RLAWindowMockup.astro +22 -18
- package/src/components/vue/RLVCheckbox.vue +68 -0
- package/src/components/vue/RLVForm.vue +44 -0
- package/src/components/vue/RLVFormField.vue +58 -0
- package/src/components/vue/RLVInput.vue +93 -0
- package/src/components/vue/RLVPost.vue +63 -0
- package/src/components/vue/RLVPosts.vue +21 -0
- package/src/components/vue/RLVSection.vue +5 -4
- package/src/components/vue/RLVToast.vue +68 -0
- package/src/components/vue/RLVToaster.vue +29 -0
- package/src/composables/index.ts +2 -0
- package/src/composables/useHeaderStore.ts +13 -0
- package/src/composables/useScrollToTop.ts +7 -7
- package/src/composables/useToast.ts +43 -0
- package/src/config/index.ts +1 -0
- package/src/config/security.ts +220 -0
- package/src/env.d.ts +0 -13
- package/src/integrations/ui.ts +199 -208
- package/src/middleware/security.ts +75 -15
- package/src/plugins/index.ts +0 -3
- package/src/plugins/starlightDocsApi/index.ts +20 -13
- package/src/presets/defaults.ts +12 -0
- package/src/presets/index.ts +683 -537
- package/src/styles/index.css +0 -2
- package/src/themes/3d-hover.theme.ts +11 -8
- package/src/themes/accordion.theme.ts +11 -8
- package/src/themes/alert.theme.ts +96 -21
- package/src/themes/app.theme.ts +11 -8
- package/src/themes/aspect-ratio.theme.ts +10 -8
- package/src/themes/audio.theme.ts +11 -8
- package/src/themes/avatar-group.theme.ts +9 -7
- package/src/themes/avatar.theme.ts +79 -23
- package/src/themes/badge.theme.ts +119 -16
- package/src/themes/banner.theme.ts +11 -8
- package/src/themes/breadcrumb.theme.ts +14 -12
- package/src/themes/browser-mockup.theme.ts +11 -8
- package/src/themes/button.theme.ts +224 -195
- package/src/themes/calendar.theme.ts +11 -8
- package/src/themes/card.theme.ts +37 -29
- package/src/themes/carousel.theme.ts +30 -28
- package/src/themes/changelog.theme.ts +11 -8
- package/src/themes/chart.theme.ts +2 -1
- package/src/themes/chat-message.theme.ts +11 -8
- package/src/themes/chat-messages.theme.ts +11 -8
- package/src/themes/chat-palette.theme.ts +11 -8
- package/src/themes/chat-prompt-submit.theme.ts +11 -8
- package/src/themes/chat-prompt.theme.ts +11 -8
- package/src/themes/chat-reasoning.theme.ts +11 -8
- package/src/themes/chat-shimmer.theme.ts +11 -8
- package/src/themes/chat-tool.theme.ts +11 -8
- package/src/themes/chat.theme.ts +11 -8
- package/src/themes/checkbox.theme.ts +12 -10
- package/src/themes/chip.theme.ts +71 -13
- package/src/themes/color-picker.theme.ts +11 -8
- package/src/themes/command-palette.theme.ts +11 -8
- package/src/themes/compare.theme.ts +11 -8
- package/src/themes/confirm.theme.ts +43 -28
- package/src/themes/container.theme.ts +11 -8
- package/src/themes/context-menu.theme.ts +11 -8
- package/src/themes/dashboard-group.theme.ts +11 -8
- package/src/themes/dashboard-navbar.theme.ts +11 -8
- package/src/themes/dashboard-panel.theme.ts +11 -8
- package/src/themes/dashboard-resize-handle.theme.ts +11 -8
- package/src/themes/dashboard-search-button.theme.ts +11 -8
- package/src/themes/dashboard-search.theme.ts +11 -8
- package/src/themes/dashboard-sidebar-collapse.theme.ts +11 -8
- package/src/themes/dashboard-sidebar-toggle.theme.ts +11 -8
- package/src/themes/dashboard-sidebar.theme.ts +11 -8
- package/src/themes/dashboard-toolbar.theme.ts +11 -8
- package/src/themes/dock.theme.ts +11 -8
- package/src/themes/drawer.theme.ts +55 -38
- package/src/themes/dropdown-menu.theme.ts +4 -2
- package/src/themes/editor.theme.ts +11 -8
- package/src/themes/empty.theme.ts +11 -8
- package/src/themes/error.theme.ts +11 -8
- package/src/themes/field-group.theme.ts +2 -1
- package/src/themes/fieldset.theme.ts +11 -8
- package/src/themes/floating-action.theme.ts +11 -8
- package/src/themes/footer.theme.ts +26 -23
- package/src/themes/form.theme.ts +11 -8
- package/src/themes/gallery.theme.ts +11 -8
- package/src/themes/head.theme.ts +11 -8
- package/src/themes/header.theme.ts +38 -36
- package/src/themes/hover-card.theme.ts +25 -23
- package/src/themes/icon.theme.ts +20 -17
- package/src/themes/image.theme.ts +21 -8
- package/src/themes/input-date.theme.ts +11 -8
- package/src/themes/input-menu.theme.ts +11 -4
- package/src/themes/input-number.theme.ts +11 -8
- package/src/themes/input-tags.theme.ts +11 -8
- package/src/themes/input-time.theme.ts +11 -8
- package/src/themes/input.theme.ts +2 -1
- package/src/themes/kbd.theme.ts +91 -20
- package/src/themes/knob.theme.ts +11 -8
- package/src/themes/label.theme.ts +18 -16
- package/src/themes/link-group.theme.ts +30 -8
- package/src/themes/link.theme.ts +11 -8
- package/src/themes/listbox.theme.ts +11 -8
- package/src/themes/locale-selector.theme.ts +49 -50
- package/src/themes/logo.theme.ts +11 -8
- package/src/themes/main.theme.ts +13 -12
- package/src/themes/marquee.theme.ts +24 -22
- package/src/themes/megamenu.theme.ts +11 -8
- package/src/themes/meter.theme.ts +11 -8
- package/src/themes/modal.theme.ts +44 -32
- package/src/themes/navigation-menu.theme.ts +34 -9
- package/src/themes/page-aside.theme.ts +11 -8
- package/src/themes/page-body.theme.ts +11 -8
- package/src/themes/page-header.theme.ts +11 -8
- package/src/themes/page-section.theme.ts +173 -172
- package/src/themes/page.theme.ts +11 -8
- package/src/themes/pagination.theme.ts +24 -22
- package/src/themes/password.theme.ts +11 -8
- package/src/themes/phone-mockup.theme.ts +11 -8
- package/src/themes/pin-input.theme.ts +14 -0
- package/src/themes/placeholder.theme.ts +13 -10
- package/src/themes/popover.theme.ts +26 -24
- package/src/themes/post.theme.ts +31 -8
- package/src/themes/pricing-plan.theme.ts +11 -8
- package/src/themes/pricing-table.theme.ts +11 -8
- package/src/themes/progress.theme.ts +10 -9
- package/src/themes/prose.theme.ts +11 -8
- package/src/themes/qr-code.theme.ts +11 -8
- package/src/themes/quote.theme.ts +11 -8
- package/src/themes/radio-group.theme.ts +11 -8
- package/src/themes/rating.theme.ts +11 -8
- package/src/themes/scroll-area.theme.ts +4 -2
- package/src/themes/scroll-to-top.theme.ts +12 -10
- package/src/themes/select.theme.ts +4 -2
- package/src/themes/separator.theme.ts +143 -15
- package/src/themes/sidebar.theme.ts +9 -4
- package/src/themes/skeleton.theme.ts +17 -16
- package/src/themes/slideover.theme.ts +53 -37
- package/src/themes/slider.theme.ts +13 -11
- package/src/themes/speed-dial.theme.ts +11 -8
- package/src/themes/spinner.theme.ts +2 -3
- package/src/themes/splitter.theme.ts +2 -1
- package/src/themes/spoiler.theme.ts +11 -8
- package/src/themes/stepper.theme.ts +11 -8
- package/src/themes/sticky-surface.theme.ts +9 -7
- package/src/themes/switch.theme.ts +12 -10
- package/src/themes/table-of-contents.theme.ts +46 -8
- package/src/themes/tabs.theme.ts +14 -6
- package/src/themes/textarea.theme.ts +2 -1
- package/src/themes/theme-selector.theme.ts +15 -16
- package/src/themes/timeline.theme.ts +11 -8
- package/src/themes/toast.theme.ts +10 -4
- package/src/themes/tooltip.theme.ts +24 -23
- package/src/themes/tour.theme.ts +11 -8
- package/src/themes/tree.theme.ts +11 -8
- package/src/themes/user.theme.ts +11 -8
- package/src/themes/video.theme.ts +15 -12
- package/src/themes/watermark.theme.ts +11 -8
- package/src/themes/window-mockup.theme.ts +11 -8
- package/src/types/components/3d-hover.ts +1 -1
- package/src/types/components/alert.ts +2 -2
- package/src/types/components/app.ts +1 -1
- package/src/types/components/audio.ts +1 -1
- package/src/types/components/avatar-group.ts +11 -12
- package/src/types/components/avatar.ts +46 -21
- package/src/types/components/badge.ts +2 -2
- package/src/types/components/banner.ts +1 -1
- package/src/types/components/browser-mockup.ts +1 -1
- package/src/types/components/button.ts +7 -10
- package/src/types/components/calendar.ts +1 -1
- package/src/types/components/changelog.ts +1 -1
- package/src/types/components/chart.ts +2 -1
- package/src/types/components/chat-message.ts +1 -1
- package/src/types/components/chat-messages.ts +1 -1
- package/src/types/components/chat-palette.ts +1 -1
- package/src/types/components/chat-prompt-submit.ts +1 -1
- package/src/types/components/chat-prompt.ts +1 -1
- package/src/types/components/chat-reasoning.ts +1 -1
- package/src/types/components/chat-shimmer.ts +1 -1
- package/src/types/components/chat-tool.ts +1 -1
- package/src/types/components/chat.ts +1 -1
- package/src/types/components/checkbox.ts +2 -2
- package/src/types/components/chip.ts +1 -1
- package/src/types/components/collapsible.ts +2 -1
- package/src/types/components/color-picker.ts +1 -1
- package/src/types/components/command-palette.ts +1 -1
- package/src/types/components/compare.ts +1 -1
- package/src/types/components/container.ts +7 -1
- package/src/types/components/context-menu.ts +1 -1
- package/src/types/components/dashboard-group.ts +1 -1
- package/src/types/components/dashboard-navbar.ts +1 -1
- package/src/types/components/dashboard-panel.ts +1 -1
- package/src/types/components/dashboard-resize-handle.ts +1 -1
- package/src/types/components/dashboard-search-button.ts +1 -1
- package/src/types/components/dashboard-search.ts +1 -1
- package/src/types/components/dashboard-sidebar-collapse.ts +1 -1
- package/src/types/components/dashboard-sidebar-toggle.ts +1 -1
- package/src/types/components/dashboard-sidebar.ts +1 -1
- package/src/types/components/dashboard-toolbar.ts +1 -1
- package/src/types/components/dock.ts +1 -1
- package/src/types/components/dropdown-menu.ts +2 -1
- package/src/types/components/editor.ts +1 -1
- package/src/types/components/empty.ts +1 -1
- package/src/types/components/error.ts +1 -1
- package/src/types/components/fieldset.ts +1 -1
- package/src/types/components/file-upload.ts +2 -1
- package/src/types/components/floating-action.ts +1 -1
- package/src/types/components/form.ts +9 -1
- package/src/types/components/gallery.ts +1 -1
- package/src/types/components/icon.ts +0 -1
- package/src/types/components/image.ts +28 -7
- package/src/types/components/index.ts +134 -134
- package/src/types/components/input-date.ts +1 -1
- package/src/types/components/input-menu.ts +2 -2
- package/src/types/components/input-number.ts +1 -1
- package/src/types/components/input-pin.ts +26 -1
- package/src/types/components/input-tags.ts +1 -1
- package/src/types/components/input-time.ts +1 -1
- package/src/types/components/input.ts +2 -2
- package/src/types/components/knob.ts +1 -1
- package/src/types/components/link-group.ts +35 -1
- package/src/types/components/link.ts +4 -0
- package/src/types/components/listbox.ts +1 -1
- package/src/types/components/locale-selector.ts +33 -33
- package/src/types/components/logo.ts +5 -0
- package/src/types/components/main.ts +17 -17
- package/src/types/components/megamenu.ts +1 -1
- package/src/types/components/meter.ts +1 -1
- package/src/types/components/modal.ts +0 -1
- package/src/types/components/navigation-menu.ts +13 -8
- package/src/types/components/page-aside.ts +1 -1
- package/src/types/components/page-body.ts +1 -1
- package/src/types/components/page-header.ts +1 -1
- package/src/types/components/page.ts +1 -1
- package/src/types/components/password.ts +1 -1
- package/src/types/components/phone-mockup.ts +1 -1
- package/src/types/components/pin-input.ts +11 -0
- package/src/types/components/popover.ts +0 -1
- package/src/types/components/post.ts +25 -1
- package/src/types/components/pricing-plan.ts +1 -1
- package/src/types/components/pricing-table.ts +1 -1
- package/src/types/components/progress.ts +2 -3
- package/src/types/components/prose.ts +1 -1
- package/src/types/components/qr-code.ts +1 -1
- package/src/types/components/radio-group.ts +1 -1
- package/src/types/components/rating.ts +1 -1
- package/src/types/components/scroll-area.ts +0 -1
- package/src/types/components/scroll-to-top.ts +2 -2
- package/src/types/components/select.ts +2 -1
- package/src/types/components/separator.ts +0 -1
- package/src/types/components/sidebar.ts +53 -3
- package/src/types/components/slideover.ts +0 -1
- package/src/types/components/slider.ts +2 -2
- package/src/types/components/speed-dial.ts +1 -1
- package/src/types/components/spinner.ts +2 -3
- package/src/types/components/splitter.ts +0 -1
- package/src/types/components/spoiler.ts +1 -1
- package/src/types/components/stepper.ts +1 -1
- package/src/types/components/sticky-surface.ts +0 -1
- package/src/types/components/switch.ts +2 -3
- package/src/types/components/table-of-contents.ts +7 -1
- package/src/types/components/tabs.ts +2 -1
- package/src/types/components/textarea.ts +2 -1
- package/src/types/components/theme-selector.ts +15 -15
- package/src/types/components/timeline.ts +1 -1
- package/src/types/components/toast.ts +2 -1
- package/src/types/components/tooltip.ts +0 -1
- package/src/types/components/tour.ts +1 -1
- package/src/types/components/tree.ts +1 -1
- package/src/types/components/user.ts +1 -1
- package/src/types/components/watermark.ts +1 -1
- package/src/types/components/window-mockup.ts +1 -1
- package/src/types/theme.ts +10 -0
- package/src/utils/docs.ts +215 -0
- package/src/utils/headerStack.ts +12 -5
- package/src/utils/index.ts +1 -0
- package/src/components/astro/RLAInputPin.astro +0 -19
- package/src/integrations/vue-entrypoint.ts +0 -6
- package/src/nuxt.ts +0 -125
- package/src/plugins/starlightAddons/PageTitle.astro +0 -113
- package/src/plugins/starlightAddons/index.ts +0 -58
- package/src/plugins/starlightAddons/starlight.d.ts +0 -6
- package/src/themes/input-pin.theme.ts +0 -10
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { scv } from "css-variants"
|
|
3
|
-
import { useUi, resolveClasses } from "../../utils"
|
|
4
|
-
import type { DashboardSidebarCollapseProps } from "../../types"
|
|
5
|
-
import dashboardSidebarCollapseThemeDefault from "../../themes/dashboard-sidebar-collapse.theme"
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
---
|
|
2
|
+
import { scv } from "css-variants"
|
|
3
|
+
import { useUi, resolveClasses } from "../../utils"
|
|
4
|
+
import type { DashboardSidebarCollapseProps } from "../../types"
|
|
5
|
+
import dashboardSidebarCollapseThemeDefault, { createDashboardSidebarCollapseTheme } from "../../themes/dashboard-sidebar-collapse.theme"
|
|
6
|
+
import { getUIConfig } from "virtual:rimelight-ui"
|
|
7
|
+
|
|
8
|
+
const uiConfig = getUIConfig()
|
|
9
|
+
const dashboardSidebarCollapseTheme = uiConfig.colors ? createDashboardSidebarCollapseTheme() : dashboardSidebarCollapseThemeDefault
|
|
10
|
+
|
|
11
|
+
const dashboardSidebarCollapse = scv(dashboardSidebarCollapseTheme)
|
|
12
|
+
|
|
13
|
+
const {
|
|
14
|
+
ui: uiProp,
|
|
15
|
+
class: className,
|
|
16
|
+
...rest
|
|
17
|
+
} = Astro.props as DashboardSidebarCollapseProps
|
|
18
|
+
|
|
19
|
+
const classes = resolveClasses(dashboardSidebarCollapse, {}, useUi("dashboardSidebarCollapse", uiProp), className);
|
|
20
|
+
---
|
|
21
|
+
<div class={classes.root} data-slot="root" {...rest}>
|
|
22
|
+
<slot />
|
|
19
23
|
</div>
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { scv } from "css-variants"
|
|
3
|
-
import { useUi, resolveClasses } from "../../utils"
|
|
4
|
-
import type { DashboardSidebarToggleProps } from "../../types"
|
|
5
|
-
import dashboardSidebarToggleThemeDefault from "../../themes/dashboard-sidebar-toggle.theme"
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
---
|
|
2
|
+
import { scv } from "css-variants"
|
|
3
|
+
import { useUi, resolveClasses } from "../../utils"
|
|
4
|
+
import type { DashboardSidebarToggleProps } from "../../types"
|
|
5
|
+
import dashboardSidebarToggleThemeDefault, { createDashboardSidebarToggleTheme } from "../../themes/dashboard-sidebar-toggle.theme"
|
|
6
|
+
import { getUIConfig } from "virtual:rimelight-ui"
|
|
7
|
+
|
|
8
|
+
const uiConfig = getUIConfig()
|
|
9
|
+
const dashboardSidebarToggleTheme = uiConfig.colors ? createDashboardSidebarToggleTheme() : dashboardSidebarToggleThemeDefault
|
|
10
|
+
|
|
11
|
+
const dashboardSidebarToggle = scv(dashboardSidebarToggleTheme)
|
|
12
|
+
|
|
13
|
+
const {
|
|
14
|
+
ui: uiProp,
|
|
15
|
+
class: className,
|
|
16
|
+
...rest
|
|
17
|
+
} = Astro.props as DashboardSidebarToggleProps
|
|
18
|
+
|
|
19
|
+
const classes = resolveClasses(dashboardSidebarToggle, {}, useUi("dashboardSidebarToggle", uiProp), className);
|
|
20
|
+
---
|
|
21
|
+
<div class={classes.root} data-slot="root" {...rest}>
|
|
22
|
+
<slot />
|
|
19
23
|
</div>
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { scv } from "css-variants"
|
|
3
|
-
import { useUi, resolveClasses } from "../../utils"
|
|
4
|
-
import type { DashboardToolbarProps } from "../../types"
|
|
5
|
-
import dashboardToolbarThemeDefault from "../../themes/dashboard-toolbar.theme"
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
---
|
|
2
|
+
import { scv } from "css-variants"
|
|
3
|
+
import { useUi, resolveClasses } from "../../utils"
|
|
4
|
+
import type { DashboardToolbarProps } from "../../types"
|
|
5
|
+
import dashboardToolbarThemeDefault, { createDashboardToolbarTheme } from "../../themes/dashboard-toolbar.theme"
|
|
6
|
+
import { getUIConfig } from "virtual:rimelight-ui"
|
|
7
|
+
|
|
8
|
+
const uiConfig = getUIConfig()
|
|
9
|
+
const dashboardToolbarTheme = uiConfig.colors ? createDashboardToolbarTheme() : dashboardToolbarThemeDefault
|
|
10
|
+
|
|
11
|
+
const dashboardToolbar = scv(dashboardToolbarTheme)
|
|
12
|
+
|
|
13
|
+
const {
|
|
14
|
+
ui: uiProp,
|
|
15
|
+
class: className,
|
|
16
|
+
...rest
|
|
17
|
+
} = Astro.props as DashboardToolbarProps
|
|
18
|
+
|
|
19
|
+
const classes = resolveClasses(dashboardToolbar, {}, useUi("dashboardToolbar", uiProp), className);
|
|
20
|
+
---
|
|
21
|
+
<div class={classes.root} data-slot="root" {...rest}>
|
|
22
|
+
<slot />
|
|
19
23
|
</div>
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { scv } from "css-variants"
|
|
3
|
-
import { useUi, resolveClasses } from "../../utils"
|
|
4
|
-
import type { DockProps } from "../../types"
|
|
5
|
-
import dockThemeDefault from "../../themes/dock.theme"
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
---
|
|
2
|
+
import { scv } from "css-variants"
|
|
3
|
+
import { useUi, resolveClasses } from "../../utils"
|
|
4
|
+
import type { DockProps } from "../../types"
|
|
5
|
+
import dockThemeDefault, { createDockTheme } from "../../themes/dock.theme"
|
|
6
|
+
import { getUIConfig } from "virtual:rimelight-ui"
|
|
7
|
+
|
|
8
|
+
const uiConfig = getUIConfig()
|
|
9
|
+
const dockTheme = uiConfig.colors ? createDockTheme() : dockThemeDefault
|
|
10
|
+
|
|
11
|
+
const dock = scv(dockTheme)
|
|
12
|
+
|
|
13
|
+
const {
|
|
14
|
+
ui: uiProp,
|
|
15
|
+
class: className,
|
|
16
|
+
...rest
|
|
17
|
+
} = Astro.props as DockProps
|
|
18
|
+
|
|
19
|
+
const classes = resolveClasses(dock, {}, useUi("dock", uiProp), className);
|
|
20
|
+
---
|
|
21
|
+
<div class={classes.root} data-slot="root" {...rest}>
|
|
22
|
+
<slot />
|
|
19
23
|
</div>
|
|
@@ -1,180 +1,178 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
{ id: '
|
|
48
|
-
{ id: '
|
|
49
|
-
{ id: '
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
{ id: '
|
|
56
|
-
{ id: '
|
|
57
|
-
{ id: '
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
{ id: '
|
|
62
|
-
{ id: '
|
|
63
|
-
{ id: '
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
{ id: '
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
{ id: '
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
<div class="gamepad-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
<stop offset="
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const
|
|
93
|
-
const
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
stroke={highlight.active ? "
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
stroke="
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
stroke={highlight.active ? "
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
const
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
stroke={highlight.active ? "
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
</
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
</div>
|
|
180
|
-
|
|
1
|
+
---
|
|
2
|
+
interface HighlightGroup {
|
|
3
|
+
label: string
|
|
4
|
+
buttons: string[]
|
|
5
|
+
color: string
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
interface Props {
|
|
9
|
+
highlightedButtons?: string[]
|
|
10
|
+
groups?: HighlightGroup[]
|
|
11
|
+
highlightColor?: string
|
|
12
|
+
backgroundColor?: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const {
|
|
16
|
+
highlightedButtons = [],
|
|
17
|
+
groups = [],
|
|
18
|
+
highlightColor = 'var(--color-primary-500, #00c16a)',
|
|
19
|
+
backgroundColor = 'transparent'
|
|
20
|
+
} = Astro.props
|
|
21
|
+
|
|
22
|
+
function getButtonHighlight(buttonId: string) {
|
|
23
|
+
if (highlightedButtons.includes(buttonId)) {
|
|
24
|
+
return { active: true, color: highlightColor }
|
|
25
|
+
}
|
|
26
|
+
for (const group of groups) {
|
|
27
|
+
if (group.buttons.includes(buttonId)) {
|
|
28
|
+
return { active: true, color: group.color }
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return { active: false, color: undefined }
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
interface Button {
|
|
35
|
+
id: string
|
|
36
|
+
label?: string
|
|
37
|
+
x: number
|
|
38
|
+
y: number
|
|
39
|
+
r?: number
|
|
40
|
+
w?: number
|
|
41
|
+
h?: number
|
|
42
|
+
type?: string
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const shoulderButtons: Button[] = [
|
|
46
|
+
{ id: 'L2', label: 'LT', x: 65, y: 10, w: 80, h: 22 },
|
|
47
|
+
{ id: 'L1', label: 'LB', x: 65, y: 42, w: 80, h: 22 },
|
|
48
|
+
{ id: 'R2', label: 'RT', x: 255, y: 10, w: 80, h: 22 },
|
|
49
|
+
{ id: 'R1', label: 'RB', x: 255, y: 42, w: 80, h: 22 },
|
|
50
|
+
]
|
|
51
|
+
|
|
52
|
+
const mainButtons: Button[] = [
|
|
53
|
+
// Face Buttons
|
|
54
|
+
{ id: 'Y', label: 'Y', x: 315, y: 125, r: 12 },
|
|
55
|
+
{ id: 'X', label: 'X', x: 288, y: 152, r: 12 },
|
|
56
|
+
{ id: 'B', label: 'B', x: 342, y: 152, r: 12 },
|
|
57
|
+
{ id: 'A', label: 'A', x: 315, y: 179, r: 12 },
|
|
58
|
+
|
|
59
|
+
// D-Pad
|
|
60
|
+
{ id: 'DPadUp', x: 85, y: 130, w: 20, h: 20, type: 'dpad' },
|
|
61
|
+
{ id: 'DPadDown', x: 85, y: 174, w: 20, h: 20, type: 'dpad' },
|
|
62
|
+
{ id: 'DPadLeft', x: 63, y: 152, w: 20, h: 20, type: 'dpad' },
|
|
63
|
+
{ id: 'DPadRight', x: 107, y: 152, w: 20, h: 20, type: 'dpad' },
|
|
64
|
+
|
|
65
|
+
// Sticks
|
|
66
|
+
{ id: 'LS', x: 155, y: 215, r: 24 },
|
|
67
|
+
{ id: 'RS', x: 245, y: 215, r: 24 },
|
|
68
|
+
|
|
69
|
+
// Menu Buttons
|
|
70
|
+
{ id: 'View', label: '⧉', x: 145, y: 105, w: 16, h: 10 },
|
|
71
|
+
{ id: 'Menu', label: '≡', x: 239, y: 105, w: 16, h: 10 },
|
|
72
|
+
]
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
<div class="gamepad-wrapper">
|
|
76
|
+
<div class="gamepad-container">
|
|
77
|
+
<svg viewBox="-20 -20 440 380" class="gamepad-svg">
|
|
78
|
+
<defs>
|
|
79
|
+
<linearGradient id="bodyGrad" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
80
|
+
<stop offset="0%" stop-color="#2a2a40" stop-opacity="1" />
|
|
81
|
+
<stop offset="100%" stop-color="#1a1a2e" stop-opacity="1" />
|
|
82
|
+
</linearGradient>
|
|
83
|
+
</defs>
|
|
84
|
+
|
|
85
|
+
{backgroundColor && backgroundColor !== 'transparent' && (
|
|
86
|
+
<rect x="-20" y="-20" width="440" height="360" fill={backgroundColor} rx="24" />
|
|
87
|
+
)}
|
|
88
|
+
|
|
89
|
+
<!-- Shoulder Buttons -->
|
|
90
|
+
{shoulderButtons.map(btn => {
|
|
91
|
+
const highlight = getButtonHighlight(btn.id);
|
|
92
|
+
const w = btn.w || 0;
|
|
93
|
+
const h = btn.h || 0;
|
|
94
|
+
const color = highlight.active ? (highlight.color || highlightColor) : '#1e1e30';
|
|
95
|
+
|
|
96
|
+
return (
|
|
97
|
+
<g class={`gp-btn shoulder ${highlight.active ? 'active' : ''}`}>
|
|
98
|
+
<rect
|
|
99
|
+
x={btn.x}
|
|
100
|
+
y={btn.y}
|
|
101
|
+
width={w}
|
|
102
|
+
height={h}
|
|
103
|
+
rx="5"
|
|
104
|
+
fill={color}
|
|
105
|
+
stroke={highlight.active ? "#ffffff33" : "#33334d"}
|
|
106
|
+
stroke-width={highlight.active ? "1.5" : "1"}
|
|
107
|
+
/>
|
|
108
|
+
<text x={btn.x + w/2} y={btn.y + h/2} text-anchor="middle" dominant-baseline="central" class="btn-label" fill={highlight.active ? "#fff" : "#555570"}>{btn.label}</text>
|
|
109
|
+
</g>
|
|
110
|
+
)
|
|
111
|
+
})}
|
|
112
|
+
|
|
113
|
+
<!-- Controller Body -->
|
|
114
|
+
<path
|
|
115
|
+
d="M120,85 L280,85 C320,85 340,95 350,115 C370,145 390,215 390,245 C390,285 360,315 320,315 C290,315 260,285 240,255 C220,245 180,245 160,255 C140,285 110,315 80,315 C40,315 10,285 10,245 C10,215 30,145 50,115 C60,95 80,85 120,85 Z"
|
|
116
|
+
fill="url(#bodyGrad)"
|
|
117
|
+
stroke="#33334d"
|
|
118
|
+
stroke-width="1"
|
|
119
|
+
/>
|
|
120
|
+
|
|
121
|
+
<!-- Touchpad -->
|
|
122
|
+
<path d="M145,90 L255,90 L262,150 L138,150 Z" fill="#151525" stroke="#33334d" stroke-width="0.5" />
|
|
123
|
+
|
|
124
|
+
{mainButtons.map(btn => {
|
|
125
|
+
const highlight = getButtonHighlight(btn.id);
|
|
126
|
+
const color = highlight.active ? (highlight.color || highlightColor) : '#1e1e30';
|
|
127
|
+
|
|
128
|
+
if (btn.r) {
|
|
129
|
+
return (
|
|
130
|
+
<g class={`gp-btn ${highlight.active ? 'active' : ''}`}>
|
|
131
|
+
<circle
|
|
132
|
+
cx={btn.x}
|
|
133
|
+
cy={btn.y}
|
|
134
|
+
r={btn.r}
|
|
135
|
+
fill={color}
|
|
136
|
+
stroke={highlight.active ? "#ffffff33" : "#33334d"}
|
|
137
|
+
stroke-width={highlight.active ? "1.5" : "1"}
|
|
138
|
+
/>
|
|
139
|
+
{btn.label && <text x={btn.x} y={btn.y} text-anchor="middle" dominant-baseline="central" class="btn-label" fill={highlight.active ? "#fff" : "#555570"}>{btn.label}</text>}
|
|
140
|
+
</g>
|
|
141
|
+
)
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
const w = btn.w || 0;
|
|
145
|
+
const h = btn.h || 0;
|
|
146
|
+
return (
|
|
147
|
+
<g class={`gp-btn ${highlight.active ? 'active' : ''}`}>
|
|
148
|
+
<rect
|
|
149
|
+
x={btn.x}
|
|
150
|
+
y={btn.y}
|
|
151
|
+
width={w}
|
|
152
|
+
height={h}
|
|
153
|
+
rx="3"
|
|
154
|
+
fill={color}
|
|
155
|
+
stroke={highlight.active ? "#ffffff33" : "#33334d"}
|
|
156
|
+
stroke-width={highlight.active ? "1.5" : "1"}
|
|
157
|
+
/>
|
|
158
|
+
{btn.label && <text x={btn.x + w/2} y={btn.y + h/2} text-anchor="middle" dominant-baseline="central" class="btn-label" fill={highlight.active ? "#fff" : "#555570"}>{btn.label}</text>}
|
|
159
|
+
</g>
|
|
160
|
+
)
|
|
161
|
+
})}
|
|
162
|
+
|
|
163
|
+
</svg>
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
{groups.some(g => g.label) && (
|
|
167
|
+
<div class="flex flex-wrap justify-center gap-x-6 gap-y-3 mt-10 w-full">
|
|
168
|
+
{groups.filter(g => g.label).map(group => (
|
|
169
|
+
<div class="flex items-center gap-2 m-0 p-0 h-[10px] text-[10px] text-[#777790] uppercase tracking-[0.1em] font-bold leading-[10px]">
|
|
170
|
+
<svg width="8" height="8" class="flex-shrink-0 block">
|
|
171
|
+
<rect width="8" height="8" rx="2" fill={group.color} />
|
|
172
|
+
</svg>
|
|
173
|
+
<span class="inline-block h-[10px] leading-[10px] m-0 p-0">{group.label}</span>
|
|
174
|
+
</div>
|
|
175
|
+
))}
|
|
176
|
+
</div>
|
|
177
|
+
)}
|
|
178
|
+
</div>
|
|
@@ -25,7 +25,7 @@ const {
|
|
|
25
25
|
keySize = 40,
|
|
26
26
|
variant = 'full',
|
|
27
27
|
os = 'windows',
|
|
28
|
-
highlightColor = 'var(--
|
|
28
|
+
highlightColor = 'var(--color-primary-500, #00c16a)',
|
|
29
29
|
backgroundColor = 'transparent'
|
|
30
30
|
} = Astro.props
|
|
31
31
|
|
|
@@ -159,7 +159,6 @@ const displayMainRows = variant === '60'
|
|
|
159
159
|
]
|
|
160
160
|
: mainRows;
|
|
161
161
|
|
|
162
|
-
|
|
163
162
|
interface RenderKey extends Key {
|
|
164
163
|
x: number;
|
|
165
164
|
y: number;
|
|
@@ -318,4 +317,3 @@ if (variant === 'full') {
|
|
|
318
317
|
</div>
|
|
319
318
|
)}
|
|
320
319
|
</div>
|
|
321
|
-
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
---
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import RLATabs from "./RLATabs.astro";
|
|
3
|
+
import Prism from "prismjs";
|
|
4
|
+
import "prismjs/components/prism-bash.js";
|
|
5
|
+
|
|
6
|
+
type Manager = "npm" | "pnpm" | "yarn" | "deno" | "bun" | "vp"
|
|
7
|
+
type CommandType = "add" | "create" | "dlx" | "exec" | "install" | "remove" | "run"
|
|
4
8
|
|
|
5
9
|
interface Props {
|
|
6
10
|
pkg?: string
|
|
7
|
-
type?:
|
|
11
|
+
type?: CommandType
|
|
8
12
|
dev?: boolean
|
|
9
13
|
args?: string
|
|
10
14
|
comment?: string
|
|
11
15
|
prefix?: string
|
|
16
|
+
managers?: Manager[]
|
|
12
17
|
}
|
|
13
18
|
|
|
14
19
|
const {
|
|
@@ -18,20 +23,18 @@ const {
|
|
|
18
23
|
args,
|
|
19
24
|
comment,
|
|
20
25
|
prefix,
|
|
26
|
+
managers = ["npm", "pnpm", "yarn", "deno", "bun", "vp"]
|
|
21
27
|
} = Astro.props
|
|
22
28
|
|
|
23
|
-
type Manager = "npm" | "yarn" | "pnpm" | "bun"
|
|
24
|
-
type CommandType = NonNullable<Props["type"]>
|
|
25
|
-
|
|
26
29
|
const commands: Record<Manager, Partial<Record<CommandType, string>> & { dev: string }> = {
|
|
27
30
|
npm: { add: "npm i", create: "npm create", dlx: "npx", exec: "npx", install: "npm install", run: "npm run", remove: "npm uninstall", dev: "-D" },
|
|
28
31
|
yarn: { add: "yarn add", create: "yarn create", dlx: "yarn dlx", exec: "yarn", install: "yarn install", run: "yarn run", remove: "yarn remove", dev: "-D" },
|
|
29
32
|
pnpm: { add: "pnpm add", create: "pnpm create", dlx: "pnpx", exec: "pnpm", install: "pnpm install", run: "pnpm run", remove: "pnpm remove", dev: "-D" },
|
|
33
|
+
deno: { add: "deno add", create: "deno run -A", dlx: "deno run", exec: "deno run", install: "deno install", run: "deno task", remove: "deno remove", dev: "--dev" },
|
|
30
34
|
bun: { add: "bun add", create: "bun create", install: "bun install", run: "bun run", remove: "bun remove", dev: "-d" },
|
|
35
|
+
vp: { add: "vp add", create: "vp create", dlx: "vp dlx", exec: "vp exec", install: "vp install", run: "vp run", remove: "vp remove", dev: "-D" },
|
|
31
36
|
}
|
|
32
37
|
|
|
33
|
-
const managers: Manager[] = ["npm", "pnpm", "yarn", "bun"]
|
|
34
|
-
|
|
35
38
|
function getCommand(mgr: Manager, cmdType: CommandType): string | undefined {
|
|
36
39
|
let cmd = commands[mgr][cmdType]
|
|
37
40
|
if (cmd === undefined) return undefined
|
|
@@ -62,12 +65,23 @@ const tabs = managers
|
|
|
62
65
|
cmd: getCommand(mgr, type),
|
|
63
66
|
}))
|
|
64
67
|
.filter((tab) => tab.cmd !== undefined)
|
|
68
|
+
|
|
69
|
+
const tabItems = tabs.map((tab) => ({
|
|
70
|
+
value: tab.mgr,
|
|
71
|
+
label: tab.mgr,
|
|
72
|
+
}))
|
|
73
|
+
|
|
74
|
+
// Pre-render the highlighted bash command via pure static prismjs
|
|
75
|
+
const highlightedTabs = tabs.map((tab) => ({
|
|
76
|
+
mgr: tab.mgr,
|
|
77
|
+
html: Prism.highlight(tab.cmd!, Prism.languages.bash || Prism.languages.shell, "bash")
|
|
78
|
+
}))
|
|
65
79
|
---
|
|
66
80
|
|
|
67
|
-
<
|
|
68
|
-
{
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
81
|
+
<RLATabs items={tabItems} color="primary" size="md" variant="solid">
|
|
82
|
+
{highlightedTabs.map((tab, idx) => (
|
|
83
|
+
<div role="tabpanel" data-value={tab.mgr} class:list={[{ "hidden": idx !== 0 }]}>
|
|
84
|
+
<pre class="language-sh"><code class="language-sh" set:html={tab.html}></code></pre>
|
|
85
|
+
</div>
|
|
72
86
|
))}
|
|
73
|
-
</
|
|
87
|
+
</RLATabs>
|