@starwind-ui/core 1.15.1 → 1.15.2

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 (216) hide show
  1. package/dist/index.d.ts +28 -0
  2. package/dist/index.js +108 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/src/components/accordion/Accordion.astro +254 -0
  5. package/dist/src/components/accordion/AccordionContent.astro +33 -0
  6. package/dist/src/components/accordion/AccordionItem.astro +27 -0
  7. package/dist/src/components/accordion/AccordionTrigger.astro +32 -0
  8. package/dist/src/components/accordion/index.ts +15 -0
  9. package/dist/src/components/alert/Alert.astro +31 -0
  10. package/dist/src/components/alert/AlertDescription.astro +14 -0
  11. package/dist/src/components/alert/AlertTitle.astro +16 -0
  12. package/dist/src/components/alert/index.ts +13 -0
  13. package/dist/src/components/alert-dialog/AlertDialog.astro +275 -0
  14. package/dist/src/components/alert-dialog/AlertDialogAction.astro +44 -0
  15. package/dist/src/components/alert-dialog/AlertDialogCancel.astro +45 -0
  16. package/dist/src/components/alert-dialog/AlertDialogContent.astro +52 -0
  17. package/dist/src/components/alert-dialog/AlertDialogDescription.astro +18 -0
  18. package/dist/src/components/alert-dialog/AlertDialogFooter.astro +16 -0
  19. package/dist/src/components/alert-dialog/AlertDialogHeader.astro +14 -0
  20. package/dist/src/components/alert-dialog/AlertDialogTitle.astro +20 -0
  21. package/dist/src/components/alert-dialog/AlertDialogTrigger.astro +47 -0
  22. package/dist/src/components/alert-dialog/index.ts +46 -0
  23. package/dist/src/components/aspect-ratio/AspectRatio.astro +32 -0
  24. package/dist/src/components/aspect-ratio/index.ts +7 -0
  25. package/dist/src/components/avatar/Avatar.astro +29 -0
  26. package/dist/src/components/avatar/AvatarFallback.astro +18 -0
  27. package/dist/src/components/avatar/AvatarImage.astro +49 -0
  28. package/dist/src/components/avatar/index.ts +13 -0
  29. package/dist/src/components/badge/Badge.astro +55 -0
  30. package/dist/src/components/badge/index.ts +7 -0
  31. package/dist/src/components/breadcrumb/Breadcrumb.astro +11 -0
  32. package/dist/src/components/breadcrumb/BreadcrumbEllipsis.astro +28 -0
  33. package/dist/src/components/breadcrumb/BreadcrumbItem.astro +14 -0
  34. package/dist/src/components/breadcrumb/BreadcrumbLink.astro +22 -0
  35. package/dist/src/components/breadcrumb/BreadcrumbList.astro +16 -0
  36. package/dist/src/components/breadcrumb/BreadcrumbPage.astro +21 -0
  37. package/dist/src/components/breadcrumb/BreadcrumbSeparator.astro +23 -0
  38. package/dist/src/components/breadcrumb/index.ts +37 -0
  39. package/dist/src/components/button/Button.astro +55 -0
  40. package/dist/src/components/button/index.ts +7 -0
  41. package/dist/src/components/button-group/ButtonGroup.astro +62 -0
  42. package/dist/src/components/button-group/ButtonGroupSeparator.astro +27 -0
  43. package/dist/src/components/button-group/ButtonGroupText.astro +19 -0
  44. package/dist/src/components/button-group/index.ts +17 -0
  45. package/dist/src/components/card/Card.astro +14 -0
  46. package/dist/src/components/card/CardContent.astro +14 -0
  47. package/dist/src/components/card/CardDescription.astro +14 -0
  48. package/dist/src/components/card/CardFooter.astro +14 -0
  49. package/dist/src/components/card/CardHeader.astro +14 -0
  50. package/dist/src/components/card/CardTitle.astro +14 -0
  51. package/dist/src/components/card/index.ts +26 -0
  52. package/dist/src/components/carousel/Carousel.astro +55 -0
  53. package/dist/src/components/carousel/CarouselContent.astro +26 -0
  54. package/dist/src/components/carousel/CarouselItem.astro +26 -0
  55. package/dist/src/components/carousel/CarouselNext.astro +37 -0
  56. package/dist/src/components/carousel/CarouselPrevious.astro +37 -0
  57. package/dist/src/components/carousel/carousel-script.ts +191 -0
  58. package/dist/src/components/carousel/index.ts +32 -0
  59. package/dist/src/components/checkbox/Checkbox.astro +128 -0
  60. package/dist/src/components/checkbox/index.ts +7 -0
  61. package/dist/src/components/collapsible/Collapsible.astro +161 -0
  62. package/dist/src/components/collapsible/CollapsibleContent.astro +22 -0
  63. package/dist/src/components/collapsible/CollapsibleTrigger.astro +44 -0
  64. package/dist/src/components/collapsible/index.ts +13 -0
  65. package/dist/src/components/dialog/Dialog.astro +389 -0
  66. package/dist/src/components/dialog/DialogClose.astro +35 -0
  67. package/dist/src/components/dialog/DialogContent.astro +78 -0
  68. package/dist/src/components/dialog/DialogDescription.astro +14 -0
  69. package/dist/src/components/dialog/DialogFooter.astro +14 -0
  70. package/dist/src/components/dialog/DialogHeader.astro +14 -0
  71. package/dist/src/components/dialog/DialogTitle.astro +22 -0
  72. package/dist/src/components/dialog/DialogTrigger.astro +47 -0
  73. package/dist/src/components/dialog/index.ts +45 -0
  74. package/dist/src/components/dropdown/Dropdown.astro +377 -0
  75. package/dist/src/components/dropdown/DropdownContent.astro +81 -0
  76. package/dist/src/components/dropdown/DropdownItem.astro +48 -0
  77. package/dist/src/components/dropdown/DropdownLabel.astro +29 -0
  78. package/dist/src/components/dropdown/DropdownSeparator.astro +21 -0
  79. package/dist/src/components/dropdown/DropdownTrigger.astro +52 -0
  80. package/dist/src/components/dropdown/index.ts +33 -0
  81. package/dist/src/components/dropzone/Dropzone.astro +236 -0
  82. package/dist/src/components/dropzone/DropzoneFilesList.astro +26 -0
  83. package/dist/src/components/dropzone/DropzoneLoadingIndicator.astro +10 -0
  84. package/dist/src/components/dropzone/DropzoneUploadIndicator.astro +10 -0
  85. package/dist/src/components/dropzone/index.ts +24 -0
  86. package/dist/src/components/image/Image.astro +24 -0
  87. package/dist/src/components/image/index.ts +9 -0
  88. package/dist/src/components/input/Input.astro +25 -0
  89. package/dist/src/components/input/index.ts +7 -0
  90. package/dist/src/components/input-otp/InputOtp.astro +352 -0
  91. package/dist/src/components/input-otp/InputOtpGroup.astro +16 -0
  92. package/dist/src/components/input-otp/InputOtpSeparator.astro +25 -0
  93. package/dist/src/components/input-otp/InputOtpSlot.astro +48 -0
  94. package/dist/src/components/input-otp/InputOtpTypes.ts +6 -0
  95. package/dist/src/components/input-otp/index.ts +33 -0
  96. package/dist/src/components/item/Item.astro +52 -0
  97. package/dist/src/components/item/ItemActions.astro +16 -0
  98. package/dist/src/components/item/ItemContent.astro +16 -0
  99. package/dist/src/components/item/ItemDescription.astro +19 -0
  100. package/dist/src/components/item/ItemFooter.astro +16 -0
  101. package/dist/src/components/item/ItemGroup.astro +16 -0
  102. package/dist/src/components/item/ItemHeader.astro +16 -0
  103. package/dist/src/components/item/ItemMedia.astro +40 -0
  104. package/dist/src/components/item/ItemSeparator.astro +21 -0
  105. package/dist/src/components/item/ItemTitle.astro +16 -0
  106. package/dist/src/components/item/index.ts +50 -0
  107. package/dist/src/components/kbd/Kbd.astro +21 -0
  108. package/dist/src/components/kbd/KbdGroup.astro +16 -0
  109. package/dist/src/components/kbd/index.ts +11 -0
  110. package/dist/src/components/label/Label.astro +22 -0
  111. package/dist/src/components/label/index.ts +7 -0
  112. package/dist/src/components/pagination/Pagination.astro +20 -0
  113. package/dist/src/components/pagination/PaginationContent.astro +16 -0
  114. package/dist/src/components/pagination/PaginationEllipsis.astro +35 -0
  115. package/dist/src/components/pagination/PaginationItem.astro +16 -0
  116. package/dist/src/components/pagination/PaginationLink.astro +24 -0
  117. package/dist/src/components/pagination/PaginationNext.astro +30 -0
  118. package/dist/src/components/pagination/PaginationPrevious.astro +30 -0
  119. package/dist/src/components/pagination/index.ts +38 -0
  120. package/dist/src/components/progress/Progress.astro +155 -0
  121. package/dist/src/components/progress/index.ts +10 -0
  122. package/dist/src/components/prose/Prose.astro +617 -0
  123. package/dist/src/components/prose/index.ts +9 -0
  124. package/dist/src/components/radio-group/RadioGroup.astro +162 -0
  125. package/dist/src/components/radio-group/RadioGroupItem.astro +129 -0
  126. package/dist/src/components/radio-group/RadioGroupTypes.ts +6 -0
  127. package/dist/src/components/radio-group/index.ts +23 -0
  128. package/dist/src/components/select/Select.astro +752 -0
  129. package/dist/src/components/select/SelectContent.astro +94 -0
  130. package/dist/src/components/select/SelectGroup.astro +9 -0
  131. package/dist/src/components/select/SelectItem.astro +51 -0
  132. package/dist/src/components/select/SelectLabel.astro +14 -0
  133. package/dist/src/components/select/SelectSearch.astro +49 -0
  134. package/dist/src/components/select/SelectSeparator.astro +12 -0
  135. package/dist/src/components/select/SelectTrigger.astro +54 -0
  136. package/dist/src/components/select/SelectTypes.ts +13 -0
  137. package/dist/src/components/select/SelectValue.astro +19 -0
  138. package/dist/src/components/select/index.ts +49 -0
  139. package/dist/src/components/separator/Separator.astro +36 -0
  140. package/dist/src/components/separator/index.ts +7 -0
  141. package/dist/src/components/sheet/Sheet.astro +13 -0
  142. package/dist/src/components/sheet/SheetClose.astro +13 -0
  143. package/dist/src/components/sheet/SheetContent.astro +92 -0
  144. package/dist/src/components/sheet/SheetDescription.astro +16 -0
  145. package/dist/src/components/sheet/SheetFooter.astro +16 -0
  146. package/dist/src/components/sheet/SheetHeader.astro +16 -0
  147. package/dist/src/components/sheet/SheetTitle.astro +16 -0
  148. package/dist/src/components/sheet/SheetTrigger.astro +13 -0
  149. package/dist/src/components/sheet/index.ts +41 -0
  150. package/dist/src/components/sidebar/Sidebar.astro +213 -0
  151. package/dist/src/components/sidebar/SidebarContent.astro +24 -0
  152. package/dist/src/components/sidebar/SidebarFooter.astro +21 -0
  153. package/dist/src/components/sidebar/SidebarGroup.astro +21 -0
  154. package/dist/src/components/sidebar/SidebarGroupContent.astro +21 -0
  155. package/dist/src/components/sidebar/SidebarGroupLabel.astro +52 -0
  156. package/dist/src/components/sidebar/SidebarHeader.astro +21 -0
  157. package/dist/src/components/sidebar/SidebarInput.astro +22 -0
  158. package/dist/src/components/sidebar/SidebarInset.astro +21 -0
  159. package/dist/src/components/sidebar/SidebarMenu.astro +21 -0
  160. package/dist/src/components/sidebar/SidebarMenuAction.astro +59 -0
  161. package/dist/src/components/sidebar/SidebarMenuBadge.astro +30 -0
  162. package/dist/src/components/sidebar/SidebarMenuButton.astro +129 -0
  163. package/dist/src/components/sidebar/SidebarMenuItem.astro +21 -0
  164. package/dist/src/components/sidebar/SidebarMenuSkeleton.astro +40 -0
  165. package/dist/src/components/sidebar/SidebarMenuSub.astro +24 -0
  166. package/dist/src/components/sidebar/SidebarMenuSubButton.astro +49 -0
  167. package/dist/src/components/sidebar/SidebarMenuSubItem.astro +16 -0
  168. package/dist/src/components/sidebar/SidebarProvider.astro +213 -0
  169. package/dist/src/components/sidebar/SidebarRail.astro +71 -0
  170. package/dist/src/components/sidebar/SidebarSeparator.astro +22 -0
  171. package/dist/src/components/sidebar/SidebarTrigger.astro +66 -0
  172. package/dist/src/components/sidebar/index.ts +103 -0
  173. package/dist/src/components/skeleton/Skeleton.astro +14 -0
  174. package/dist/src/components/skeleton/index.ts +9 -0
  175. package/dist/src/components/slider/Slider.astro +411 -0
  176. package/dist/src/components/slider/index.ts +9 -0
  177. package/dist/src/components/spinner/Spinner.astro +21 -0
  178. package/dist/src/components/spinner/index.ts +7 -0
  179. package/dist/src/components/switch/Switch.astro +192 -0
  180. package/dist/src/components/switch/SwitchTypes.ts +6 -0
  181. package/dist/src/components/switch/index.ts +12 -0
  182. package/dist/src/components/table/Table.astro +18 -0
  183. package/dist/src/components/table/TableBody.astro +16 -0
  184. package/dist/src/components/table/TableCaption.astro +16 -0
  185. package/dist/src/components/table/TableCell.astro +16 -0
  186. package/dist/src/components/table/TableFoot.astro +16 -0
  187. package/dist/src/components/table/TableHead.astro +16 -0
  188. package/dist/src/components/table/TableHeader.astro +16 -0
  189. package/dist/src/components/table/TableRow.astro +16 -0
  190. package/dist/src/components/table/index.ts +42 -0
  191. package/dist/src/components/tabs/Tabs.astro +271 -0
  192. package/dist/src/components/tabs/TabsContent.astro +28 -0
  193. package/dist/src/components/tabs/TabsList.astro +22 -0
  194. package/dist/src/components/tabs/TabsTrigger.astro +34 -0
  195. package/dist/src/components/tabs/index.ts +20 -0
  196. package/dist/src/components/textarea/Textarea.astro +29 -0
  197. package/dist/src/components/textarea/index.ts +9 -0
  198. package/dist/src/components/theme-toggle/ThemeToggle.astro +208 -0
  199. package/dist/src/components/theme-toggle/index.ts +7 -0
  200. package/dist/src/components/toast/ToastDescription.astro +21 -0
  201. package/dist/src/components/toast/ToastItem.astro +54 -0
  202. package/dist/src/components/toast/ToastTemplate.astro +25 -0
  203. package/dist/src/components/toast/ToastTitle.astro +57 -0
  204. package/dist/src/components/toast/Toaster.astro +982 -0
  205. package/dist/src/components/toast/index.ts +29 -0
  206. package/dist/src/components/toast/toast-manager.ts +216 -0
  207. package/dist/src/components/toggle/Toggle.astro +174 -0
  208. package/dist/src/components/toggle/ToggleTypes.ts +14 -0
  209. package/dist/src/components/toggle/index.ts +8 -0
  210. package/dist/src/components/tooltip/Tooltip.astro +282 -0
  211. package/dist/src/components/tooltip/TooltipContent.astro +89 -0
  212. package/dist/src/components/tooltip/TooltipTrigger.astro +10 -0
  213. package/dist/src/components/tooltip/index.ts +16 -0
  214. package/dist/src/components/video/Video.astro +120 -0
  215. package/dist/src/components/video/index.ts +9 -0
  216. package/package.json +1 -1
@@ -0,0 +1,617 @@
1
+ ---
2
+ import type { HTMLAttributes } from "astro/types";
3
+ import { tv } from "tailwind-variants";
4
+
5
+ export const prose = tv({
6
+ base: "sw-prose max-w-[65ch]",
7
+ });
8
+
9
+ type Props = HTMLAttributes<"div">;
10
+
11
+ const { class: className, ...rest } = Astro.props;
12
+ ---
13
+
14
+ <div class:list={[prose({ class: className })]} data-slot="prose" {...rest}><slot /></div>
15
+
16
+ <style is:global>
17
+ /* ==========================================================================
18
+ * Starwind Prose - Typography styles for markdown content
19
+ * Inspired by Tailwind Typography and Astro Starlight
20
+ * ========================================================================== */
21
+
22
+ /* --------------------------------------------------------------------------
23
+ * CSS Custom Properties
24
+ *
25
+ * Sizing is em-based, so it scales with the inherited font-size.
26
+ * Control overall size via Tailwind text utilities: text-sm md:text-base
27
+ *
28
+ * Override specific values using CSS variables (supports responsive):
29
+ * class="[--prose-spacing:1.5em] md:[--prose-spacing:1.25em]"
30
+ *
31
+ * Or set on a parent element:
32
+ * <div style="--prose-h1-size: 3em;"><Prose>...</Prose></div>
33
+ * -------------------------------------------------------------------------- */
34
+
35
+ .sw-prose {
36
+ /* ===================
37
+ * Typography & Spacing
38
+ * =================== */
39
+ --sw-prose-line-height: var(--prose-line-height, 1.6);
40
+ --sw-prose-spacing: var(--prose-spacing, 1.25em);
41
+ --sw-prose-heading-spacing: var(--prose-heading-spacing, 1.5em);
42
+ --sw-prose-code-size: var(--prose-code-size, 0.875em);
43
+ --sw-prose-list-indent: var(--prose-list-indent, 1.625em);
44
+
45
+ /* ===================
46
+ * Colors
47
+ * =================== */
48
+ --sw-prose-color: var(--prose-color, --alpha(var(--color-foreground) / 80%));
49
+ --sw-prose-heading-color: var(--prose-heading-color, var(--color-foreground));
50
+ --sw-prose-list-marker-color: var(--prose-list-marker-color, var(--color-muted-foreground));
51
+
52
+ /* ===================
53
+ * Headings
54
+ * =================== */
55
+ --sw-prose-heading-font: var(--prose-heading-font, var(--font-heading, inherit));
56
+ --sw-prose-heading-weight: var(--prose-heading-weight, 600);
57
+ --sw-prose-heading-line-height: var(--prose-heading-line-height, 1.25);
58
+ --sw-prose-h1-size: var(--prose-h1-size, 2.25em);
59
+ --sw-prose-h1-weight: var(--prose-h1-weight, var(--sw-prose-heading-weight));
60
+ --sw-prose-h2-size: var(--prose-h2-size, 1.5em);
61
+ --sw-prose-h2-weight: var(--prose-h2-weight, var(--sw-prose-heading-weight));
62
+ --sw-prose-h3-size: var(--prose-h3-size, 1.25em);
63
+ --sw-prose-h3-weight: var(--prose-h3-weight, var(--sw-prose-heading-weight));
64
+ --sw-prose-h4-size: var(--prose-h4-size, 1em);
65
+ --sw-prose-h4-weight: var(--prose-h4-weight, var(--sw-prose-heading-weight));
66
+
67
+ /* ===================
68
+ * Links
69
+ * =================== */
70
+ --sw-prose-link-color: var(--prose-link-color, var(--color-foreground));
71
+ --sw-prose-link-decoration-color: var(
72
+ --prose-link-decoration-color,
73
+ var(--color-primary-accent)
74
+ );
75
+ --sw-prose-link-hover-color: var(--prose-link-hover-color, var(--color-primary-accent));
76
+
77
+ /* ===================
78
+ * Strong/Bold
79
+ * =================== */
80
+ --sw-prose-strong-color: var(--prose-strong-color, var(--color-foreground));
81
+ --sw-prose-strong-weight: var(--prose-strong-weight, 600);
82
+
83
+ /* ===================
84
+ * Blockquote
85
+ * =================== */
86
+ --sw-prose-blockquote-color: var(--prose-blockquote-color, var(--color-foreground));
87
+ --sw-prose-blockquote-border-color: var(--prose-blockquote-border-color, var(--color-border));
88
+ --sw-prose-blockquote-border-width: var(--prose-blockquote-border-width, 4px);
89
+
90
+ /* ===================
91
+ * Inline Code
92
+ * =================== */
93
+ --sw-prose-code-bg: var(--prose-code-bg, var(--color-muted));
94
+ --sw-prose-code-color: var(--prose-code-color, var(--color-foreground));
95
+ --sw-prose-code-weight: var(--prose-code-weight, 500);
96
+ --sw-prose-code-radius: var(--prose-code-radius, var(--radius-sm));
97
+
98
+ /* ===================
99
+ * Pre / Code Blocks
100
+ * =================== */
101
+ --sw-prose-pre-border-color: var(--prose-pre-border-color, var(--color-border));
102
+ --sw-prose-pre-border-radius: var(--prose-pre-border-radius, var(--radius-md));
103
+
104
+ /* ===================
105
+ * Tables
106
+ * =================== */
107
+ --sw-prose-table-heading-color: var(--prose-table-heading-color, var(--color-foreground));
108
+ --sw-prose-table-border-color: var(--prose-table-border-color, var(--color-border));
109
+
110
+ /* ===================
111
+ * Media (images, video, etc.)
112
+ * =================== */
113
+ --sw-prose-media-border-width: var(--prose-media-border-width, 0px);
114
+ --sw-prose-media-border-color: var(--prose-media-border-color, var(--color-border));
115
+ --sw-prose-media-border-radius: var(--prose-media-border-radius, 0);
116
+
117
+ /* ===================
118
+ * Mark/Highlight
119
+ * =================== */
120
+ --sw-prose-highlight-color: var(--prose-highlight-color, var(--color-foreground));
121
+ --sw-prose-highlight-bg-color: var(
122
+ --prose-highlight-bg-color,
123
+ --alpha(var(--color-warning) / 30%)
124
+ );
125
+
126
+ /* ===================
127
+ * Base styles
128
+ * =================== */
129
+ line-height: var(--sw-prose-line-height);
130
+ color: var(--sw-prose-color);
131
+ }
132
+
133
+ /* Vertical rhythm - spacing between block elements */
134
+ .sw-prose
135
+ :not(a, strong, em, del, span, input, code, br, kbd)
136
+ + :not(a, strong, em, del, span, input, code, br, kbd, :where(.not-sw-prose *)) {
137
+ margin-top: var(--sw-prose-spacing);
138
+ }
139
+
140
+ /* Headings after non-headings have more spacing */
141
+ .sw-prose
142
+ :not(h1, h2, h3, h4, h5, h6)
143
+ + :is(h1, h2, h3, h4, h5, h6):not(:where(.not-sw-prose *)) {
144
+ margin-top: var(--sw-prose-heading-spacing);
145
+ }
146
+
147
+ /* First/last child margin reset */
148
+ .sw-prose > :first-child:not(:where(.not-sw-prose *)) {
149
+ margin-top: 0;
150
+ }
151
+ .sw-prose > :last-child:not(:where(.not-sw-prose *)) {
152
+ margin-bottom: 0;
153
+ }
154
+
155
+ /* --------------------------------------------------------------------------
156
+ * Headings
157
+ * -------------------------------------------------------------------------- */
158
+
159
+ .sw-prose :is(h1, h2, h3, h4, h5, h6):not(:where(.not-sw-prose *)) {
160
+ color: var(--sw-prose-heading-color);
161
+ font-family: var(--sw-prose-heading-font);
162
+ font-weight: var(--sw-prose-heading-weight);
163
+ line-height: var(--sw-prose-heading-line-height);
164
+ }
165
+
166
+ .sw-prose h1:not(:where(.not-sw-prose *)) {
167
+ font-size: var(--sw-prose-h1-size);
168
+ font-weight: var(--sw-prose-h1-weight);
169
+ margin-bottom: 0.889em;
170
+ }
171
+
172
+ .sw-prose h2:not(:where(.not-sw-prose *)) {
173
+ font-size: var(--sw-prose-h2-size);
174
+ font-weight: var(--sw-prose-h2-weight);
175
+ margin-bottom: 0.667em;
176
+ }
177
+
178
+ .sw-prose h3:not(:where(.not-sw-prose *)) {
179
+ font-size: var(--sw-prose-h3-size);
180
+ font-weight: var(--sw-prose-h3-weight);
181
+ margin-bottom: 0.6em;
182
+ }
183
+
184
+ .sw-prose h4:not(:where(.not-sw-prose *)) {
185
+ font-size: var(--sw-prose-h4-size);
186
+ font-weight: var(--sw-prose-h4-weight);
187
+ margin-bottom: 0.5em;
188
+ }
189
+
190
+ .sw-prose h5:not(:where(.not-sw-prose *)),
191
+ .sw-prose h6:not(:where(.not-sw-prose *)) {
192
+ font-size: inherit;
193
+ font-weight: var(--sw-prose-heading-weight);
194
+ margin-bottom: 0.5em;
195
+ }
196
+
197
+ /* Reset margin-top after headings */
198
+ .sw-prose :is(h1, h2, h3, h4, h5, h6) + *:not(:where(.not-sw-prose *)) {
199
+ margin-top: 0;
200
+ }
201
+
202
+ /* --------------------------------------------------------------------------
203
+ * Paragraphs
204
+ * -------------------------------------------------------------------------- */
205
+
206
+ .sw-prose p:not(:where(.not-sw-prose *)) {
207
+ margin-top: var(--sw-prose-spacing);
208
+ margin-bottom: var(--sw-prose-spacing);
209
+ }
210
+
211
+ /* --------------------------------------------------------------------------
212
+ * Links
213
+ * -------------------------------------------------------------------------- */
214
+
215
+ .sw-prose a:not(:where(.not-sw-prose *)) {
216
+ color: var(--sw-prose-link-color);
217
+ text-decoration: underline;
218
+ text-decoration-color: var(--sw-prose-link-decoration-color);
219
+ text-underline-offset: 0.15em;
220
+ font-weight: 500;
221
+ transition-property: color;
222
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
223
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
224
+ }
225
+
226
+ .sw-prose a:hover:not(:where(.not-sw-prose *)) {
227
+ color: var(--sw-prose-link-hover-color);
228
+ }
229
+
230
+ /* --------------------------------------------------------------------------
231
+ * Strong, Bold, Emphasis
232
+ * -------------------------------------------------------------------------- */
233
+
234
+ .sw-prose strong:not(:where(.not-sw-prose *)) {
235
+ color: var(--sw-prose-strong-color);
236
+ font-weight: var(--sw-prose-strong-weight);
237
+ }
238
+
239
+ .sw-prose :is(a, blockquote, thead th) strong:not(:where(.not-sw-prose *)) {
240
+ color: inherit;
241
+ }
242
+
243
+ /* --------------------------------------------------------------------------
244
+ * Lists
245
+ * -------------------------------------------------------------------------- */
246
+
247
+ .sw-prose :is(ul, ol):not(:where(.not-sw-prose *)) {
248
+ padding-inline-start: var(--sw-prose-list-indent);
249
+ margin-top: var(--sw-prose-spacing);
250
+ margin-bottom: var(--sw-prose-spacing);
251
+ }
252
+
253
+ .sw-prose ul:not(:where(.not-sw-prose *)) {
254
+ list-style-type: disc;
255
+ }
256
+
257
+ .sw-prose ol:not(:where(.not-sw-prose *)) {
258
+ list-style-type: decimal;
259
+ }
260
+
261
+ .sw-prose li:not(:where(.not-sw-prose *)) {
262
+ margin-top: 0.5em;
263
+ margin-bottom: 0.5em;
264
+ padding-inline-start: 0.375em;
265
+ overflow-wrap: anywhere;
266
+ }
267
+
268
+ .sw-prose li + li:not(:where(.not-sw-prose *)) {
269
+ margin-top: 0.25rem;
270
+ }
271
+
272
+ .sw-prose :is(ul, ol) :is(ul, ol):not(:where(.not-sw-prose *)) {
273
+ margin-top: 0.75em;
274
+ margin-bottom: 0.75em;
275
+ }
276
+
277
+ .sw-prose ol > li:not(:where(.not-sw-prose *))::marker {
278
+ font-weight: 400;
279
+ color: var(--sw-prose-list-marker-color);
280
+ }
281
+
282
+ .sw-prose ul > li:not(:where(.not-sw-prose *))::marker {
283
+ color: var(--sw-prose-list-marker-color);
284
+ }
285
+
286
+ /* Definition lists */
287
+ .sw-prose dl:not(:where(.not-sw-prose *)) {
288
+ margin-top: var(--sw-prose-spacing);
289
+ margin-bottom: var(--sw-prose-spacing);
290
+ }
291
+
292
+ .sw-prose dt:not(:where(.not-sw-prose *)) {
293
+ color: var(--color-foreground);
294
+ font-weight: 600;
295
+ margin-top: var(--sw-prose-spacing);
296
+ opacity: 1;
297
+ }
298
+
299
+ .sw-prose dd:not(:where(.not-sw-prose *)) {
300
+ margin-top: 0.25rem;
301
+ padding-inline-start: var(--sw-prose-list-indent);
302
+ }
303
+
304
+ .sw-prose dt + dt:not(:where(.not-sw-prose *)),
305
+ .sw-prose dt + dd:not(:where(.not-sw-prose *)),
306
+ .sw-prose dd + dd:not(:where(.not-sw-prose *)) {
307
+ margin-top: 0.25rem;
308
+ }
309
+
310
+ /* --------------------------------------------------------------------------
311
+ * Blockquotes
312
+ * -------------------------------------------------------------------------- */
313
+
314
+ .sw-prose blockquote:not(:where(.not-sw-prose *)) {
315
+ font-style: italic;
316
+ color: var(--sw-prose-blockquote-color);
317
+ border-inline-start: var(--sw-prose-blockquote-border-width) solid
318
+ var(--sw-prose-blockquote-border-color);
319
+ padding-inline-start: 1rem;
320
+ margin-top: var(--sw-prose-spacing);
321
+ margin-bottom: var(--sw-prose-spacing);
322
+ }
323
+
324
+ .sw-prose blockquote p:first-of-type:not(:where(.not-sw-prose *))::before {
325
+ content: open-quote;
326
+ }
327
+
328
+ .sw-prose blockquote p:last-of-type:not(:where(.not-sw-prose *))::after {
329
+ content: close-quote;
330
+ }
331
+
332
+ /* --------------------------------------------------------------------------
333
+ * Code (inline)
334
+ * -------------------------------------------------------------------------- */
335
+
336
+ .sw-prose code:not(:where(.not-sw-prose *)) {
337
+ background-color: var(--sw-prose-code-bg);
338
+ color: var(--sw-prose-code-color);
339
+ font-size: var(--sw-prose-code-size);
340
+ font-weight: var(--sw-prose-code-weight);
341
+ /* padding: 0.125rem 0.375rem; */
342
+ padding: calc(var(--spacing) / 2) calc(var(--spacing) * 1.25);
343
+ border-radius: var(--sw-prose-code-radius);
344
+ }
345
+
346
+ .sw-prose :is(h1, h2, h3, h4, h5, h6) code:not(:where(.not-sw-prose *)) {
347
+ font-size: inherit;
348
+ }
349
+
350
+ .sw-prose a code:not(:where(.not-sw-prose *)) {
351
+ color: inherit;
352
+ }
353
+
354
+ /* --------------------------------------------------------------------------
355
+ * Pre / Code blocks
356
+ * -------------------------------------------------------------------------- */
357
+
358
+ .sw-prose pre:not(:where(.not-sw-prose *)) {
359
+ border: 1px solid var(--sw-prose-pre-border-color);
360
+ border-radius: var(--sw-prose-pre-border-radius);
361
+ padding: 0.75rem 1rem;
362
+ font-size: var(--sw-prose-code-size);
363
+ line-height: 1.714;
364
+ overflow-x: auto;
365
+ tab-size: 2;
366
+ margin-top: var(--sw-prose-spacing);
367
+ margin-bottom: var(--sw-prose-spacing);
368
+ }
369
+
370
+ .sw-prose pre code:not(:where(.not-sw-prose *)) {
371
+ all: unset;
372
+ font-family: var(--font-mono);
373
+ }
374
+
375
+ /* --------------------------------------------------------------------------
376
+ * Horizontal Rules
377
+ * -------------------------------------------------------------------------- */
378
+
379
+ .sw-prose hr:not(:where(.not-sw-prose *)) {
380
+ border: 0;
381
+ border-top: 1px solid var(--color-border);
382
+ margin-top: 3em;
383
+ margin-bottom: 3em;
384
+ }
385
+
386
+ .sw-prose hr + *:not(:where(.not-sw-prose *)) {
387
+ margin-top: 0;
388
+ }
389
+
390
+ /* --------------------------------------------------------------------------
391
+ * Images and Media
392
+ * -------------------------------------------------------------------------- */
393
+
394
+ .sw-prose :is(img, picture, video, canvas, svg, iframe):not(:where(.not-sw-prose *)) {
395
+ display: block;
396
+ max-width: 100%;
397
+ height: auto;
398
+ border: var(--sw-prose-media-border-width) solid var(--sw-prose-media-border-color);
399
+ border-radius: var(--sw-prose-media-border-radius);
400
+ margin-top: var(--sw-prose-spacing);
401
+ margin-bottom: var(--sw-prose-spacing);
402
+ }
403
+
404
+ .sw-prose picture > img:not(:where(.not-sw-prose *)) {
405
+ margin-top: 0;
406
+ margin-bottom: 0;
407
+ }
408
+
409
+ /* --------------------------------------------------------------------------
410
+ * Figures and Captions
411
+ * -------------------------------------------------------------------------- */
412
+
413
+ .sw-prose figure:not(:where(.not-sw-prose *)) {
414
+ margin-top: var(--sw-prose-spacing);
415
+ margin-bottom: var(--sw-prose-spacing);
416
+ }
417
+
418
+ .sw-prose figure > *:not(:where(.not-sw-prose *)) {
419
+ margin-top: 0;
420
+ margin-bottom: 0;
421
+ }
422
+
423
+ .sw-prose figcaption:not(:where(.not-sw-prose *)) {
424
+ color: var(--color-muted-foreground);
425
+ font-size: var(--sw-prose-code-size);
426
+ margin-top: 0.857em;
427
+ }
428
+
429
+ /* --------------------------------------------------------------------------
430
+ * Tables
431
+ * -------------------------------------------------------------------------- */
432
+
433
+ .sw-prose table:not(:where(.not-sw-prose *)) {
434
+ width: 100%;
435
+ table-layout: auto;
436
+ margin-top: var(--sw-prose-spacing);
437
+ margin-bottom: var(--sw-prose-spacing);
438
+ font-size: var(--sw-prose-code-size);
439
+ line-height: 1.714;
440
+ }
441
+
442
+ .sw-prose thead:not(:where(.not-sw-prose *)) {
443
+ border-bottom: 1px solid var(--sw-prose-table-border-color);
444
+ }
445
+
446
+ .sw-prose thead th:not(:where(.not-sw-prose *)) {
447
+ color: var(--sw-prose-table-heading-color);
448
+ font-weight: 600;
449
+ vertical-align: bottom;
450
+ padding-inline-end: 0.571em;
451
+ padding-bottom: 0.571em;
452
+ padding-inline-start: 0.571em;
453
+ text-align: start;
454
+ opacity: 1;
455
+ }
456
+
457
+ .sw-prose thead th:first-child:not(:where(.not-sw-prose *)) {
458
+ padding-inline-start: 0;
459
+ }
460
+
461
+ .sw-prose thead th:last-child:not(:where(.not-sw-prose *)) {
462
+ padding-inline-end: 0;
463
+ }
464
+
465
+ .sw-prose tbody tr:not(:where(.not-sw-prose *)) {
466
+ border-bottom: 1px solid var(--sw-prose-table-border-color);
467
+ }
468
+
469
+ .sw-prose tbody tr:last-child:not(:where(.not-sw-prose *)) {
470
+ border-bottom-width: 0;
471
+ }
472
+
473
+ .sw-prose :is(td, th):not(:where(.not-sw-prose *)) {
474
+ vertical-align: baseline;
475
+ padding: 0.571em;
476
+ }
477
+
478
+ .sw-prose :is(td:first-child, th:first-child):not(:where(.not-sw-prose *)) {
479
+ padding-inline-start: 0;
480
+ }
481
+
482
+ .sw-prose :is(td:last-child, th:last-child):not(:where(.not-sw-prose *)) {
483
+ padding-inline-end: 0;
484
+ }
485
+
486
+ .sw-prose tfoot:not(:where(.not-sw-prose *)) {
487
+ border-top: 1px solid var(--sw-prose-table-border-color);
488
+ }
489
+
490
+ .sw-prose tfoot td:not(:where(.not-sw-prose *)) {
491
+ vertical-align: top;
492
+ }
493
+
494
+ /* --------------------------------------------------------------------------
495
+ * Keyboard Input
496
+ * -------------------------------------------------------------------------- */
497
+
498
+ .sw-prose kbd:not(:where(.not-sw-prose *)) {
499
+ font-weight: 500;
500
+ font-family: inherit;
501
+ font-size: var(--sw-prose-code-size);
502
+ width: fit-content;
503
+ display: inline-flex;
504
+ justify-content: center;
505
+ align-items: center;
506
+ gap: var(--spacing);
507
+ min-width: calc(var(--spacing) * 5);
508
+ color: var(--color-muted-foreground);
509
+ background-color: var(--color-muted);
510
+ padding: calc(var(--spacing) / 2) calc(var(--spacing) * 1.25);
511
+ border-radius: var(--radius-sm);
512
+ /* box-shadow:
513
+ 0 0 0 1px color-mix(in srgb, var(--color-foreground) 10%, transparent),
514
+ 0 2px 0 color-mix(in srgb, var(--color-foreground) 10%, transparent); */
515
+ }
516
+
517
+ /* --------------------------------------------------------------------------
518
+ * Details / Summary (Starlight-inspired)
519
+ * -------------------------------------------------------------------------- */
520
+
521
+ .sw-prose details:not(:where(.not-sw-prose *)) {
522
+ --sw-details-border-color: var(--color-border);
523
+ --sw-details-border-color-hover: var(--color-primary-accent);
524
+
525
+ border-inline-start: 2px solid var(--sw-details-border-color);
526
+ padding-inline-start: 1rem;
527
+ margin-top: var(--sw-prose-spacing);
528
+ margin-bottom: var(--sw-prose-spacing);
529
+ transition-property: border-color;
530
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
531
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
532
+ }
533
+
534
+ .sw-prose details:not([open]):hover:not(:where(.not-sw-prose *)),
535
+ .sw-prose details:has(> summary:hover):not(:where(.not-sw-prose *)) {
536
+ border-color: var(--sw-details-border-color-hover);
537
+ }
538
+
539
+ .sw-prose summary:not(:where(.not-sw-prose *)) {
540
+ color: var(--color-foreground);
541
+ cursor: pointer;
542
+ display: block;
543
+ font-weight: 600;
544
+ margin-inline-start: -0.5rem;
545
+ padding-inline-start: 0.5rem;
546
+ opacity: 1;
547
+ }
548
+
549
+ .sw-prose details[open] > summary:not(:where(.not-sw-prose *)) {
550
+ margin-bottom: 1rem;
551
+ }
552
+
553
+ /* Summary marker styles */
554
+ .sw-prose summary:not(:where(.not-sw-prose *))::marker,
555
+ .sw-prose summary:not(:where(.not-sw-prose *))::-webkit-details-marker {
556
+ display: none;
557
+ }
558
+
559
+ .sw-prose summary:not(:where(.not-sw-prose *))::before {
560
+ --sw-details-marker-size: 1.25rem;
561
+
562
+ background-color: currentColor;
563
+ content: "";
564
+ display: inline-block;
565
+ height: var(--sw-details-marker-size);
566
+ width: var(--sw-details-marker-size);
567
+ margin-inline: calc((var(--sw-details-marker-size) / 4) * -1) 0.25rem;
568
+ vertical-align: middle;
569
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.8 11.3 10.6 7a1 1 0 1 0-1.4 1.5l3.5 3.5-3.5 3.5a1 1 0 0 0 0 1.4 1 1 0 0 0 .7.3 1 1 0 0 0 .7-.3l4.2-4.2a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E%0A");
570
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.8 11.3 10.6 7a1 1 0 1 0-1.4 1.5l3.5 3.5-3.5 3.5a1 1 0 0 0 0 1.4 1 1 0 0 0 .7.3 1 1 0 0 0 .7-.3l4.2-4.2a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E%0A");
571
+ -webkit-mask-repeat: no-repeat;
572
+ mask-repeat: no-repeat;
573
+ }
574
+
575
+ @media (prefers-reduced-motion: no-preference) {
576
+ .sw-prose summary:not(:where(.not-sw-prose *))::before {
577
+ transition: transform 0.2s ease-in-out;
578
+ }
579
+ }
580
+
581
+ .sw-prose details[open] > summary:not(:where(.not-sw-prose *))::before {
582
+ transform: rotateZ(90deg);
583
+ }
584
+
585
+ [dir="rtl"] .sw-prose summary:not(:where(.not-sw-prose *))::before,
586
+ .sw-prose [dir="rtl"] summary:not(:where(.not-sw-prose *))::before {
587
+ transform: rotateZ(180deg);
588
+ }
589
+
590
+ /* Summary with only a paragraph (MDX) */
591
+ .sw-prose summary:not(:where(.not-sw-prose *)) p:only-child {
592
+ display: inline;
593
+ }
594
+
595
+ /* --------------------------------------------------------------------------
596
+ * Miscellaneous
597
+ * -------------------------------------------------------------------------- */
598
+
599
+ /* Abbreviations */
600
+ .sw-prose abbr[title]:not(:where(.not-sw-prose *)) {
601
+ text-decoration: underline dotted;
602
+ cursor: help;
603
+ }
604
+
605
+ /* Mark/Highlight */
606
+ .sw-prose mark:not(:where(.not-sw-prose *)) {
607
+ background-color: var(--sw-prose-highlight-bg-color);
608
+ color: var(--sw-prose-highlight-color);
609
+ padding: calc(var(--spacing) / 2) var(--spacing);
610
+ border-radius: calc(var(--radius) / 4);
611
+ }
612
+
613
+ /* Subscript and Superscript */
614
+ .sw-prose :is(sub, sup):not(:where(.not-sw-prose *)) {
615
+ font-size: 0.75em;
616
+ }
617
+ </style>
@@ -0,0 +1,9 @@
1
+ import Prose, { prose } from "./Prose.astro";
2
+
3
+ const ProseVariants = {
4
+ prose,
5
+ };
6
+
7
+ export { Prose, ProseVariants };
8
+
9
+ export default Prose;