@rimelight/ui 0.0.46 → 0.0.48
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/dist/icons-DPnFQCts.d.mts +72 -0
- package/dist/icons.d.mts +1 -1
- package/dist/index.d.mts +5 -6
- package/dist/preset.d.mts +1 -1
- package/dist/preset.mjs +73 -1
- package/dist/resolver.d.mts +4 -5
- package/dist/resolver.mjs +2 -4
- package/dist/shortcuts.d.mts +10 -11
- package/dist/stores.d.mts +3 -4
- package/dist/{types-DqAgCNcm.d.mts → types-DWmKMcYC.d.mts} +1 -1
- package/dist/types.d.mts +1 -1
- package/package.json +8 -6
- package/src/components/3d-hover/RLS3dHover.tsx +21 -0
- package/src/components/accordion/RLSAccordion.tsx +112 -0
- package/src/components/app/RLSApp.tsx +21 -0
- package/src/components/aspect-ratio/RLSAspectRatio.tsx +30 -0
- package/src/components/audio/RLSAudio.tsx +27 -0
- package/src/components/avatar/RLSAvatar.tsx +142 -0
- package/src/components/avatar/avatar.ts +22 -21
- package/src/components/avatar-group/RLSAvatarGroup.tsx +163 -0
- package/src/components/badge/RLSBadge.tsx +1 -1
- package/src/components/badge/RLVBadge.vue +5 -3
- package/src/components/banner/RLABanner.astro +1 -1
- package/src/components/banner/RLSBanner.tsx +151 -0
- package/src/components/breadcrumb/RLSBreadcrumb.tsx +194 -0
- package/src/components/browser-mockup/RLSBrowserMockup.tsx +21 -0
- package/src/components/button/RLSButton.tsx +53 -38
- package/src/components/button/RLVButton.vue +44 -32
- package/src/components/calendar/RLSCalendar.tsx +26 -0
- package/src/components/callout/RLSCallout.tsx +151 -0
- package/src/components/card/RLSCard.tsx +4 -0
- package/src/components/card/RLVCard.vue +4 -0
- package/src/components/card/card.ts +10 -0
- package/src/components/carousel/RLACarousel.astro +14 -1
- package/src/components/carousel/RLSCarousel.tsx +260 -0
- package/src/components/chart/RLSChart.tsx +299 -0
- package/src/components/chat/RLSChat.tsx +27 -0
- package/src/components/chat-message/RLSChatMessage.tsx +27 -0
- package/src/components/chat-messages/RLSChatMessages.tsx +27 -0
- package/src/components/chat-palette/RLSChatPalette.tsx +27 -0
- package/src/components/chat-prompt/RLSChatPrompt.tsx +27 -0
- package/src/components/chat-prompt-submit/RLSChatPromptSubmit.tsx +27 -0
- package/src/components/chat-reasoning/RLSChatReasoning.tsx +27 -0
- package/src/components/chat-shimmer/RLSChatShimmer.tsx +27 -0
- package/src/components/chat-tool/RLSChatTool.tsx +27 -0
- package/src/components/checkbox/RLACheckbox.astro +1 -0
- package/src/components/checkbox/RLSCheckbox.tsx +1 -1
- package/src/components/checkbox/checkbox.theme.ts +2 -2
- package/src/components/chip/RLSChip.tsx +65 -0
- package/src/components/collapsible/RLSCollapsible.tsx +89 -0
- package/src/components/color-area/RLSColorArea.tsx +554 -0
- package/src/components/color-field/RLSColorField.tsx +236 -0
- package/src/components/color-picker/RLSColorPicker.tsx +26 -0
- package/src/components/color-slider/RLSColorSlider.tsx +373 -0
- package/src/components/command-palette/RLSCommandPalette.tsx +26 -0
- package/src/components/compare/RLSCompare.tsx +26 -0
- package/src/components/confirm/RLSConfirm.tsx +173 -0
- package/src/components/container/RLSContainer.tsx +24 -0
- package/src/components/context-menu/RLSContextMenu.tsx +26 -0
- package/src/components/copy-markdown/RLSCopyMarkdown.tsx +57 -0
- package/src/components/dashboard-group/RLSDashboardGroup.tsx +29 -0
- package/src/components/dashboard-navbar/RLSDashboardNavbar.tsx +116 -0
- package/src/components/dashboard-panel/RLSDashboardPanel.tsx +84 -0
- package/src/components/dashboard-resize-handle/RLSDashboardResizeHandle.tsx +35 -0
- package/src/components/dashboard-search/RLADashboardSearch.astro +1 -1
- package/src/components/dashboard-search/RLSDashboardSearch.tsx +125 -0
- package/src/components/dashboard-search-button/RLSDashboardSearchButton.tsx +82 -0
- package/src/components/dashboard-sidebar/RLADashboardSidebar.astro +4 -4
- package/src/components/dashboard-sidebar/RLSDashboardSidebar.tsx +184 -0
- package/src/components/dashboard-sidebar-collapse/RLSDashboardSidebarCollapse.tsx +46 -0
- package/src/components/dashboard-sidebar-toggle/RLSDashboardSidebarToggle.tsx +35 -0
- package/src/components/dashboard-toolbar/RLSDashboardToolbar.tsx +49 -0
- package/src/components/date/RLSDate.tsx +34 -0
- package/src/components/dock/RLSDock.tsx +26 -0
- package/src/components/drawer/RLSDrawer.tsx +177 -0
- package/src/components/dropdown-menu/RLADropdownMenu.astro +250 -241
- package/src/components/dropdown-menu/RLSDropdownMenu.tsx +183 -86
- package/src/components/editor/RLSEditor.tsx +26 -0
- package/src/components/empty/RLSEmpty.tsx +132 -0
- package/src/components/error/RLSError.tsx +26 -0
- package/src/components/field-group/RLSFieldGroup.tsx +46 -0
- package/src/components/fieldset/RLSFieldset.tsx +26 -0
- package/src/components/file-upload/RLAFileUpload.astro +1 -1
- package/src/components/file-upload/RLSFileUpload.tsx +163 -0
- package/src/components/floating-action/RLSFloatingAction.tsx +26 -0
- package/src/components/footer/RLSFooter.tsx +56 -0
- package/src/components/form/RLSForm.tsx +34 -0
- package/src/components/gallery/RLSGallery.tsx +21 -0
- package/src/components/gamepad/RLSGamepad.tsx +269 -0
- package/src/components/grid/RLSGrid.tsx +29 -0
- package/src/components/head/RLAHead.astro +9 -0
- package/src/components/head/RLSHead.tsx +42 -0
- package/src/components/head/UIHead.astro +3 -0
- package/src/components/header/HeaderLayer.astro +1 -1
- package/src/components/header/RLSHeader.tsx +87 -0
- package/src/components/hover-card/RLSHoverCard.tsx +72 -0
- package/src/components/icon/RLSIcon.tsx +3 -1
- package/src/components/image/RLAImage.astro +447 -138
- package/src/components/image/RLSImage.tsx +545 -0
- package/src/components/image/image.theme.ts +19 -3
- package/src/components/image/image.ts +31 -1
- package/src/components/input/RLAInput.astro +62 -51
- package/src/components/input/RLSInput.tsx +1 -1
- package/src/components/input-date/RLSInputDate.tsx +92 -0
- package/src/components/input-menu/RLAInputMenu.astro +3 -3
- package/src/components/input-menu/RLSInputMenu.tsx +199 -0
- package/src/components/input-number/RLSInputNumber.tsx +184 -0
- package/src/components/input-pin/RLSInputPin.tsx +185 -0
- package/src/components/input-rating/RLAInputRating.astro +8 -8
- package/src/components/input-rating/RLSInputRating.tsx +198 -0
- package/src/components/input-rating/input-rating.ts +4 -0
- package/src/components/input-tags/RLSInputTags.tsx +94 -0
- package/src/components/input-time/RLSInputTime.tsx +92 -0
- package/src/components/kbd/RLSKbd.tsx +37 -0
- package/src/components/keyboard/RLSKeyboard.tsx +476 -0
- package/src/components/knob/RLSKnob.tsx +27 -0
- package/src/components/label/RLSLabel.tsx +27 -0
- package/src/components/layout-grid/RLALayoutGrid.astro +29 -29
- package/src/components/layout-grid/RLSLayoutGrid.tsx +402 -0
- package/src/components/layout-grid/layout-grid.ts +25 -1
- package/src/components/link/RLALink.astro +5 -5
- package/src/components/link/RLSLink.tsx +6 -5
- package/src/components/link/link.ts +21 -12
- package/src/components/link-group/RLSLinkGroup.tsx +76 -0
- package/src/components/listbox/RLSListbox.tsx +27 -0
- package/src/components/locale-selector/RLALocaleSelector.astro +110 -102
- package/src/components/locale-selector/RLSLocaleSelector.tsx +178 -0
- package/src/components/locale-selector/locale-selector.ts +2 -7
- package/src/components/logo/RLALogo.astro +153 -102
- package/src/components/logo/RLSLogo.tsx +129 -0
- package/src/components/main/RLSMain.tsx +40 -0
- package/src/components/marquee/RLSMarquee.tsx +80 -0
- package/src/components/meter/RLSMeter.tsx +27 -0
- package/src/components/modal/RLAModal.astro +1 -1
- package/src/components/modal/RLSModal.tsx +109 -72
- package/src/components/navigation-menu/RLANavigationMenu.astro +6 -6
- package/src/components/navigation-menu/RLSNavigationMenu.tsx +228 -0
- package/src/components/navigation-menu/navigation-menu.ts +2 -2
- package/src/components/package-managers/RLSPackageManagers.tsx +204 -0
- package/src/components/page/RLSPage.tsx +21 -0
- package/src/components/page-aside/RLSPageAside.tsx +21 -0
- package/src/components/page-body/RLSPageBody.tsx +21 -0
- package/src/components/page-header/RLSPageHeader.tsx +21 -0
- package/src/components/page-section/RLSPageSection.tsx +201 -0
- package/src/components/pagination/RLSPagination.tsx +114 -0
- package/src/components/password/RLSPassword.tsx +27 -0
- package/src/components/phone-mockup/RLSPhoneMockup.tsx +27 -0
- package/src/components/placeholder/RLSPlaceholder.tsx +47 -0
- package/src/components/popover/RLAPopover.astro +2 -2
- package/src/components/popover/RLSPopover.tsx +124 -0
- package/src/components/post/RLSPost.tsx +134 -0
- package/src/components/pricing-plan/RLSPricingPlan.tsx +26 -0
- package/src/components/pricing-table/RLSPricingTable.tsx +26 -0
- package/src/components/progress/RLSProgress.tsx +53 -0
- package/src/components/prose/RLSProse.tsx +26 -0
- package/src/components/qr-code/RLSQrCode.tsx +26 -0
- package/src/components/quote/RLAQuote.astro +10 -6
- package/src/components/quote/RLSQuote.tsx +37 -0
- package/src/components/quote/quote.theme.ts +5 -2
- package/src/components/radio-group/RLSRadioGroup.tsx +37 -0
- package/src/components/rating/RLSRating.tsx +27 -0
- package/src/components/scroll-area/RLAScrollArea.astro +1 -1
- package/src/components/scroll-area/RLSScrollArea.tsx +210 -0
- package/src/components/scroll-to-top/RLAScrollToTop.astro +5 -4
- package/src/components/scroll-to-top/RLSScrollToTop.tsx +145 -0
- package/src/components/search/RLASearch.astro +6 -6
- package/src/components/search/RLSSearch.tsx +237 -0
- package/src/components/select/RLASelect.astro +67 -4
- package/src/components/select/RLSSelect.tsx +107 -39
- package/src/components/select/RLVSelect.vue +50 -1
- package/src/components/select/select.theme.ts +30 -10
- package/src/components/select/select.ts +20 -1
- package/src/components/separator/RLSSeparator.tsx +92 -0
- package/src/components/share/RLSShare.tsx +66 -0
- package/src/components/shortcuts/RLAShortcuts.astro +2 -2
- package/src/components/shortcuts/RLSShortcuts.tsx +393 -0
- package/src/components/sidebar/RLASidebar.astro +1 -1
- package/src/components/sidebar/RLSSidebar.tsx +271 -0
- package/src/components/skeleton/RLSSkeleton.tsx +21 -0
- package/src/components/slideover/RLASlideover.astro +1 -1
- package/src/components/slideover/RLSSlideover.tsx +159 -0
- package/src/components/slider/RLSSlider.tsx +112 -0
- package/src/components/speed-dial/RLSSpeedDial.tsx +27 -0
- package/src/components/spinner/RLSSpinner.tsx +22 -0
- package/src/components/splitter/RLASplitter.astro +1 -1
- package/src/components/splitter/RLSSplitter.tsx +178 -0
- package/src/components/spoiler/RLSSpoiler.tsx +26 -0
- package/src/components/stepper/RLAStepper.astro +9 -9
- package/src/components/stepper/RLSStepper.tsx +205 -0
- package/src/components/steps/RLSSteps.tsx +108 -0
- package/src/components/sticky-surface/RLSStickySurface.tsx +63 -0
- package/src/components/surround/RLSSurround.tsx +57 -0
- package/src/components/switch/RLSSwitch.tsx +56 -0
- package/src/components/table/RLATable.astro +1044 -579
- package/src/components/table/RLSTable.tsx +893 -0
- package/src/components/table/table.theme.ts +47 -16
- package/src/components/table/table.ts +104 -66
- package/src/components/table-of-contents/RLSTableOfContents.tsx +196 -0
- package/src/components/tabs/RLATabs.astro +8 -8
- package/src/components/tabs/RLSTabs.tsx +298 -0
- package/src/components/textarea/RLATextarea.astro +1 -0
- package/src/components/textarea/RLSTextarea.tsx +3 -1
- package/src/components/theme-selector/RLAThemeSelector.astro +85 -56
- package/src/components/theme-selector/RLSThemeSelector.tsx +131 -0
- package/src/components/theme-selector/theme-selector.theme.ts +5 -7
- package/src/components/theme-selector/theme-selector.ts +11 -1
- package/src/components/timeline/RLSTimeline.tsx +171 -0
- package/src/components/toast/RLAToast.astro +2 -2
- package/src/components/toast/RLSToast.tsx +179 -0
- package/src/components/toaster/RLSToaster.tsx +82 -0
- package/src/components/tooltip/RLSTooltip.tsx +48 -0
- package/src/components/tour/RLSTour.tsx +26 -0
- package/src/components/tree/RLSTree.tsx +26 -0
- package/src/components/user/RLSUser.tsx +26 -0
- package/src/components/video/RLAVideo.astro +4 -1
- package/src/components/video/RLSVideo.tsx +158 -0
- package/src/components/watermark/RLSWatermark.tsx +27 -0
- package/src/components/window-mockup/RLSWindowMockup.tsx +27 -0
- package/src/preset.ts +73 -1
- package/src/resolver.ts +6 -1
- package/src/virtual.d.ts +6 -0
- package/dist/icons--RzV1RTU.d.mts +0 -72
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { createMemo, splitProps, type Component, type JSX } from "solid-js"
|
|
2
|
+
import type { TreeProps } from "./tree"
|
|
3
|
+
import { treeTheme } from "./tree.theme"
|
|
4
|
+
|
|
5
|
+
export interface RLSTreeProps extends TreeProps {
|
|
6
|
+
children?: JSX.Element
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const RLSTree: Component<RLSTreeProps> = (allProps) => {
|
|
10
|
+
const [props, rest] = splitProps(allProps, ["ui", "class", "children"])
|
|
11
|
+
|
|
12
|
+
const resolvedClasses = createMemo(() =>
|
|
13
|
+
treeTheme({
|
|
14
|
+
ui: props.ui,
|
|
15
|
+
class: props.class
|
|
16
|
+
})
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
return (
|
|
20
|
+
<div class={resolvedClasses().root} data-slot="root" {...rest}>
|
|
21
|
+
{props.children}
|
|
22
|
+
</div>
|
|
23
|
+
)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default RLSTree
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { createMemo, splitProps, type Component, type JSX } from "solid-js"
|
|
2
|
+
import type { UserProps } from "./user"
|
|
3
|
+
import { userTheme } from "./user.theme"
|
|
4
|
+
|
|
5
|
+
export interface RLSUserProps extends UserProps {
|
|
6
|
+
children?: JSX.Element
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const RLSUser: Component<RLSUserProps> = (allProps) => {
|
|
10
|
+
const [props, rest] = splitProps(allProps, ["ui", "class", "children"])
|
|
11
|
+
|
|
12
|
+
const classes = createMemo(() =>
|
|
13
|
+
userTheme({
|
|
14
|
+
ui: props.ui,
|
|
15
|
+
class: props.class
|
|
16
|
+
})
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
return (
|
|
20
|
+
<div class={classes()["root"]} data-slot="root" {...rest}>
|
|
21
|
+
{props.children}
|
|
22
|
+
</div>
|
|
23
|
+
)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default RLSUser
|
|
@@ -131,10 +131,12 @@ const ariaLabel = isPlayable ? "Play YouTube Video" : "YouTube Video Unavailable
|
|
|
131
131
|
|
|
132
132
|
<div
|
|
133
133
|
class:list={[classes.root]}
|
|
134
|
+
data-slot="root"
|
|
134
135
|
{...rest}
|
|
135
136
|
>
|
|
136
137
|
<button
|
|
137
138
|
type="button"
|
|
139
|
+
data-slot="trigger"
|
|
138
140
|
data-youtube-trigger
|
|
139
141
|
aria-label={ariaLabel}
|
|
140
142
|
data-embed-url={isPlayable ? embedUrl : undefined}
|
|
@@ -150,10 +152,11 @@ const ariaLabel = isPlayable ? "Play YouTube Video" : "YouTube Video Unavailable
|
|
|
150
152
|
height="720"
|
|
151
153
|
loading="lazy"
|
|
152
154
|
class:list={[classes.image]}
|
|
155
|
+
data-slot="image"
|
|
153
156
|
/>
|
|
154
157
|
|
|
155
158
|
<slot name="icon">
|
|
156
|
-
<RLAIcon name={icon} class={classes.icon} aria-hidden="true" />
|
|
159
|
+
<RLAIcon name={icon} class={classes.icon} data-slot="icon" aria-hidden="true" />
|
|
157
160
|
</slot>
|
|
158
161
|
</button>
|
|
159
162
|
</div>
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { createMemo, createSignal, Show, splitProps, type Component, type JSX } from "solid-js"
|
|
2
|
+
import type { VideoProps } from "./video"
|
|
3
|
+
import { videoTheme } from "./video.theme"
|
|
4
|
+
import RLSIcon from "../icon/RLSIcon"
|
|
5
|
+
|
|
6
|
+
export interface RLSVideoProps extends VideoProps {
|
|
7
|
+
children?: JSX.Element
|
|
8
|
+
thumbnail?: string
|
|
9
|
+
iconSlot?: JSX.Element
|
|
10
|
+
transcriptSlot?: JSX.Element
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const PLACEHOLDER_THUMBNAIL = "/assets/placeholder.webp"
|
|
14
|
+
const YOUTUBE_EMBED_BASE = "https://www.youtube.com/embed/"
|
|
15
|
+
const VALID_ID_PATTERN = /^[\w-]{11}$/
|
|
16
|
+
const KNOWN_PREFIXES = ["www.", "m.", "music.", "gaming."]
|
|
17
|
+
const YOUTUBE_THUMB_BASE = "https://i3.ytimg.com/vi/"
|
|
18
|
+
|
|
19
|
+
function normalizeHost(host: string): string {
|
|
20
|
+
for (const prefix of KNOWN_PREFIXES) {
|
|
21
|
+
if (host.startsWith(prefix)) {
|
|
22
|
+
return host.slice(prefix.length)
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return host
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function sanitizeVideoId(id: string | null): string | null {
|
|
29
|
+
if (!id) return null
|
|
30
|
+
return VALID_ID_PATTERN.test(id) ? id : null
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function extractYoutubeVideoId(rawUrl: string): string | null {
|
|
34
|
+
if (!rawUrl) return null
|
|
35
|
+
try {
|
|
36
|
+
const url = new URL(rawUrl)
|
|
37
|
+
const host = normalizeHost(url.hostname)
|
|
38
|
+
|
|
39
|
+
if (host === "youtu.be") {
|
|
40
|
+
const id = url.pathname.split("/").find(Boolean) ?? null
|
|
41
|
+
return sanitizeVideoId(id)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (host.endsWith("youtube.com")) {
|
|
45
|
+
const paramsId = sanitizeVideoId(url.searchParams.get("v"))
|
|
46
|
+
if (paramsId) return paramsId
|
|
47
|
+
|
|
48
|
+
const segments = url.pathname.split("/").filter(Boolean)
|
|
49
|
+
if (!segments.length) return null
|
|
50
|
+
|
|
51
|
+
if (segments[0] === "embed" || segments[0] === "shorts" || segments[0] === "live") {
|
|
52
|
+
return sanitizeVideoId(segments[1] ?? null)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return sanitizeVideoId(segments[segments.length - 1] ?? null)
|
|
56
|
+
}
|
|
57
|
+
} catch {
|
|
58
|
+
if (VALID_ID_PATTERN.test(rawUrl)) {
|
|
59
|
+
return rawUrl
|
|
60
|
+
}
|
|
61
|
+
return null
|
|
62
|
+
}
|
|
63
|
+
return null
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const RLSVideo: Component<RLSVideoProps> = (allProps) => {
|
|
67
|
+
const [props, rest] = splitProps(allProps, [
|
|
68
|
+
"src",
|
|
69
|
+
"title",
|
|
70
|
+
"icon",
|
|
71
|
+
"thumbnail",
|
|
72
|
+
"iconSlot",
|
|
73
|
+
"transcriptSlot",
|
|
74
|
+
"ui",
|
|
75
|
+
"class",
|
|
76
|
+
"children"
|
|
77
|
+
])
|
|
78
|
+
|
|
79
|
+
const [isPlaying, setIsPlaying] = createSignal(false)
|
|
80
|
+
|
|
81
|
+
const videoId = createMemo(() => extractYoutubeVideoId(props.src || ""))
|
|
82
|
+
const embedUrl = createMemo(() =>
|
|
83
|
+
videoId() ? `${YOUTUBE_EMBED_BASE}${videoId()}?autoplay=1` : null
|
|
84
|
+
)
|
|
85
|
+
const defaultThumbnail = createMemo(() =>
|
|
86
|
+
videoId() ? `${YOUTUBE_THUMB_BASE}${videoId()}/hqdefault.jpg` : PLACEHOLDER_THUMBNAIL
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
const titleText = () => props.title || "YouTube Video Player"
|
|
90
|
+
const iconName = () => props.icon || "play"
|
|
91
|
+
const isPlayable = () => Boolean(embedUrl())
|
|
92
|
+
|
|
93
|
+
const resolvedClasses = createMemo(() =>
|
|
94
|
+
videoTheme({
|
|
95
|
+
title: !!props.title,
|
|
96
|
+
icon: !!props.icon,
|
|
97
|
+
ui: props.ui,
|
|
98
|
+
class: props.class
|
|
99
|
+
})
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
return (
|
|
103
|
+
<div>
|
|
104
|
+
<div class={resolvedClasses().root} data-slot="root" {...rest}>
|
|
105
|
+
<Show
|
|
106
|
+
when={isPlaying() && embedUrl()}
|
|
107
|
+
fallback={
|
|
108
|
+
<button
|
|
109
|
+
type="button"
|
|
110
|
+
class={resolvedClasses().trigger}
|
|
111
|
+
data-slot="trigger"
|
|
112
|
+
aria-label={isPlayable() ? "Play YouTube Video" : "YouTube Video Unavailable"}
|
|
113
|
+
disabled={!isPlayable()}
|
|
114
|
+
onClick={() => setIsPlaying(true)}
|
|
115
|
+
>
|
|
116
|
+
<img
|
|
117
|
+
src={props.thumbnail || defaultThumbnail()}
|
|
118
|
+
alt={titleText()}
|
|
119
|
+
loading="lazy"
|
|
120
|
+
class={resolvedClasses().image}
|
|
121
|
+
data-slot="image"
|
|
122
|
+
/>
|
|
123
|
+
|
|
124
|
+
{props.iconSlot !== undefined ? (
|
|
125
|
+
props.iconSlot
|
|
126
|
+
) : (
|
|
127
|
+
<RLSIcon
|
|
128
|
+
name={iconName()}
|
|
129
|
+
class={resolvedClasses().icon}
|
|
130
|
+
data-slot="icon"
|
|
131
|
+
aria-hidden="true"
|
|
132
|
+
/>
|
|
133
|
+
)}
|
|
134
|
+
</button>
|
|
135
|
+
}
|
|
136
|
+
>
|
|
137
|
+
<iframe
|
|
138
|
+
src={embedUrl()!}
|
|
139
|
+
title={titleText()}
|
|
140
|
+
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
|
141
|
+
allowfullscreen
|
|
142
|
+
loading="lazy"
|
|
143
|
+
referrerpolicy="strict-origin-when-cross-origin"
|
|
144
|
+
class="w-full h-full absolute inset-0 border-0"
|
|
145
|
+
/>
|
|
146
|
+
</Show>
|
|
147
|
+
</div>
|
|
148
|
+
|
|
149
|
+
<Show when={props.transcriptSlot !== undefined || props.children !== undefined}>
|
|
150
|
+
<div class="mt-2 text-sm text-zinc-400" data-slot="transcript">
|
|
151
|
+
{props.transcriptSlot !== undefined ? props.transcriptSlot : props.children}
|
|
152
|
+
</div>
|
|
153
|
+
</Show>
|
|
154
|
+
</div>
|
|
155
|
+
)
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export default RLSVideo
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createMemo, splitProps, type Component, type JSX } from "solid-js"
|
|
2
|
+
import type { WatermarkProps } from "./watermark"
|
|
3
|
+
import { watermarkTheme } from "./watermark.theme"
|
|
4
|
+
|
|
5
|
+
export interface RLSWatermarkProps extends WatermarkProps {
|
|
6
|
+
children?: JSX.Element
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const RLSWatermark: Component<RLSWatermarkProps> = (allProps) => {
|
|
10
|
+
const [props, rest] = splitProps(allProps, ["ui", "class", "children"])
|
|
11
|
+
|
|
12
|
+
const resolvedClasses = createMemo(() =>
|
|
13
|
+
watermarkTheme({
|
|
14
|
+
ui: props.ui,
|
|
15
|
+
class: props.class,
|
|
16
|
+
...allProps
|
|
17
|
+
})
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<div class={resolvedClasses().root} data-slot="root" {...rest}>
|
|
22
|
+
{props.children}
|
|
23
|
+
</div>
|
|
24
|
+
)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export default RLSWatermark
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createMemo, splitProps, type Component, type JSX } from "solid-js"
|
|
2
|
+
import type { WindowMockupProps } from "./window-mockup"
|
|
3
|
+
import { windowMockupTheme } from "./window-mockup.theme"
|
|
4
|
+
|
|
5
|
+
export interface RLSWindowMockupProps extends WindowMockupProps {
|
|
6
|
+
children?: JSX.Element
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const RLSWindowMockup: Component<RLSWindowMockupProps> = (allProps) => {
|
|
10
|
+
const [props, rest] = splitProps(allProps, ["ui", "class", "children"])
|
|
11
|
+
|
|
12
|
+
const resolvedClasses = createMemo(() =>
|
|
13
|
+
windowMockupTheme({
|
|
14
|
+
ui: props.ui,
|
|
15
|
+
class: props.class,
|
|
16
|
+
...allProps
|
|
17
|
+
})
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<div class={resolvedClasses().root} data-slot="root" {...rest}>
|
|
22
|
+
{props.children}
|
|
23
|
+
</div>
|
|
24
|
+
)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export default RLSWindowMockup
|
package/src/preset.ts
CHANGED
|
@@ -141,7 +141,79 @@ export default function rimelightUiPreset({ colors, icons, presets = {} }: UICon
|
|
|
141
141
|
}
|
|
142
142
|
[data-theme="dark"] { color-scheme: dark; }
|
|
143
143
|
[data-theme="light"] { color-scheme: light; }
|
|
144
|
-
body { background-color: var(--rl-neutral-50); color: var(--rl-neutral-950); }
|
|
144
|
+
body { background-color: var(--rl-neutral-50); color: var(--rl-neutral-950); }
|
|
145
|
+
|
|
146
|
+
/* Reduced motion - disable all animations for users who prefer it */
|
|
147
|
+
@media (prefers-reduced-motion: reduce) {
|
|
148
|
+
*,
|
|
149
|
+
*::before,
|
|
150
|
+
*::after {
|
|
151
|
+
animation-duration: 0.01ms !important;
|
|
152
|
+
animation-iteration-count: 1 !important;
|
|
153
|
+
transition-duration: 0.01ms !important;
|
|
154
|
+
scroll-behavior: auto !important;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* Global focus-visible ring for consistent keyboard focus */
|
|
159
|
+
:focus-visible {
|
|
160
|
+
outline: 2px solid var(--rl-primary-500);
|
|
161
|
+
outline-offset: 2px;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/* Ensure minimum touch target sizes (WCAG 2.2 - 24x24 minimum, 44x44 enhanced) */
|
|
165
|
+
button:not(:disabled),
|
|
166
|
+
[role="button"]:not(:disabled),
|
|
167
|
+
a[href],
|
|
168
|
+
input:not([type="hidden"]),
|
|
169
|
+
select,
|
|
170
|
+
textarea,
|
|
171
|
+
summary {
|
|
172
|
+
min-width: 24px;
|
|
173
|
+
min-height: 24px;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/* Enhanced touch targets for primary interactive elements */
|
|
177
|
+
@media (pointer: coarse) {
|
|
178
|
+
button:not(:disabled),
|
|
179
|
+
[role="button"]:not(:disabled),
|
|
180
|
+
a[href] {
|
|
181
|
+
min-width: 44px;
|
|
182
|
+
min-height: 44px;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/* Improve skip link visibility */
|
|
187
|
+
.skip-link:focus-visible {
|
|
188
|
+
position: absolute;
|
|
189
|
+
top: 1rem;
|
|
190
|
+
left: 1rem;
|
|
191
|
+
z-index: 9999;
|
|
192
|
+
padding: 0.75rem 1.5rem;
|
|
193
|
+
background: var(--rl-primary-600);
|
|
194
|
+
color: white;
|
|
195
|
+
border-radius: 0.5rem;
|
|
196
|
+
font-weight: 600;
|
|
197
|
+
text-decoration: none;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
@keyframes carousel {
|
|
201
|
+
0% { transform: translateX(-100%); }
|
|
202
|
+
100% { transform: translateX(350%); }
|
|
203
|
+
}
|
|
204
|
+
@keyframes carousel-inverse {
|
|
205
|
+
0% { transform: translateX(350%); }
|
|
206
|
+
100% { transform: translateX(-100%); }
|
|
207
|
+
}
|
|
208
|
+
@keyframes swing {
|
|
209
|
+
0%, 100% { transform: translateX(-50%); }
|
|
210
|
+
50% { transform: translateX(250%); }
|
|
211
|
+
}
|
|
212
|
+
@keyframes elastic {
|
|
213
|
+
0% { transform: scaleX(0.1) translateX(-100%); }
|
|
214
|
+
50% { transform: scaleX(0.7) translateX(100%); }
|
|
215
|
+
100% { transform: scaleX(0.1) translateX(350%); }
|
|
216
|
+
}`
|
|
145
217
|
}
|
|
146
218
|
]
|
|
147
219
|
}
|
package/src/resolver.ts
CHANGED
|
@@ -76,7 +76,12 @@ export function defineTheme<const S extends string>(name: string, themeConfig: T
|
|
|
76
76
|
res[slots[i]!] = baseMap[slots[i]!] || ""
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
const values = { ...defaultVariants
|
|
79
|
+
const values: Record<string, any> = { ...defaultVariants }
|
|
80
|
+
for (const k in props) {
|
|
81
|
+
if (props[k] !== undefined) {
|
|
82
|
+
values[k] = props[k]
|
|
83
|
+
}
|
|
84
|
+
}
|
|
80
85
|
const color = autoColor ? (props.color ?? defaultVariants.color) : undefined
|
|
81
86
|
|
|
82
87
|
for (let k = 0; k < variantKeys.length; k++) {
|
package/src/virtual.d.ts
CHANGED
|
@@ -2,3 +2,9 @@ declare module "virtual:rimelight/ui" {
|
|
|
2
2
|
import type { UIConfig } from "./types"
|
|
3
3
|
export default {} as UIConfig
|
|
4
4
|
}
|
|
5
|
+
|
|
6
|
+
declare module "*.vue" {
|
|
7
|
+
import type { DefineComponent } from "vue"
|
|
8
|
+
const component: DefineComponent<Record<string, any>, Record<string, any>, any>
|
|
9
|
+
export default component
|
|
10
|
+
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
//#region src/icons.raw.d.ts
|
|
2
|
-
declare const svg: (inner: string) => string;
|
|
3
|
-
declare const ICONS: {
|
|
4
|
-
readonly alertTriangle: `<path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"/><path d="M12 9v4M12 17h.01"/>`;
|
|
5
|
-
readonly alignLeft: `<line x1="21" x2="3" y1="6" y2="6"/><line x1="15" x2="3" y1="12" y2="12"/><line x1="17" x2="3" y1="18" y2="18"/>`;
|
|
6
|
-
readonly arrowLeft: `<path d="M19 12H5M12 19l-7-7 7-7"/>`;
|
|
7
|
-
readonly arrowRight: `<path d="M5 12h14M12 5l7 7-7 7"/>`;
|
|
8
|
-
readonly bell: `<path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9M10.3 21a1.94 1.94 0 0 0 3.4 0"/>`;
|
|
9
|
-
readonly check: `<path d="M20 6 9 17l-5-5"/>`;
|
|
10
|
-
readonly chevronDown: `<path d="m6 9 6 6 6-6"/>`;
|
|
11
|
-
readonly chevronLeft: `<path d="m15 18-6-6 6-6"/>`;
|
|
12
|
-
readonly chevronRight: `<path d="m9 18 6-6-6-6"/>`;
|
|
13
|
-
readonly chevronsUpDown: `<path d="m7 15 5 5 5-5M7 9l5-5 5 5"/>`;
|
|
14
|
-
readonly circleCheck: `<circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/>`;
|
|
15
|
-
readonly circleX: `<circle cx="12" cy="12" r="10"/><path d="m15 9-6 6M9 9l6 6"/>`;
|
|
16
|
-
readonly close: `<path d="M18 6 6 18M6 6l12 12"/>`;
|
|
17
|
-
readonly copy: `<rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/>`;
|
|
18
|
-
readonly download: `<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3"/>`;
|
|
19
|
-
readonly externalLink: `<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6M15 3h6v6M10 14 21 3"/>`;
|
|
20
|
-
readonly fileQuestion: `<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"/><path d="M14 2v4a2 2 0 0 0 2 2h4M9.1 11.8a3 3 0 0 1 5.8 1c0 .9-.6 1.4-1.1 1.8-.4.3-.8.7-.8 1.4M12 19h.01"/>`;
|
|
21
|
-
readonly gripHorizontal: `<circle cx="12" cy="9" r="1"/><circle cx="19" cy="9" r="1"/><circle cx="5" cy="9" r="1"/><circle cx="12" cy="15" r="1"/><circle cx="19" cy="15" r="1"/><circle cx="5" cy="15" r="1"/>`;
|
|
22
|
-
readonly gripVertical: `<circle cx="9" cy="12" r="1"/><circle cx="9" cy="5" r="1"/><circle cx="9" cy="19" r="1"/><circle cx="15" cy="12" r="1"/><circle cx="15" cy="5" r="1"/><circle cx="15" cy="19" r="1"/>`;
|
|
23
|
-
readonly hardDrive: `<rect width="20" height="8" x="2" y="14" rx="2"/><path d="M6 18h.01M10 18h.01M2 14L5 3h14l3 11"/>`;
|
|
24
|
-
readonly image: `<rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/>`;
|
|
25
|
-
readonly imageUpscale: `<path d="M16 3H3v13h13V3z"/><path d="M21 21v-4a2 2 0 0 0-2-2h-3M21 11V9M21 5a2 2 0 0 0-2-2h-1"/>`;
|
|
26
|
-
readonly info: `<circle cx="12" cy="12" r="10"/><path d="M12 16v-4M12 8h.01"/>`;
|
|
27
|
-
readonly layers: `<path d="m12 3-10 5L12 13l10-5-10-5Z"/><path d="M2 17l10 5 10-5M2 12l10 5 10-5"/>`;
|
|
28
|
-
readonly list: `<line x1="8" x2="21" y1="6" y2="6"/><line x1="8" x2="21" y1="12" y2="12"/><line x1="8" x2="21" y1="18" y2="18"/><line x1="3" x2="3.01" y1="6" y2="6"/><line x1="3" x2="3.01" y1="12" y2="12"/><line x1="3" x2="3.01" y1="18" y2="18"/>`;
|
|
29
|
-
readonly loaderCircle: `<path d="M21 12a9 9 0 1 1-6.219-8.56"/>`;
|
|
30
|
-
readonly moon: `<path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"/>`;
|
|
31
|
-
readonly panelLeft: `<rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><path d="M9 3v18"/>`;
|
|
32
|
-
readonly play: `<polygon points="6 3 20 12 6 21 6 3"/>`;
|
|
33
|
-
readonly quote: `<path d="M3 21c3 0 7-1 7-8V5c0-1.25-.75-2-2-2H4c-1.25 0-2 .75-2 2v6c0 1.25.75 2 2 2h3c0 4-3 6-3 6Zm11 0c3 0 7-1 7-8V5c0-1.25-.75-2-2-2h-4c-1.25 0-2 .75-2 2v6c0 1.25.75 2 2 2h3c0 4-3 6-3 6Z"/>`;
|
|
34
|
-
readonly search: `<circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/>`;
|
|
35
|
-
readonly share: `<circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><path d="m8.59 13.51 6.83 3.98M15.41 6.51l-6.82 3.98"/>`;
|
|
36
|
-
readonly sun: `<circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"/>`;
|
|
37
|
-
readonly uploadCloud: `<path d="M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242M12 12v9M9 15l3-3 3 3"/>`;
|
|
38
|
-
readonly user: `<path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/>`;
|
|
39
|
-
readonly star: `<polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/>`;
|
|
40
|
-
readonly lock: `<rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/>`;
|
|
41
|
-
readonly eye: `<path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0z"/><circle cx="12" cy="12" r="3"/>`;
|
|
42
|
-
readonly eyeOff: `<path d="M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49"/><path d="M14.084 14.158a3 3 0 0 1-4.242-4.242"/><path d="M17.479 17.499A10.75 10.75 0 0 1 2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.225-4.22"/><line x1="2" x2="22" y1="2" y2="22"/>`;
|
|
43
|
-
readonly arrowUp: `<path d="M12 19V5M5 12l7-7 7 7"/>`;
|
|
44
|
-
readonly arrowDown: `<path d="M12 5v14M19 12l-7 7-7-7"/>`;
|
|
45
|
-
readonly edit: `<path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/>`;
|
|
46
|
-
readonly link: `<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/>`;
|
|
47
|
-
readonly plus: `<path d="M5 12h14M12 5v14"/>`;
|
|
48
|
-
readonly trash: `<path d="M3 6h18M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6M10 11v6M14 11v6"/><path d="M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"/>`;
|
|
49
|
-
readonly fileText: `<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"/><path d="M14 2v4a2 2 0 0 0 2 2h4"/><path d="M10 9H8M16 13H8M16 17H8"/>`;
|
|
50
|
-
readonly settings: `<path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/>`;
|
|
51
|
-
readonly type: `<polyline points="4 7 4 4 20 4 20 7"/><line x1="9" x2="15" y1="20" y2="20"/><line x1="12" x2="12" y1="4" y2="20"/>`;
|
|
52
|
-
readonly code: `<polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/>`;
|
|
53
|
-
readonly film: `<rect width="18" height="18" x="3" y="3" rx="2"/><path d="M7 3v18M17 3v18M3 7h4M17 7h4M3 12h18M3 17h4M17 17h4"/>`;
|
|
54
|
-
readonly messageSquare: `<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>`;
|
|
55
|
-
readonly bookOpen: `<path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/>`;
|
|
56
|
-
readonly panelRight: `<rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><path d="M15 3v18"/>`;
|
|
57
|
-
readonly pin: `<path d="M12 17v5"/><path d="M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z"/>`;
|
|
58
|
-
readonly ellipsisVertical: `<circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/>`;
|
|
59
|
-
readonly arrowUpFromLine: `<path d="m18 9-6-6-6 6"/><path d="M12 3v14"/><path d="M5 21h14"/>`;
|
|
60
|
-
readonly arrowDownToLine: `<path d="M12 17V3"/><path d="m6 11 6 6 6-6"/><path d="M5 21h14"/>`;
|
|
61
|
-
};
|
|
62
|
-
//#endregion
|
|
63
|
-
//#region src/icons.d.ts
|
|
64
|
-
declare const getSvgIcon: (k: string) => string;
|
|
65
|
-
declare const DEFAULT_ICONS: Record<keyof typeof ICONS, string>;
|
|
66
|
-
type RimelightIcons = Partial<Record<keyof typeof ICONS | (string & {}), string>>;
|
|
67
|
-
declare const resolveIcon: (name?: string, custom?: string) => {
|
|
68
|
-
isClass: boolean;
|
|
69
|
-
content: string;
|
|
70
|
-
};
|
|
71
|
-
//#endregion
|
|
72
|
-
export { ICONS as a, resolveIcon as i, RimelightIcons as n, svg as o, getSvgIcon as r, DEFAULT_ICONS as t };
|