@rimelight/ui 0.0.5 → 0.0.7

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 (315) hide show
  1. package/LICENSE +21 -21
  2. package/package.json +22 -14
  3. package/src/components/BlogPost.astro +195 -0
  4. package/src/components/DynamicShowcase.astro +681 -0
  5. package/src/components/ExtendedCarousel.astro +107 -0
  6. package/src/components/FormattedDate.astro +6 -2
  7. package/src/components/Head.astro +153 -0
  8. package/src/components/ProjectPost.astro +197 -0
  9. package/src/components/RLHead.astro +3 -0
  10. package/src/components/ThemeToggle.astro +30 -42
  11. package/src/components/astro/RLAButton.astro +32 -42
  12. package/src/components/astro/RLAHeader.astro +75 -0
  13. package/src/components/nuxt/index.ts +1 -0
  14. package/src/components/vue/RLVButton.vue +50 -37
  15. package/src/components/vue/RLVHeader.vue +78 -0
  16. package/src/composables/index.ts +1 -1
  17. package/src/composables/{useComponentUI.ts → useUi.ts} +3 -3
  18. package/src/config/index.ts +0 -2
  19. package/src/config/site.config.ts +1 -1
  20. package/src/env.d.ts +13 -16
  21. package/src/integrations/ui.ts +106 -81
  22. package/src/integrations/vue-entrypoint.ts +6 -0
  23. package/src/middleware/sri.ts +2 -2
  24. package/src/styles/index.css +2 -0
  25. package/src/themes/button.theme.ts +350 -34
  26. package/src/themes/header.theme.ts +33 -0
  27. package/src/themes/index.ts +3 -1
  28. package/src/utils/index.ts +1 -2
  29. package/i18n-data.json +0 -186
  30. package/src/components/MissingTranslationBanner.astro +0 -39
  31. package/src/components/accordion/Accordion.astro +0 -257
  32. package/src/components/accordion/AccordionContent.astro +0 -34
  33. package/src/components/accordion/AccordionItem.astro +0 -29
  34. package/src/components/accordion/AccordionTrigger.astro +0 -33
  35. package/src/components/alert/Alert.astro +0 -34
  36. package/src/components/alert/AlertDescription.astro +0 -15
  37. package/src/components/alert/AlertTitle.astro +0 -17
  38. package/src/components/alert-dialog/AlertDialog.astro +0 -275
  39. package/src/components/alert-dialog/AlertDialogAction.astro +0 -46
  40. package/src/components/alert-dialog/AlertDialogCancel.astro +0 -46
  41. package/src/components/alert-dialog/AlertDialogContent.astro +0 -52
  42. package/src/components/alert-dialog/AlertDialogDescription.astro +0 -18
  43. package/src/components/alert-dialog/AlertDialogFooter.astro +0 -16
  44. package/src/components/alert-dialog/AlertDialogHeader.astro +0 -14
  45. package/src/components/alert-dialog/AlertDialogTitle.astro +0 -20
  46. package/src/components/alert-dialog/AlertDialogTrigger.astro +0 -47
  47. package/src/components/aspect-ratio/AspectRatio.astro +0 -32
  48. package/src/components/avatar/Avatar.astro +0 -29
  49. package/src/components/avatar/AvatarFallback.astro +0 -18
  50. package/src/components/avatar/AvatarImage.astro +0 -66
  51. package/src/components/badge/Badge.astro +0 -57
  52. package/src/components/breadcrumb/Breadcrumb.astro +0 -12
  53. package/src/components/breadcrumb/BreadcrumbEllipsis.astro +0 -29
  54. package/src/components/breadcrumb/BreadcrumbItem.astro +0 -15
  55. package/src/components/breadcrumb/BreadcrumbLink.astro +0 -24
  56. package/src/components/breadcrumb/BreadcrumbList.astro +0 -17
  57. package/src/components/breadcrumb/BreadcrumbPage.astro +0 -22
  58. package/src/components/breadcrumb/BreadcrumbSeparator.astro +0 -24
  59. package/src/components/button/Button.astro +0 -58
  60. package/src/components/button-group/ButtonGroup.astro +0 -64
  61. package/src/components/button-group/ButtonGroupSeparator.astro +0 -20
  62. package/src/components/button-group/ButtonGroupText.astro +0 -19
  63. package/src/components/card/Card.astro +0 -36
  64. package/src/components/card/CardAction.astro +0 -16
  65. package/src/components/card/CardContent.astro +0 -16
  66. package/src/components/card/CardDescription.astro +0 -16
  67. package/src/components/card/CardFooter.astro +0 -16
  68. package/src/components/card/CardHeader.astro +0 -19
  69. package/src/components/card/CardTitle.astro +0 -16
  70. package/src/components/carousel/Carousel.astro +0 -55
  71. package/src/components/carousel/CarouselContent.astro +0 -26
  72. package/src/components/carousel/CarouselItem.astro +0 -26
  73. package/src/components/carousel/CarouselNext.astro +0 -39
  74. package/src/components/carousel/CarouselPrevious.astro +0 -41
  75. package/src/components/carousel/carousel-script.ts +0 -188
  76. package/src/components/carousel/index.ts +0 -1
  77. package/src/components/checkbox/Checkbox.astro +0 -133
  78. package/src/components/collapsible/Collapsible.astro +0 -161
  79. package/src/components/collapsible/CollapsibleContent.astro +0 -22
  80. package/src/components/collapsible/CollapsibleTrigger.astro +0 -44
  81. package/src/components/dialog/Dialog.astro +0 -389
  82. package/src/components/dialog/DialogClose.astro +0 -35
  83. package/src/components/dialog/DialogContent.astro +0 -78
  84. package/src/components/dialog/DialogDescription.astro +0 -14
  85. package/src/components/dialog/DialogFooter.astro +0 -14
  86. package/src/components/dialog/DialogHeader.astro +0 -14
  87. package/src/components/dialog/DialogTitle.astro +0 -18
  88. package/src/components/dialog/DialogTrigger.astro +0 -47
  89. package/src/components/dropdown/Dropdown.astro +0 -604
  90. package/src/components/dropdown/DropdownContent.astro +0 -118
  91. package/src/components/dropdown/DropdownItem.astro +0 -48
  92. package/src/components/dropdown/DropdownLabel.astro +0 -29
  93. package/src/components/dropdown/DropdownSeparator.astro +0 -21
  94. package/src/components/dropdown/DropdownShortcut.astro +0 -17
  95. package/src/components/dropdown/DropdownSub.astro +0 -15
  96. package/src/components/dropdown/DropdownSubContent.astro +0 -39
  97. package/src/components/dropdown/DropdownSubTrigger.astro +0 -34
  98. package/src/components/dropdown/DropdownTrigger.astro +0 -52
  99. package/src/components/dropzone/Dropzone.astro +0 -236
  100. package/src/components/dropzone/DropzoneFilesList.astro +0 -26
  101. package/src/components/dropzone/DropzoneLoadingIndicator.astro +0 -10
  102. package/src/components/dropzone/DropzoneUploadIndicator.astro +0 -10
  103. package/src/components/embeds/YoutubeEmbed.astro +0 -94
  104. package/src/components/hero/Hero.astro +0 -166
  105. package/src/components/icons/Flag.astro +0 -62
  106. package/src/components/image/ExtendedImage.astro +0 -46
  107. package/src/components/image/Image.astro +0 -25
  108. package/src/components/input/Input.astro +0 -27
  109. package/src/components/input-group/InputGroup.astro +0 -28
  110. package/src/components/input-group/InputGroupAddon.astro +0 -76
  111. package/src/components/input-group/InputGroupButton.astro +0 -36
  112. package/src/components/input-group/InputGroupInput.astro +0 -18
  113. package/src/components/input-group/InputGroupText.astro +0 -17
  114. package/src/components/input-group/InputGroupTextarea.astro +0 -22
  115. package/src/components/input-otp/InputOtp.astro +0 -352
  116. package/src/components/input-otp/InputOtpGroup.astro +0 -16
  117. package/src/components/input-otp/InputOtpSeparator.astro +0 -25
  118. package/src/components/input-otp/InputOtpSlot.astro +0 -50
  119. package/src/components/input-otp/InputOtpTypes.ts +0 -6
  120. package/src/components/item/Item.astro +0 -52
  121. package/src/components/item/ItemActions.astro +0 -16
  122. package/src/components/item/ItemContent.astro +0 -16
  123. package/src/components/item/ItemDescription.astro +0 -19
  124. package/src/components/item/ItemFooter.astro +0 -16
  125. package/src/components/item/ItemGroup.astro +0 -16
  126. package/src/components/item/ItemHeader.astro +0 -16
  127. package/src/components/item/ItemMedia.astro +0 -40
  128. package/src/components/item/ItemSeparator.astro +0 -23
  129. package/src/components/item/ItemTitle.astro +0 -16
  130. package/src/components/kbd/Kbd.astro +0 -21
  131. package/src/components/kbd/KbdGroup.astro +0 -16
  132. package/src/components/label/Label.astro +0 -24
  133. package/src/components/marquee/Marquee.astro +0 -73
  134. package/src/components/native-select/NativeSelect.astro +0 -68
  135. package/src/components/native-select/NativeSelectOptGroup.astro +0 -15
  136. package/src/components/native-select/NativeSelectOption.astro +0 -15
  137. package/src/components/pagination/Pagination.astro +0 -20
  138. package/src/components/pagination/PaginationContent.astro +0 -16
  139. package/src/components/pagination/PaginationEllipsis.astro +0 -37
  140. package/src/components/pagination/PaginationItem.astro +0 -16
  141. package/src/components/pagination/PaginationLink.astro +0 -27
  142. package/src/components/pagination/PaginationNext.astro +0 -33
  143. package/src/components/pagination/PaginationPrevious.astro +0 -33
  144. package/src/components/popover/Popover.astro +0 -717
  145. package/src/components/popover/PopoverContent.astro +0 -102
  146. package/src/components/popover/PopoverDescription.astro +0 -14
  147. package/src/components/popover/PopoverHeader.astro +0 -14
  148. package/src/components/popover/PopoverTitle.astro +0 -14
  149. package/src/components/popover/PopoverTrigger.astro +0 -51
  150. package/src/components/progress/Progress.astro +0 -154
  151. package/src/components/prose/Prose.astro +0 -619
  152. package/src/components/radio-group/RadioGroup.astro +0 -162
  153. package/src/components/radio-group/RadioGroupItem.astro +0 -133
  154. package/src/components/radio-group/RadioGroupTypes.ts +0 -6
  155. package/src/components/section/Section.astro +0 -167
  156. package/src/components/select/Select.astro +0 -752
  157. package/src/components/select/SelectContent.astro +0 -94
  158. package/src/components/select/SelectGroup.astro +0 -9
  159. package/src/components/select/SelectItem.astro +0 -51
  160. package/src/components/select/SelectLabel.astro +0 -14
  161. package/src/components/select/SelectSearch.astro +0 -49
  162. package/src/components/select/SelectSeparator.astro +0 -12
  163. package/src/components/select/SelectTrigger.astro +0 -56
  164. package/src/components/select/SelectTypes.ts +0 -13
  165. package/src/components/select/SelectValue.astro +0 -19
  166. package/src/components/separator/Separator.astro +0 -36
  167. package/src/components/sheet/Sheet.astro +0 -15
  168. package/src/components/sheet/SheetClose.astro +0 -15
  169. package/src/components/sheet/SheetContent.astro +0 -89
  170. package/src/components/sheet/SheetDescription.astro +0 -16
  171. package/src/components/sheet/SheetFooter.astro +0 -16
  172. package/src/components/sheet/SheetHeader.astro +0 -16
  173. package/src/components/sheet/SheetTitle.astro +0 -16
  174. package/src/components/sheet/SheetTrigger.astro +0 -15
  175. package/src/components/sidebar/Sidebar.astro +0 -231
  176. package/src/components/sidebar/SidebarContent.astro +0 -25
  177. package/src/components/sidebar/SidebarFooter.astro +0 -22
  178. package/src/components/sidebar/SidebarGroup.astro +0 -22
  179. package/src/components/sidebar/SidebarGroupContent.astro +0 -22
  180. package/src/components/sidebar/SidebarGroupLabel.astro +0 -53
  181. package/src/components/sidebar/SidebarHeader.astro +0 -22
  182. package/src/components/sidebar/SidebarInput.astro +0 -24
  183. package/src/components/sidebar/SidebarInset.astro +0 -22
  184. package/src/components/sidebar/SidebarMenu.astro +0 -22
  185. package/src/components/sidebar/SidebarMenuAction.astro +0 -63
  186. package/src/components/sidebar/SidebarMenuBadge.astro +0 -31
  187. package/src/components/sidebar/SidebarMenuButton.astro +0 -124
  188. package/src/components/sidebar/SidebarMenuItem.astro +0 -22
  189. package/src/components/sidebar/SidebarMenuSkeleton.astro +0 -43
  190. package/src/components/sidebar/SidebarMenuSub.astro +0 -25
  191. package/src/components/sidebar/SidebarMenuSubButton.astro +0 -52
  192. package/src/components/sidebar/SidebarMenuSubItem.astro +0 -17
  193. package/src/components/sidebar/SidebarProvider.astro +0 -215
  194. package/src/components/sidebar/SidebarRail.astro +0 -72
  195. package/src/components/sidebar/SidebarSeparator.astro +0 -25
  196. package/src/components/sidebar/SidebarTrigger.astro +0 -69
  197. package/src/components/skeleton/Skeleton.astro +0 -14
  198. package/src/components/slider/Slider.astro +0 -425
  199. package/src/components/spinner/Spinner.astro +0 -23
  200. package/src/components/switch/Switch.astro +0 -192
  201. package/src/components/switch/SwitchTypes.ts +0 -6
  202. package/src/components/table/Table.astro +0 -20
  203. package/src/components/table/TableBody.astro +0 -18
  204. package/src/components/table/TableCaption.astro +0 -18
  205. package/src/components/table/TableCell.astro +0 -18
  206. package/src/components/table/TableFoot.astro +0 -18
  207. package/src/components/table/TableHead.astro +0 -18
  208. package/src/components/table/TableHeader.astro +0 -18
  209. package/src/components/table/TableRow.astro +0 -17
  210. package/src/components/tabs/Tabs.astro +0 -270
  211. package/src/components/tabs/TabsContent.astro +0 -28
  212. package/src/components/tabs/TabsList.astro +0 -23
  213. package/src/components/tabs/TabsTrigger.astro +0 -34
  214. package/src/components/textarea/Textarea.astro +0 -31
  215. package/src/components/toast/ToastDescription.astro +0 -22
  216. package/src/components/toast/ToastItem.astro +0 -56
  217. package/src/components/toast/ToastTemplate.astro +0 -27
  218. package/src/components/toast/ToastTitle.astro +0 -59
  219. package/src/components/toast/Toaster.astro +0 -981
  220. package/src/components/toast/index.ts +0 -1
  221. package/src/components/toast/toast-manager.ts +0 -234
  222. package/src/components/toggle/Toggle.astro +0 -174
  223. package/src/components/toggle/ToggleTypes.ts +0 -14
  224. package/src/components/tooltip/Tooltip.astro +0 -422
  225. package/src/components/tooltip/TooltipContent.astro +0 -83
  226. package/src/components/tooltip/TooltipTrigger.astro +0 -13
  227. package/src/components/video/Video.astro +0 -121
  228. package/src/config/cookies.ts +0 -5
  229. package/src/config/links.ts +0 -4
  230. package/src/domain/cms/index.ts +0 -1
  231. package/src/domain/cms/types.ts +0 -20
  232. package/src/domain/i18n/constants.ts +0 -21
  233. package/src/domain/i18n/cookie-storage.ts +0 -13
  234. package/src/domain/i18n/country-to-locale-map.ts +0 -67
  235. package/src/domain/i18n/fallbacks.generated.ts +0 -230
  236. package/src/domain/i18n/fetcher.ts +0 -278
  237. package/src/domain/i18n/flags.ts +0 -16
  238. package/src/domain/i18n/format.ts +0 -90
  239. package/src/domain/i18n/index.ts +0 -10
  240. package/src/domain/i18n/middleware/i18n.ts +0 -161
  241. package/src/domain/i18n/resolve-locale.ts +0 -55
  242. package/src/domain/i18n/runtime-constants.ts +0 -14
  243. package/src/domain/i18n/schema.ts +0 -29
  244. package/src/domain/index.ts +0 -4
  245. package/src/domain/seo/constants.ts +0 -6
  246. package/src/domain/seo/index.ts +0 -3
  247. package/src/domain/seo/services/index.ts +0 -3
  248. package/src/domain/seo/services/llms.ts +0 -56
  249. package/src/domain/seo/services/robots.ts +0 -12
  250. package/src/domain/seo/services/sitemap.ts +0 -56
  251. package/src/domain/seo/utils.ts +0 -36
  252. package/src/domain/theme/constants.ts +0 -6
  253. package/src/domain/theme/index.ts +0 -2
  254. package/src/domain/theme/schema.ts +0 -10
  255. package/src/i18n.generated.d.ts +0 -202
  256. package/src/lib/component-preview.ts +0 -73
  257. package/src/lib/index.ts +0 -6
  258. package/src/lib/remark/remark-modified-time.ts +0 -13
  259. package/src/lib/showcase-preview-elements.ts +0 -408
  260. package/src/lib/showcase-renderer.ts +0 -218
  261. package/src/lib/showcase-utils.ts +0 -189
  262. package/src/lib/turnstile.ts +0 -35
  263. package/src/lib/utils/starwind/positioning.ts +0 -318
  264. package/src/locales/de/blog.json +0 -9
  265. package/src/locales/de/common.json +0 -19
  266. package/src/locales/de/errors.json +0 -6
  267. package/src/locales/de/home.json +0 -20
  268. package/src/locales/de/messages.json +0 -8
  269. package/src/locales/de/nav.json +0 -13
  270. package/src/locales/de/projects.json +0 -9
  271. package/src/locales/de/services.json +0 -43
  272. package/src/locales/en/blog.json +0 -9
  273. package/src/locales/en/chat.json +0 -29
  274. package/src/locales/en/common.json +0 -19
  275. package/src/locales/en/cookie_notice.json +0 -11
  276. package/src/locales/en/editor.json +0 -24
  277. package/src/locales/en/errors.json +0 -6
  278. package/src/locales/en/home.json +0 -20
  279. package/src/locales/en/messages.json +0 -8
  280. package/src/locales/en/nav.json +0 -13
  281. package/src/locales/en/projects.json +0 -9
  282. package/src/locales/en/services.json +0 -43
  283. package/src/locales/es/blog.json +0 -9
  284. package/src/locales/es/common.json +0 -19
  285. package/src/locales/es/errors.json +0 -6
  286. package/src/locales/es/home.json +0 -20
  287. package/src/locales/es/messages.json +0 -8
  288. package/src/locales/es/nav.json +0 -13
  289. package/src/locales/es/projects.json +0 -9
  290. package/src/locales/es/services.json +0 -43
  291. package/src/locales/ja/blog.json +0 -9
  292. package/src/locales/ja/common.json +0 -19
  293. package/src/locales/ja/errors.json +0 -6
  294. package/src/locales/ja/home.json +0 -20
  295. package/src/locales/ja/messages.json +0 -8
  296. package/src/locales/ja/nav.json +0 -13
  297. package/src/locales/ja/projects.json +0 -9
  298. package/src/locales/ja/services.json +0 -43
  299. package/src/locales/pt/blog.json +0 -9
  300. package/src/locales/pt/chat.json +0 -29
  301. package/src/locales/pt/common.json +0 -19
  302. package/src/locales/pt/cookie_notice.json +0 -11
  303. package/src/locales/pt/editor.json +0 -24
  304. package/src/locales/pt/errors.json +0 -6
  305. package/src/locales/pt/home.json +0 -20
  306. package/src/locales/pt/messages.json +0 -8
  307. package/src/locales/pt/nav.json +0 -13
  308. package/src/locales/pt/projects.json +0 -9
  309. package/src/locales/pt/services.json +0 -43
  310. package/src/utils/server/cookies.ts +0 -98
  311. package/src/utils/server/index.ts +0 -1
  312. package/src/utils/shared/deep-merge.ts +0 -36
  313. package/src/utils/shared/index.ts +0 -3
  314. package/src/utils/shared/parse-boolean.ts +0 -14
  315. /package/src/utils/{shared/embed.ts → embed.ts} +0 -0
@@ -1,94 +0,0 @@
1
- ---
2
- import type { HTMLAttributes } from "astro/types";
3
- import { cv } from "css-variants";
4
-
5
- type Props = HTMLAttributes<"div"> & {
6
- /**
7
- * Side of the tooltip
8
- * @default bottom
9
- */
10
- side?: "top" | "bottom";
11
- /**
12
- * Alignment of the dropdown
13
- * @default start
14
- */
15
- align?: "start" | "center" | "end";
16
- /**
17
- * Offset distance in pixels
18
- * @default 4
19
- */
20
- sideOffset?: number;
21
- /**
22
- * Open and close animation duration in milliseconds
23
- * @default 150
24
- */
25
- animationDuration?: number;
26
- /**
27
- * Size of the select content
28
- * @default md
29
- */
30
- size?: "sm" | "md" | "lg";
31
- };
32
-
33
- export const selectContent = cv({
34
- base: [
35
- "starwind-select-content",
36
- "bg-popover text-popover-foreground absolute z-50 min-w-6xl rounded-md b shadow-md",
37
- "data-[state=open]:animate-in fade-in zoom-in-95 overflow-hidden will-change-transform",
38
- "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out zoom-out-95",
39
- ],
40
- variants: {
41
- side: {
42
- bottom: "slide-in-from-top-2 slide-out-to-top-2 top-full",
43
- top: "slide-in-from-bottom-2 slide-out-to-bottom-2 bottom-full",
44
- },
45
- align: {
46
- start: "slide-in-from-left-1 slide-out-to-left-1 left-0",
47
- center: "left-1/2 -translate-x-1/2",
48
- end: "slide-in-from-right-1 slide-out-to-right-1 right-0",
49
- },
50
- size: {
51
- sm: "text-sm [&_[data-slot=select-label]]:text-xs",
52
- md: "text-base [&_[data-slot=select-label]]:text-sm",
53
- lg: "text-lg [&_[data-slot=select-label]]:text-base",
54
- },
55
- },
56
- defaultVariants: { side: "bottom", align: "start", size: "md" },
57
- });
58
-
59
- export const selectContentInner = cv({
60
- base: "max-h-3xl w-full min-w-(--select-trigger-width) overflow-y-auto p-5xs",
61
- });
62
-
63
- const {
64
- class: className,
65
- side = "bottom",
66
- align = "start",
67
- size = "md",
68
- sideOffset = 4,
69
- animationDuration = 150,
70
- ...rest
71
- } = Astro.props;
72
- ---
73
-
74
- <div
75
- class:list={[selectContent({ side, align, size }), className]}
76
- role="listbox"
77
- data-side={side}
78
- data-align={align}
79
- data-state="closed"
80
- tabindex="-1"
81
- style={{
82
- // hide the content initially. Script will remove this
83
- display: "none",
84
- animationDuration: `${animationDuration}ms`,
85
- marginTop: side === "bottom" ? `${sideOffset}px` : undefined,
86
- marginBottom: side === "top" ? `${sideOffset}px` : undefined,
87
- }}
88
- {...rest}
89
- data-slot="select-content"
90
- >
91
- <div class={selectContentInner()}>
92
- <slot />
93
- </div>
94
- </div>
@@ -1,9 +0,0 @@
1
- ---
2
- /**
3
- * This current doesn't do anything
4
- */
5
-
6
- type Props = { children: any };
7
- ---
8
-
9
- <slot />
@@ -1,51 +0,0 @@
1
- ---
2
- import type { HTMLAttributes } from "astro/types";
3
- import { cv } from "css-variants";
4
- import IconCheck from "~icons/lucide/check";
5
-
6
- type Props = HTMLAttributes<"div"> & {
7
- /**
8
- * The value associated with this select item
9
- */
10
- value: string;
11
- /**
12
- * Whether this select item is disabled and cannot be selected
13
- */
14
- disabled?: boolean;
15
- };
16
-
17
- export const selectItem = cv({
18
- base: [
19
- "relative flex w-full cursor-default items-center rounded-sm py-5xs pr-2xl pl-3xs outline-none select-none",
20
- "data-[active]:bg-accent data-[active]:text-accent-foreground",
21
- "data-[disabled]:pointer-events-none data-[disabled]:op-50",
22
- "not-aria-selected:[&_svg]:hidden aria-selected:[&_svg]:flex",
23
- ],
24
- });
25
-
26
- export const selectItemIcon = cv({
27
- base: "absolute right-3xs flex size-4 items-center justify-center",
28
- });
29
-
30
- const { class: className, value, disabled, ...rest } = Astro.props;
31
- ---
32
-
33
- <div
34
- class:list={[selectItem(), className]}
35
- data-value={value}
36
- data-disabled={disabled}
37
- aria-selected="false"
38
- role="option"
39
- tabindex="0"
40
- {...rest}
41
- data-slot="select-item"
42
- >
43
- <span>
44
- <slot />
45
- </span>
46
- <span class={selectItemIcon()}>
47
- <slot name="icon">
48
- <IconCheck class="size-4" />
49
- </slot>
50
- </span>
51
- </div>
@@ -1,14 +0,0 @@
1
- ---
2
- import type { HTMLAttributes } from "astro/types";
3
- import { cv } from "css-variants";
4
-
5
- type Props = HTMLAttributes<"div">;
6
-
7
- export const selectLabel = cv({ base: "text-muted-foreground py-5xs pr-2xl pl-3xs" });
8
-
9
- const { class: className, ...rest } = Astro.props;
10
- ---
11
-
12
- <div class:list={[selectLabel(), className]} {...rest} data-slot="select-label">
13
- <slot />
14
- </div>
@@ -1,49 +0,0 @@
1
- ---
2
- import type { HTMLAttributes } from "astro/types";
3
- import { cv } from "css-variants";
4
- import IconSearch from "~icons/lucide/search";
5
-
6
- type Props = Omit<HTMLAttributes<"input">, "type" | "autocomplete"> & {
7
- /**
8
- * The text to display when no results are found
9
- * @default "No results found."
10
- */
11
- emptyText?: string;
12
- };
13
-
14
- export const selectSearch = cv({
15
- base: [
16
- "placeholder:text-muted-foreground flex w-full border-0 bg-transparent px-0 py-2xl",
17
- "ring-0 outline-none disabled:cursor-not-allowed disabled:op-50",
18
- ],
19
- });
20
-
21
- const {
22
- class: className,
23
- placeholder = "Search...",
24
- emptyText = "No results found.",
25
- ...rest
26
- } = Astro.props;
27
- ---
28
-
29
- <div
30
- data-slot="select-search-wrapper"
31
- class="-mx-5xs -mt-5xs mb-5xs flex items-center gap-3xs border-b px-3xs"
32
- >
33
- <slot name="icon">
34
- <IconSearch class="text-muted-foreground size-4.5 shrink-0" />
35
- </slot>
36
- <input
37
- type="text"
38
- class:list={[selectSearch(), className]}
39
- placeholder={placeholder}
40
- autocomplete="off"
41
- aria-label={placeholder}
42
- {...rest}
43
- data-slot="select-search"
44
- />
45
- </div>
46
-
47
- <div class="text-muted-foreground hidden py-6 text-center text-sm" data-slot="select-empty">
48
- <slot name="empty">{emptyText}</slot>
49
- </div>
@@ -1,12 +0,0 @@
1
- ---
2
- import type { HTMLAttributes } from "astro/types";
3
- import { cv } from "css-variants";
4
-
5
- type Props = HTMLAttributes<"div">;
6
-
7
- export const selectSeparator = cv({ base: "bg-muted -mx-5xs my-5xs h-6xs" });
8
-
9
- const { class: className, ...rest } = Astro.props;
10
- ---
11
-
12
- <div class:list={[selectSeparator(), className]} {...rest} data-slot="select-separator"></div>
@@ -1,56 +0,0 @@
1
- ---
2
- import type { HTMLAttributes } from "astro/types";
3
- import { cv } from "css-variants";
4
- import IconChevronDown from "~icons/lucide/chevron-down";
5
-
6
- type VariantProps<T extends (...args: any) => any> = NonNullable<Parameters<T>[0]>;
7
-
8
- type Props = Omit<HTMLAttributes<"button">, "role" | "type"> &
9
- VariantProps<typeof selectTrigger> & {
10
- /**
11
- * The content to be rendered inside the select trigger
12
- */
13
- children: any;
14
- };
15
-
16
- export const selectTrigger = cv({
17
- base: [
18
- "starwind-select-trigger",
19
- "border-input dark:bg-input/30 text-foreground ring-offset-background flex items-center justify-between gap-2 rounded-md b bg-transparent shadow-xs",
20
- "focus-visible:border-outline focus-visible:ring-outline/50 transition-[color,box-shadow] outline-none focus-visible:ring-3",
21
- "disabled:cursor-not-allowed disabled:op-50 [&>span]:line-clamp-1",
22
- "aria-invalid:border-error aria-invalid:focus:ring-error/40 aria-invalid:focus:ring-3",
23
- ],
24
- variants: {
25
- size: {
26
- sm: "h-2xl px-3xs text-sm",
27
- md: "h-3xl px-xs text-base",
28
- lg: "h-3xl px-2xl text-lg",
29
- },
30
- },
31
- defaultVariants: {
32
- size: "md",
33
- },
34
- });
35
-
36
- const { class: className, size, ...rest } = Astro.props;
37
- ---
38
-
39
- <button
40
- class:list={[selectTrigger({ size }), className]}
41
- type="button"
42
- role="combobox"
43
- aria-label="Select field"
44
- aria-controls=""
45
- aria-expanded="false"
46
- aria-haspopup="listbox"
47
- aria-autocomplete="none"
48
- data-state="closed"
49
- {...rest}
50
- data-slot="select-trigger"
51
- >
52
- <slot />
53
- <slot name="icon">
54
- <IconChevronDown class="size-4 op-50" />
55
- </slot>
56
- </button>
@@ -1,13 +0,0 @@
1
- export interface SelectChangeEvent extends CustomEvent {
2
- detail: {
3
- value: string
4
- selectId: string
5
- label: string
6
- }
7
- }
8
-
9
- export interface SelectEvent extends CustomEvent {
10
- detail:
11
- | { value: string; selectId: string; selectName?: string }
12
- | { value: string; selectId?: string; selectName: string }
13
- }
@@ -1,19 +0,0 @@
1
- ---
2
- import type { HTMLAttributes } from "astro/types";
3
- import { cv } from "css-variants";
4
-
5
- type Props = HTMLAttributes<"span"> & {
6
- /**
7
- * The text to display when no value is selected
8
- */
9
- placeholder?: string;
10
- };
11
-
12
- export const selectValue = cv({ base: "pointer-events-none" });
13
-
14
- const { placeholder = "select", class: className, ...rest } = Astro.props;
15
- ---
16
-
17
- <span class:list={[selectValue(), className]} {...rest} data-slot="select-value">
18
- {placeholder}
19
- </span>
@@ -1,36 +0,0 @@
1
- ---
2
- import type { HTMLAttributes } from "astro/types";
3
- import { cv } from "css-variants";
4
-
5
- type Props = Omit<HTMLAttributes<"div">, "role" | "aria-orientation"> & {
6
- /**
7
- * The orientation of the separator.
8
- * @default "horizontal"
9
- */
10
- orientation?: "horizontal" | "vertical";
11
- };
12
-
13
- export const separator = cv({
14
- base: "bg-border shrink-0",
15
- variants: {
16
- orientation: {
17
- horizontal: "h-6xs w-full",
18
- vertical: "h-full w-6xs",
19
- },
20
- },
21
- defaultVariants: {
22
- orientation: "horizontal",
23
- },
24
- });
25
-
26
- const { class: className, orientation = "horizontal", ...rest } = Astro.props;
27
- ---
28
-
29
- <div
30
- role="separator"
31
- aria-orientation={orientation}
32
- class:list={[separator({ orientation }), className]}
33
- {...rest}
34
- data-slot="separator"
35
- >
36
- </div>
@@ -1,15 +0,0 @@
1
- ---
2
- import type { ComponentProps } from "astro/types";
3
-
4
- // eslint-disable-next-line typescript/consistent-type-imports
5
- import Dialog from "../dialog/Dialog.astro";
6
-
7
- type Props = ComponentProps<typeof Dialog>;
8
-
9
- const { class: className, ...rest } = Astro.props;
10
- ---
11
-
12
- <Dialog class:list={["starwind-sheet", className]} {...rest} data-slot="sheet">
13
- <slot />
14
- </Dialog>
15
-
@@ -1,15 +0,0 @@
1
- ---
2
- import type { ComponentProps } from "astro/types";
3
-
4
- // eslint-disable-next-line typescript/consistent-type-imports
5
- import DialogClose from "../dialog/DialogClose.astro";
6
-
7
- type Props = ComponentProps<typeof DialogClose>;
8
-
9
- const { class: className, ...rest } = Astro.props;
10
- ---
11
-
12
- <DialogClose class:list={["starwind-sheet-close", className]} {...rest}>
13
- <slot />
14
- </DialogClose>
15
-
@@ -1,89 +0,0 @@
1
- ---
2
- import type { HTMLAttributes } from "astro/types";
3
- import { cv } from "css-variants";
4
- import IconX from "~icons/lucide/x";
5
-
6
- type Props = HTMLAttributes<"dialog"> & {
7
- /**
8
- * Side of the page the sheet opens from
9
- */
10
- side?: "top" | "right" | "bottom" | "left";
11
- };
12
-
13
- const { side = "right", class: className, ...rest } = Astro.props;
14
-
15
- export const dialogBackdrop = cv({
16
- base: [
17
- "starwind-dialog-backdrop fixed inset-0 top-0 left-0 z-50 hidden h-screen w-screen bg-black/80",
18
- "data-[state=open]:animate-in fade-in",
19
- "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out",
20
- "data-[state=closed]:duration-300 data-[state=open]:duration-500",
21
- ],
22
- });
23
-
24
- export const sheetContent = cv({
25
- base: [
26
- "starwind-dialog-content",
27
- "bg-background fixed z-50 flex-col gap-lg shadow-lg transition ease-in-out open:flex",
28
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards",
29
- "data-[state=closed]:duration-300 data-[state=open]:duration-500",
30
- ],
31
- variants: {
32
- side: {
33
- right: [
34
- "slide-out-to-right slide-in-from-right",
35
- "inset-y-0 right-0 left-auto h-full max-h-[100dvh] w-3/4 border-l sm:max-w-sm",
36
- ],
37
- left: [
38
- "slide-out-to-left slide-in-from-left",
39
- "inset-y-0 right-auto left-0 h-full max-h-[100dvh] w-3/4 border-r sm:max-w-sm",
40
- ],
41
- top: [
42
- "slide-out-to-top slide-in-from-top",
43
- "inset-x-0 top-0 bottom-auto h-auto w-full max-w-screen border-b",
44
- ],
45
- bottom: [
46
- "slide-out-to-bottom slide-in-from-bottom",
47
- "inset-x-0 top-auto bottom-0 h-auto w-full max-w-screen border-t",
48
- ],
49
- },
50
- },
51
- defaultVariants: {
52
- side: "right",
53
- },
54
- });
55
-
56
- export const sheetCloseButton = cv({
57
- base: [
58
- "starwind-dialog-close",
59
- "absolute top-2xl right-2xl rounded-xs [&>svg]:op-70 hover:[&>svg]:op-100",
60
- "focus-visible:ring-outline/50 transition-[color,box-shadow] outline-none focus-visible:ring-3",
61
- ],
62
- });
63
- ---
64
-
65
- <!-- dialog overlay -->
66
- <slot name="backdrop">
67
- <div class={dialogBackdrop()} data-state="closed" data-slot="dialog-backdrop"></div>
68
- </slot>
69
-
70
- <dialog
71
- class:list={[sheetContent({ side }), className]}
72
- data-state="closed"
73
- data-close-duration="300"
74
- {...rest}
75
- data-slot="sheet-content"
76
- >
77
- <slot />
78
- <button
79
- type="button"
80
- class={sheetCloseButton()}
81
- data-slot="sheet-close"
82
- aria-label="Close dialog"
83
- >
84
- <slot name="icon">
85
- <IconX class="size-5 transition-opacity" />
86
- </slot>
87
- <span class="sr-only">Close</span>
88
- </button>
89
- </dialog>
@@ -1,16 +0,0 @@
1
- ---
2
- import type { HTMLAttributes } from "astro/types";
3
- import { cv } from "css-variants";
4
-
5
- type Props = HTMLAttributes<"p">;
6
-
7
- const { class: className, ...rest } = Astro.props;
8
-
9
- export const sheetDescription = cv({
10
- base: ["text-muted-foreground text-sm"],
11
- });
12
- ---
13
-
14
- <p class:list={[sheetDescription(), className]} {...rest} data-slot="sheet-description">
15
- <slot />
16
- </p>
@@ -1,16 +0,0 @@
1
- ---
2
- import type { HTMLAttributes } from "astro/types";
3
- import { cv } from "css-variants";
4
-
5
- type Props = HTMLAttributes<"div">;
6
-
7
- const { class: className, ...rest } = Astro.props;
8
-
9
- export const sheetFooter = cv({
10
- base: ["mt-auto flex flex-col gap-3xs p-2xl"],
11
- });
12
- ---
13
-
14
- <div class:list={[sheetFooter(), className]} {...rest} data-slot="sheet-footer">
15
- <slot />
16
- </div>
@@ -1,16 +0,0 @@
1
- ---
2
- import type { HTMLAttributes } from "astro/types";
3
- import { cv } from "css-variants";
4
-
5
- type Props = HTMLAttributes<"div">;
6
-
7
- const { class: className, ...rest } = Astro.props;
8
-
9
- export const sheetHeader = cv({
10
- base: ["flex flex-col gap-5xs p-2xl"],
11
- });
12
- ---
13
-
14
- <div class:list={[sheetHeader(), className]} {...rest} data-slot="sheet-header">
15
- <slot />
16
- </div>
@@ -1,16 +0,0 @@
1
- ---
2
- import type { HTMLAttributes } from "astro/types";
3
- import { cv } from "css-variants";
4
-
5
- type Props = HTMLAttributes<"h2">;
6
-
7
- const { class: className, ...rest } = Astro.props;
8
-
9
- export const sheetTitle = cv({
10
- base: ["starwind-sheet-title", "text-foreground font-heading font-semibold"],
11
- });
12
- ---
13
-
14
- <h2 class:list={[sheetTitle(), className]} {...rest} data-slot="sheet-title">
15
- <slot />
16
- </h2>
@@ -1,15 +0,0 @@
1
- ---
2
- import type { ComponentProps } from "astro/types";
3
-
4
- // eslint-disable-next-line typescript/consistent-type-imports
5
- import DialogTrigger from "../dialog/DialogTrigger.astro";
6
-
7
- type Props = ComponentProps<typeof DialogTrigger>;
8
-
9
- const { class: className, ...rest } = Astro.props;
10
- ---
11
-
12
- <DialogTrigger class:list={["starwind-sheet-trigger", className]} {...rest}>
13
- <slot />
14
- </DialogTrigger>
15
-