fulldev-ui 0.10.1 → 0.11.0

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 (248) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +7 -1
  3. package/package.json +6 -4
  4. package/public/r/accordion.json +7 -1
  5. package/public/r/alert-dialog.json +7 -1
  6. package/public/r/alert.json +6 -0
  7. package/public/r/article-1.json +7 -1
  8. package/public/r/article-2.json +7 -1
  9. package/public/r/articles-1.json +7 -1
  10. package/public/r/articles-2.json +7 -1
  11. package/public/r/articles-3.json +7 -1
  12. package/public/r/articles-4.json +7 -1
  13. package/public/r/avatar.json +6 -0
  14. package/public/r/badge.json +6 -0
  15. package/public/r/banner-1.json +7 -1
  16. package/public/r/banner-2.json +7 -1
  17. package/public/r/banner.json +6 -0
  18. package/public/r/blocks-1.json +6 -1
  19. package/public/r/blocks.json +92 -0
  20. package/public/r/breadcrumb.json +6 -0
  21. package/public/r/button.json +6 -0
  22. package/public/r/card.json +6 -0
  23. package/public/r/carousel.json +6 -0
  24. package/public/r/checkbox.json +6 -0
  25. package/public/r/collapsible.json +7 -1
  26. package/public/r/combobox.json +6 -0
  27. package/public/r/command.json +6 -0
  28. package/public/r/components.json +14 -3
  29. package/public/r/contact-1.json +10 -2
  30. package/public/r/contact-2.json +10 -2
  31. package/public/r/contact-3.json +10 -2
  32. package/public/r/content-1.json +7 -1
  33. package/public/r/content-2.json +7 -1
  34. package/public/r/content-3.json +7 -1
  35. package/public/r/content-4.json +7 -1
  36. package/public/r/cta-1.json +7 -1
  37. package/public/r/cta-2.json +7 -1
  38. package/public/r/cta-3.json +7 -1
  39. package/public/r/cta-4.json +7 -1
  40. package/public/r/cta-5.json +7 -1
  41. package/public/r/cta-6.json +7 -1
  42. package/public/r/cta-7.json +7 -1
  43. package/public/r/cta-8.json +7 -1
  44. package/public/r/dialog.json +7 -1
  45. package/public/r/doc-1.json +7 -1
  46. package/public/r/dropdown-menu.json +7 -1
  47. package/public/r/empty.json +6 -0
  48. package/public/r/faqs-1.json +7 -1
  49. package/public/r/faqs-2.json +7 -1
  50. package/public/r/faqs-3.json +7 -1
  51. package/public/r/faqs-4.json +7 -1
  52. package/public/r/features-1.json +7 -1
  53. package/public/r/features-2.json +7 -1
  54. package/public/r/features-3.json +7 -1
  55. package/public/r/features-4.json +7 -1
  56. package/public/r/features-5.json +7 -1
  57. package/public/r/features-6.json +7 -1
  58. package/public/r/field.json +6 -0
  59. package/public/r/footer-1.json +7 -1
  60. package/public/r/footer-2.json +7 -1
  61. package/public/r/footer-3.json +7 -1
  62. package/public/r/form.json +6 -0
  63. package/public/r/header-1.json +7 -1
  64. package/public/r/header-2.json +7 -1
  65. package/public/r/header-3.json +7 -1
  66. package/public/r/header-4.json +7 -1
  67. package/public/r/header-5.json +7 -1
  68. package/public/r/header.json +6 -0
  69. package/public/r/hero-1.json +7 -1
  70. package/public/r/hero-10.json +7 -1
  71. package/public/r/hero-11.json +7 -1
  72. package/public/r/hero-12.json +7 -1
  73. package/public/r/hero-13.json +7 -1
  74. package/public/r/hero-2.json +7 -1
  75. package/public/r/hero-3.json +7 -1
  76. package/public/r/hero-4.json +7 -1
  77. package/public/r/hero-5.json +7 -1
  78. package/public/r/hero-6.json +7 -1
  79. package/public/r/hero-7.json +7 -1
  80. package/public/r/hero-8.json +7 -1
  81. package/public/r/hero-9.json +7 -1
  82. package/public/r/hover-card.json +7 -1
  83. package/public/r/icon.json +7 -1
  84. package/public/r/init.json +28 -0
  85. package/public/r/input-group.json +6 -0
  86. package/public/r/input.json +6 -0
  87. package/public/r/item.json +6 -0
  88. package/public/r/kbd.json +6 -0
  89. package/public/r/label.json +6 -0
  90. package/public/r/layout.json +6 -0
  91. package/public/r/links-2.json +7 -1
  92. package/public/r/logo.json +6 -0
  93. package/public/r/logos-1.json +7 -1
  94. package/public/r/logos-2.json +7 -1
  95. package/public/r/logos-3.json +7 -1
  96. package/public/r/marquee.json +6 -0
  97. package/public/r/native-select.json +6 -0
  98. package/public/r/navigation-menu.json +7 -1
  99. package/public/r/popover.json +7 -1
  100. package/public/r/price.json +6 -0
  101. package/public/r/pricing-1.json +7 -1
  102. package/public/r/pricing-2.json +7 -1
  103. package/public/r/pricing-3.json +7 -1
  104. package/public/r/product-1.json +7 -1
  105. package/public/r/products-1.json +7 -1
  106. package/public/r/products-2.json +7 -1
  107. package/public/r/products-3.json +7 -1
  108. package/public/r/products-4.json +7 -1
  109. package/public/r/products-5.json +7 -1
  110. package/public/r/radio-group.json +7 -1
  111. package/public/r/rating.json +6 -0
  112. package/public/r/registry.json +1645 -457
  113. package/public/r/reviews-1.json +7 -1
  114. package/public/r/reviews-2.json +7 -1
  115. package/public/r/reviews-3.json +7 -1
  116. package/public/r/reviews-4.json +7 -1
  117. package/public/r/reviews-5.json +7 -1
  118. package/public/r/section.json +18 -2
  119. package/public/r/select.json +6 -0
  120. package/public/r/separator.json +6 -0
  121. package/public/r/services-1.json +7 -1
  122. package/public/r/services-2.json +7 -1
  123. package/public/r/services-3.json +7 -1
  124. package/public/r/services-4.json +7 -1
  125. package/public/r/services-5.json +7 -1
  126. package/public/r/services-6.json +7 -1
  127. package/public/r/services-7.json +7 -1
  128. package/public/r/sheet.json +8 -2
  129. package/public/r/sidebar-1.json +5 -0
  130. package/public/r/sidebar.json +6 -0
  131. package/public/r/skeleton.json +6 -0
  132. package/public/r/slider.json +7 -1
  133. package/public/r/spinner.json +6 -0
  134. package/public/r/switch.json +7 -1
  135. package/public/r/table.json +6 -0
  136. package/public/r/tabs.json +7 -1
  137. package/public/r/textarea.json +6 -0
  138. package/public/r/theme-toggle.json +6 -0
  139. package/public/r/toc.json +6 -0
  140. package/public/r/toggle.json +7 -1
  141. package/public/r/tooltip.json +7 -1
  142. package/public/r/typography.json +6 -0
  143. package/public/r/video.json +6 -0
  144. package/registry/init/global.css +187 -0
  145. package/registry.json +1137 -454
  146. package/src/components/blocks/article-1.astro +4 -3
  147. package/src/components/blocks/article-2.astro +4 -3
  148. package/src/components/blocks/articles-1.astro +18 -9
  149. package/src/components/blocks/articles-2.astro +4 -3
  150. package/src/components/blocks/articles-3.astro +11 -9
  151. package/src/components/blocks/articles-4.astro +11 -4
  152. package/src/components/blocks/banner-1.astro +4 -3
  153. package/src/components/blocks/banner-2.astro +10 -4
  154. package/src/components/blocks/blocks-1.astro +1 -1
  155. package/src/components/blocks/contact-1.astro +72 -39
  156. package/src/components/blocks/contact-2.astro +69 -35
  157. package/src/components/blocks/contact-3.astro +61 -34
  158. package/src/components/blocks/content-1.astro +15 -10
  159. package/src/components/blocks/content-2.astro +15 -10
  160. package/src/components/blocks/content-3.astro +14 -12
  161. package/src/components/blocks/content-4.astro +15 -10
  162. package/src/components/blocks/cta-1.astro +14 -10
  163. package/src/components/blocks/cta-2.astro +11 -8
  164. package/src/components/blocks/cta-3.astro +15 -8
  165. package/src/components/blocks/cta-4.astro +14 -9
  166. package/src/components/blocks/cta-5.astro +12 -8
  167. package/src/components/blocks/cta-6.astro +11 -8
  168. package/src/components/blocks/cta-7.astro +17 -10
  169. package/src/components/blocks/cta-8.astro +15 -10
  170. package/src/components/blocks/doc-1.astro +1 -1
  171. package/src/components/blocks/faqs-1.astro +22 -11
  172. package/src/components/blocks/faqs-2.astro +19 -9
  173. package/src/components/blocks/faqs-3.astro +19 -9
  174. package/src/components/blocks/faqs-4.astro +12 -9
  175. package/src/components/blocks/features-1.astro +21 -13
  176. package/src/components/blocks/features-2.astro +22 -13
  177. package/src/components/blocks/features-3.astro +14 -13
  178. package/src/components/blocks/features-4.astro +18 -9
  179. package/src/components/blocks/features-5.astro +22 -13
  180. package/src/components/blocks/features-6.astro +19 -9
  181. package/src/components/blocks/footer-1.astro +4 -3
  182. package/src/components/blocks/footer-2.astro +4 -3
  183. package/src/components/blocks/footer-3.astro +4 -3
  184. package/src/components/blocks/header-1.astro +13 -7
  185. package/src/components/blocks/header-2.astro +12 -6
  186. package/src/components/blocks/header-3.astro +12 -6
  187. package/src/components/blocks/header-4.astro +13 -6
  188. package/src/components/blocks/header-5.astro +16 -6
  189. package/src/components/blocks/hero-1.astro +11 -8
  190. package/src/components/blocks/hero-10.astro +7 -3
  191. package/src/components/blocks/hero-11.astro +4 -2
  192. package/src/components/blocks/hero-12.astro +11 -4
  193. package/src/components/blocks/hero-13.astro +11 -4
  194. package/src/components/blocks/hero-2.astro +11 -8
  195. package/src/components/blocks/hero-3.astro +11 -3
  196. package/src/components/blocks/hero-4.astro +4 -2
  197. package/src/components/blocks/hero-5.astro +4 -3
  198. package/src/components/blocks/hero-6.astro +4 -3
  199. package/src/components/blocks/hero-7.astro +4 -3
  200. package/src/components/blocks/hero-8.astro +11 -4
  201. package/src/components/blocks/hero-9.astro +4 -3
  202. package/src/components/blocks/links-2.astro +4 -4
  203. package/src/components/blocks/logos-1.astro +14 -16
  204. package/src/components/blocks/logos-2.astro +14 -12
  205. package/src/components/blocks/logos-3.astro +5 -4
  206. package/src/components/blocks/pricing-1.astro +13 -16
  207. package/src/components/blocks/pricing-2.astro +14 -13
  208. package/src/components/blocks/pricing-3.astro +20 -16
  209. package/src/components/blocks/product-1.astro +4 -3
  210. package/src/components/blocks/products-1.astro +11 -9
  211. package/src/components/blocks/products-2.astro +12 -9
  212. package/src/components/blocks/products-3.astro +12 -9
  213. package/src/components/blocks/products-4.astro +18 -9
  214. package/src/components/blocks/products-5.astro +18 -9
  215. package/src/components/blocks/reviews-1.astro +13 -12
  216. package/src/components/blocks/reviews-2.astro +4 -4
  217. package/src/components/blocks/reviews-3.astro +13 -12
  218. package/src/components/blocks/reviews-4.astro +13 -12
  219. package/src/components/blocks/reviews-5.astro +13 -12
  220. package/src/components/blocks/services-1.astro +19 -9
  221. package/src/components/blocks/services-2.astro +11 -8
  222. package/src/components/blocks/services-3.astro +11 -8
  223. package/src/components/blocks/services-4.astro +19 -9
  224. package/src/components/blocks/services-5.astro +11 -8
  225. package/src/components/blocks/services-6.astro +4 -3
  226. package/src/components/blocks/services-7.astro +12 -8
  227. package/src/components/ui/accordion/accordion.astro +1 -0
  228. package/src/components/ui/alert-dialog/alert-dialog.astro +1 -0
  229. package/src/components/ui/collapsible/collapsible.astro +1 -0
  230. package/src/components/ui/dialog/dialog.astro +1 -0
  231. package/src/components/ui/dropdown-menu/dropdown-menu.astro +1 -0
  232. package/src/components/ui/hover-card/hover-card.astro +7 -3
  233. package/src/components/ui/icon/icon.astro +46 -29
  234. package/src/components/ui/navigation-menu/navigation-menu.astro +1 -0
  235. package/src/components/ui/popover/popover.astro +1 -0
  236. package/src/components/ui/radio-group/radio-group.astro +1 -0
  237. package/src/components/ui/section/index.ts +2 -0
  238. package/src/components/ui/section/section-container.astro +1 -0
  239. package/src/components/ui/section/section-description.astro +20 -0
  240. package/src/components/ui/section/section-title.astro +20 -0
  241. package/src/components/ui/sheet/sheet-close.astro +4 -2
  242. package/src/components/ui/sheet/sheet.astro +1 -0
  243. package/src/components/ui/slider/slider.astro +1 -0
  244. package/src/components/ui/switch/switch.astro +1 -0
  245. package/src/components/ui/tabs/tabs.astro +1 -0
  246. package/src/components/ui/toggle/toggle.astro +1 -0
  247. package/src/components/ui/tooltip/tooltip.astro +1 -0
  248. package/src/lib/pages.ts +12 -0
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "sheet",
4
+ "title": "Sheet",
5
+ "description": "A sliding panel component that appears from the edge of the screen.",
4
6
  "dependencies": [
5
7
  "@data-slot/dialog",
6
8
  "@lucide/astro"
@@ -12,12 +14,12 @@
12
14
  "files": [
13
15
  {
14
16
  "path": "src/components/ui/sheet/sheet.astro",
15
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultOpen?: boolean\n closeOnClickOutside?: boolean\n closeOnEscape?: boolean\n lockScroll?: boolean\n}\n\nconst {\n class: className,\n defaultOpen,\n closeOnClickOutside,\n closeOnEscape,\n lockScroll,\n ...props\n} = Astro.props\n---\n\n<div\n data-slot=\"dialog\"\n class={className}\n data-default-open={defaultOpen}\n data-close-on-click-outside={closeOnClickOutside}\n data-close-on-escape={closeOnEscape}\n data-lock-scroll={lockScroll}\n {...props}\n>\n <slot />\n</div>\n\n<script>\n import { create } from \"@data-slot/dialog\"\n\n create()\n</script>\n",
17
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultOpen?: boolean\n closeOnClickOutside?: boolean\n closeOnEscape?: boolean\n lockScroll?: boolean\n}\n\nconst {\n class: className,\n defaultOpen,\n closeOnClickOutside,\n closeOnEscape,\n lockScroll,\n ...props\n} = Astro.props\n---\n\n<div\n data-slot=\"dialog\"\n class={className}\n data-default-open={defaultOpen}\n data-close-on-click-outside={closeOnClickOutside}\n data-close-on-escape={closeOnEscape}\n data-lock-scroll={lockScroll}\n {...props}\n>\n <slot />\n</div>\n\n<script>\n import { create } from \"@data-slot/dialog\"\n\n create()\n document.addEventListener(\"astro:page-load\", () => create())\n</script>\n",
16
18
  "type": "registry:ui"
17
19
  },
18
20
  {
19
21
  "path": "src/components/ui/sheet/sheet-close.astro",
20
- "content": "---\nimport type { ComponentProps } from \"astro/types\"\n\nimport { Button } from \"@/components/ui/button\"\n\ntype Props = ComponentProps<typeof Button>\n\nconst { ...props } = Astro.props\n---\n\n<Button data-slot=\"dialog-close\" {...props}>\n <slot />\n</Button>\n",
22
+ "content": "---\nimport type { HTMLTag, Polymorphic } from \"astro/types\"\n\nimport { Button } from \"@/components/ui/button\"\nimport type { ButtonVariantProps } from \"@/components/ui/button/button-variants\"\n\ntype Props<Tag extends HTMLTag = \"button\"> = Polymorphic<{ as: Tag }> &\n ButtonVariantProps\n\nconst { ...props } = Astro.props\n---\n\n<Button data-slot=\"dialog-close\" {...props}>\n <slot />\n</Button>\n",
21
23
  "type": "registry:ui"
22
24
  },
23
25
  {
@@ -56,5 +58,9 @@
56
58
  "type": "registry:ui"
57
59
  }
58
60
  ],
61
+ "docs": "https://ui.full.dev/components/sheet/",
62
+ "categories": [
63
+ "ui"
64
+ ],
59
65
  "type": "registry:ui"
60
66
  }
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "sidebar-1",
4
+ "title": "Sidebar 1",
4
5
  "dependencies": [
5
6
  "@lucide/astro"
6
7
  ],
@@ -26,5 +27,9 @@
26
27
  "type": "registry:block"
27
28
  }
28
29
  ],
30
+ "docs": "https://ui.full.dev/blocks/",
31
+ "categories": [
32
+ "sidebar"
33
+ ],
29
34
  "type": "registry:block"
30
35
  }
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "sidebar",
4
+ "title": "Sidebar",
5
+ "description": "A composable, themeable, and customizable Astro sidebar component.",
4
6
  "dependencies": [
5
7
  "@data-slot/tooltip",
6
8
  "@lucide/astro"
@@ -136,5 +138,9 @@
136
138
  "type": "registry:ui"
137
139
  }
138
140
  ],
141
+ "docs": "https://ui.full.dev/components/sidebar/",
142
+ "categories": [
143
+ "ui"
144
+ ],
139
145
  "type": "registry:ui"
140
146
  }
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "skeleton",
4
+ "title": "Skeleton",
5
+ "description": "Use a skeleton as a placeholder while content is loading.",
4
6
  "files": [
5
7
  {
6
8
  "path": "src/components/ui/skeleton/skeleton.astro",
@@ -13,5 +15,9 @@
13
15
  "type": "registry:ui"
14
16
  }
15
17
  ],
18
+ "docs": "https://ui.full.dev/components/skeleton/",
19
+ "categories": [
20
+ "ui"
21
+ ],
16
22
  "type": "registry:ui"
17
23
  }
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "slider",
4
+ "title": "Slider",
5
+ "description": "An input where the user selects a value from within a given range.",
4
6
  "dependencies": [
5
7
  "@data-slot/slider"
6
8
  ],
7
9
  "files": [
8
10
  {
9
11
  "path": "src/components/ui/slider/slider.astro",
10
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype SliderValue = number | [number, number] | string\ntype ThumbAlignment = \"center\" | \"edge\" | \"edge-client-only\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultValue?: SliderValue\n min?: number\n max?: number\n step?: number\n largeStep?: number\n orientation?: \"horizontal\" | \"vertical\"\n thumbAlignment?: ThumbAlignment\n disabled?: boolean\n}\n\nconst {\n class: className,\n defaultValue,\n min,\n max,\n step,\n largeStep,\n orientation = \"horizontal\",\n thumbAlignment = \"edge\",\n disabled,\n ...props\n} = Astro.props\n\nconst serializedDefaultValue = Array.isArray(defaultValue)\n ? defaultValue.join(\",\")\n : defaultValue\nconst thumbCount = String(serializedDefaultValue ?? \"\").includes(\",\") ? 2 : 1\n---\n\n<div\n data-slot=\"slider\"\n data-default-value={serializedDefaultValue}\n data-min={min}\n data-max={max}\n data-step={step}\n data-large-step={largeStep}\n data-orientation={orientation}\n data-thumb-alignment={thumbAlignment}\n data-disabled={disabled ? \"true\" : undefined}\n class={cn(\n \"data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full\",\n className\n )}\n {...props}\n>\n <div\n data-slot=\"slider-control\"\n data-orientation={orientation}\n data-disabled={disabled ? \"true\" : undefined}\n class=\"relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-40 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\"\n >\n <div\n data-slot=\"slider-track\"\n class=\"bg-muted relative grow overflow-hidden rounded-full select-none data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5\"\n >\n <div\n data-slot=\"slider-range\"\n class=\"bg-primary select-none data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n >\n </div>\n </div>\n {\n Array.from({ length: thumbCount }).map(() => (\n <div\n data-slot=\"slider-thumb\"\n class=\"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] select-none hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden data-[disabled]:pointer-events-none data-[disabled]:opacity-50\"\n />\n ))\n }\n </div>\n</div>\n\n<script>\n import { create } from \"@data-slot/slider\"\n\n create()\n</script>\n",
12
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype SliderValue = number | [number, number] | string\ntype ThumbAlignment = \"center\" | \"edge\" | \"edge-client-only\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultValue?: SliderValue\n min?: number\n max?: number\n step?: number\n largeStep?: number\n orientation?: \"horizontal\" | \"vertical\"\n thumbAlignment?: ThumbAlignment\n disabled?: boolean\n}\n\nconst {\n class: className,\n defaultValue,\n min,\n max,\n step,\n largeStep,\n orientation = \"horizontal\",\n thumbAlignment = \"edge\",\n disabled,\n ...props\n} = Astro.props\n\nconst serializedDefaultValue = Array.isArray(defaultValue)\n ? defaultValue.join(\",\")\n : defaultValue\nconst thumbCount = String(serializedDefaultValue ?? \"\").includes(\",\") ? 2 : 1\n---\n\n<div\n data-slot=\"slider\"\n data-default-value={serializedDefaultValue}\n data-min={min}\n data-max={max}\n data-step={step}\n data-large-step={largeStep}\n data-orientation={orientation}\n data-thumb-alignment={thumbAlignment}\n data-disabled={disabled ? \"true\" : undefined}\n class={cn(\n \"data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full\",\n className\n )}\n {...props}\n>\n <div\n data-slot=\"slider-control\"\n data-orientation={orientation}\n data-disabled={disabled ? \"true\" : undefined}\n class=\"relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-40 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\"\n >\n <div\n data-slot=\"slider-track\"\n class=\"bg-muted relative grow overflow-hidden rounded-full select-none data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5\"\n >\n <div\n data-slot=\"slider-range\"\n class=\"bg-primary select-none data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n >\n </div>\n </div>\n {\n Array.from({ length: thumbCount }).map(() => (\n <div\n data-slot=\"slider-thumb\"\n class=\"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] select-none hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden data-[disabled]:pointer-events-none data-[disabled]:opacity-50\"\n />\n ))\n }\n </div>\n</div>\n\n<script>\n import { create } from \"@data-slot/slider\"\n\n create()\n document.addEventListener(\"astro:page-load\", () => create())\n</script>\n",
11
13
  "type": "registry:ui"
12
14
  },
13
15
  {
@@ -16,5 +18,9 @@
16
18
  "type": "registry:ui"
17
19
  }
18
20
  ],
21
+ "docs": "https://ui.full.dev/components/slider/",
22
+ "categories": [
23
+ "ui"
24
+ ],
19
25
  "type": "registry:ui"
20
26
  }
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "spinner",
4
+ "title": "Spinner",
5
+ "description": "An animated loading indicator.",
4
6
  "dependencies": [
5
7
  "@lucide/astro"
6
8
  ],
@@ -16,5 +18,9 @@
16
18
  "type": "registry:ui"
17
19
  }
18
20
  ],
21
+ "docs": "https://ui.full.dev/components/spinner/",
22
+ "categories": [
23
+ "ui"
24
+ ],
19
25
  "type": "registry:ui"
20
26
  }
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "switch",
4
+ "title": "Switch",
5
+ "description": "A control that allows the user to toggle between checked and not checked.",
4
6
  "dependencies": [
5
7
  "@data-slot/switch"
6
8
  ],
7
9
  "files": [
8
10
  {
9
11
  "path": "src/components/ui/switch/switch.astro",
10
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"span\"> & {\n defaultChecked?: boolean\n disabled?: boolean\n readOnly?: boolean\n required?: boolean\n name?: string\n size?: \"default\" | \"sm\"\n value?: string\n uncheckedValue?: string\n}\n\nconst {\n class: className,\n defaultChecked,\n disabled,\n readOnly,\n required,\n name,\n size = \"default\",\n value,\n uncheckedValue,\n ...props\n} = Astro.props\n\nconst initialChecked = defaultChecked === true\nconst switchStyle =\n \"peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 relative inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none group-has-[:focus-visible]/field-label:border-transparent group-has-[:focus-visible]/field-label:ring-0 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 aria-invalid:ring-3 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-readonly:cursor-default\"\nconst switchSizeStyle = {\n sm: \"h-[14px] w-[24px]\",\n default: \"h-[18.4px] w-[32px]\",\n}\n---\n\n<span\n role=\"switch\"\n aria-checked={initialChecked ? \"true\" : \"false\"}\n aria-disabled={disabled ? \"true\" : undefined}\n aria-readonly={readOnly ? \"true\" : undefined}\n aria-required={required ? \"true\" : undefined}\n data-slot=\"switch\"\n data-size={size}\n data-checked={initialChecked ? \"\" : undefined}\n data-unchecked={initialChecked ? undefined : \"\"}\n data-default-checked={defaultChecked}\n data-disabled={disabled ? \"true\" : undefined}\n data-read-only={readOnly}\n data-readonly={readOnly ? \"\" : undefined}\n data-required={required}\n data-name={name}\n data-value={value}\n data-unchecked-value={uncheckedValue}\n class={cn(switchStyle, switchSizeStyle[size], className)}\n {...props}\n>\n <span\n aria-hidden=\"true\"\n data-slot=\"switch-thumb\"\n data-checked={initialChecked ? \"\" : undefined}\n data-unchecked={initialChecked ? undefined : \"\"}\n class=\"bg-background dark:data-checked:bg-primary-foreground dark:data-unchecked:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0\"\n ></span>\n</span>\n\n<script>\n import { create } from \"@data-slot/switch\"\n\n create()\n</script>\n",
12
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"span\"> & {\n defaultChecked?: boolean\n disabled?: boolean\n readOnly?: boolean\n required?: boolean\n name?: string\n size?: \"default\" | \"sm\"\n value?: string\n uncheckedValue?: string\n}\n\nconst {\n class: className,\n defaultChecked,\n disabled,\n readOnly,\n required,\n name,\n size = \"default\",\n value,\n uncheckedValue,\n ...props\n} = Astro.props\n\nconst initialChecked = defaultChecked === true\nconst switchStyle =\n \"peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 relative inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none group-has-[:focus-visible]/field-label:border-transparent group-has-[:focus-visible]/field-label:ring-0 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 aria-invalid:ring-3 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-readonly:cursor-default\"\nconst switchSizeStyle = {\n sm: \"h-[14px] w-[24px]\",\n default: \"h-[18.4px] w-[32px]\",\n}\n---\n\n<span\n role=\"switch\"\n aria-checked={initialChecked ? \"true\" : \"false\"}\n aria-disabled={disabled ? \"true\" : undefined}\n aria-readonly={readOnly ? \"true\" : undefined}\n aria-required={required ? \"true\" : undefined}\n data-slot=\"switch\"\n data-size={size}\n data-checked={initialChecked ? \"\" : undefined}\n data-unchecked={initialChecked ? undefined : \"\"}\n data-default-checked={defaultChecked}\n data-disabled={disabled ? \"true\" : undefined}\n data-read-only={readOnly}\n data-readonly={readOnly ? \"\" : undefined}\n data-required={required}\n data-name={name}\n data-value={value}\n data-unchecked-value={uncheckedValue}\n class={cn(switchStyle, switchSizeStyle[size], className)}\n {...props}\n>\n <span\n aria-hidden=\"true\"\n data-slot=\"switch-thumb\"\n data-checked={initialChecked ? \"\" : undefined}\n data-unchecked={initialChecked ? undefined : \"\"}\n class=\"bg-background dark:data-checked:bg-primary-foreground dark:data-unchecked:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0\"\n ></span>\n</span>\n\n<script>\n import { create } from \"@data-slot/switch\"\n\n create()\n document.addEventListener(\"astro:page-load\", () => create())\n</script>\n",
11
13
  "type": "registry:ui"
12
14
  },
13
15
  {
@@ -16,5 +18,9 @@
16
18
  "type": "registry:ui"
17
19
  }
18
20
  ],
21
+ "docs": "https://ui.full.dev/components/switch/",
22
+ "categories": [
23
+ "ui"
24
+ ],
19
25
  "type": "registry:ui"
20
26
  }
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "table",
4
+ "title": "Table",
5
+ "description": "A data table component that displays information in rows and columns.",
4
6
  "files": [
5
7
  {
6
8
  "path": "src/components/ui/table/table.astro",
@@ -48,5 +50,9 @@
48
50
  "type": "registry:ui"
49
51
  }
50
52
  ],
53
+ "docs": "https://ui.full.dev/components/table/",
54
+ "categories": [
55
+ "ui"
56
+ ],
51
57
  "type": "registry:ui"
52
58
  }
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "tabs",
4
+ "title": "Tabs",
5
+ "description": "A set of layered sections of content, known as tabs, that display one panel of content at a time.",
4
6
  "dependencies": [
5
7
  "@data-slot/tabs"
6
8
  ],
7
9
  "files": [
8
10
  {
9
11
  "path": "src/components/ui/tabs/tabs.astro",
10
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultValue?: string\n orientation?: \"horizontal\" | \"vertical\"\n activationMode?: \"auto\" | \"manual\"\n}\n\nconst {\n class: className,\n defaultValue,\n orientation = \"horizontal\",\n activationMode,\n ...props\n} = Astro.props\n---\n\n<div\n data-slot=\"tabs\"\n data-default-value={defaultValue}\n data-orientation={orientation}\n data-activation-mode={activationMode}\n data-horizontal={orientation === \"horizontal\" ? \"\" : undefined}\n data-vertical={orientation === \"vertical\" ? \"\" : undefined}\n class={cn(\"group/tabs flex gap-2 data-horizontal:flex-col\", className)}\n {...props}\n>\n <slot />\n</div>\n\n<script>\n import { create } from \"@data-slot/tabs\"\n\n create()\n</script>\n",
12
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultValue?: string\n orientation?: \"horizontal\" | \"vertical\"\n activationMode?: \"auto\" | \"manual\"\n}\n\nconst {\n class: className,\n defaultValue,\n orientation = \"horizontal\",\n activationMode,\n ...props\n} = Astro.props\n---\n\n<div\n data-slot=\"tabs\"\n data-default-value={defaultValue}\n data-orientation={orientation}\n data-activation-mode={activationMode}\n data-horizontal={orientation === \"horizontal\" ? \"\" : undefined}\n data-vertical={orientation === \"vertical\" ? \"\" : undefined}\n class={cn(\"group/tabs flex gap-2 data-horizontal:flex-col\", className)}\n {...props}\n>\n <slot />\n</div>\n\n<script>\n import { create } from \"@data-slot/tabs\"\n\n create()\n document.addEventListener(\"astro:page-load\", () => create())\n</script>\n",
11
13
  "type": "registry:ui"
12
14
  },
13
15
  {
@@ -36,5 +38,9 @@
36
38
  "type": "registry:ui"
37
39
  }
38
40
  ],
41
+ "docs": "https://ui.full.dev/components/tabs/",
42
+ "categories": [
43
+ "ui"
44
+ ],
39
45
  "type": "registry:ui"
40
46
  }
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "textarea",
4
+ "title": "Textarea",
5
+ "description": "Displays a form textarea or a component that looks like a textarea.",
4
6
  "files": [
5
7
  {
6
8
  "path": "src/components/ui/textarea/textarea.astro",
@@ -13,5 +15,9 @@
13
15
  "type": "registry:ui"
14
16
  }
15
17
  ],
18
+ "docs": "https://ui.full.dev/components/textarea/",
19
+ "categories": [
20
+ "ui"
21
+ ],
16
22
  "type": "registry:ui"
17
23
  }
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "theme-toggle",
4
+ "title": "Theme Toggle",
5
+ "description": "A two-state theme toggle that switches immediately between light and dark mode.",
4
6
  "dependencies": [
5
7
  "@lucide/astro"
6
8
  ],
@@ -24,5 +26,9 @@
24
26
  "type": "registry:ui"
25
27
  }
26
28
  ],
29
+ "docs": "https://ui.full.dev/components/theme-toggle/",
30
+ "categories": [
31
+ "ui"
32
+ ],
27
33
  "type": "registry:ui"
28
34
  }
package/public/r/toc.json CHANGED
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "toc",
4
+ "title": "Toc",
5
+ "description": "Displays a simple table of contents for page sections and subsections.",
4
6
  "files": [
5
7
  {
6
8
  "path": "src/components/ui/toc/toc.astro",
@@ -33,5 +35,9 @@
33
35
  "type": "registry:ui"
34
36
  }
35
37
  ],
38
+ "docs": "https://ui.full.dev/components/toc/",
39
+ "categories": [
40
+ "ui"
41
+ ],
36
42
  "type": "registry:ui"
37
43
  }
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "toggle",
4
+ "title": "Toggle",
5
+ "description": "A two-state button that can be either on or off.",
4
6
  "dependencies": [
5
7
  "@data-slot/toggle"
6
8
  ],
7
9
  "files": [
8
10
  {
9
11
  "path": "src/components/ui/toggle/toggle.astro",
10
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport { toggleVariants, type ToggleVariantProps } from \"./toggle-variants\"\n\ntype Props = HTMLAttributes<\"button\"> &\n ToggleVariantProps & {\n defaultPressed?: boolean\n disabled?: boolean\n }\n\nconst {\n class: className,\n variant = \"default\",\n size = \"default\",\n defaultPressed,\n disabled,\n type = \"button\",\n ...props\n} = Astro.props\n---\n\n<button\n data-slot=\"toggle\"\n data-default-pressed={defaultPressed}\n data-disabled={disabled}\n type={type}\n disabled={disabled}\n aria-pressed={defaultPressed === true ? \"true\" : \"false\"}\n class={cn(toggleVariants({ variant, size }), className)}\n {...props}\n>\n <slot />\n</button>\n\n<script>\n import { create } from \"@data-slot/toggle\"\n\n create()\n</script>\n",
12
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport { toggleVariants, type ToggleVariantProps } from \"./toggle-variants\"\n\ntype Props = HTMLAttributes<\"button\"> &\n ToggleVariantProps & {\n defaultPressed?: boolean\n disabled?: boolean\n }\n\nconst {\n class: className,\n variant = \"default\",\n size = \"default\",\n defaultPressed,\n disabled,\n type = \"button\",\n ...props\n} = Astro.props\n---\n\n<button\n data-slot=\"toggle\"\n data-default-pressed={defaultPressed}\n data-disabled={disabled}\n type={type}\n disabled={disabled}\n aria-pressed={defaultPressed === true ? \"true\" : \"false\"}\n class={cn(toggleVariants({ variant, size }), className)}\n {...props}\n>\n <slot />\n</button>\n\n<script>\n import { create } from \"@data-slot/toggle\"\n\n create()\n document.addEventListener(\"astro:page-load\", () => create())\n</script>\n",
11
13
  "type": "registry:ui"
12
14
  },
13
15
  {
@@ -21,5 +23,9 @@
21
23
  "type": "registry:ui"
22
24
  }
23
25
  ],
26
+ "docs": "https://ui.full.dev/components/toggle/",
27
+ "categories": [
28
+ "ui"
29
+ ],
24
30
  "type": "registry:ui"
25
31
  }
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "tooltip",
4
+ "title": "Tooltip",
5
+ "description": "Displays contextual information when a user hovers or focuses a trigger.",
4
6
  "dependencies": [
5
7
  "@data-slot/tooltip"
6
8
  ],
7
9
  "files": [
8
10
  {
9
11
  "path": "src/components/ui/tooltip/tooltip.astro",
10
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { TooltipAlign, TooltipSide } from \"@data-slot/tooltip\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n delay?: number\n skipDelayDuration?: number\n side?: TooltipSide\n align?: TooltipAlign\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n portal?: boolean\n}\n\nconst {\n class: className,\n delay = 300,\n skipDelayDuration = 300,\n side = \"top\",\n align = \"center\",\n sideOffset = 4,\n alignOffset = 0,\n avoidCollisions = true,\n collisionPadding = 8,\n portal = true,\n ...props\n} = Astro.props\n---\n\n<div\n data-slot=\"tooltip\"\n data-delay={delay}\n data-skip-delay-duration={skipDelayDuration}\n data-side={side}\n data-align={align}\n data-side-offset={sideOffset}\n data-align-offset={alignOffset}\n data-avoid-collisions={avoidCollisions}\n data-collision-padding={collisionPadding}\n data-portal={portal}\n class={cn(className)}\n {...props}\n>\n <slot />\n</div>\n\n<script>\n import { create } from \"@data-slot/tooltip\"\n\n create()\n</script>\n",
12
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { TooltipAlign, TooltipSide } from \"@data-slot/tooltip\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n delay?: number\n skipDelayDuration?: number\n side?: TooltipSide\n align?: TooltipAlign\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n portal?: boolean\n}\n\nconst {\n class: className,\n delay = 300,\n skipDelayDuration = 300,\n side = \"top\",\n align = \"center\",\n sideOffset = 4,\n alignOffset = 0,\n avoidCollisions = true,\n collisionPadding = 8,\n portal = true,\n ...props\n} = Astro.props\n---\n\n<div\n data-slot=\"tooltip\"\n data-delay={delay}\n data-skip-delay-duration={skipDelayDuration}\n data-side={side}\n data-align={align}\n data-side-offset={sideOffset}\n data-align-offset={alignOffset}\n data-avoid-collisions={avoidCollisions}\n data-collision-padding={collisionPadding}\n data-portal={portal}\n class={cn(className)}\n {...props}\n>\n <slot />\n</div>\n\n<script>\n import { create } from \"@data-slot/tooltip\"\n\n create()\n document.addEventListener(\"astro:page-load\", () => create())\n</script>\n",
11
13
  "type": "registry:ui"
12
14
  },
13
15
  {
@@ -26,5 +28,9 @@
26
28
  "type": "registry:ui"
27
29
  }
28
30
  ],
31
+ "docs": "https://ui.full.dev/components/tooltip/",
32
+ "categories": [
33
+ "ui"
34
+ ],
29
35
  "type": "registry:ui"
30
36
  }
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "typography",
4
+ "title": "Typography",
5
+ "description": "Automatic prose styling and semantic text primitives for documentation and content-heavy interfaces.",
4
6
  "files": [
5
7
  {
6
8
  "path": "src/components/ui/typography/typography.astro",
@@ -88,5 +90,9 @@
88
90
  "type": "registry:ui"
89
91
  }
90
92
  ],
93
+ "docs": "https://ui.full.dev/components/typography/",
94
+ "categories": [
95
+ "ui"
96
+ ],
91
97
  "type": "registry:ui"
92
98
  }
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
3
  "name": "video",
4
+ "title": "Video",
5
+ "description": "A responsive video component that supports YouTube videos and shorts.",
4
6
  "files": [
5
7
  {
6
8
  "path": "src/components/ui/video/video.astro",
@@ -13,5 +15,9 @@
13
15
  "type": "registry:ui"
14
16
  }
15
17
  ],
18
+ "docs": "https://ui.full.dev/components/video/",
19
+ "categories": [
20
+ "ui"
21
+ ],
16
22
  "type": "registry:ui"
17
23
  }
@@ -0,0 +1,187 @@
1
+ @import "tailwindcss";
2
+ @import "tw-animate-css";
3
+ @import "shadcn/tailwind.css";
4
+
5
+ @custom-variant dark (&:where(.dark, .dark *));
6
+
7
+ :root {
8
+ --background: oklch(1 0 0);
9
+ --foreground: oklch(0.145 0 0);
10
+ --card: oklch(1 0 0);
11
+ --card-foreground: oklch(0.145 0 0);
12
+ --popover: oklch(1 0 0);
13
+ --popover-foreground: oklch(0.145 0 0);
14
+ --primary: oklch(0.5488 0.2498 261.783);
15
+ --primary-foreground: oklch(1 0 0);
16
+ --secondary: oklch(0.97 0 0);
17
+ --secondary-foreground: oklch(0.205 0 0);
18
+ --muted: oklch(0.97 0 0);
19
+ --muted-foreground: oklch(0.556 0 0);
20
+ --accent: oklch(0.97 0 0);
21
+ --accent-foreground: oklch(0.205 0 0);
22
+ --destructive: oklch(0.577 0.245 27.325);
23
+ --destructive-foreground: oklch(1 0 0);
24
+ --border: oklch(0.922 0 0);
25
+ --input: oklch(0.922 0 0);
26
+ --ring: oklch(0.708 0 0);
27
+ --chart-1: oklch(0.81 0.1 252);
28
+ --chart-2: oklch(0.62 0.19 260);
29
+ --chart-3: oklch(0.55 0.22 263);
30
+ --chart-4: oklch(0.49 0.22 264);
31
+ --chart-5: oklch(0.42 0.18 266);
32
+ --sidebar: oklch(0.985 0 0);
33
+ --sidebar-foreground: oklch(0.145 0 0);
34
+ --sidebar-primary: oklch(0.5488 0.2498 261.783);
35
+ --sidebar-primary-foreground: oklch(1 0 0);
36
+ --sidebar-accent: oklch(0.97 0 0);
37
+ --sidebar-accent-foreground: oklch(0.205 0 0);
38
+ --sidebar-border: oklch(0.922 0 0);
39
+ --sidebar-ring: oklch(0.708 0 0);
40
+ --radius: 0.625rem;
41
+ --shadow-x: 0;
42
+ --shadow-y: 1px;
43
+ --shadow-blur: 3px;
44
+ --shadow-spread: 0px;
45
+ --shadow-opacity: 0.1;
46
+ --shadow-color: oklch(0 0 0);
47
+ --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
48
+ --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
49
+ --shadow-sm:
50
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
51
+ --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
52
+ --shadow-md:
53
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 2px 4px -1px hsl(0 0% 0% / 0.1);
54
+ --shadow-lg:
55
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 4px 6px -1px hsl(0 0% 0% / 0.1);
56
+ --shadow-xl:
57
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 8px 10px -1px hsl(0 0% 0% / 0.1);
58
+ --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25);
59
+ --tracking-normal: 0em;
60
+ --spacing: 0.25rem;
61
+ }
62
+
63
+ .dark {
64
+ --background: oklch(0.145 0 0);
65
+ --foreground: oklch(0.985 0 0);
66
+ --card: oklch(0.205 0 0);
67
+ --card-foreground: oklch(0.985 0 0);
68
+ --popover: oklch(0.269 0 0);
69
+ --popover-foreground: oklch(0.985 0 0);
70
+ --primary: oklch(0.686 0.2105 41.139);
71
+ --primary-foreground: oklch(1 0 0);
72
+ --secondary: oklch(0.269 0 0);
73
+ --secondary-foreground: oklch(0.985 0 0);
74
+ --muted: oklch(0.269 0 0);
75
+ --muted-foreground: oklch(0.708 0 0);
76
+ --accent: oklch(0.371 0 0);
77
+ --accent-foreground: oklch(0.985 0 0);
78
+ --destructive: oklch(0.704 0.191 22.216);
79
+ --destructive-foreground: oklch(0.985 0 0);
80
+ --border: oklch(0.275 0 0);
81
+ --input: oklch(0.325 0 0);
82
+ --ring: oklch(0.556 0 0);
83
+ --chart-1: oklch(0.81 0.1 252);
84
+ --chart-2: oklch(0.62 0.19 260);
85
+ --chart-3: oklch(0.55 0.22 263);
86
+ --chart-4: oklch(0.49 0.22 264);
87
+ --chart-5: oklch(0.42 0.18 266);
88
+ --sidebar: oklch(0.205 0 0);
89
+ --sidebar-foreground: oklch(0.985 0 0);
90
+ --sidebar-primary: oklch(0.686 0.2105 41.139);
91
+ --sidebar-primary-foreground: oklch(1 0 0);
92
+ --sidebar-accent: oklch(0.269 0 0);
93
+ --sidebar-accent-foreground: oklch(0.985 0 0);
94
+ --sidebar-border: oklch(0.275 0 0);
95
+ --sidebar-ring: oklch(0.439 0 0);
96
+ --radius: 0.625rem;
97
+ --shadow-x: 0;
98
+ --shadow-y: 1px;
99
+ --shadow-blur: 3px;
100
+ --shadow-spread: 0px;
101
+ --shadow-opacity: 0.1;
102
+ --shadow-color: oklch(0 0 0);
103
+ --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
104
+ --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
105
+ --shadow-sm:
106
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
107
+ --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
108
+ --shadow-md:
109
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 2px 4px -1px hsl(0 0% 0% / 0.1);
110
+ --shadow-lg:
111
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 4px 6px -1px hsl(0 0% 0% / 0.1);
112
+ --shadow-xl:
113
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 8px 10px -1px hsl(0 0% 0% / 0.1);
114
+ --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25);
115
+ }
116
+
117
+ @theme inline {
118
+ --color-background: var(--background);
119
+ --color-foreground: var(--foreground);
120
+ --color-card: var(--card);
121
+ --color-card-foreground: var(--card-foreground);
122
+ --color-popover: var(--popover);
123
+ --color-popover-foreground: var(--popover-foreground);
124
+ --color-primary: var(--primary);
125
+ --color-primary-foreground: var(--primary-foreground);
126
+ --color-secondary: var(--secondary);
127
+ --color-secondary-foreground: var(--secondary-foreground);
128
+ --color-muted: var(--muted);
129
+ --color-muted-foreground: var(--muted-foreground);
130
+ --color-accent: var(--accent);
131
+ --color-accent-foreground: var(--accent-foreground);
132
+ --color-destructive: var(--destructive);
133
+ --color-destructive-foreground: var(--destructive-foreground);
134
+ --color-border: var(--border);
135
+ --color-input: var(--input);
136
+ --color-ring: var(--ring);
137
+ --color-chart-1: var(--chart-1);
138
+ --color-chart-2: var(--chart-2);
139
+ --color-chart-3: var(--chart-3);
140
+ --color-chart-4: var(--chart-4);
141
+ --color-chart-5: var(--chart-5);
142
+ --color-sidebar: var(--sidebar);
143
+ --color-sidebar-foreground: var(--sidebar-foreground);
144
+ --color-sidebar-primary: var(--sidebar-primary);
145
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
146
+ --color-sidebar-accent: var(--sidebar-accent);
147
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
148
+ --color-sidebar-border: var(--sidebar-border);
149
+ --color-sidebar-ring: var(--sidebar-ring);
150
+
151
+ --radius-sm: calc(var(--radius) - 4px);
152
+ --radius-md: calc(var(--radius) - 2px);
153
+ --radius-lg: var(--radius);
154
+ --radius-xl: calc(var(--radius) + 4px);
155
+
156
+ --shadow-2xs: var(--shadow-2xs);
157
+ --shadow-xs: var(--shadow-xs);
158
+ --shadow-sm: var(--shadow-sm);
159
+ --shadow: var(--shadow);
160
+ --shadow-md: var(--shadow-md);
161
+ --shadow-lg: var(--shadow-lg);
162
+ --shadow-xl: var(--shadow-xl);
163
+ --shadow-2xl: var(--shadow-2xl);
164
+ }
165
+
166
+ @layer base {
167
+ * {
168
+ @apply border-border outline-ring/50;
169
+ }
170
+ html {
171
+ @apply font-sans;
172
+ }
173
+ body {
174
+ @apply bg-background text-foreground font-sans;
175
+ }
176
+ }
177
+
178
+ @media (prefers-reduced-motion: reduce) {
179
+ *,
180
+ ::before,
181
+ ::after {
182
+ animation-duration: 0.01ms !important;
183
+ animation-iteration-count: 1 !important;
184
+ transition-duration: 0.01ms !important;
185
+ scroll-behavior: auto !important;
186
+ }
187
+ }