@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.
Files changed (156) hide show
  1. package/package.json +1 -1
  2. package/src/components/astro/RLAAlert.astro +60 -0
  3. package/src/components/astro/RLAAlertDialog.astro +86 -0
  4. package/src/components/astro/RLAAspectRatio.astro +23 -0
  5. package/src/components/astro/RLAAvatar.astro +56 -0
  6. package/src/components/astro/RLAAvatarGroup.astro +19 -0
  7. package/src/components/astro/RLABadge.astro +31 -0
  8. package/src/components/astro/RLABreadcrumb.astro +44 -0
  9. package/src/components/astro/RLACard.astro +74 -0
  10. package/src/components/astro/RLACarousel.astro +71 -0
  11. package/src/components/astro/RLAChart.astro +215 -0
  12. package/src/components/astro/RLACheckbox.astro +51 -0
  13. package/src/components/astro/RLACollapsible.astro +38 -0
  14. package/src/components/astro/RLACombobox.astro +131 -0
  15. package/src/components/astro/RLADialog.astro +95 -0
  16. package/src/components/astro/RLADrawer.astro +74 -0
  17. package/src/components/astro/RLADropdownMenu.astro +82 -0
  18. package/src/components/astro/RLADropzone.astro +134 -0
  19. package/src/components/astro/RLAField.astro +43 -0
  20. package/src/components/{Head.astro → astro/RLAHead.astro} +181 -199
  21. package/src/components/astro/RLAHoverCard.astro +31 -0
  22. package/src/components/astro/RLAInput.astro +60 -0
  23. package/src/components/astro/RLAInputGroup.astro +35 -0
  24. package/src/components/astro/RLAKbd.astro +22 -0
  25. package/src/components/astro/RLALabel.astro +23 -0
  26. package/src/components/astro/RLALocaleSelector.astro +110 -0
  27. package/src/components/astro/RLAMain.astro +28 -0
  28. package/src/components/astro/RLAMarquee.astro +32 -0
  29. package/src/components/astro/RLANativeSelect.astro +51 -0
  30. package/src/components/astro/RLANavigationMenu.astro +136 -0
  31. package/src/components/astro/RLAPagination.astro +94 -0
  32. package/src/components/astro/RLAPopover.astro +31 -0
  33. package/src/components/astro/RLAProgress.astro +43 -0
  34. package/src/components/astro/RLAResizable.astro +177 -0
  35. package/src/components/astro/RLAScrollArea.astro +157 -0
  36. package/src/components/astro/RLASection.astro +0 -1
  37. package/src/components/astro/RLASelect.astro +109 -0
  38. package/src/components/astro/RLASeparator.astro +27 -0
  39. package/src/components/astro/RLASheet.astro +72 -0
  40. package/src/components/astro/RLASidebar.astro +135 -0
  41. package/src/components/astro/RLASkeleton.astro +20 -0
  42. package/src/components/astro/RLASlider.astro +53 -0
  43. package/src/components/astro/RLASpinner.astro +25 -0
  44. package/src/components/astro/RLAStickySurface.astro +27 -0
  45. package/src/components/astro/RLASwitch.astro +49 -0
  46. package/src/components/astro/RLATable.astro +60 -0
  47. package/src/components/astro/RLATabs.astro +92 -0
  48. package/src/components/astro/RLATextarea.astro +42 -0
  49. package/src/components/astro/RLAThemeSelector.astro +73 -0
  50. package/src/components/astro/RLAToast.astro +107 -0
  51. package/src/components/astro/RLAToggle.astro +38 -0
  52. package/src/components/astro/RLAToggleGroup.astro +30 -0
  53. package/src/components/astro/RLATooltip.astro +31 -0
  54. package/src/integrations/ui.ts +1 -0
  55. package/src/themes/alert.theme.ts +51 -0
  56. package/src/themes/alertDialog.theme.ts +33 -0
  57. package/src/themes/aspectRatio.theme.ts +11 -0
  58. package/src/themes/avatar.theme.ts +28 -0
  59. package/src/themes/avatarGroup.theme.ts +10 -0
  60. package/src/themes/badge.theme.ts +61 -0
  61. package/src/themes/breadcrumb.theme.ts +15 -0
  62. package/src/themes/card.theme.ts +34 -0
  63. package/src/themes/carousel.theme.ts +32 -0
  64. package/src/themes/chart.theme.ts +21 -0
  65. package/src/themes/checkbox.theme.ts +42 -0
  66. package/src/themes/collapsible.theme.ts +22 -0
  67. package/src/themes/combobox.theme.ts +28 -0
  68. package/src/themes/dialog.theme.ts +37 -0
  69. package/src/themes/drawer.theme.ts +44 -0
  70. package/src/themes/dropdownMenu.theme.ts +27 -0
  71. package/src/themes/dropzone.theme.ts +24 -0
  72. package/src/themes/field.theme.ts +24 -0
  73. package/src/themes/hoverCard.theme.ts +27 -0
  74. package/src/themes/input.theme.ts +36 -0
  75. package/src/themes/inputGroup.theme.ts +23 -0
  76. package/src/themes/kbd.theme.ts +24 -0
  77. package/src/themes/label.theme.ts +20 -0
  78. package/src/themes/localeSelector.theme.ts +50 -0
  79. package/src/themes/main.theme.ts +12 -0
  80. package/src/themes/marquee.theme.ts +27 -0
  81. package/src/themes/nativeSelect.theme.ts +24 -0
  82. package/src/themes/navigationMenu.theme.ts +19 -0
  83. package/src/themes/pagination.theme.ts +26 -0
  84. package/src/themes/popover.theme.ts +28 -0
  85. package/src/themes/progress.theme.ts +26 -0
  86. package/src/themes/resizable.theme.ts +22 -0
  87. package/src/themes/scrollArea.theme.ts +24 -0
  88. package/src/themes/section.theme.ts +1 -2
  89. package/src/themes/select.theme.ts +27 -0
  90. package/src/themes/separator.theme.ts +19 -0
  91. package/src/themes/sheet.theme.ts +43 -0
  92. package/src/themes/sidebar.theme.ts +33 -0
  93. package/src/themes/skeleton.theme.ts +20 -0
  94. package/src/themes/slider.theme.ts +28 -0
  95. package/src/themes/spinner.theme.ts +30 -0
  96. package/src/themes/stickySurface.theme.ts +10 -0
  97. package/src/themes/switch.theme.ts +59 -0
  98. package/src/themes/table.theme.ts +36 -0
  99. package/src/themes/tabs.theme.ts +44 -0
  100. package/src/themes/textarea.theme.ts +26 -0
  101. package/src/themes/themeSelector.theme.ts +16 -0
  102. package/src/themes/toast.theme.ts +25 -0
  103. package/src/themes/toggle.theme.ts +42 -0
  104. package/src/themes/toggleGroup.theme.ts +21 -0
  105. package/src/themes/tooltip.theme.ts +27 -0
  106. package/src/types/components/alert-dialog.ts +35 -0
  107. package/src/types/components/alert.ts +31 -0
  108. package/src/types/components/aspect-ratio.ts +15 -0
  109. package/src/types/components/avatar.ts +47 -0
  110. package/src/types/components/badge.ts +27 -0
  111. package/src/types/components/breadcrumb.ts +24 -0
  112. package/src/types/components/card.ts +31 -0
  113. package/src/types/components/carousel.ts +25 -0
  114. package/src/types/components/chart.ts +38 -0
  115. package/src/types/components/checkbox.ts +35 -0
  116. package/src/types/components/collapsible.ts +31 -0
  117. package/src/types/components/combobox.ts +43 -0
  118. package/src/types/components/dialog.ts +39 -0
  119. package/src/types/components/drawer.ts +31 -0
  120. package/src/types/components/dropdown-menu.ts +42 -0
  121. package/src/types/components/dropzone.ts +39 -0
  122. package/src/types/components/field.ts +31 -0
  123. package/src/types/components/hover-card.ts +19 -0
  124. package/src/types/components/index.ts +51 -3
  125. package/src/types/components/input-group.ts +23 -0
  126. package/src/types/components/input.ts +59 -0
  127. package/src/types/components/kbd.ts +15 -0
  128. package/src/types/components/label.ts +19 -0
  129. package/src/types/components/localeSelector.ts +33 -0
  130. package/src/types/components/main.ts +17 -0
  131. package/src/types/components/marquee.ts +23 -0
  132. package/src/types/components/native-select.ts +39 -0
  133. package/src/types/components/navigation-menu.ts +27 -0
  134. package/src/types/components/pagination.ts +23 -0
  135. package/src/types/components/popover.ts +23 -0
  136. package/src/types/components/progress.ts +27 -0
  137. package/src/types/components/resizable.ts +19 -0
  138. package/src/types/components/scroll-area.ts +23 -0
  139. package/src/types/components/select.ts +43 -0
  140. package/src/types/components/separator.ts +19 -0
  141. package/src/types/components/sheet.ts +31 -0
  142. package/src/types/components/sidebar.ts +36 -0
  143. package/src/types/components/skeleton.ts +15 -0
  144. package/src/types/components/slider.ts +35 -0
  145. package/src/types/components/spinner.ts +19 -0
  146. package/src/types/components/sticky-surface.ts +19 -0
  147. package/src/types/components/switch.ts +35 -0
  148. package/src/types/components/table.ts +31 -0
  149. package/src/types/components/tabs.ts +43 -0
  150. package/src/types/components/textarea.ts +51 -0
  151. package/src/types/components/themeSelector.ts +15 -0
  152. package/src/types/components/toast.ts +35 -0
  153. package/src/types/components/toggle-group.ts +23 -0
  154. package/src/types/components/toggle.ts +27 -0
  155. package/src/types/components/tooltip.ts +23 -0
  156. package/src/components/ThemeToggle.astro +0 -57
@@ -0,0 +1,44 @@
1
+ import { defineTheme } from "../utils/defineTheme"
2
+
3
+ export const createTabsTheme = () =>
4
+ defineTheme({
5
+ slots: ["root", "list", "trigger", "content"],
6
+ base: {
7
+ root: "w-full flex flex-col gap-4",
8
+ list: "inline-flex items-center justify-start rounded-md bg-muted p-1 text-muted-foreground",
9
+ trigger: "inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:text-foreground cursor-pointer",
10
+ content: "mt-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
11
+ },
12
+ variants: {
13
+ variant: {
14
+ solid: {
15
+ list: "bg-muted p-1 rounded-lg",
16
+ trigger: "data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm"
17
+ },
18
+ underline: {
19
+ list: "bg-transparent border-b border-border rounded-none p-0 gap-4",
20
+ trigger: "rounded-none border-b-2 border-transparent px-1 pb-3 pt-2 data-[state=active]:border-primary data-[state=active]:text-foreground hover:border-muted-foreground/30"
21
+ },
22
+ pills: {
23
+ list: "bg-transparent p-0 gap-2",
24
+ trigger: "rounded-full px-4 py-1.5 data-[state=active]:bg-primary data-[state=active]:text-white"
25
+ }
26
+ },
27
+ orientation: {
28
+ horizontal: { root: "flex-col", list: "w-full" },
29
+ vertical: { root: "flex-row gap-6", list: "flex-col items-stretch h-full w-48 border-r border-border rounded-none bg-transparent" }
30
+ },
31
+ size: {
32
+ sm: { trigger: "text-xs px-2.5 py-1" },
33
+ md: { trigger: "text-sm px-3.5 py-1.5" },
34
+ lg: { trigger: "text-base px-4.5 py-2" }
35
+ }
36
+ },
37
+ defaultVariants: {
38
+ variant: "solid",
39
+ orientation: "horizontal",
40
+ size: "md"
41
+ }
42
+ })
43
+
44
+ export default createTabsTheme()
@@ -0,0 +1,26 @@
1
+ import { defineTheme } from "../utils/defineTheme"
2
+
3
+ export const createTextareaTheme = () =>
4
+ defineTheme({
5
+ slots: ["root", "textarea"],
6
+ base: {
7
+ root: "relative flex items-center w-full rounded-md border border-input bg-background shadow-sm focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2",
8
+ textarea: "w-full bg-transparent px-3 py-2 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 min-h-[80px]"
9
+ },
10
+ variants: {
11
+ size: {
12
+ sm: { textarea: "py-1.5 text-xs min-h-[60px]" },
13
+ md: { textarea: "py-2 text-sm min-h-[80px]" },
14
+ lg: { textarea: "py-2.5 text-base min-h-[100px]" }
15
+ },
16
+ error: {
17
+ true: { root: "border-error-500 focus-within:ring-error-500/50" }
18
+ }
19
+ },
20
+ defaultVariants: {
21
+ size: "md",
22
+ error: false
23
+ }
24
+ })
25
+
26
+ export default createTextareaTheme()
@@ -0,0 +1,16 @@
1
+ import { defineTheme } from "../utils/defineTheme"
2
+
3
+ export default defineTheme({
4
+ slots: [
5
+ "root",
6
+ "sun",
7
+ "moon"
8
+ ],
9
+ base: {
10
+ root: "group rounded-full hover:bg-neutral-900/50 transition-colors inline-flex items-center justify-center text-neutral-400 hover:text-white cursor-pointer",
11
+ sun: "hidden dark:block i-lucide-sun w-5 h-5 text-current",
12
+ moon: "dark:hidden i-lucide-moon w-5 h-5 text-current"
13
+ },
14
+ variants: {},
15
+ defaultVariants: {}
16
+ })
@@ -0,0 +1,25 @@
1
+ import { defineTheme } from "../utils/defineTheme"
2
+
3
+ export const createToastTheme = () =>
4
+ defineTheme({
5
+ slots: ["root", "title", "description", "action", "close"],
6
+ base: {
7
+ root: "group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all border-border bg-background text-foreground",
8
+ title: "text-sm font-semibold",
9
+ description: "text-xs opacity-90",
10
+ action: "inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-xs font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",
11
+ close: "absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100"
12
+ },
13
+ variants: {
14
+ variant: {
15
+ default: { root: "bg-background border-border" },
16
+ destructive: { root: "destructive group border-error-500/20 bg-error-500/10 text-error-700 dark:text-error-400" },
17
+ success: { root: "border-success-500/20 bg-success-500/10 text-success-700 dark:text-success-400" }
18
+ }
19
+ },
20
+ defaultVariants: {
21
+ variant: "default"
22
+ }
23
+ })
24
+
25
+ export default createToastTheme()
@@ -0,0 +1,42 @@
1
+ import { defineTheme } from "../utils/defineTheme"
2
+
3
+ const defaultColors = ["primary", "secondary", "info", "success", "warning", "error"]
4
+
5
+ export const createToggleTheme = (colors: string[] = defaultColors) =>
6
+ defineTheme({
7
+ slots: ["root"],
8
+ base: {
9
+ root: [
10
+ "inline-flex items-center justify-center rounded-md text-sm font-medium transition-all duration-150 border border-transparent bg-transparent hover:bg-muted text-foreground cursor-pointer select-none",
11
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"
12
+ ]
13
+ },
14
+ variants: {
15
+ size: {
16
+ sm: { root: "h-8 px-2 text-xs" },
17
+ md: { root: "h-9 px-3 text-sm" },
18
+ lg: { root: "h-10 px-4 text-base" }
19
+ },
20
+ color: Object.fromEntries(colors.map((color) => [color, { root: "" }])),
21
+ active: {
22
+ true: { root: "bg-muted text-foreground border-border" },
23
+ false: { root: "" }
24
+ }
25
+ },
26
+ compoundVariants: [
27
+ ...colors.map((color) => ({
28
+ active: true as const,
29
+ color,
30
+ classNames: {
31
+ root: `bg-${color}-500/10 text-${color}-600 border-${color}-500/20 hover:bg-${color}-500/20`
32
+ }
33
+ }))
34
+ ],
35
+ defaultVariants: {
36
+ size: "md",
37
+ color: "primary",
38
+ active: false
39
+ }
40
+ })
41
+
42
+ export default createToggleTheme()
@@ -0,0 +1,21 @@
1
+ import { defineTheme } from "../utils/defineTheme"
2
+
3
+ export const createToggleGroupTheme = () =>
4
+ defineTheme({
5
+ slots: ["root"],
6
+ base: {
7
+ root: "inline-flex items-center justify-center gap-1 rounded-md border border-border bg-muted p-1"
8
+ },
9
+ variants: {
10
+ size: {
11
+ sm: { root: "h-8 gap-0.5" },
12
+ md: { root: "h-9 gap-1" },
13
+ lg: { root: "h-10 gap-1.5" }
14
+ }
15
+ },
16
+ defaultVariants: {
17
+ size: "md"
18
+ }
19
+ })
20
+
21
+ export default createToggleGroupTheme()
@@ -0,0 +1,27 @@
1
+ import { defineTheme } from "../utils/defineTheme"
2
+
3
+ export const tooltipTheme = defineTheme({
4
+ slots: ["root", "trigger", "content"],
5
+ base: {
6
+ root: "relative inline-block group/tooltip",
7
+ trigger: "",
8
+ content: [
9
+ "absolute z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground shadow-md animate-in fade-in-0 zoom-in-95",
10
+ "transition-all duration-150 invisible opacity-0 scale-95 origin-center pointer-events-none",
11
+ "group-hover/tooltip:visible group-hover/tooltip:opacity-100 group-hover/tooltip:scale-100"
12
+ ]
13
+ },
14
+ variants: {
15
+ placement: {
16
+ top: { content: "bottom-full left-1/2 -translate-x-1/2 mb-1.5" },
17
+ bottom: { content: "top-full left-1/2 -translate-x-1/2 mt-1.5" },
18
+ left: { content: "right-full top-1/2 -translate-y-1/2 mr-1.5" },
19
+ right: { content: "left-full top-1/2 -translate-y-1/2 ml-1.5" }
20
+ }
21
+ },
22
+ defaultVariants: {
23
+ placement: "top"
24
+ }
25
+ })
26
+
27
+ export default tooltipTheme
@@ -0,0 +1,35 @@
1
+ export interface AlertDialogProps {
2
+ /**
3
+ * Title of the alert confirmation dialog.
4
+ */
5
+ title?: string
6
+ /**
7
+ * Explanatory description.
8
+ */
9
+ description?: string
10
+ /**
11
+ * Label for the confirmation action button.
12
+ */
13
+ actionLabel?: string
14
+ /**
15
+ * Label for the cancellation/close button.
16
+ */
17
+ cancelLabel?: string
18
+ /**
19
+ * Trigger label to automatically open the dialog.
20
+ */
21
+ triggerLabel?: string
22
+ /**
23
+ * Controlled open state.
24
+ */
25
+ open?: boolean
26
+ /**
27
+ * Slot-specific CSS class overrides.
28
+ */
29
+ ui?: any
30
+ /**
31
+ * Additional CSS classes to apply to the root.
32
+ */
33
+ class?: any
34
+ [key: string]: unknown
35
+ }
@@ -0,0 +1,31 @@
1
+ export interface AlertProps {
2
+ /**
3
+ * The visual variant of the alert.
4
+ */
5
+ variant?: "default" | "destructive" | "outline" | "solid"
6
+ /**
7
+ * The color scheme of the alert.
8
+ */
9
+ color?: "primary" | "secondary" | "success" | "warning" | "error" | "info"
10
+ /**
11
+ * The main title text of the alert.
12
+ */
13
+ title?: string
14
+ /**
15
+ * The secondary description text of the alert.
16
+ */
17
+ description?: string
18
+ /**
19
+ * An optional leading icon.
20
+ */
21
+ icon?: string
22
+ /**
23
+ * Slot-specific CSS class overrides.
24
+ */
25
+ ui?: any
26
+ /**
27
+ * Additional CSS classes to apply to the root component.
28
+ */
29
+ class?: any
30
+ [key: string]: unknown
31
+ }
@@ -0,0 +1,15 @@
1
+ export interface AspectRatioProps {
2
+ /**
3
+ * The aspect ratio fraction/decimal (e.g. 16/9, 4/3, 1).
4
+ */
5
+ ratio?: number
6
+ /**
7
+ * UI class override map.
8
+ */
9
+ ui?: any
10
+ /**
11
+ * Root CSS class overrides.
12
+ */
13
+ class?: any
14
+ [key: string]: unknown
15
+ }
@@ -0,0 +1,47 @@
1
+ export interface AvatarProps {
2
+ /**
3
+ * The source URL of the avatar image.
4
+ */
5
+ src?: string
6
+ /**
7
+ * Alt description for screen readers.
8
+ */
9
+ alt?: string
10
+ /**
11
+ * Two-letter fallback initials when src fails to load.
12
+ */
13
+ fallback?: string
14
+ /**
15
+ * The avatar dimensions scale.
16
+ */
17
+ size?: "sm" | "md" | "lg"
18
+ /**
19
+ * Displays a status badge circle on the avatar.
20
+ */
21
+ badge?: boolean
22
+ /**
23
+ * The color of the status badge.
24
+ */
25
+ badgeColor?: "primary" | "secondary" | "success" | "warning" | "error" | "info"
26
+ /**
27
+ * UI style slot mapping overrides.
28
+ */
29
+ ui?: any
30
+ /**
31
+ * Custom CSS root class.
32
+ */
33
+ class?: any
34
+ [key: string]: unknown
35
+ }
36
+
37
+ export interface AvatarGroupProps {
38
+ /**
39
+ * UI class overrides.
40
+ */
41
+ ui?: any
42
+ /**
43
+ * Root CSS class override.
44
+ */
45
+ class?: any
46
+ [key: string]: unknown
47
+ }
@@ -0,0 +1,27 @@
1
+ export interface BadgeProps {
2
+ /**
3
+ * Visual style variant.
4
+ */
5
+ variant?: "solid" | "outline" | "soft" | "ghost"
6
+ /**
7
+ * Color scheme applied.
8
+ */
9
+ color?: "primary" | "secondary" | "success" | "warning" | "error" | "info"
10
+ /**
11
+ * The size scale of the badge.
12
+ */
13
+ size?: "sm" | "md" | "lg"
14
+ /**
15
+ * The shape corner rounding.
16
+ */
17
+ shape?: "square" | "rounded" | "pill"
18
+ /**
19
+ * Custom UI overrides.
20
+ */
21
+ ui?: any
22
+ /**
23
+ * Root CSS class name.
24
+ */
25
+ class?: any
26
+ [key: string]: unknown
27
+ }
@@ -0,0 +1,24 @@
1
+ export interface BreadcrumbItem {
2
+ label: string
3
+ href?: string
4
+ }
5
+
6
+ export interface BreadcrumbProps {
7
+ /**
8
+ * Quick-prop array to render breadcrumb items automatically.
9
+ */
10
+ items?: BreadcrumbItem[]
11
+ /**
12
+ * The icon separating the breadcrumbs.
13
+ */
14
+ separatorIcon?: string
15
+ /**
16
+ * UI style slot overrides.
17
+ */
18
+ ui?: any
19
+ /**
20
+ * Root CSS class override.
21
+ */
22
+ class?: any
23
+ [key: string]: unknown
24
+ }
@@ -0,0 +1,31 @@
1
+ export interface CardProps {
2
+ /**
3
+ * Card heading title.
4
+ */
5
+ title?: string
6
+ /**
7
+ * Subtitle description text.
8
+ */
9
+ description?: string
10
+ /**
11
+ * Media source (e.g. image url) displayed at top.
12
+ */
13
+ mediaSrc?: string
14
+ /**
15
+ * Link reference makes the entire card interactive.
16
+ */
17
+ href?: string
18
+ /**
19
+ * Glassmorphism or overlay style.
20
+ */
21
+ overlay?: boolean
22
+ /**
23
+ * UI mapping override.
24
+ */
25
+ ui?: any
26
+ /**
27
+ * Root CSS class override.
28
+ */
29
+ class?: any
30
+ [key: string]: unknown
31
+ }
@@ -0,0 +1,25 @@
1
+ export interface CarouselSlide {
2
+ imageSrc?: string
3
+ title?: string
4
+ description?: string
5
+ }
6
+
7
+ export interface CarouselProps {
8
+ /**
9
+ * The list of slide items to render.
10
+ */
11
+ slides?: CarouselSlide[]
12
+ /**
13
+ * Controlled autoplay.
14
+ */
15
+ autoplay?: boolean
16
+ /**
17
+ * UI class override map.
18
+ */
19
+ ui?: any
20
+ /**
21
+ * Root CSS class override.
22
+ */
23
+ class?: any
24
+ [key: string]: unknown
25
+ }
@@ -0,0 +1,38 @@
1
+ export interface ChartDataPoint {
2
+ label: string
3
+ value: number
4
+ color?: string
5
+ [key: string]: any
6
+ }
7
+
8
+ export interface ChartProps {
9
+ /**
10
+ * Type of chart.
11
+ */
12
+ type?: "bar" | "line" | "pie" | "area" | "donut"
13
+ /**
14
+ * Data points array.
15
+ */
16
+ data?: ChartDataPoint[]
17
+ /**
18
+ * Title of the chart.
19
+ */
20
+ title?: string
21
+ /**
22
+ * Height of the chart in pixels.
23
+ */
24
+ height?: number
25
+ /**
26
+ * Color theme.
27
+ */
28
+ color?: "primary" | "secondary" | "success" | "warning" | "error" | "info"
29
+ /**
30
+ * UI class override map.
31
+ */
32
+ ui?: any
33
+ /**
34
+ * Root CSS class override.
35
+ */
36
+ class?: any
37
+ [key: string]: unknown
38
+ }
@@ -0,0 +1,35 @@
1
+ export interface CheckboxProps {
2
+ /**
3
+ * Controlled checked state.
4
+ */
5
+ checked?: boolean
6
+ /**
7
+ * Disabled input interaction state.
8
+ */
9
+ disabled?: boolean
10
+ /**
11
+ * Input name for forms.
12
+ */
13
+ name?: string
14
+ /**
15
+ * Form label.
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 CollapsibleProps {
2
+ /**
3
+ * Controlled open state.
4
+ */
5
+ open?: boolean
6
+ /**
7
+ * The trigger button label (or use 'trigger' slot)
8
+ */
9
+ label?: string
10
+ /**
11
+ * An optional leading icon for the trigger button
12
+ */
13
+ icon?: string
14
+ /**
15
+ * Size scale of the trigger.
16
+ */
17
+ size?: "sm" | "md" | "lg"
18
+ /**
19
+ * Color theme of the trigger.
20
+ */
21
+ color?: "primary" | "secondary" | "success" | "warning" | "error" | "info"
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 ComboboxProps {
2
+ /**
3
+ * The list of items in the combobox.
4
+ */
5
+ items?: Array<{ label: string; value: string; [key: string]: any } | string>
6
+ /**
7
+ * Selected value(s).
8
+ */
9
+ value?: string | string[]
10
+ /**
11
+ * Placeholder text.
12
+ */
13
+ placeholder?: string
14
+ /**
15
+ * Disabled state.
16
+ */
17
+ disabled?: boolean
18
+ /**
19
+ * Form control name.
20
+ */
21
+ name?: string
22
+ /**
23
+ * Form label.
24
+ */
25
+ label?: string
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,39 @@
1
+ export interface DialogProps {
2
+ /**
3
+ * Controlled open state.
4
+ */
5
+ open?: boolean
6
+ /**
7
+ * The trigger label to render a default button.
8
+ */
9
+ triggerLabel?: string
10
+ /**
11
+ * Whether to close the dialog when clicking the backdrop.
12
+ */
13
+ closeOnClickOutside?: boolean
14
+ /**
15
+ * Whether to close on pressing the Escape key.
16
+ */
17
+ closeOnEscape?: boolean
18
+ /**
19
+ * Prevents body scrolling when open.
20
+ */
21
+ lockScroll?: boolean
22
+ /**
23
+ * Main heading of the dialog.
24
+ */
25
+ title?: string
26
+ /**
27
+ * Description of the dialog purpose.
28
+ */
29
+ description?: string
30
+ /**
31
+ * Slot-specific CSS class overrides.
32
+ */
33
+ ui?: any
34
+ /**
35
+ * Additional CSS classes to apply to the root component.
36
+ */
37
+ class?: any
38
+ [key: string]: unknown
39
+ }
@@ -0,0 +1,31 @@
1
+ export interface DrawerProps {
2
+ /**
3
+ * Controlled open state.
4
+ */
5
+ open?: boolean
6
+ /**
7
+ * The orientation/side where the drawer anchors.
8
+ */
9
+ direction?: "bottom" | "top" | "left" | "right"
10
+ /**
11
+ * Main text title.
12
+ */
13
+ title?: string
14
+ /**
15
+ * Explanation subtitle.
16
+ */
17
+ description?: string
18
+ /**
19
+ * Trigger button content.
20
+ */
21
+ triggerLabel?: string
22
+ /**
23
+ * UI mapping override.
24
+ */
25
+ ui?: any
26
+ /**
27
+ * Root CSS class override.
28
+ */
29
+ class?: any
30
+ [key: string]: unknown
31
+ }