fulldev-ui 0.9.3 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +100 -16
- package/package.json +3 -2
- package/public/r/accordion.json +4 -6
- package/public/r/alert-dialog.json +3 -3
- package/public/r/alert.json +0 -5
- package/public/r/article-1.json +1 -1
- package/public/r/article-2.json +1 -1
- package/public/r/articles-1.json +1 -1
- package/public/r/articles-2.json +1 -1
- package/public/r/articles-3.json +1 -1
- package/public/r/avatar.json +1 -16
- package/public/r/badge.json +1 -1
- package/public/r/banner-1.json +5 -3
- package/public/r/banner-2.json +1 -1
- package/public/r/banner.json +5 -3
- package/public/r/blocks-1.json +6 -3
- package/public/r/breadcrumb.json +4 -4
- package/public/r/button.json +1 -1
- package/public/r/card.json +4 -4
- package/public/r/carousel.json +5 -5
- package/public/r/checkbox.json +1 -1
- package/public/r/combobox.json +8 -8
- package/public/r/command.json +6 -6
- package/public/r/components.json +1 -7
- package/public/r/contact-1.json +4 -2
- package/public/r/contact-2.json +4 -2
- package/public/r/contact-3.json +11 -3
- package/public/r/content-1.json +11 -3
- package/public/r/content-2.json +11 -3
- package/public/r/content-3.json +7 -1
- package/public/r/content-4.json +11 -3
- package/public/r/cta-2.json +7 -1
- package/public/r/cta-4.json +7 -1
- package/public/r/cta-5.json +11 -3
- package/public/r/cta-6.json +7 -1
- package/public/r/dialog.json +7 -7
- package/public/r/doc-1.json +6 -3
- package/public/r/dropdown-menu.json +9 -11
- package/public/r/features-1.json +5 -3
- package/public/r/features-2.json +5 -3
- package/public/r/features-4.json +5 -3
- package/public/r/features-5.json +4 -2
- package/public/r/field.json +2 -7
- package/public/r/footer-1.json +5 -3
- package/public/r/footer-2.json +5 -3
- package/public/r/footer-3.json +5 -3
- package/public/r/header-1.json +1 -1
- package/public/r/header.json +3 -0
- package/public/r/hero-13.json +1 -1
- package/public/r/hero-4.json +5 -3
- package/public/r/hero-5.json +5 -3
- package/public/r/hero-6.json +5 -3
- package/public/r/hero-7.json +5 -3
- package/public/r/hero-8.json +1 -1
- package/public/r/hero-9.json +5 -3
- package/public/r/hover-card.json +4 -3
- package/public/r/icon.json +1 -1
- package/public/r/input-group.json +1 -1
- package/public/r/item.json +2 -20
- package/public/r/kbd.json +2 -2
- package/public/r/layout.json +4 -7
- package/public/r/links-2.json +5 -3
- package/public/r/marquee.json +1 -1
- package/public/r/native-select.json +3 -3
- package/public/r/navigation-menu.json +8 -10
- package/public/r/page.json +17 -0
- package/public/r/popover.json +1 -1
- package/public/r/pricing-1.json +5 -3
- package/public/r/pricing-2.json +5 -3
- package/public/r/pricing-3.json +5 -3
- package/public/r/products-1.json +1 -1
- package/public/r/products-4.json +1 -1
- package/public/r/products-5.json +1 -1
- package/public/r/radio-group.json +1 -1
- package/public/r/rating.json +3 -3
- package/public/r/registry.json +186 -450
- package/public/r/reviews-1.json +5 -3
- package/public/r/reviews-2.json +5 -3
- package/public/r/reviews-3.json +5 -3
- package/public/r/reviews-4.json +1 -1
- package/public/r/reviews-5.json +5 -3
- package/public/r/select.json +6 -8
- package/public/r/services-1.json +11 -3
- package/public/r/services-2.json +7 -1
- package/public/r/services-3.json +7 -1
- package/public/r/services-4.json +11 -3
- package/public/r/services-5.json +5 -3
- package/public/r/services-6.json +11 -3
- package/public/r/services-7.json +11 -3
- package/public/r/sheet.json +7 -4
- package/public/r/sidebar-1.json +4 -2
- package/public/r/sidebar.json +10 -7
- package/public/r/slider.json +1 -1
- package/public/r/spinner.json +3 -3
- package/public/r/switch.json +1 -1
- package/public/r/tabs.json +1 -1
- package/public/r/theme-toggle.json +5 -3
- package/public/r/toggle.json +1 -1
- package/public/r/tooltip.json +1 -1
- package/public/r/typography.json +16 -16
- package/public/r/video.json +1 -1
- package/registry.json +186 -450
- package/src/components/blocks/article-1.astro +1 -1
- package/src/components/blocks/article-2.astro +1 -1
- package/src/components/blocks/articles-1.astro +1 -1
- package/src/components/blocks/articles-2.astro +2 -2
- package/src/components/blocks/articles-3.astro +1 -1
- package/src/components/blocks/banner-1.astro +3 -5
- package/src/components/blocks/banner-2.astro +1 -1
- package/src/components/blocks/blocks-1.astro +25 -37
- package/src/components/blocks/contact-3.astro +4 -3
- package/src/components/blocks/content-1.astro +5 -4
- package/src/components/blocks/content-2.astro +6 -5
- package/src/components/blocks/content-3.astro +9 -2
- package/src/components/blocks/content-4.astro +6 -5
- package/src/components/blocks/cta-2.astro +4 -3
- package/src/components/blocks/cta-4.astro +3 -2
- package/src/components/blocks/cta-5.astro +6 -5
- package/src/components/blocks/cta-6.astro +4 -3
- package/src/components/blocks/doc-1.astro +28 -56
- package/src/components/blocks/features-1.astro +3 -1
- package/src/components/blocks/features-2.astro +4 -2
- package/src/components/blocks/features-4.astro +3 -1
- package/src/components/blocks/footer-1.astro +26 -12
- package/src/components/blocks/footer-2.astro +24 -12
- package/src/components/blocks/footer-3.astro +26 -12
- package/src/components/blocks/header-1.astro +2 -3
- package/src/components/blocks/hero-13.astro +1 -1
- package/src/components/blocks/hero-4.astro +2 -2
- package/src/components/blocks/hero-5.astro +3 -3
- package/src/components/blocks/hero-6.astro +3 -3
- package/src/components/blocks/hero-7.astro +3 -3
- package/src/components/blocks/hero-8.astro +1 -1
- package/src/components/blocks/hero-9.astro +2 -2
- package/src/components/blocks/links-2.astro +3 -5
- package/src/components/blocks/pricing-1.astro +3 -2
- package/src/components/blocks/pricing-2.astro +3 -2
- package/src/components/blocks/pricing-3.astro +3 -2
- package/src/components/blocks/products-1.astro +1 -1
- package/src/components/blocks/products-4.astro +2 -2
- package/src/components/blocks/products-5.astro +4 -4
- package/src/components/blocks/reviews-1.astro +2 -2
- package/src/components/blocks/reviews-2.astro +2 -2
- package/src/components/blocks/reviews-3.astro +2 -2
- package/src/components/blocks/reviews-4.astro +4 -4
- package/src/components/blocks/reviews-5.astro +16 -25
- package/src/components/blocks/services-1.astro +7 -9
- package/src/components/blocks/services-2.astro +5 -4
- package/src/components/blocks/services-3.astro +6 -5
- package/src/components/blocks/services-4.astro +7 -9
- package/src/components/blocks/services-5.astro +3 -4
- package/src/components/blocks/services-6.astro +7 -6
- package/src/components/blocks/services-7.astro +7 -9
- package/src/components/blocks/sidebar-1.astro +42 -97
- package/src/components/ui/accordion/accordion-content.astro +2 -1
- package/src/components/ui/accordion/accordion-trigger.astro +7 -8
- package/src/components/ui/alert-dialog/alert-dialog-content.astro +1 -1
- package/src/components/ui/alert-dialog/alert-dialog-overlay.astro +1 -1
- package/src/components/ui/alert-dialog/alert-dialog.astro +23 -3
- package/src/components/ui/avatar/avatar.astro +1 -1
- package/src/components/ui/badge/badge.astro +1 -0
- package/src/components/ui/banner/banner-container.astro +3 -3
- package/src/components/ui/breadcrumb/breadcrumb-ellipsis.astro +2 -2
- package/src/components/ui/breadcrumb/breadcrumb-separator.astro +2 -2
- package/src/components/ui/button/button-variants.ts +8 -7
- package/src/components/ui/card/card-content.astro +1 -1
- package/src/components/ui/card/card-footer.astro +1 -1
- package/src/components/ui/card/card-header.astro +1 -1
- package/src/components/ui/card/card.astro +1 -1
- package/src/components/ui/carousel/carousel-next.astro +3 -3
- package/src/components/ui/carousel/carousel-previous.astro +3 -3
- package/src/components/ui/checkbox/checkbox.astro +1 -1
- package/src/components/ui/combobox/combobox-input.astro +2 -2
- package/src/components/ui/combobox/combobox-item.astro +4 -4
- package/src/components/ui/combobox/combobox-list.astro +1 -1
- package/src/components/ui/combobox/combobox-trigger.astro +2 -5
- package/src/components/ui/combobox/combobox.astro +3 -0
- package/src/components/ui/command/command-dialog.astro +10 -10
- package/src/components/ui/command/command-input.astro +2 -2
- package/src/components/ui/command/command-item.astro +4 -5
- package/src/components/ui/dialog/dialog-close.astro +2 -2
- package/src/components/ui/dialog/dialog-content.astro +3 -3
- package/src/components/ui/dialog/dialog-overlay.astro +1 -1
- package/src/components/ui/dialog/dialog.astro +26 -3
- package/src/components/ui/dropdown-menu/dropdown-menu-checkbox-item.astro +4 -5
- package/src/components/ui/dropdown-menu/dropdown-menu-content.astro +4 -4
- package/src/components/ui/dropdown-menu/dropdown-menu-item.astro +1 -1
- package/src/components/ui/dropdown-menu/dropdown-menu-label.astro +1 -1
- package/src/components/ui/dropdown-menu/dropdown-menu-radio-item.astro +4 -5
- package/src/components/ui/dropdown-menu/dropdown-menu-shortcut.astro +1 -1
- package/src/components/ui/dropdown-menu/dropdown-menu.astro +3 -0
- package/src/components/ui/field/field-label.astro +1 -1
- package/src/components/ui/field/field-title.astro +1 -1
- package/src/components/ui/hover-card/hover-card-content.astro +4 -4
- package/src/components/ui/hover-card/hover-card.astro +8 -5
- package/src/components/ui/icon/icon.astro +8 -17
- package/src/components/ui/input-group/input-group-button.astro +0 -1
- package/src/components/ui/item/item-media.astro +1 -1
- package/src/components/ui/item/item.astro +0 -18
- package/src/components/ui/kbd/kbd-group.astro +1 -1
- package/src/components/ui/kbd/kbd.astro +1 -1
- package/src/components/ui/layout/layout-body.astro +1 -1
- package/src/components/ui/layout/layout-head.astro +3 -2
- package/src/components/ui/layout/layout-main.astro +1 -1
- package/src/components/ui/layout/layout.astro +4 -0
- package/src/components/ui/marquee/marquee.astro +50 -69
- package/src/components/ui/native-select/native-select.astro +2 -3
- package/src/components/ui/navigation-menu/navigation-menu-content.astro +3 -1
- package/src/components/ui/navigation-menu/navigation-menu-indicator.astro +2 -1
- package/src/components/ui/navigation-menu/navigation-menu-list.astro +1 -1
- package/src/components/ui/navigation-menu/navigation-menu-positioner.astro +2 -0
- package/src/components/ui/navigation-menu/navigation-menu-trigger.astro +2 -3
- package/src/components/ui/navigation-menu/navigation-menu.astro +1 -1
- package/src/components/ui/popover/popover-content.astro +1 -1
- package/src/components/ui/radio-group/radio-group-item.astro +3 -3
- package/src/components/ui/rating/rating.astro +3 -3
- package/src/components/ui/select/select-content.astro +1 -1
- package/src/components/ui/select/select-item.astro +4 -4
- package/src/components/ui/select/select-trigger.astro +3 -6
- package/src/components/ui/select/select.astro +6 -0
- package/src/components/ui/sheet/sheet-content.astro +6 -7
- package/src/components/ui/sheet/sheet.astro +1 -89
- package/src/components/ui/sidebar/sidebar-menu-button.astro +13 -11
- package/src/components/ui/sidebar/sidebar-menu-sub-button.astro +10 -8
- package/src/components/ui/sidebar/sidebar-provider.astro +37 -15
- package/src/components/ui/sidebar/sidebar-rail.astro +1 -1
- package/src/components/ui/sidebar/sidebar-trigger.astro +3 -3
- package/src/components/ui/sidebar/sidebar.astro +1 -2
- package/src/components/ui/slider/slider.astro +8 -6
- package/src/components/ui/spinner/spinner.astro +4 -4
- package/src/components/ui/switch/switch.astro +5 -3
- package/src/components/ui/tabs/tabs-content.astro +2 -1
- package/src/components/ui/theme-toggle/theme-toggle.astro +4 -3
- package/src/components/ui/toggle/toggle.astro +2 -0
- package/src/components/ui/tooltip/tooltip-content.astro +1 -1
- package/src/components/ui/typography/typography-a.astro +19 -4
- package/src/components/ui/typography/typography-blockquote.astro +26 -6
- package/src/components/ui/typography/typography-h1.astro +7 -9
- package/src/components/ui/typography/typography-h2.astro +12 -9
- package/src/components/ui/typography/typography-h3.astro +7 -9
- package/src/components/ui/typography/typography-h4.astro +7 -9
- package/src/components/ui/typography/typography-inline-code.astro +28 -12
- package/src/components/ui/typography/typography-lead.astro +29 -4
- package/src/components/ui/typography/typography-list-item.astro +25 -9
- package/src/components/ui/typography/typography-list.astro +29 -11
- package/src/components/ui/typography/typography-p.astro +26 -6
- package/src/components/ui/typography/typography-table-cell.astro +32 -13
- package/src/components/ui/typography/typography-table-head.astro +27 -13
- package/src/components/ui/typography/typography-table-row.astro +23 -13
- package/src/components/ui/typography/typography-table.astro +29 -20
- package/src/components/ui/typography/typography.astro +172 -46
- package/src/components/ui/video/video.astro +11 -27
- package/src/styles/global.css +2 -15
- package/public/r/beta-repo-setup.json +0 -125
- package/public/r/blocks.json +0 -91
- package/public/r/content-5.json +0 -17
- package/public/r/content-6.json +0 -17
- package/public/r/gradient.json +0 -17
- package/public/r/init.json +0 -23
- package/public/r/tile.json +0 -27
- package/src/components/blocks/content-5.astro +0 -115
- package/src/components/blocks/content-6.astro +0 -91
- package/src/components/ui/gradient/gradient.astro +0 -45
- package/src/components/ui/gradient/index.ts +0 -1
- package/src/components/ui/tile/index.ts +0 -3
- package/src/components/ui/tile/tile-content.astro +0 -17
- package/src/components/ui/tile/tile-group.astro +0 -76
- package/src/components/ui/tile/tile.astro +0 -46
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
+
import ChevronDownIcon from "@lucide/astro/icons/chevron-down"
|
|
3
|
+
import SearchIcon from "@lucide/astro/icons/search"
|
|
4
|
+
|
|
2
5
|
import { cn } from "@/lib/utils"
|
|
3
6
|
import {
|
|
4
7
|
Breadcrumb,
|
|
@@ -29,11 +32,6 @@ import {
|
|
|
29
32
|
} from "@/components/ui/dropdown-menu"
|
|
30
33
|
import { Header, HeaderContainer, HeaderGroup } from "@/components/ui/header"
|
|
31
34
|
import { Icon } from "@/components/ui/icon"
|
|
32
|
-
import {
|
|
33
|
-
InputGroup,
|
|
34
|
-
InputGroupAddon,
|
|
35
|
-
InputGroupInput,
|
|
36
|
-
} from "@/components/ui/input-group"
|
|
37
35
|
import { Kbd } from "@/components/ui/kbd"
|
|
38
36
|
import { LogoImage, LogoText } from "@/components/ui/logo"
|
|
39
37
|
import { Separator } from "@/components/ui/separator"
|
|
@@ -124,7 +122,18 @@ const searchGroups = search.items.reduce<
|
|
|
124
122
|
return groups
|
|
125
123
|
}, [])
|
|
126
124
|
|
|
127
|
-
|
|
125
|
+
let githubStars = "Stars"
|
|
126
|
+
|
|
127
|
+
try {
|
|
128
|
+
const response = await fetch(`https://api.github.com/repos/${githubRepo}`)
|
|
129
|
+
const data = await response.json()
|
|
130
|
+
|
|
131
|
+
if (response.ok && typeof data.stargazers_count === "number") {
|
|
132
|
+
githubStars = new Intl.NumberFormat().format(data.stargazers_count)
|
|
133
|
+
}
|
|
134
|
+
} catch {
|
|
135
|
+
// Keep the fallback label when GitHub is unavailable.
|
|
136
|
+
}
|
|
128
137
|
---
|
|
129
138
|
|
|
130
139
|
<SidebarProvider>
|
|
@@ -141,28 +150,19 @@ const githubStars = "560+"
|
|
|
141
150
|
</SidebarMenuButton>
|
|
142
151
|
<Dialog class="w-full" data-search-dialog>
|
|
143
152
|
<DialogTrigger
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
class="h-auto w-full cursor-pointer border-0 bg-transparent p-0 shadow-none hover:bg-transparent"
|
|
153
|
+
variant="outline"
|
|
154
|
+
size="sm"
|
|
155
|
+
class="w-full justify-start shadow-none"
|
|
148
156
|
aria-keyshortcuts="Meta+K Control+K"
|
|
149
157
|
>
|
|
150
|
-
<
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
<InputGroupAddon>
|
|
159
|
-
<Icon name="search" />
|
|
160
|
-
</InputGroupAddon>
|
|
161
|
-
<InputGroupAddon align="inline-end">
|
|
162
|
-
<Kbd data-search-modifier>⌘</Kbd>
|
|
163
|
-
<Kbd>K</Kbd>
|
|
164
|
-
</InputGroupAddon>
|
|
165
|
-
</InputGroup>
|
|
158
|
+
<SearchIcon data-icon="inline-start" />
|
|
159
|
+
<span class="truncate">{search.label}</span>
|
|
160
|
+
<Kbd
|
|
161
|
+
class="bg-background/80 ml-auto h-4 min-w-4 translate-y-0 px-1 text-[10px]"
|
|
162
|
+
data-search-shortcut
|
|
163
|
+
>
|
|
164
|
+
⌘ + K
|
|
165
|
+
</Kbd>
|
|
166
166
|
</DialogTrigger>
|
|
167
167
|
|
|
168
168
|
<CommandDialog title={search.label} description={search.label}>
|
|
@@ -179,9 +179,14 @@ const githubStars = "560+"
|
|
|
179
179
|
{group.items.map((item) => (
|
|
180
180
|
<CommandItem
|
|
181
181
|
href={item.href}
|
|
182
|
-
value={item.
|
|
182
|
+
value={`${item.group} ${item.label}`}
|
|
183
183
|
label={item.label}
|
|
184
|
-
keywords={[
|
|
184
|
+
keywords={[
|
|
185
|
+
item.group,
|
|
186
|
+
item.title,
|
|
187
|
+
item.path,
|
|
188
|
+
item.description,
|
|
189
|
+
]}
|
|
185
190
|
>
|
|
186
191
|
{item.label}
|
|
187
192
|
<CommandShortcut>{item.href}</CommandShortcut>
|
|
@@ -196,7 +201,7 @@ const githubStars = "560+"
|
|
|
196
201
|
</Dialog>
|
|
197
202
|
</SidebarHeader>
|
|
198
203
|
<SidebarContent
|
|
199
|
-
class="mask-
|
|
204
|
+
class="[mask-image:linear-gradient(to_bottom,transparent,black_1rem,black_calc(100%_-_1rem),transparent)] [-webkit-mask-image:linear-gradient(to_bottom,transparent,black_1rem,black_calc(100%_-_1rem),transparent)] group-data-[collapsible=icon]:[mask-image:none] group-data-[collapsible=icon]:[-webkit-mask-image:none]"
|
|
200
205
|
>
|
|
201
206
|
{
|
|
202
207
|
navigation.map((group) => (
|
|
@@ -222,61 +227,10 @@ const githubStars = "560+"
|
|
|
222
227
|
<SidebarInset>
|
|
223
228
|
<Header class="h-16">
|
|
224
229
|
<HeaderContainer class="max-w-none justify-between">
|
|
225
|
-
<HeaderGroup
|
|
230
|
+
<HeaderGroup>
|
|
226
231
|
<SidebarTrigger />
|
|
227
232
|
<Separator orientation="vertical" class="my-auto mr-2 h-4" />
|
|
228
|
-
<
|
|
229
|
-
<DialogTrigger
|
|
230
|
-
as="div"
|
|
231
|
-
role="button"
|
|
232
|
-
tabindex="0"
|
|
233
|
-
class="h-auto w-full cursor-pointer border-0 bg-transparent p-0 shadow-none hover:bg-transparent"
|
|
234
|
-
aria-keyshortcuts="Meta+K Control+K"
|
|
235
|
-
>
|
|
236
|
-
<InputGroup class="h-8 shadow-none">
|
|
237
|
-
<InputGroupInput
|
|
238
|
-
placeholder={search.label}
|
|
239
|
-
readonly
|
|
240
|
-
tabindex="-1"
|
|
241
|
-
aria-label={search.label}
|
|
242
|
-
class="cursor-pointer"
|
|
243
|
-
/>
|
|
244
|
-
<InputGroupAddon>
|
|
245
|
-
<Icon name="search" />
|
|
246
|
-
</InputGroupAddon>
|
|
247
|
-
</InputGroup>
|
|
248
|
-
</DialogTrigger>
|
|
249
|
-
|
|
250
|
-
<CommandDialog title={search.label} description={search.label}>
|
|
251
|
-
<Command
|
|
252
|
-
class="[&_[data-slot=command-item][data-selected]]:bg-accent [&_[data-slot=command-item][data-selected]]:text-accent-foreground"
|
|
253
|
-
>
|
|
254
|
-
<CommandInput placeholder={search.label} />
|
|
255
|
-
<CommandList>
|
|
256
|
-
<CommandEmpty>{search.empty}</CommandEmpty>
|
|
257
|
-
|
|
258
|
-
{
|
|
259
|
-
searchGroups.map((group) => (
|
|
260
|
-
<CommandGroup heading={group.label}>
|
|
261
|
-
{group.items.map((item) => (
|
|
262
|
-
<CommandItem
|
|
263
|
-
href={item.href}
|
|
264
|
-
value={item.path}
|
|
265
|
-
label={item.label}
|
|
266
|
-
keywords={[item.title, item.path]}
|
|
267
|
-
>
|
|
268
|
-
{item.label}
|
|
269
|
-
<CommandShortcut>{item.href}</CommandShortcut>
|
|
270
|
-
</CommandItem>
|
|
271
|
-
))}
|
|
272
|
-
</CommandGroup>
|
|
273
|
-
))
|
|
274
|
-
}
|
|
275
|
-
</CommandList>
|
|
276
|
-
</Command>
|
|
277
|
-
</CommandDialog>
|
|
278
|
-
</Dialog>
|
|
279
|
-
<Breadcrumb class="hidden md:block">
|
|
233
|
+
<Breadcrumb>
|
|
280
234
|
<BreadcrumbList>
|
|
281
235
|
{
|
|
282
236
|
breadcrumb.items.map((item, index) => {
|
|
@@ -299,7 +253,6 @@ const githubStars = "560+"
|
|
|
299
253
|
{hasMenu ? (
|
|
300
254
|
<DropdownMenu>
|
|
301
255
|
<DropdownMenuTrigger
|
|
302
|
-
aria-label={`${item.label} pages`}
|
|
303
256
|
aria-current={isLast ? "page" : undefined}
|
|
304
257
|
class={cn(
|
|
305
258
|
"hover:text-foreground inline-flex items-center gap-1 transition-colors",
|
|
@@ -307,8 +260,7 @@ const githubStars = "560+"
|
|
|
307
260
|
)}
|
|
308
261
|
>
|
|
309
262
|
{item.label}
|
|
310
|
-
<
|
|
311
|
-
name="chevron-down"
|
|
263
|
+
<ChevronDownIcon
|
|
312
264
|
class="size-3.5 opacity-70"
|
|
313
265
|
aria-hidden="true"
|
|
314
266
|
/>
|
|
@@ -350,10 +302,7 @@ const githubStars = "560+"
|
|
|
350
302
|
<BreadcrumbSeparator>/</BreadcrumbSeparator>
|
|
351
303
|
<BreadcrumbItem>
|
|
352
304
|
<DropdownMenu>
|
|
353
|
-
<DropdownMenuTrigger
|
|
354
|
-
aria-label="Open page menu"
|
|
355
|
-
class="hover:text-foreground inline-flex items-center leading-none transition-colors"
|
|
356
|
-
>
|
|
305
|
+
<DropdownMenuTrigger class="hover:text-foreground inline-flex items-center leading-none transition-colors">
|
|
357
306
|
<BreadcrumbEllipsis />
|
|
358
307
|
</DropdownMenuTrigger>
|
|
359
308
|
<DropdownMenuContent align="start">
|
|
@@ -384,7 +333,7 @@ const githubStars = "560+"
|
|
|
384
333
|
variant="ghost"
|
|
385
334
|
target="_blank"
|
|
386
335
|
rel="noreferrer"
|
|
387
|
-
aria-label={`View ${githubRepo} on GitHub
|
|
336
|
+
aria-label={`View ${githubRepo} on GitHub`}
|
|
388
337
|
>
|
|
389
338
|
<Icon name="github" />
|
|
390
339
|
<span>{githubStars}</span>
|
|
@@ -402,19 +351,15 @@ const githubStars = "560+"
|
|
|
402
351
|
navigator.platform || navigator.userAgent
|
|
403
352
|
)
|
|
404
353
|
|
|
405
|
-
document.querySelectorAll("[data-search-
|
|
406
|
-
shortcut.textContent = isMac ? "⌘" : "Ctrl"
|
|
354
|
+
document.querySelectorAll("[data-search-shortcut]").forEach((shortcut) => {
|
|
355
|
+
shortcut.textContent = isMac ? "⌘ + K" : "Ctrl + K"
|
|
407
356
|
})
|
|
408
357
|
|
|
409
358
|
document.addEventListener("keydown", (event) => {
|
|
410
359
|
if (event.key.toLowerCase() !== "k") return
|
|
411
360
|
if (event.shiftKey || event.altKey) return
|
|
412
361
|
|
|
413
|
-
const
|
|
414
|
-
document.querySelectorAll("[data-search-dialog]")
|
|
415
|
-
)
|
|
416
|
-
const dialog =
|
|
417
|
-
dialogs.find((dialog) => dialog.getClientRects().length > 0) ?? dialogs[0]
|
|
362
|
+
const dialog = document.querySelector("[data-search-dialog]")
|
|
418
363
|
const isSearchShortcut = isMac
|
|
419
364
|
? event.metaKey && !event.ctrlKey
|
|
420
365
|
: event.ctrlKey && !event.metaKey
|
|
@@ -5,11 +5,12 @@ import { cn } from "@/lib/utils"
|
|
|
5
5
|
|
|
6
6
|
type Props = HTMLAttributes<"div">
|
|
7
7
|
|
|
8
|
-
const { class: className, ...props } = Astro.props
|
|
8
|
+
const { class: className, hidden = true, ...props } = Astro.props
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
<div
|
|
12
12
|
data-slot="accordion-content"
|
|
13
|
+
hidden={hidden}
|
|
13
14
|
class="data-open:animate-accordion-down data-closed:animate-accordion-up overflow-hidden text-sm"
|
|
14
15
|
{...props}
|
|
15
16
|
>
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { HTMLAttributes } from "astro/types"
|
|
3
|
+
import ChevronDownIcon from "@lucide/astro/icons/chevron-down"
|
|
4
|
+
import ChevronUpIcon from "@lucide/astro/icons/chevron-up"
|
|
3
5
|
|
|
4
6
|
import { cn } from "@/lib/utils"
|
|
5
|
-
import { Icon } from "@/components/ui/icon"
|
|
6
7
|
|
|
7
8
|
type Props = HTMLAttributes<"button">
|
|
8
9
|
|
|
@@ -13,22 +14,20 @@ const { class: className, type = "button", ...props } = Astro.props
|
|
|
13
14
|
data-slot="accordion-trigger"
|
|
14
15
|
type={type}
|
|
15
16
|
class={cn(
|
|
16
|
-
"group/accordion-trigger focus-visible:border-ring focus-visible:ring-ring/50 relative flex w-full flex-1 items-
|
|
17
|
+
"group/accordion-trigger focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:after:border-ring **:data-[slot=accordion-trigger-icon]:text-muted-foreground relative flex w-full flex-1 items-start justify-between rounded-md border border-transparent bg-transparent py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-3 aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4",
|
|
17
18
|
className
|
|
18
19
|
)}
|
|
19
20
|
{...props}
|
|
20
21
|
>
|
|
21
22
|
<slot />
|
|
22
|
-
<
|
|
23
|
-
name="chevron-down"
|
|
23
|
+
<ChevronDownIcon
|
|
24
24
|
data-slot="accordion-trigger-icon"
|
|
25
25
|
aria-hidden="true"
|
|
26
|
-
class="
|
|
26
|
+
class="pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden"
|
|
27
27
|
/>
|
|
28
|
-
<
|
|
29
|
-
name="chevron-up"
|
|
28
|
+
<ChevronUpIcon
|
|
30
29
|
data-slot="accordion-trigger-icon"
|
|
31
30
|
aria-hidden="true"
|
|
32
|
-
class="
|
|
31
|
+
class="pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline"
|
|
33
32
|
/>
|
|
34
33
|
</button>
|
|
@@ -22,7 +22,7 @@ const { class: className, size = "default", style, ...props } = Astro.props
|
|
|
22
22
|
"group/alert-dialog-content bg-popover text-popover-foreground ring-foreground/10 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-6 rounded-xl p-6 ring-1 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg",
|
|
23
23
|
className
|
|
24
24
|
)}
|
|
25
|
-
style={`z-index: calc(var(--alert-dialog-content-stack-index, 0) +
|
|
25
|
+
style={`z-index: calc(var(--alert-dialog-content-stack-index, 0) * 2 + 101);${style ? ` ${style}` : ""}`}
|
|
26
26
|
{...props}
|
|
27
27
|
>
|
|
28
28
|
<slot />
|
|
@@ -15,7 +15,7 @@ const { class: className, style, ...props } = Astro.props
|
|
|
15
15
|
"data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 fixed inset-0 isolate z-(--alert-dialog-overlay-stack-index) bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs",
|
|
16
16
|
className
|
|
17
17
|
)}
|
|
18
|
-
style={`z-index: calc(var(--alert-dialog-overlay-stack-index, 0) +
|
|
18
|
+
style={`z-index: calc(var(--alert-dialog-overlay-stack-index, 0) * 2 + 100);${style ? ` ${style}` : ""}`}
|
|
19
19
|
{...props}
|
|
20
20
|
>
|
|
21
21
|
</div>
|
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { HTMLAttributes } from "astro/types"
|
|
3
3
|
|
|
4
|
-
type Props = HTMLAttributes<"div">
|
|
4
|
+
type Props = HTMLAttributes<"div"> & {
|
|
5
|
+
defaultOpen?: boolean
|
|
6
|
+
closeOnClickOutside?: boolean
|
|
7
|
+
closeOnEscape?: boolean
|
|
8
|
+
lockScroll?: boolean
|
|
9
|
+
}
|
|
5
10
|
|
|
6
|
-
const {
|
|
11
|
+
const {
|
|
12
|
+
class: className,
|
|
13
|
+
defaultOpen,
|
|
14
|
+
closeOnClickOutside,
|
|
15
|
+
closeOnEscape,
|
|
16
|
+
lockScroll,
|
|
17
|
+
...props
|
|
18
|
+
} = Astro.props
|
|
7
19
|
---
|
|
8
20
|
|
|
9
|
-
<div
|
|
21
|
+
<div
|
|
22
|
+
data-slot="alert-dialog"
|
|
23
|
+
data-default-open={defaultOpen}
|
|
24
|
+
data-close-on-click-outside={closeOnClickOutside}
|
|
25
|
+
data-close-on-escape={closeOnEscape}
|
|
26
|
+
data-lock-scroll={lockScroll}
|
|
27
|
+
class={className}
|
|
28
|
+
{...props}
|
|
29
|
+
>
|
|
10
30
|
<slot />
|
|
11
31
|
</div>
|
|
12
32
|
|
|
@@ -14,7 +14,7 @@ const { class: className, size = "default", ...props } = Astro.props
|
|
|
14
14
|
data-slot="avatar"
|
|
15
15
|
data-size={size}
|
|
16
16
|
class={cn(
|
|
17
|
-
"after:border-border group/avatar relative flex size-8 shrink-0
|
|
17
|
+
"after:border-border group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten",
|
|
18
18
|
className
|
|
19
19
|
)}
|
|
20
20
|
{...props}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { HTMLAttributes } from "astro/types"
|
|
3
|
+
import XIcon from "@lucide/astro/icons/x"
|
|
3
4
|
|
|
4
5
|
import { cn } from "@/lib/utils"
|
|
5
|
-
import { Icon } from "@/components/ui/icon"
|
|
6
6
|
|
|
7
7
|
type Props = HTMLAttributes<"div"> & {
|
|
8
8
|
showClose?: boolean
|
|
@@ -24,11 +24,11 @@ const { class: className, showClose = true, ...props } = Astro.props
|
|
|
24
24
|
showClose && (
|
|
25
25
|
<button
|
|
26
26
|
type="button"
|
|
27
|
-
class="focus-visible:ring-ring/50 absolute top-1/2 right-4 z-20 inline-flex shrink-0 -translate-y-1/2 items-center justify-center rounded-sm text-current/65 transition-colors outline-none hover:text-current focus-visible:text-current focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 in-data-
|
|
27
|
+
class="focus-visible:ring-ring/50 absolute top-1/2 right-4 z-20 inline-flex shrink-0 -translate-y-1/2 items-center justify-center rounded-sm text-current/65 transition-colors outline-none hover:text-current focus-visible:text-current focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 in-[[data-variant=floating]]:right-5"
|
|
28
28
|
aria-label="Close"
|
|
29
29
|
data-slot="banner-close"
|
|
30
30
|
>
|
|
31
|
-
<
|
|
31
|
+
<XIcon class="size-4" />
|
|
32
32
|
<span class="sr-only">Close</span>
|
|
33
33
|
</button>
|
|
34
34
|
)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { HTMLAttributes } from "astro/types"
|
|
3
|
+
import Ellipsis from "@lucide/astro/icons/ellipsis"
|
|
3
4
|
|
|
4
5
|
import { cn } from "@/lib/utils"
|
|
5
|
-
import { Icon } from "@/components/ui/icon"
|
|
6
6
|
|
|
7
7
|
type Props = HTMLAttributes<"span">
|
|
8
8
|
|
|
@@ -19,6 +19,6 @@ const { class: className, ...props } = Astro.props
|
|
|
19
19
|
)}
|
|
20
20
|
{...props}
|
|
21
21
|
>
|
|
22
|
-
<
|
|
22
|
+
<Ellipsis />
|
|
23
23
|
<span class="sr-only">More</span>
|
|
24
24
|
</span>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { HTMLAttributes } from "astro/types"
|
|
3
|
+
import ChevronRight from "@lucide/astro/icons/chevron-right"
|
|
3
4
|
|
|
4
5
|
import { cn } from "@/lib/utils"
|
|
5
|
-
import { Icon } from "@/components/ui/icon"
|
|
6
6
|
|
|
7
7
|
type Props = HTMLAttributes<"li">
|
|
8
8
|
|
|
@@ -16,5 +16,5 @@ const { class: className, ...props } = Astro.props
|
|
|
16
16
|
class={cn("[&>svg]:size-3.5", className)}
|
|
17
17
|
{...props}
|
|
18
18
|
>
|
|
19
|
-
{Astro.slots.has("default") ? <slot /> : <
|
|
19
|
+
{Astro.slots.has("default") ? <slot /> : <ChevronRight />}
|
|
20
20
|
</li>
|
|
@@ -7,20 +7,21 @@ export const buttonVariants = cva(
|
|
|
7
7
|
variant: {
|
|
8
8
|
default: "bg-primary text-primary-foreground hover:bg-primary/80",
|
|
9
9
|
outline:
|
|
10
|
-
"
|
|
10
|
+
"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 shadow-xs",
|
|
11
11
|
secondary:
|
|
12
|
-
"bg-secondary text-secondary-foreground hover:bg-secondary
|
|
13
|
-
ghost:
|
|
12
|
+
"bg-secondary text-secondary-foreground aria-expanded:bg-secondary aria-expanded:text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]",
|
|
13
|
+
ghost:
|
|
14
|
+
"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
|
|
14
15
|
destructive:
|
|
15
16
|
"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
|
|
16
17
|
link: "text-primary underline-offset-4 hover:underline",
|
|
17
18
|
},
|
|
18
19
|
size: {
|
|
19
20
|
default:
|
|
20
|
-
"h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-[
|
|
21
|
-
xs: "h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-[
|
|
22
|
-
sm: "h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-[
|
|
23
|
-
lg: "h-10 gap-1.5 px-2.5 has-[
|
|
21
|
+
"h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
22
|
+
xs: "h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
23
|
+
sm: "h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5",
|
|
24
|
+
lg: "h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
24
25
|
icon: "size-9",
|
|
25
26
|
"icon-xs":
|
|
26
27
|
"size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3",
|
|
@@ -11,7 +11,7 @@ const { class: className, ...props } = Astro.props
|
|
|
11
11
|
<div
|
|
12
12
|
data-slot="card-footer"
|
|
13
13
|
class={cn(
|
|
14
|
-
"flex items-center rounded-b-xl px-
|
|
14
|
+
"flex items-center rounded-b-xl px-(--card-spacing) [.border-t]:pt-(--card-spacing)",
|
|
15
15
|
className
|
|
16
16
|
)}
|
|
17
17
|
{...props}
|
|
@@ -11,7 +11,7 @@ const { class: className, ...props } = Astro.props
|
|
|
11
11
|
<div
|
|
12
12
|
data-slot="card-header"
|
|
13
13
|
class={cn(
|
|
14
|
-
"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-
|
|
14
|
+
"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",
|
|
15
15
|
className
|
|
16
16
|
)}
|
|
17
17
|
{...props}
|
|
@@ -14,7 +14,7 @@ const { class: className, size = "default", ...props } = Astro.props
|
|
|
14
14
|
data-slot="card"
|
|
15
15
|
data-size={size}
|
|
16
16
|
class={cn(
|
|
17
|
-
"ring-foreground/10 bg-card text-card-foreground group/card flex flex-col gap-
|
|
17
|
+
"ring-foreground/10 bg-card text-card-foreground group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl py-(--card-spacing) text-sm shadow-xs ring-1 [--card-spacing:--spacing(6)] has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(4)] *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",
|
|
18
18
|
className
|
|
19
19
|
)}
|
|
20
20
|
{...props}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { HTMLAttributes } from "astro/types"
|
|
3
|
+
import ChevronRightIcon from "@lucide/astro/icons/chevron-right"
|
|
3
4
|
|
|
4
5
|
import { cn } from "@/lib/utils"
|
|
5
6
|
import { buttonVariants, type ButtonVariantProps } from "@/components/ui/button"
|
|
6
|
-
import { Icon } from "@/components/ui/icon"
|
|
7
7
|
|
|
8
8
|
type Props = Omit<HTMLAttributes<"button">, "type"> & ButtonVariantProps
|
|
9
9
|
|
|
@@ -23,14 +23,14 @@ const {
|
|
|
23
23
|
disabled={disabled}
|
|
24
24
|
class={cn(
|
|
25
25
|
buttonVariants({ variant, size }),
|
|
26
|
-
"absolute
|
|
26
|
+
"absolute touch-manipulation rounded-full group-data-[orientation=horizontal]/carousel:inset-y-0 group-data-[orientation=horizontal]/carousel:-right-12 group-data-[orientation=horizontal]/carousel:my-auto",
|
|
27
27
|
"group-data-[orientation=vertical]/carousel:right-auto group-data-[orientation=vertical]/carousel:-bottom-12 group-data-[orientation=vertical]/carousel:left-1/2 group-data-[orientation=vertical]/carousel:-translate-x-1/2 group-data-[orientation=vertical]/carousel:translate-y-0 group-data-[orientation=vertical]/carousel:rotate-90",
|
|
28
28
|
className
|
|
29
29
|
)}
|
|
30
30
|
{...props}
|
|
31
31
|
>
|
|
32
32
|
<slot>
|
|
33
|
-
<
|
|
33
|
+
<ChevronRightIcon aria-hidden="true" />
|
|
34
34
|
<span class="sr-only">Next slide</span>
|
|
35
35
|
</slot>
|
|
36
36
|
</button>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { HTMLAttributes } from "astro/types"
|
|
3
|
+
import ChevronLeftIcon from "@lucide/astro/icons/chevron-left"
|
|
3
4
|
|
|
4
5
|
import { cn } from "@/lib/utils"
|
|
5
6
|
import { buttonVariants, type ButtonVariantProps } from "@/components/ui/button"
|
|
6
|
-
import { Icon } from "@/components/ui/icon"
|
|
7
7
|
|
|
8
8
|
type Props = Omit<HTMLAttributes<"button">, "type"> & ButtonVariantProps
|
|
9
9
|
|
|
@@ -23,14 +23,14 @@ const {
|
|
|
23
23
|
disabled={disabled}
|
|
24
24
|
class={cn(
|
|
25
25
|
buttonVariants({ variant, size }),
|
|
26
|
-
"absolute
|
|
26
|
+
"absolute touch-manipulation rounded-full group-data-[orientation=horizontal]/carousel:inset-y-0 group-data-[orientation=horizontal]/carousel:-left-12 group-data-[orientation=horizontal]/carousel:my-auto",
|
|
27
27
|
"group-data-[orientation=vertical]/carousel:-top-12 group-data-[orientation=vertical]/carousel:left-1/2 group-data-[orientation=vertical]/carousel:-translate-x-1/2 group-data-[orientation=vertical]/carousel:translate-y-0 group-data-[orientation=vertical]/carousel:rotate-90",
|
|
28
28
|
className
|
|
29
29
|
)}
|
|
30
30
|
{...props}
|
|
31
31
|
>
|
|
32
32
|
<slot>
|
|
33
|
-
<
|
|
33
|
+
<ChevronLeftIcon aria-hidden="true" />
|
|
34
34
|
<span class="sr-only">Previous slide</span>
|
|
35
35
|
</slot>
|
|
36
36
|
</button>
|
|
@@ -13,7 +13,7 @@ const { class: className, ...props } = Astro.props
|
|
|
13
13
|
role="checkbox"
|
|
14
14
|
data-slot="checkbox"
|
|
15
15
|
class={cn(
|
|
16
|
-
"border-input dark:bg-input/30 checked:bg-primary dark:checked:bg-primary checked:border-primary indeterminate:bg-primary indeterminate:border-primary aria-invalid:checked:border-primary aria-invalid:indeterminate:border-primary aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 peer relative flex size-4 shrink-0 appearance-none items-center justify-center rounded-[4px] border shadow-xs transition-shadow outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 checked:[color:var(--color-primary-foreground)] indeterminate:[color:var(--color-primary-foreground)] focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3",
|
|
16
|
+
"border-input dark:bg-input/30 checked:bg-primary dark:checked:bg-primary checked:border-primary indeterminate:bg-primary indeterminate:border-primary aria-invalid:checked:border-primary aria-invalid:indeterminate:border-primary aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 peer group-has-[:focus-visible]/field-label:not-checked:border-input relative flex size-4 shrink-0 appearance-none items-center justify-center rounded-[4px] border shadow-xs transition-shadow outline-none group-has-disabled/field:opacity-50 group-has-[:focus-visible]/field-label:ring-0 after:absolute after:-inset-x-3 after:-inset-y-2 checked:[color:var(--color-primary-foreground)] indeterminate:[color:var(--color-primary-foreground)] focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3",
|
|
17
17
|
className
|
|
18
18
|
)}
|
|
19
19
|
{...props}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { HTMLAttributes } from "astro/types"
|
|
3
|
+
import XIcon from "@lucide/astro/icons/x"
|
|
3
4
|
|
|
4
5
|
import { cn } from "@/lib/utils"
|
|
5
|
-
import { Icon } from "@/components/ui/icon"
|
|
6
6
|
import InputGroupAddon from "@/components/ui/input-group/input-group-addon.astro"
|
|
7
7
|
import InputGroupInput from "@/components/ui/input-group/input-group-input.astro"
|
|
8
8
|
import InputGroup from "@/components/ui/input-group/input-group.astro"
|
|
@@ -48,7 +48,7 @@ const {
|
|
|
48
48
|
class="inline-flex size-6 shrink-0 items-center justify-center rounded-[calc(var(--radius)-5px)] p-0 text-sm shadow-none outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
|
|
49
49
|
disabled={disabled}
|
|
50
50
|
>
|
|
51
|
-
<
|
|
51
|
+
<XIcon class="pointer-events-none" />
|
|
52
52
|
</button>
|
|
53
53
|
)
|
|
54
54
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { HTMLAttributes } from "astro/types"
|
|
3
|
+
import CheckIcon from "@lucide/astro/icons/check"
|
|
3
4
|
|
|
4
5
|
import { cn } from "@/lib/utils"
|
|
5
|
-
import { Icon } from "@/components/ui/icon"
|
|
6
6
|
|
|
7
7
|
type Props = HTMLAttributes<"div"> & {
|
|
8
8
|
value?: string
|
|
@@ -24,7 +24,7 @@ const {
|
|
|
24
24
|
data-value={value}
|
|
25
25
|
data-disabled={disabled ? "" : undefined}
|
|
26
26
|
class={cn(
|
|
27
|
-
"data-highlighted:bg-accent data-highlighted:text-accent-foreground data-highlighted:**:[svg]:text-accent-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
27
|
+
"group/combobox-item data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[highlighted]:**:[svg]:text-accent-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
28
28
|
className
|
|
29
29
|
)}
|
|
30
30
|
{...props}
|
|
@@ -35,9 +35,9 @@ const {
|
|
|
35
35
|
<span
|
|
36
36
|
data-slot="combobox-item-indicator"
|
|
37
37
|
hidden={false}
|
|
38
|
-
class="pointer-events-none absolute right-2 flex size-4 items-center justify-center opacity-0 group-data-
|
|
38
|
+
class="pointer-events-none absolute right-2 flex size-4 items-center justify-center opacity-0 group-data-selected/combobox-item:opacity-100"
|
|
39
39
|
>
|
|
40
|
-
<
|
|
40
|
+
<CheckIcon class="pointer-events-none" />
|
|
41
41
|
</span>
|
|
42
42
|
)
|
|
43
43
|
}
|
|
@@ -11,7 +11,7 @@ const { class: className, ...props } = Astro.props
|
|
|
11
11
|
<div
|
|
12
12
|
data-slot="combobox-list"
|
|
13
13
|
class={cn(
|
|
14
|
-
"no-scrollbar max-h-[min(
|
|
14
|
+
"no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 group-data-empty/combobox-content:p-0",
|
|
15
15
|
className
|
|
16
16
|
)}
|
|
17
17
|
{...props}
|