@rimelight/ui 0.0.29 → 0.0.31
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/package.json +1 -1
- package/src/components/astro/RLAAlert.astro +60 -0
- package/src/components/astro/RLAAlertDialog.astro +86 -0
- package/src/components/astro/RLAAspectRatio.astro +23 -0
- package/src/components/astro/RLAAvatar.astro +56 -0
- package/src/components/astro/RLAAvatarGroup.astro +19 -0
- package/src/components/astro/RLABadge.astro +31 -0
- package/src/components/astro/RLABreadcrumb.astro +44 -0
- package/src/components/astro/RLACard.astro +74 -0
- package/src/components/astro/RLACarousel.astro +71 -0
- package/src/components/astro/RLAChart.astro +215 -0
- package/src/components/astro/RLACheckbox.astro +51 -0
- package/src/components/astro/RLACollapsible.astro +38 -0
- package/src/components/astro/RLACombobox.astro +131 -0
- package/src/components/astro/RLADialog.astro +95 -0
- package/src/components/astro/RLADrawer.astro +74 -0
- package/src/components/astro/RLADropdownMenu.astro +82 -0
- package/src/components/astro/RLADropzone.astro +134 -0
- package/src/components/astro/RLAField.astro +43 -0
- package/src/components/{Head.astro → astro/RLAHead.astro} +181 -199
- package/src/components/astro/RLAHoverCard.astro +31 -0
- package/src/components/astro/RLAInput.astro +60 -0
- package/src/components/astro/RLAInputGroup.astro +35 -0
- package/src/components/astro/RLAKbd.astro +22 -0
- package/src/components/astro/RLALabel.astro +23 -0
- package/src/components/astro/RLALocaleSelector.astro +110 -0
- package/src/components/astro/RLAMain.astro +28 -0
- package/src/components/astro/RLAMarquee.astro +32 -0
- package/src/components/astro/RLANativeSelect.astro +51 -0
- package/src/components/astro/RLANavigationMenu.astro +136 -0
- package/src/components/astro/RLAPagination.astro +94 -0
- package/src/components/astro/RLAPopover.astro +31 -0
- package/src/components/astro/RLAProgress.astro +43 -0
- package/src/components/astro/RLAResizable.astro +177 -0
- package/src/components/astro/RLAScrollArea.astro +157 -0
- package/src/components/astro/RLASection.astro +0 -1
- package/src/components/astro/RLASelect.astro +109 -0
- package/src/components/astro/RLASeparator.astro +27 -0
- package/src/components/astro/RLASheet.astro +72 -0
- package/src/components/astro/RLASidebar.astro +135 -0
- package/src/components/astro/RLASkeleton.astro +20 -0
- package/src/components/astro/RLASlider.astro +53 -0
- package/src/components/astro/RLASpinner.astro +25 -0
- package/src/components/astro/RLAStickySurface.astro +27 -0
- package/src/components/astro/RLASwitch.astro +49 -0
- package/src/components/astro/RLATable.astro +60 -0
- package/src/components/astro/RLATabs.astro +92 -0
- package/src/components/astro/RLATextarea.astro +42 -0
- package/src/components/astro/RLAThemeSelector.astro +73 -0
- package/src/components/astro/RLAToast.astro +107 -0
- package/src/components/astro/RLAToggle.astro +38 -0
- package/src/components/astro/RLAToggleGroup.astro +30 -0
- package/src/components/astro/RLATooltip.astro +31 -0
- package/src/integrations/ui.ts +1 -0
- package/src/themes/alert.theme.ts +51 -0
- package/src/themes/alertDialog.theme.ts +33 -0
- package/src/themes/aspectRatio.theme.ts +11 -0
- package/src/themes/avatar.theme.ts +28 -0
- package/src/themes/avatarGroup.theme.ts +10 -0
- package/src/themes/badge.theme.ts +61 -0
- package/src/themes/breadcrumb.theme.ts +15 -0
- package/src/themes/card.theme.ts +34 -0
- package/src/themes/carousel.theme.ts +32 -0
- package/src/themes/chart.theme.ts +21 -0
- package/src/themes/checkbox.theme.ts +42 -0
- package/src/themes/collapsible.theme.ts +22 -0
- package/src/themes/combobox.theme.ts +28 -0
- package/src/themes/dialog.theme.ts +37 -0
- package/src/themes/drawer.theme.ts +44 -0
- package/src/themes/dropdownMenu.theme.ts +27 -0
- package/src/themes/dropzone.theme.ts +24 -0
- package/src/themes/field.theme.ts +24 -0
- package/src/themes/hoverCard.theme.ts +27 -0
- package/src/themes/input.theme.ts +36 -0
- package/src/themes/inputGroup.theme.ts +23 -0
- package/src/themes/kbd.theme.ts +24 -0
- package/src/themes/label.theme.ts +20 -0
- package/src/themes/localeSelector.theme.ts +50 -0
- package/src/themes/main.theme.ts +12 -0
- package/src/themes/marquee.theme.ts +27 -0
- package/src/themes/nativeSelect.theme.ts +24 -0
- package/src/themes/navigationMenu.theme.ts +19 -0
- package/src/themes/pagination.theme.ts +26 -0
- package/src/themes/popover.theme.ts +28 -0
- package/src/themes/progress.theme.ts +26 -0
- package/src/themes/resizable.theme.ts +22 -0
- package/src/themes/scrollArea.theme.ts +24 -0
- package/src/themes/section.theme.ts +1 -2
- package/src/themes/select.theme.ts +27 -0
- package/src/themes/separator.theme.ts +19 -0
- package/src/themes/sheet.theme.ts +43 -0
- package/src/themes/sidebar.theme.ts +33 -0
- package/src/themes/skeleton.theme.ts +20 -0
- package/src/themes/slider.theme.ts +28 -0
- package/src/themes/spinner.theme.ts +30 -0
- package/src/themes/stickySurface.theme.ts +10 -0
- package/src/themes/switch.theme.ts +59 -0
- package/src/themes/table.theme.ts +36 -0
- package/src/themes/tabs.theme.ts +44 -0
- package/src/themes/textarea.theme.ts +26 -0
- package/src/themes/themeSelector.theme.ts +16 -0
- package/src/themes/toast.theme.ts +25 -0
- package/src/themes/toggle.theme.ts +42 -0
- package/src/themes/toggleGroup.theme.ts +21 -0
- package/src/themes/tooltip.theme.ts +27 -0
- package/src/types/components/alert-dialog.ts +35 -0
- package/src/types/components/alert.ts +31 -0
- package/src/types/components/aspect-ratio.ts +15 -0
- package/src/types/components/avatar.ts +47 -0
- package/src/types/components/badge.ts +27 -0
- package/src/types/components/breadcrumb.ts +24 -0
- package/src/types/components/card.ts +31 -0
- package/src/types/components/carousel.ts +25 -0
- package/src/types/components/chart.ts +38 -0
- package/src/types/components/checkbox.ts +35 -0
- package/src/types/components/collapsible.ts +31 -0
- package/src/types/components/combobox.ts +43 -0
- package/src/types/components/dialog.ts +39 -0
- package/src/types/components/drawer.ts +31 -0
- package/src/types/components/dropdown-menu.ts +42 -0
- package/src/types/components/dropzone.ts +39 -0
- package/src/types/components/field.ts +31 -0
- package/src/types/components/hover-card.ts +19 -0
- package/src/types/components/index.ts +51 -3
- package/src/types/components/input-group.ts +23 -0
- package/src/types/components/input.ts +59 -0
- package/src/types/components/kbd.ts +15 -0
- package/src/types/components/label.ts +19 -0
- package/src/types/components/localeSelector.ts +33 -0
- package/src/types/components/main.ts +17 -0
- package/src/types/components/marquee.ts +23 -0
- package/src/types/components/native-select.ts +39 -0
- package/src/types/components/navigation-menu.ts +27 -0
- package/src/types/components/pagination.ts +23 -0
- package/src/types/components/popover.ts +23 -0
- package/src/types/components/progress.ts +27 -0
- package/src/types/components/resizable.ts +19 -0
- package/src/types/components/scroll-area.ts +23 -0
- package/src/types/components/select.ts +43 -0
- package/src/types/components/separator.ts +19 -0
- package/src/types/components/sheet.ts +31 -0
- package/src/types/components/sidebar.ts +36 -0
- package/src/types/components/skeleton.ts +15 -0
- package/src/types/components/slider.ts +35 -0
- package/src/types/components/spinner.ts +19 -0
- package/src/types/components/sticky-surface.ts +19 -0
- package/src/types/components/switch.ts +35 -0
- package/src/types/components/table.ts +31 -0
- package/src/types/components/tabs.ts +43 -0
- package/src/types/components/textarea.ts +51 -0
- package/src/types/components/themeSelector.ts +15 -0
- package/src/types/components/toast.ts +35 -0
- package/src/types/components/toggle-group.ts +23 -0
- package/src/types/components/toggle.ts +27 -0
- package/src/types/components/tooltip.ts +23 -0
- package/src/components/ThemeToggle.astro +0 -57
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface SidebarItem {
|
|
2
|
+
label: string
|
|
3
|
+
href?: string
|
|
4
|
+
icon?: string
|
|
5
|
+
badge?: string | number
|
|
6
|
+
active?: boolean
|
|
7
|
+
children?: SidebarItem[]
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface SidebarProps {
|
|
11
|
+
/**
|
|
12
|
+
* The navigation links array.
|
|
13
|
+
*/
|
|
14
|
+
items?: SidebarItem[]
|
|
15
|
+
/**
|
|
16
|
+
* Side of the page.
|
|
17
|
+
*/
|
|
18
|
+
side?: "left" | "right"
|
|
19
|
+
/**
|
|
20
|
+
* Collapsible mode.
|
|
21
|
+
*/
|
|
22
|
+
collapsible?: "icon" | "offcanvas" | "none"
|
|
23
|
+
/**
|
|
24
|
+
* Header logo or text.
|
|
25
|
+
*/
|
|
26
|
+
logo?: string
|
|
27
|
+
/**
|
|
28
|
+
* UI class override map.
|
|
29
|
+
*/
|
|
30
|
+
ui?: any
|
|
31
|
+
/**
|
|
32
|
+
* Root CSS class override.
|
|
33
|
+
*/
|
|
34
|
+
class?: any
|
|
35
|
+
[key: string]: unknown
|
|
36
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface SkeletonProps {
|
|
2
|
+
/**
|
|
3
|
+
* The visual rounding variant.
|
|
4
|
+
*/
|
|
5
|
+
shape?: "circle" | "rectangle" | "rounded"
|
|
6
|
+
/**
|
|
7
|
+
* UI class override map.
|
|
8
|
+
*/
|
|
9
|
+
ui?: any
|
|
10
|
+
/**
|
|
11
|
+
* Root CSS class override.
|
|
12
|
+
*/
|
|
13
|
+
class?: any
|
|
14
|
+
[key: string]: unknown
|
|
15
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface SliderProps {
|
|
2
|
+
/**
|
|
3
|
+
* The value of the range input.
|
|
4
|
+
*/
|
|
5
|
+
value?: number
|
|
6
|
+
/**
|
|
7
|
+
* Minimum boundary.
|
|
8
|
+
*/
|
|
9
|
+
min?: number
|
|
10
|
+
/**
|
|
11
|
+
* Maximum boundary.
|
|
12
|
+
*/
|
|
13
|
+
max?: number
|
|
14
|
+
/**
|
|
15
|
+
* Steps size.
|
|
16
|
+
*/
|
|
17
|
+
step?: number
|
|
18
|
+
/**
|
|
19
|
+
* Form element input name.
|
|
20
|
+
*/
|
|
21
|
+
name?: string
|
|
22
|
+
/**
|
|
23
|
+
* Color theme.
|
|
24
|
+
*/
|
|
25
|
+
color?: "primary" | "secondary" | "success" | "warning" | "error" | "info"
|
|
26
|
+
/**
|
|
27
|
+
* UI class override map.
|
|
28
|
+
*/
|
|
29
|
+
ui?: any
|
|
30
|
+
/**
|
|
31
|
+
* Root CSS class override.
|
|
32
|
+
*/
|
|
33
|
+
class?: any
|
|
34
|
+
[key: string]: unknown
|
|
35
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface SpinnerProps {
|
|
2
|
+
/**
|
|
3
|
+
* The size scale of the spinner.
|
|
4
|
+
*/
|
|
5
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl"
|
|
6
|
+
/**
|
|
7
|
+
* The color theme.
|
|
8
|
+
*/
|
|
9
|
+
color?: "primary" | "secondary" | "success" | "warning" | "error" | "info" | "current"
|
|
10
|
+
/**
|
|
11
|
+
* UI class override map.
|
|
12
|
+
*/
|
|
13
|
+
ui?: any
|
|
14
|
+
/**
|
|
15
|
+
* Root CSS class overrides.
|
|
16
|
+
*/
|
|
17
|
+
class?: any
|
|
18
|
+
[key: string]: unknown
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface StickySurfaceProps {
|
|
2
|
+
/**
|
|
3
|
+
* Pixels offset from top when sticky.
|
|
4
|
+
*/
|
|
5
|
+
offsetTop?: number
|
|
6
|
+
/**
|
|
7
|
+
* Z-index layer depth.
|
|
8
|
+
*/
|
|
9
|
+
zIndex?: number
|
|
10
|
+
/**
|
|
11
|
+
* UI class override map.
|
|
12
|
+
*/
|
|
13
|
+
ui?: any
|
|
14
|
+
/**
|
|
15
|
+
* Root CSS class override.
|
|
16
|
+
*/
|
|
17
|
+
class?: any
|
|
18
|
+
[key: string]: unknown
|
|
19
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface SwitchProps {
|
|
2
|
+
/**
|
|
3
|
+
* Controlled checked state.
|
|
4
|
+
*/
|
|
5
|
+
checked?: boolean
|
|
6
|
+
/**
|
|
7
|
+
* Disabled state.
|
|
8
|
+
*/
|
|
9
|
+
disabled?: boolean
|
|
10
|
+
/**
|
|
11
|
+
* Input element name.
|
|
12
|
+
*/
|
|
13
|
+
name?: string
|
|
14
|
+
/**
|
|
15
|
+
* Label descriptor.
|
|
16
|
+
*/
|
|
17
|
+
label?: string
|
|
18
|
+
/**
|
|
19
|
+
* Size scale.
|
|
20
|
+
*/
|
|
21
|
+
size?: "sm" | "md" | "lg"
|
|
22
|
+
/**
|
|
23
|
+
* Color theme.
|
|
24
|
+
*/
|
|
25
|
+
color?: "primary" | "secondary" | "success" | "warning" | "error" | "info"
|
|
26
|
+
/**
|
|
27
|
+
* UI class override map.
|
|
28
|
+
*/
|
|
29
|
+
ui?: any
|
|
30
|
+
/**
|
|
31
|
+
* Root CSS class override.
|
|
32
|
+
*/
|
|
33
|
+
class?: any
|
|
34
|
+
[key: string]: unknown
|
|
35
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface TableProps {
|
|
2
|
+
/**
|
|
3
|
+
* Column headers array.
|
|
4
|
+
*/
|
|
5
|
+
headers?: Array<string | { label: string; key: string; class?: string }>
|
|
6
|
+
/**
|
|
7
|
+
* Data rows array.
|
|
8
|
+
*/
|
|
9
|
+
rows?: Array<Record<string, any> | any[]>
|
|
10
|
+
/**
|
|
11
|
+
* Striped row style.
|
|
12
|
+
*/
|
|
13
|
+
striped?: boolean
|
|
14
|
+
/**
|
|
15
|
+
* Hoverable rows state.
|
|
16
|
+
*/
|
|
17
|
+
hoverable?: boolean
|
|
18
|
+
/**
|
|
19
|
+
* Bordered cells.
|
|
20
|
+
*/
|
|
21
|
+
bordered?: boolean
|
|
22
|
+
/**
|
|
23
|
+
* UI class override map.
|
|
24
|
+
*/
|
|
25
|
+
ui?: any
|
|
26
|
+
/**
|
|
27
|
+
* Root CSS class override.
|
|
28
|
+
*/
|
|
29
|
+
class?: any
|
|
30
|
+
[key: string]: unknown
|
|
31
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export interface TabItem {
|
|
2
|
+
label: string
|
|
3
|
+
value: string
|
|
4
|
+
icon?: string
|
|
5
|
+
content?: string
|
|
6
|
+
disabled?: boolean
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface TabsProps {
|
|
10
|
+
/**
|
|
11
|
+
* The tab items.
|
|
12
|
+
*/
|
|
13
|
+
items?: TabItem[]
|
|
14
|
+
/**
|
|
15
|
+
* Active tab value.
|
|
16
|
+
*/
|
|
17
|
+
value?: string
|
|
18
|
+
/**
|
|
19
|
+
* Tab variant.
|
|
20
|
+
*/
|
|
21
|
+
variant?: "solid" | "underline" | "pills"
|
|
22
|
+
/**
|
|
23
|
+
* Layout orientation.
|
|
24
|
+
*/
|
|
25
|
+
orientation?: "horizontal" | "vertical"
|
|
26
|
+
/**
|
|
27
|
+
* Size scale.
|
|
28
|
+
*/
|
|
29
|
+
size?: "sm" | "md" | "lg"
|
|
30
|
+
/**
|
|
31
|
+
* Color theme.
|
|
32
|
+
*/
|
|
33
|
+
color?: "primary" | "secondary" | "success" | "warning" | "error" | "info"
|
|
34
|
+
/**
|
|
35
|
+
* UI class override map.
|
|
36
|
+
*/
|
|
37
|
+
ui?: any
|
|
38
|
+
/**
|
|
39
|
+
* Root CSS class override.
|
|
40
|
+
*/
|
|
41
|
+
class?: any
|
|
42
|
+
[key: string]: unknown
|
|
43
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export interface TextareaProps {
|
|
2
|
+
/**
|
|
3
|
+
* The text value.
|
|
4
|
+
*/
|
|
5
|
+
value?: string
|
|
6
|
+
/**
|
|
7
|
+
* Placeholder text.
|
|
8
|
+
*/
|
|
9
|
+
placeholder?: string
|
|
10
|
+
/**
|
|
11
|
+
* Disabled state.
|
|
12
|
+
*/
|
|
13
|
+
disabled?: boolean
|
|
14
|
+
/**
|
|
15
|
+
* Readonly state.
|
|
16
|
+
*/
|
|
17
|
+
readonly?: boolean
|
|
18
|
+
/**
|
|
19
|
+
* Name for forms.
|
|
20
|
+
*/
|
|
21
|
+
name?: string
|
|
22
|
+
/**
|
|
23
|
+
* Required field state.
|
|
24
|
+
*/
|
|
25
|
+
required?: boolean
|
|
26
|
+
/**
|
|
27
|
+
* Row count.
|
|
28
|
+
*/
|
|
29
|
+
rows?: number
|
|
30
|
+
/**
|
|
31
|
+
* Error state.
|
|
32
|
+
*/
|
|
33
|
+
error?: boolean | string
|
|
34
|
+
/**
|
|
35
|
+
* Size scale.
|
|
36
|
+
*/
|
|
37
|
+
size?: "sm" | "md" | "lg"
|
|
38
|
+
/**
|
|
39
|
+
* Color theme.
|
|
40
|
+
*/
|
|
41
|
+
color?: "primary" | "secondary" | "success" | "warning" | "error" | "info"
|
|
42
|
+
/**
|
|
43
|
+
* UI class override map.
|
|
44
|
+
*/
|
|
45
|
+
ui?: any
|
|
46
|
+
/**
|
|
47
|
+
* Root CSS class override.
|
|
48
|
+
*/
|
|
49
|
+
class?: any
|
|
50
|
+
[key: string]: unknown
|
|
51
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface ThemeSelectorProps {
|
|
2
|
+
/**
|
|
3
|
+
* The size of the button.
|
|
4
|
+
*/
|
|
5
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
6
|
+
/**
|
|
7
|
+
* Slot-specific CSS class overrides.
|
|
8
|
+
*/
|
|
9
|
+
ui?: any
|
|
10
|
+
/**
|
|
11
|
+
* Additional CSS classes to apply to the root component.
|
|
12
|
+
*/
|
|
13
|
+
class?: any
|
|
14
|
+
[key: string]: unknown
|
|
15
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface ToastProps {
|
|
2
|
+
/**
|
|
3
|
+
* Main toast title.
|
|
4
|
+
*/
|
|
5
|
+
title?: string
|
|
6
|
+
/**
|
|
7
|
+
* Description or message.
|
|
8
|
+
*/
|
|
9
|
+
description?: string
|
|
10
|
+
/**
|
|
11
|
+
* Visual variant.
|
|
12
|
+
*/
|
|
13
|
+
variant?: "default" | "destructive" | "success" | "warning" | "info"
|
|
14
|
+
/**
|
|
15
|
+
* Action button label.
|
|
16
|
+
*/
|
|
17
|
+
actionLabel?: string
|
|
18
|
+
/**
|
|
19
|
+
* Duration in ms.
|
|
20
|
+
*/
|
|
21
|
+
duration?: number
|
|
22
|
+
/**
|
|
23
|
+
* Color theme.
|
|
24
|
+
*/
|
|
25
|
+
color?: "primary" | "secondary" | "success" | "warning" | "error" | "info"
|
|
26
|
+
/**
|
|
27
|
+
* UI class override map.
|
|
28
|
+
*/
|
|
29
|
+
ui?: any
|
|
30
|
+
/**
|
|
31
|
+
* Root CSS class override.
|
|
32
|
+
*/
|
|
33
|
+
class?: any
|
|
34
|
+
[key: string]: unknown
|
|
35
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface ToggleGroupProps {
|
|
2
|
+
/**
|
|
3
|
+
* The active selection items array.
|
|
4
|
+
*/
|
|
5
|
+
value?: string[]
|
|
6
|
+
/**
|
|
7
|
+
* Allows single or multiple selections.
|
|
8
|
+
*/
|
|
9
|
+
type?: "single" | "multiple"
|
|
10
|
+
/**
|
|
11
|
+
* Size scale.
|
|
12
|
+
*/
|
|
13
|
+
size?: "sm" | "md" | "lg"
|
|
14
|
+
/**
|
|
15
|
+
* UI class override map.
|
|
16
|
+
*/
|
|
17
|
+
ui?: any
|
|
18
|
+
/**
|
|
19
|
+
* Root CSS class override.
|
|
20
|
+
*/
|
|
21
|
+
class?: any
|
|
22
|
+
[key: string]: unknown
|
|
23
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface ToggleProps {
|
|
2
|
+
/**
|
|
3
|
+
* Controlled active state.
|
|
4
|
+
*/
|
|
5
|
+
active?: boolean
|
|
6
|
+
/**
|
|
7
|
+
* Disabled state.
|
|
8
|
+
*/
|
|
9
|
+
disabled?: boolean
|
|
10
|
+
/**
|
|
11
|
+
* Size scale.
|
|
12
|
+
*/
|
|
13
|
+
size?: "sm" | "md" | "lg"
|
|
14
|
+
/**
|
|
15
|
+
* Color theme.
|
|
16
|
+
*/
|
|
17
|
+
color?: "primary" | "secondary" | "success" | "warning" | "error" | "info"
|
|
18
|
+
/**
|
|
19
|
+
* UI class override map.
|
|
20
|
+
*/
|
|
21
|
+
ui?: any
|
|
22
|
+
/**
|
|
23
|
+
* Root CSS class override.
|
|
24
|
+
*/
|
|
25
|
+
class?: any
|
|
26
|
+
[key: string]: unknown
|
|
27
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface TooltipProps {
|
|
2
|
+
/**
|
|
3
|
+
* The text content to display inside the tooltip.
|
|
4
|
+
*/
|
|
5
|
+
content?: string
|
|
6
|
+
/**
|
|
7
|
+
* Controlled open state.
|
|
8
|
+
*/
|
|
9
|
+
open?: boolean
|
|
10
|
+
/**
|
|
11
|
+
* Placement of the tooltip relative to the trigger.
|
|
12
|
+
*/
|
|
13
|
+
placement?: "top" | "bottom" | "left" | "right"
|
|
14
|
+
/**
|
|
15
|
+
* Custom UI overrides.
|
|
16
|
+
*/
|
|
17
|
+
ui?: any
|
|
18
|
+
/**
|
|
19
|
+
* Root CSS class override.
|
|
20
|
+
*/
|
|
21
|
+
class?: any
|
|
22
|
+
[key: string]: unknown
|
|
23
|
+
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import RLAButton from "./astro/RLAButton.astro";
|
|
3
|
-
|
|
4
|
-
export interface ThemeToggleProps {
|
|
5
|
-
size?: "sm" | "md" | "lg";
|
|
6
|
-
class?: any;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
type Props = ThemeToggleProps;
|
|
10
|
-
|
|
11
|
-
const { size = "md", class: className } = Astro.props as Props
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
<RLAButton
|
|
15
|
-
size={size}
|
|
16
|
-
class:list={[
|
|
17
|
-
"theme-toggle-button",
|
|
18
|
-
"group text-muted-foreground hover:text-foreground rounded-full hover:bg-transparent",
|
|
19
|
-
className,
|
|
20
|
-
]}
|
|
21
|
-
variant="ghost"
|
|
22
|
-
aria-label="Toggle theme"
|
|
23
|
-
>
|
|
24
|
-
<span class="sun-wrapper block dark:hidden i-lucide-sun" />
|
|
25
|
-
<span class="moon-wrapper hidden dark:block i-lucide-moon" />
|
|
26
|
-
</RLAButton>
|
|
27
|
-
|
|
28
|
-
<script>
|
|
29
|
-
function setupThemeToggle() {
|
|
30
|
-
const buttons = document.querySelectorAll('.theme-toggle-button');
|
|
31
|
-
|
|
32
|
-
const updateButtons = (isDark: boolean) => {
|
|
33
|
-
buttons.forEach(btn => {
|
|
34
|
-
btn.setAttribute('data-state', isDark ? 'on' : 'off');
|
|
35
|
-
btn.setAttribute('aria-pressed', isDark.toString());
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
// Set initial state
|
|
40
|
-
const currentIsDark = document.documentElement.classList.contains('dark');
|
|
41
|
-
updateButtons(currentIsDark);
|
|
42
|
-
|
|
43
|
-
buttons.forEach(button => {
|
|
44
|
-
button.addEventListener('click', () => {
|
|
45
|
-
const isDark = document.documentElement.classList.toggle('dark');
|
|
46
|
-
localStorage.setItem('theme', isDark ? 'dark' : 'light');
|
|
47
|
-
updateButtons(isDark);
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// Initial setup
|
|
53
|
-
setupThemeToggle();
|
|
54
|
-
// Re-run on View Transitions
|
|
55
|
-
document.addEventListener('astro:page-load', setupThemeToggle);
|
|
56
|
-
</script>
|
|
57
|
-
|