livemark 0.24.1 → 0.26.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.
- package/README.md +3 -2
- package/build/actions/config/define.d.ts +6 -0
- package/build/actions/config/define.unit.js +8 -1
- package/build/actions/escape/copy.d.ts +11 -0
- package/build/actions/escape/copy.js +29 -0
- package/build/actions/escape/copy.unit.d.ts +1 -0
- package/build/actions/escape/copy.unit.js +37 -0
- package/build/actions/escape/list.d.ts +12 -0
- package/build/actions/escape/list.js +27 -0
- package/build/actions/escape/list.unit.d.ts +1 -0
- package/build/actions/escape/list.unit.js +36 -0
- package/build/actions/target/build.d.ts +9 -26
- package/build/actions/target/build.js +50 -71
- package/build/actions/target/build.unit.d.ts +1 -0
- package/build/actions/target/build.unit.js +76 -0
- package/build/actions/target/clear.d.ts +4 -0
- package/build/actions/target/clear.js +14 -0
- package/build/actions/target/clear.unit.d.ts +1 -0
- package/build/actions/target/clear.unit.js +23 -0
- package/build/commands/build.js +1 -2
- package/build/commands/clear.d.ts +5 -0
- package/build/commands/clear.js +15 -0
- package/build/commands/escape.d.ts +4 -3
- package/build/commands/escape.js +45 -48
- package/build/commands/preview.js +1 -2
- package/build/commands/start.js +1 -2
- package/build/components/Abbr.d.ts +1 -1
- package/build/components/Abbr.js +2 -4
- package/build/components/AnsiCode.d.ts +1 -1
- package/build/components/AnsiCode.js +2 -2
- package/build/components/Article.d.ts +2 -1
- package/build/components/Article.js +7 -14
- package/build/components/BackToTop.d.ts +1 -1
- package/build/components/Banner.d.ts +2 -2
- package/build/components/Banner.js +7 -3
- package/build/components/BlogIndex.d.ts +1 -1
- package/build/components/BlogIndex.js +2 -11
- package/build/components/Breadcrumbs.d.ts +1 -1
- package/build/components/Breadcrumbs.js +2 -3
- package/build/components/Callout.d.ts +1 -1
- package/build/components/Callout.js +5 -9
- package/build/components/Card.d.ts +1 -1
- package/build/components/Card.js +2 -3
- package/build/components/Cards.d.ts +1 -1
- package/build/components/ChangelogIndex.d.ts +1 -1
- package/build/components/ChangelogIndex.js +2 -11
- package/build/components/ChoiceList.d.ts +15 -0
- package/build/components/ChoiceList.js +13 -0
- package/build/components/CodeBlock.d.ts +1 -1
- package/build/components/CodeBlock.js +3 -16
- package/build/components/CodeTabs.d.ts +1 -1
- package/build/components/CodeTabs.js +2 -3
- package/build/components/Column.d.ts +1 -1
- package/build/components/Columns.d.ts +1 -1
- package/build/components/Content.d.ts +1 -1
- package/build/components/ContentTab.d.ts +1 -1
- package/build/components/ContentTabs.d.ts +1 -1
- package/build/components/ContentTabs.js +2 -3
- package/build/components/DefaultCatchBoundary.d.ts +1 -1
- package/build/components/DefaultCatchBoundary.js +5 -7
- package/build/components/DefinitionList.d.ts +3 -3
- package/build/components/Details.d.ts +1 -1
- package/build/components/Details.js +2 -5
- package/build/components/FileTree.d.ts +1 -1
- package/build/components/FileTree.js +3 -5
- package/build/components/Footer.d.ts +1 -1
- package/build/components/Footer.js +2 -5
- package/build/components/FootnoteRef.d.ts +1 -1
- package/build/components/FootnoteRef.js +2 -4
- package/build/components/Header.d.ts +6 -0
- package/build/components/Header.js +26 -0
- package/build/components/HeaderMenu.d.ts +2 -0
- package/build/components/HeaderMenu.js +27 -0
- package/build/components/HeaderNav.d.ts +6 -0
- package/build/components/HeaderNav.js +74 -0
- package/build/components/HeaderSearch.d.ts +4 -0
- package/build/components/HeaderSearch.js +33 -0
- package/build/components/Heading.d.ts +6 -6
- package/build/components/InlineBadge.d.ts +2 -2
- package/build/components/InlineBadge.js +1 -1
- package/build/components/InlineIcon.d.ts +1 -1
- package/build/components/InlineToc.d.ts +1 -1
- package/build/components/InlineToc.js +2 -4
- package/build/components/Layout.d.ts +2 -1
- package/build/components/Layout.js +5 -58
- package/build/components/LinkButton.d.ts +2 -2
- package/build/components/LinkButton.js +1 -1
- package/build/components/MenuSheet.d.ts +22 -0
- package/build/components/MenuSheet.js +27 -0
- package/build/components/Mermaid.d.ts +1 -1
- package/build/components/MermaidRenderer.d.ts +1 -1
- package/build/components/MermaidRenderer.js +20 -8
- package/build/components/NotFound.d.ts +1 -1
- package/build/components/NotFound.js +3 -6
- package/build/components/PackageTabs.d.ts +1 -1
- package/build/components/PackageTabs.js +3 -7
- package/build/components/PageToolbar.d.ts +1 -1
- package/build/components/PageToolbar.js +2 -10
- package/build/components/PrevNext.d.ts +1 -1
- package/build/components/PrevNext.js +2 -10
- package/build/components/Root.d.ts +4 -0
- package/build/components/Root.js +8 -0
- package/build/components/Search.d.ts +5 -2
- package/build/components/Search.js +11 -9
- package/build/components/SearchDialog.d.ts +1 -1
- package/build/components/SearchDialog.js +10 -133
- package/build/components/Section.d.ts +1 -1
- package/build/components/SectionHeader.d.ts +1 -1
- package/build/components/SheetPanel.d.ts +12 -0
- package/build/components/SheetPanel.js +19 -0
- package/build/components/Sidebar.d.ts +1 -1
- package/build/components/Sidebar.js +12 -14
- package/build/components/SidebarArticles.d.ts +4 -1
- package/build/components/SidebarArticles.js +5 -9
- package/build/components/SidebarLinks.d.ts +4 -1
- package/build/components/SidebarLinks.js +6 -9
- package/build/components/SidebarPosts.d.ts +4 -1
- package/build/components/SidebarPosts.js +7 -23
- package/build/components/SidebarReleases.d.ts +4 -1
- package/build/components/SidebarReleases.js +5 -15
- package/build/components/SidebarSectionPicker.d.ts +8 -0
- package/build/components/SidebarSectionPicker.js +31 -0
- package/build/components/SidebarSections.d.ts +1 -1
- package/build/components/SidebarSections.js +5 -9
- package/build/components/SiteLink.d.ts +1 -1
- package/build/components/SiteTitle.d.ts +1 -1
- package/build/components/SiteTitle.js +2 -6
- package/build/components/SortableTable.d.ts +1 -1
- package/build/components/SoundCloud.d.ts +1 -1
- package/build/components/SoundCloud.js +2 -2
- package/build/components/TagIndex.d.ts +1 -1
- package/build/components/TagIndex.js +2 -11
- package/build/components/Theme.d.ts +2 -1
- package/build/components/Theme.js +35 -15
- package/build/components/Toc.d.ts +5 -4
- package/build/components/Toc.js +35 -35
- package/build/components/YouTube.d.ts +1 -1
- package/build/components/YouTube.js +2 -2
- package/build/components/ZoomImage.d.ts +1 -1
- package/build/content-collections.js +5 -1
- package/build/elements/accordion.d.ts +4 -4
- package/build/elements/accordion.js +2 -3
- package/build/elements/alert-dialog.d.ts +12 -12
- package/build/elements/alert-dialog.js +2 -4
- package/build/elements/alert.d.ts +4 -4
- package/build/elements/alert.js +2 -2
- package/build/elements/aspect-ratio.d.ts +1 -1
- package/build/elements/avatar.d.ts +6 -6
- package/build/elements/badge.d.ts +1 -1
- package/build/elements/badge.js +3 -1
- package/build/elements/breadcrumb.d.ts +6 -6
- package/build/elements/breadcrumb.js +2 -4
- package/build/elements/button-group.d.ts +2 -2
- package/build/elements/button-group.js +5 -5
- package/build/elements/button.d.ts +2 -2
- package/build/elements/button.js +9 -7
- package/build/elements/calendar.d.ts +2 -2
- package/build/elements/calendar.js +2 -2
- package/build/elements/card.d.ts +7 -7
- package/build/elements/card.js +4 -4
- package/build/elements/carousel.d.ts +5 -5
- package/build/elements/carousel.js +3 -7
- package/build/elements/chart.d.ts +6 -6
- package/build/elements/chart.js +5 -11
- package/build/elements/checkbox.d.ts +1 -1
- package/build/elements/collapsible.d.ts +3 -3
- package/build/elements/command.d.ts +9 -9
- package/build/elements/command.js +5 -11
- package/build/elements/context-menu.d.ts +15 -15
- package/build/elements/context-menu.js +6 -9
- package/build/elements/dialog.d.ts +10 -10
- package/build/elements/dialog.js +2 -6
- package/build/elements/drawer.d.ts +14 -12
- package/build/elements/drawer.js +14 -15
- package/build/elements/dropdown-menu.d.ts +15 -15
- package/build/elements/dropdown-menu.js +7 -10
- package/build/elements/empty.d.ts +6 -6
- package/build/elements/empty.js +2 -2
- package/build/elements/field.d.ts +10 -10
- package/build/elements/field.js +3 -4
- package/build/elements/hover-card.d.ts +3 -3
- package/build/elements/hover-card.js +2 -2
- package/build/elements/input-group.d.ts +7 -7
- package/build/elements/input-group.js +5 -5
- package/build/elements/input-otp.d.ts +4 -4
- package/build/elements/input.d.ts +1 -1
- package/build/elements/input.js +2 -2
- package/build/elements/item.d.ts +9 -9
- package/build/elements/item.js +2 -2
- package/build/elements/kbd.d.ts +2 -2
- package/build/elements/label.d.ts +1 -1
- package/build/elements/menubar.d.ts +16 -16
- package/build/elements/menubar.js +9 -11
- package/build/elements/native-select.d.ts +3 -3
- package/build/elements/native-select.js +2 -4
- package/build/elements/navigation-menu.d.ts +8 -8
- package/build/elements/navigation-menu.js +3 -5
- package/build/elements/pagination.d.ts +7 -7
- package/build/elements/pagination.js +4 -10
- package/build/elements/popover.d.ts +6 -6
- package/build/elements/popover.js +2 -2
- package/build/elements/progress.d.ts +5 -5
- package/build/elements/progress.js +2 -3
- package/build/elements/radio-group.d.ts +2 -2
- package/build/elements/resizable.d.ts +3 -3
- package/build/elements/scroll-area.d.ts +2 -2
- package/build/elements/scroll-area.js +2 -4
- package/build/elements/select.d.ts +9 -9
- package/build/elements/select.js +4 -9
- package/build/elements/separator.d.ts +1 -1
- package/build/elements/sheet.d.ts +8 -8
- package/build/elements/sheet.js +2 -6
- package/build/elements/sidebar.d.ts +19 -19
- package/build/elements/sidebar.js +15 -37
- package/build/elements/skeleton.d.ts +1 -1
- package/build/elements/slider.d.ts +2 -1
- package/build/elements/slider.js +2 -3
- package/build/elements/sonner.d.ts +1 -1
- package/build/elements/spinner.d.ts +1 -1
- package/build/elements/switch.d.ts +1 -1
- package/build/elements/table.d.ts +8 -8
- package/build/elements/tabs.d.ts +4 -4
- package/build/elements/tabs.js +3 -3
- package/build/elements/textarea.d.ts +1 -1
- package/build/elements/textarea.js +2 -2
- package/build/elements/toggle-group.d.ts +3 -2
- package/build/elements/toggle-group.js +3 -3
- package/build/elements/toggle.d.ts +1 -1
- package/build/elements/toggle.js +2 -2
- package/build/elements/tooltip.d.ts +4 -4
- package/build/elements/tooltip.js +2 -3
- package/build/head.d.ts +4 -0
- package/build/head.js +6 -0
- package/build/helpers/article-search.d.ts +19 -0
- package/build/helpers/article-search.js +134 -0
- package/build/helpers/dependency-dir.d.ts +5 -0
- package/build/helpers/dependency-dir.js +20 -0
- package/build/helpers/dependency-dir.unit.d.ts +1 -0
- package/build/helpers/dependency-dir.unit.js +25 -0
- package/build/helpers/dynamic-icon-resolver.d.ts +1 -1
- package/build/helpers/dynamic-icon.d.ts +1 -1
- package/build/helpers/head.d.ts +53 -0
- package/build/helpers/head.js +69 -0
- package/build/helpers/head.unit.d.ts +1 -0
- package/build/helpers/head.unit.js +108 -0
- package/build/helpers/nav-items.d.ts +11 -0
- package/build/helpers/nav-items.js +65 -0
- package/build/helpers/render-inline-markdown.d.ts +1 -0
- package/build/helpers/render-inline-markdown.js +34 -0
- package/build/helpers/render-inline-markdown.unit.d.ts +1 -0
- package/build/helpers/render-inline-markdown.unit.js +20 -0
- package/build/helpers/search-highlight.d.ts +8 -0
- package/build/helpers/search-highlight.js +59 -0
- package/build/helpers/search-highlight.unit.d.ts +1 -0
- package/build/helpers/search-highlight.unit.js +36 -0
- package/build/helpers/target-export.d.ts +9 -0
- package/build/helpers/target-export.js +24 -0
- package/build/helpers/target-export.unit.d.ts +1 -0
- package/build/helpers/target-export.unit.js +25 -0
- package/build/helpers/theme.d.ts +6 -2
- package/build/helpers/theme.js +40 -7
- package/build/helpers/theme.unit.d.ts +1 -0
- package/build/helpers/theme.unit.js +30 -0
- package/build/hooks/hydrated.d.ts +2 -0
- package/build/hooks/hydrated.js +15 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +1 -1
- package/build/models/config.d.ts +32 -6
- package/build/models/config.js +10 -1
- package/build/models/section.d.ts +4 -2
- package/build/models/section.js +1 -1
- package/build/plugins/vite-livemark.d.ts +4 -5
- package/build/plugins/vite-livemark.js +56 -90
- package/build/program.js +4 -2
- package/build/routes/$.d.ts +4 -1
- package/build/routes/$.js +20 -9
- package/build/routes/__root.js +29 -63
- package/build/settings.js +2 -1
- package/package.json +68 -66
- package/{.agents/skills → skills}/livemark-authoring/SKILL.md +2 -2
- package/{.agents/skills → skills}/livemark-configuration/SKILL.md +12 -5
- package/skills/livemark-customization/SKILL.md +145 -0
- package/source/actions/config/define.unit.ts +9 -0
- package/source/actions/escape/copy.ts +35 -0
- package/source/actions/escape/copy.unit.ts +51 -0
- package/source/actions/escape/list.ts +30 -0
- package/source/actions/escape/list.unit.ts +42 -0
- package/source/actions/target/build.ts +49 -69
- package/source/actions/target/build.unit.ts +95 -0
- package/source/actions/target/clear.ts +14 -0
- package/source/actions/target/clear.unit.ts +25 -0
- package/source/commands/build.ts +0 -1
- package/source/commands/clear.ts +15 -0
- package/source/commands/escape.ts +42 -59
- package/source/commands/preview.ts +0 -1
- package/source/commands/start.ts +0 -1
- package/source/components/AnsiCode.tsx +1 -1
- package/source/components/Article.tsx +8 -4
- package/source/components/Banner.tsx +12 -2
- package/source/components/BlogIndex.tsx +1 -1
- package/source/components/Callout.tsx +4 -6
- package/source/components/ChangelogIndex.tsx +1 -1
- package/source/components/ChoiceList.tsx +69 -0
- package/source/components/CodeBlock.tsx +6 -6
- package/source/components/CodeTabs.tsx +1 -1
- package/source/components/ContentTabs.tsx +1 -1
- package/source/components/DefaultCatchBoundary.tsx +4 -6
- package/source/components/Details.tsx +1 -1
- package/source/components/FileTree.tsx +1 -1
- package/source/components/Header.tsx +52 -0
- package/source/components/HeaderMenu.tsx +41 -0
- package/source/components/HeaderNav.tsx +145 -0
- package/source/components/HeaderSearch.tsx +77 -0
- package/source/components/InlineBadge.tsx +1 -1
- package/source/components/InlineToc.tsx +1 -1
- package/source/components/Layout.tsx +16 -160
- package/source/components/LinkButton.tsx +9 -1
- package/source/components/MenuSheet.tsx +92 -0
- package/source/components/MermaidRenderer.tsx +19 -8
- package/source/components/NotFound.tsx +3 -5
- package/source/components/PackageTabs.tsx +2 -2
- package/source/components/PageToolbar.tsx +11 -3
- package/source/components/PrevNext.tsx +2 -2
- package/source/components/Root.tsx +13 -0
- package/source/components/Search.tsx +28 -8
- package/source/components/SearchDialog.tsx +15 -189
- package/source/components/SheetPanel.tsx +69 -0
- package/source/components/Sidebar.tsx +27 -14
- package/source/components/SidebarArticles.tsx +4 -3
- package/source/components/SidebarLinks.tsx +3 -2
- package/source/components/SidebarPosts.tsx +3 -2
- package/source/components/SidebarReleases.tsx +3 -2
- package/source/components/SidebarSectionPicker.tsx +70 -0
- package/source/components/SiteTitle.tsx +5 -5
- package/source/components/SoundCloud.tsx +1 -1
- package/source/components/TagIndex.tsx +1 -1
- package/source/components/Theme.tsx +55 -29
- package/source/components/Toc.tsx +76 -55
- package/source/components/YouTube.tsx +1 -1
- package/source/content-collections.ts +4 -0
- package/source/elements/alert-dialog.tsx +1 -1
- package/source/elements/alert.tsx +1 -1
- package/source/elements/badge.tsx +4 -0
- package/source/elements/button-group.tsx +4 -4
- package/source/elements/button.tsx +10 -6
- package/source/elements/calendar.tsx +1 -1
- package/source/elements/card.tsx +3 -3
- package/source/elements/command.tsx +7 -4
- package/source/elements/context-menu.tsx +5 -5
- package/source/elements/dialog.tsx +1 -1
- package/source/elements/drawer.tsx +59 -43
- package/source/elements/dropdown-menu.tsx +6 -6
- package/source/elements/empty.tsx +1 -1
- package/source/elements/field.tsx +1 -1
- package/source/elements/hover-card.tsx +1 -1
- package/source/elements/input-group.tsx +4 -4
- package/source/elements/input.tsx +1 -1
- package/source/elements/item.tsx +1 -1
- package/source/elements/menubar.tsx +8 -8
- package/source/elements/native-select.tsx +1 -1
- package/source/elements/popover.tsx +1 -1
- package/source/elements/select.tsx +3 -3
- package/source/elements/sidebar.tsx +8 -21
- package/source/elements/tabs.tsx +2 -2
- package/source/elements/textarea.tsx +1 -1
- package/source/elements/toggle-group.tsx +2 -2
- package/source/elements/toggle.tsx +1 -1
- package/source/env.d.ts +1 -0
- package/source/head.ts +7 -0
- package/source/helpers/article-search.tsx +192 -0
- package/source/helpers/dependency-dir.ts +20 -0
- package/source/helpers/dependency-dir.unit.ts +39 -0
- package/source/helpers/head.ts +94 -0
- package/source/helpers/head.unit.ts +116 -0
- package/source/helpers/nav-items.tsx +102 -0
- package/source/helpers/render-inline-markdown.ts +44 -0
- package/source/helpers/render-inline-markdown.unit.ts +30 -0
- package/source/helpers/search-highlight.ts +73 -0
- package/source/helpers/search-highlight.unit.ts +42 -0
- package/source/helpers/target-export.ts +28 -0
- package/source/helpers/target-export.unit.ts +37 -0
- package/source/helpers/theme.ts +40 -6
- package/source/helpers/theme.unit.ts +32 -0
- package/source/hooks/hydrated.ts +18 -0
- package/source/index.ts +1 -0
- package/source/models/config.ts +13 -0
- package/source/models/section.ts +3 -0
- package/source/plugins/vite-livemark.ts +54 -95
- package/source/program.ts +2 -0
- package/source/routes/$.tsx +27 -9
- package/source/routes/__root.tsx +51 -71
- package/source/settings.ts +1 -0
- package/source/styles/general.css +59 -11
- package/source/styles/markdown.css +13 -7
- package/source/styles/shape.css +14 -0
- package/.agents/skills/change-review/SKILL.md +0 -47
- package/.agents/skills/livemark-customization/SKILL.md +0 -118
|
@@ -3,7 +3,7 @@ import { cva, type VariantProps } from "class-variance-authority"
|
|
|
3
3
|
import { cn } from "cn"
|
|
4
4
|
|
|
5
5
|
const buttonVariants = cva(
|
|
6
|
-
"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-
|
|
6
|
+
"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-control border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-[3px] aria-invalid:ring-[3px] [&_svg:not([class*='size-'])]:size-4 inline-flex items-center justify-center whitespace-nowrap transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none group/button select-none",
|
|
7
7
|
{
|
|
8
8
|
variants: {
|
|
9
9
|
variant: {
|
|
@@ -16,19 +16,23 @@ const buttonVariants = cva(
|
|
|
16
16
|
"hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground",
|
|
17
17
|
destructive:
|
|
18
18
|
"bg-destructive/10 hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/20 text-destructive focus-visible:border-destructive/40 dark:hover:bg-destructive/30",
|
|
19
|
+
positive:
|
|
20
|
+
"bg-positive/10 hover:bg-positive/20 focus-visible:ring-positive/20 dark:focus-visible:ring-positive/40 dark:bg-positive/20 text-positive-tint-foreground focus-visible:border-positive/40 dark:hover:bg-positive/30",
|
|
21
|
+
warning:
|
|
22
|
+
"bg-warning/10 hover:bg-warning/20 focus-visible:ring-warning/20 dark:focus-visible:ring-warning/40 dark:bg-warning/20 text-warning-tint-foreground focus-visible:border-warning/40 dark:hover:bg-warning/30",
|
|
19
23
|
link: "text-primary underline-offset-4 hover:underline",
|
|
20
24
|
},
|
|
21
25
|
size: {
|
|
22
26
|
default:
|
|
23
|
-
"h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-
|
|
24
|
-
xs: "h-6 gap-1 rounded-
|
|
25
|
-
sm: "h-8 gap-1 rounded-
|
|
27
|
+
"h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-control has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
28
|
+
xs: "h-6 gap-1 rounded-control-xs px-2 text-xs in-data-[slot=button-group]:rounded-control has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
29
|
+
sm: "h-8 gap-1 rounded-control-sm px-2.5 in-data-[slot=button-group]:rounded-control has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5",
|
|
26
30
|
lg: "h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",
|
|
27
31
|
icon: "size-9",
|
|
28
32
|
"icon-xs":
|
|
29
|
-
"size-6 rounded-
|
|
33
|
+
"size-6 rounded-control-xs in-data-[slot=button-group]:rounded-control [&_svg:not([class*='size-'])]:size-3",
|
|
30
34
|
"icon-sm":
|
|
31
|
-
"size-8 rounded-
|
|
35
|
+
"size-8 rounded-control-sm in-data-[slot=button-group]:rounded-control",
|
|
32
36
|
"icon-lg": "size-10",
|
|
33
37
|
},
|
|
34
38
|
},
|
|
@@ -79,7 +79,7 @@ function Calendar({
|
|
|
79
79
|
: "cn-calendar-caption-label flex items-center gap-1 rounded-(--cell-radius) text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground",
|
|
80
80
|
defaultClassNames.caption_label,
|
|
81
81
|
),
|
|
82
|
-
|
|
82
|
+
month_grid: "w-full border-collapse",
|
|
83
83
|
weekdays: cn("flex", defaultClassNames.weekdays),
|
|
84
84
|
weekday: cn(
|
|
85
85
|
"flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none",
|
package/source/elements/card.tsx
CHANGED
|
@@ -11,7 +11,7 @@ function Card({
|
|
|
11
11
|
data-slot="card"
|
|
12
12
|
data-size={size}
|
|
13
13
|
className={cn(
|
|
14
|
-
"ring-foreground/10 bg-card text-card-foreground gap-6 overflow-hidden rounded-
|
|
14
|
+
"ring-foreground/10 bg-card text-card-foreground gap-6 overflow-hidden rounded-card py-6 text-sm shadow-xs ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-card *:[img:last-child]:rounded-b-card group/card flex flex-col",
|
|
15
15
|
className,
|
|
16
16
|
)}
|
|
17
17
|
{...props}
|
|
@@ -24,7 +24,7 @@ function CardHeader({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
24
24
|
<div
|
|
25
25
|
data-slot="card-header"
|
|
26
26
|
className={cn(
|
|
27
|
-
"gap-1 rounded-t-
|
|
27
|
+
"gap-1 rounded-t-card px-6 group-data-[size=sm]/card:px-4 [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]",
|
|
28
28
|
className,
|
|
29
29
|
)}
|
|
30
30
|
{...props}
|
|
@@ -83,7 +83,7 @@ function CardFooter({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
83
83
|
<div
|
|
84
84
|
data-slot="card-footer"
|
|
85
85
|
className={cn(
|
|
86
|
-
"rounded-b-
|
|
86
|
+
"rounded-b-card px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4 flex items-center",
|
|
87
87
|
className,
|
|
88
88
|
)}
|
|
89
89
|
{...props}
|
|
@@ -17,7 +17,7 @@ function Command({ className, ...props }: React.ComponentProps<typeof CommandPri
|
|
|
17
17
|
<CommandPrimitive
|
|
18
18
|
data-slot="command"
|
|
19
19
|
className={cn(
|
|
20
|
-
"flex size-full flex-col overflow-hidden rounded-
|
|
20
|
+
"flex size-full flex-col overflow-hidden rounded-menu! bg-popover p-1 text-popover-foreground",
|
|
21
21
|
className,
|
|
22
22
|
)}
|
|
23
23
|
{...props}
|
|
@@ -50,7 +50,10 @@ function CommandDialog({
|
|
|
50
50
|
<DialogDescription>{description}</DialogDescription>
|
|
51
51
|
</DialogHeader>
|
|
52
52
|
<DialogContent
|
|
53
|
-
className={cn(
|
|
53
|
+
className={cn(
|
|
54
|
+
"top-1/3 translate-y-0 overflow-hidden rounded-panel! p-0",
|
|
55
|
+
className,
|
|
56
|
+
)}
|
|
54
57
|
showCloseButton={showCloseButton}
|
|
55
58
|
>
|
|
56
59
|
<Command shouldFilter={shouldFilter} loop={loop}>
|
|
@@ -71,7 +74,7 @@ function CommandInput({
|
|
|
71
74
|
const showClear = !!props.value
|
|
72
75
|
return (
|
|
73
76
|
<div data-slot="command-input-wrapper" className="p-1 pb-2">
|
|
74
|
-
<InputGroup className="h-12! rounded-
|
|
77
|
+
<InputGroup className="h-12! rounded-control! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-3!">
|
|
75
78
|
<CommandPrimitive.Input
|
|
76
79
|
data-slot="command-input"
|
|
77
80
|
className={cn(
|
|
@@ -164,7 +167,7 @@ function CommandItem({
|
|
|
164
167
|
<CommandPrimitive.Item
|
|
165
168
|
data-slot="command-item"
|
|
166
169
|
className={cn(
|
|
167
|
-
"group/command-item relative flex cursor-pointer items-center gap-2 rounded-
|
|
170
|
+
"group/command-item relative flex cursor-pointer items-center gap-2 rounded-menu-item px-2 py-1.5 text-sm outline-hidden select-none bg-muted/50 in-data-[slot=dialog-content]:rounded-menu-item! data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-primary/10 data-[selected=true]:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[selected=true]:**:[svg]:text-foreground",
|
|
168
171
|
className,
|
|
169
172
|
)}
|
|
170
173
|
{...props}
|
|
@@ -46,7 +46,7 @@ function ContextMenuContent({
|
|
|
46
46
|
<ContextMenuPrimitive.Popup
|
|
47
47
|
data-slot="context-menu-content"
|
|
48
48
|
className={cn(
|
|
49
|
-
"cn-menu-target cn-menu-translucent z-50 max-h-(--available-height) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-
|
|
49
|
+
"cn-menu-target cn-menu-translucent z-50 max-h-(--available-height) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-menu bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 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",
|
|
50
50
|
className,
|
|
51
51
|
)}
|
|
52
52
|
{...props}
|
|
@@ -95,7 +95,7 @@ function ContextMenuItem({
|
|
|
95
95
|
data-inset={inset}
|
|
96
96
|
data-variant={variant}
|
|
97
97
|
className={cn(
|
|
98
|
-
"group/context-menu-item relative flex cursor-default items-center gap-2 rounded-
|
|
98
|
+
"group/context-menu-item relative flex cursor-default items-center gap-2 rounded-menu-item px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive",
|
|
99
99
|
className,
|
|
100
100
|
)}
|
|
101
101
|
{...props}
|
|
@@ -120,7 +120,7 @@ function ContextMenuSubTrigger({
|
|
|
120
120
|
data-slot="context-menu-sub-trigger"
|
|
121
121
|
data-inset={inset}
|
|
122
122
|
className={cn(
|
|
123
|
-
"flex cursor-default items-center rounded-
|
|
123
|
+
"flex cursor-default items-center rounded-menu-item px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-8 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
124
124
|
className,
|
|
125
125
|
)}
|
|
126
126
|
{...props}
|
|
@@ -158,7 +158,7 @@ function ContextMenuCheckboxItem({
|
|
|
158
158
|
data-slot="context-menu-checkbox-item"
|
|
159
159
|
data-inset={inset}
|
|
160
160
|
className={cn(
|
|
161
|
-
"relative flex cursor-default items-center gap-2 rounded-
|
|
161
|
+
"relative flex cursor-default items-center gap-2 rounded-menu-item py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
162
162
|
className,
|
|
163
163
|
)}
|
|
164
164
|
checked={checked}
|
|
@@ -193,7 +193,7 @@ function ContextMenuRadioItem({
|
|
|
193
193
|
data-slot="context-menu-radio-item"
|
|
194
194
|
data-inset={inset}
|
|
195
195
|
className={cn(
|
|
196
|
-
"relative flex cursor-default items-center gap-2 rounded-
|
|
196
|
+
"relative flex cursor-default items-center gap-2 rounded-menu-item py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
197
197
|
className,
|
|
198
198
|
)}
|
|
199
199
|
{...props}
|
|
@@ -46,7 +46,7 @@ function DialogContent({
|
|
|
46
46
|
<DialogPrimitive.Popup
|
|
47
47
|
data-slot="dialog-content"
|
|
48
48
|
className={cn(
|
|
49
|
-
"bg-background data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 ring-foreground/10 grid max-w-[calc(100%-2rem)] gap-6 rounded-
|
|
49
|
+
"bg-background data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 ring-foreground/10 grid max-w-[calc(100%-2rem)] gap-6 rounded-panel p-6 text-sm ring-1 duration-100 sm:max-w-md fixed top-1/2 left-1/2 z-50 w-full -translate-x-1/2 -translate-y-1/2 outline-none",
|
|
50
50
|
className,
|
|
51
51
|
)}
|
|
52
52
|
{...props}
|
|
@@ -1,33 +1,30 @@
|
|
|
1
|
-
import { Drawer as DrawerPrimitive } from "
|
|
1
|
+
import { Drawer as DrawerPrimitive } from "@base-ui/react/drawer"
|
|
2
|
+
import { XIcon } from "lucide-react"
|
|
2
3
|
import { cn } from "cn"
|
|
4
|
+
import { Button } from "./button.tsx"
|
|
3
5
|
|
|
4
|
-
function Drawer({ ...props }:
|
|
6
|
+
function Drawer({ ...props }: DrawerPrimitive.Root.Props) {
|
|
5
7
|
return <DrawerPrimitive.Root data-slot="drawer" {...props} />
|
|
6
8
|
}
|
|
7
9
|
|
|
8
|
-
function DrawerTrigger({
|
|
9
|
-
...props
|
|
10
|
-
}: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {
|
|
10
|
+
function DrawerTrigger({ ...props }: DrawerPrimitive.Trigger.Props) {
|
|
11
11
|
return <DrawerPrimitive.Trigger data-slot="drawer-trigger" {...props} />
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
function
|
|
15
|
-
return <DrawerPrimitive.
|
|
14
|
+
function DrawerClose({ ...props }: DrawerPrimitive.Close.Props) {
|
|
15
|
+
return <DrawerPrimitive.Close data-slot="drawer-close" {...props} />
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
function
|
|
19
|
-
return <DrawerPrimitive.
|
|
18
|
+
function DrawerPortal({ ...props }: DrawerPrimitive.Portal.Props) {
|
|
19
|
+
return <DrawerPrimitive.Portal data-slot="drawer-portal" {...props} />
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
function
|
|
23
|
-
className,
|
|
24
|
-
...props
|
|
25
|
-
}: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {
|
|
22
|
+
function DrawerBackdrop({ className, ...props }: DrawerPrimitive.Backdrop.Props) {
|
|
26
23
|
return (
|
|
27
|
-
<DrawerPrimitive.
|
|
28
|
-
data-slot="drawer-
|
|
24
|
+
<DrawerPrimitive.Backdrop
|
|
25
|
+
data-slot="drawer-backdrop"
|
|
29
26
|
className={cn(
|
|
30
|
-
"
|
|
27
|
+
"fixed inset-0 z-50 bg-black/10 transition-opacity duration-300 ease-out data-ending-style:opacity-0 data-ending-style:[transition-duration:calc(var(--drawer-swipe-strength)*400ms)] data-starting-style:opacity-0 motion-reduce:transition-none supports-backdrop-filter:backdrop-blur-xs",
|
|
31
28
|
className,
|
|
32
29
|
)}
|
|
33
30
|
{...props}
|
|
@@ -38,22 +35,50 @@ function DrawerOverlay({
|
|
|
38
35
|
function DrawerContent({
|
|
39
36
|
className,
|
|
40
37
|
children,
|
|
38
|
+
showCloseButton = true,
|
|
41
39
|
...props
|
|
42
|
-
}:
|
|
40
|
+
}: DrawerPrimitive.Popup.Props & { showCloseButton?: boolean }) {
|
|
43
41
|
return (
|
|
44
|
-
<DrawerPortal
|
|
45
|
-
<
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
)}
|
|
52
|
-
{...props}
|
|
42
|
+
<DrawerPortal>
|
|
43
|
+
<DrawerBackdrop />
|
|
44
|
+
{/* Taking pointer events, the full-screen viewport would swallow every tap on
|
|
45
|
+
the page behind the sheet. */}
|
|
46
|
+
<DrawerPrimitive.Viewport
|
|
47
|
+
data-slot="drawer-viewport"
|
|
48
|
+
className="pointer-events-none fixed inset-0 z-50"
|
|
53
49
|
>
|
|
54
|
-
<
|
|
55
|
-
|
|
56
|
-
|
|
50
|
+
<DrawerPrimitive.Popup
|
|
51
|
+
data-slot="drawer-content"
|
|
52
|
+
className={cn(
|
|
53
|
+
"bg-background pointer-events-auto absolute inset-x-0 bottom-0 flex flex-col gap-4 rounded-t-panel border-t bg-clip-padding text-sm shadow-lg will-change-transform",
|
|
54
|
+
"translate-y-[calc(var(--drawer-snap-point-offset)+var(--drawer-swipe-movement-y))] transition-transform duration-300 ease-out data-swiping:duration-0",
|
|
55
|
+
"data-ending-style:translate-y-full data-ending-style:[transition-duration:calc(var(--drawer-swipe-strength)*400ms)] data-starting-style:translate-y-full motion-reduce:transition-none",
|
|
56
|
+
className,
|
|
57
|
+
)}
|
|
58
|
+
{...props}
|
|
59
|
+
>
|
|
60
|
+
<div
|
|
61
|
+
aria-hidden
|
|
62
|
+
className="bg-border mx-auto mt-2 h-1 w-9 shrink-0 rounded-full"
|
|
63
|
+
/>
|
|
64
|
+
{children}
|
|
65
|
+
{showCloseButton && (
|
|
66
|
+
<DrawerPrimitive.Close
|
|
67
|
+
data-slot="drawer-close"
|
|
68
|
+
render={
|
|
69
|
+
<Button
|
|
70
|
+
variant="ghost"
|
|
71
|
+
className="absolute top-4 right-4"
|
|
72
|
+
size="icon-sm"
|
|
73
|
+
/>
|
|
74
|
+
}
|
|
75
|
+
>
|
|
76
|
+
<XIcon />
|
|
77
|
+
<span className="sr-only">Close</span>
|
|
78
|
+
</DrawerPrimitive.Close>
|
|
79
|
+
)}
|
|
80
|
+
</DrawerPrimitive.Popup>
|
|
81
|
+
</DrawerPrimitive.Viewport>
|
|
57
82
|
</DrawerPortal>
|
|
58
83
|
)
|
|
59
84
|
}
|
|
@@ -62,10 +87,7 @@ function DrawerHeader({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
62
87
|
return (
|
|
63
88
|
<div
|
|
64
89
|
data-slot="drawer-header"
|
|
65
|
-
className={cn(
|
|
66
|
-
"gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left flex flex-col",
|
|
67
|
-
className,
|
|
68
|
-
)}
|
|
90
|
+
className={cn("flex flex-col gap-1.5 p-4", className)}
|
|
69
91
|
{...props}
|
|
70
92
|
/>
|
|
71
93
|
)
|
|
@@ -75,16 +97,13 @@ function DrawerFooter({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
75
97
|
return (
|
|
76
98
|
<div
|
|
77
99
|
data-slot="drawer-footer"
|
|
78
|
-
className={cn("
|
|
100
|
+
className={cn("mt-auto flex flex-col gap-2 p-4", className)}
|
|
79
101
|
{...props}
|
|
80
102
|
/>
|
|
81
103
|
)
|
|
82
104
|
}
|
|
83
105
|
|
|
84
|
-
function DrawerTitle({
|
|
85
|
-
className,
|
|
86
|
-
...props
|
|
87
|
-
}: React.ComponentProps<typeof DrawerPrimitive.Title>) {
|
|
106
|
+
function DrawerTitle({ className, ...props }: DrawerPrimitive.Title.Props) {
|
|
88
107
|
return (
|
|
89
108
|
<DrawerPrimitive.Title
|
|
90
109
|
data-slot="drawer-title"
|
|
@@ -94,10 +113,7 @@ function DrawerTitle({
|
|
|
94
113
|
)
|
|
95
114
|
}
|
|
96
115
|
|
|
97
|
-
function DrawerDescription({
|
|
98
|
-
className,
|
|
99
|
-
...props
|
|
100
|
-
}: React.ComponentProps<typeof DrawerPrimitive.Description>) {
|
|
116
|
+
function DrawerDescription({ className, ...props }: DrawerPrimitive.Description.Props) {
|
|
101
117
|
return (
|
|
102
118
|
<DrawerPrimitive.Description
|
|
103
119
|
data-slot="drawer-description"
|
|
@@ -110,7 +126,7 @@ function DrawerDescription({
|
|
|
110
126
|
export {
|
|
111
127
|
Drawer,
|
|
112
128
|
DrawerPortal,
|
|
113
|
-
|
|
129
|
+
DrawerBackdrop,
|
|
114
130
|
DrawerTrigger,
|
|
115
131
|
DrawerClose,
|
|
116
132
|
DrawerContent,
|
|
@@ -35,7 +35,7 @@ function DropdownMenuContent({
|
|
|
35
35
|
<MenuPrimitive.Popup
|
|
36
36
|
data-slot="dropdown-menu-content"
|
|
37
37
|
className={cn(
|
|
38
|
-
"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-
|
|
38
|
+
"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-menu p-1 shadow-md ring-1 duration-100 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none data-closed:overflow-hidden",
|
|
39
39
|
className,
|
|
40
40
|
)}
|
|
41
41
|
{...props}
|
|
@@ -84,7 +84,7 @@ function DropdownMenuItem({
|
|
|
84
84
|
data-inset={inset}
|
|
85
85
|
data-variant={variant}
|
|
86
86
|
className={cn(
|
|
87
|
-
"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-
|
|
87
|
+
"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-menu-item px-2 py-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 group/dropdown-menu-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
88
88
|
className,
|
|
89
89
|
)}
|
|
90
90
|
{...props}
|
|
@@ -109,7 +109,7 @@ function DropdownMenuSubTrigger({
|
|
|
109
109
|
data-slot="dropdown-menu-sub-trigger"
|
|
110
110
|
data-inset={inset}
|
|
111
111
|
className={cn(
|
|
112
|
-
"focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-
|
|
112
|
+
"focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-menu-item px-2 py-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 data-popup-open:bg-accent data-popup-open:text-accent-foreground flex cursor-default items-center outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
113
113
|
className,
|
|
114
114
|
)}
|
|
115
115
|
{...props}
|
|
@@ -132,7 +132,7 @@ function DropdownMenuSubContent({
|
|
|
132
132
|
<DropdownMenuContent
|
|
133
133
|
data-slot="dropdown-menu-sub-content"
|
|
134
134
|
className={cn(
|
|
135
|
-
"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-[96px] rounded-
|
|
135
|
+
"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-[96px] rounded-menu p-1 shadow-lg ring-1 duration-100 w-auto",
|
|
136
136
|
className,
|
|
137
137
|
)}
|
|
138
138
|
align={align}
|
|
@@ -154,7 +154,7 @@ function DropdownMenuCheckboxItem({
|
|
|
154
154
|
<MenuPrimitive.CheckboxItem
|
|
155
155
|
data-slot="dropdown-menu-checkbox-item"
|
|
156
156
|
className={cn(
|
|
157
|
-
"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-
|
|
157
|
+
"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-menu-item py-1.5 pr-8 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
158
158
|
className,
|
|
159
159
|
)}
|
|
160
160
|
checked={checked}
|
|
@@ -186,7 +186,7 @@ function DropdownMenuRadioItem({
|
|
|
186
186
|
<MenuPrimitive.RadioItem
|
|
187
187
|
data-slot="dropdown-menu-radio-item"
|
|
188
188
|
className={cn(
|
|
189
|
-
"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-
|
|
189
|
+
"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-menu-item py-1.5 pr-8 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
190
190
|
className,
|
|
191
191
|
)}
|
|
192
192
|
{...props}
|
|
@@ -7,7 +7,7 @@ function Empty({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
7
7
|
<div
|
|
8
8
|
data-slot="empty"
|
|
9
9
|
className={cn(
|
|
10
|
-
"flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-
|
|
10
|
+
"flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-card border-dashed p-12 text-center text-balance",
|
|
11
11
|
className,
|
|
12
12
|
)}
|
|
13
13
|
{...props}
|
|
@@ -100,7 +100,7 @@ function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>)
|
|
|
100
100
|
<Label
|
|
101
101
|
data-slot="field-label"
|
|
102
102
|
className={cn(
|
|
103
|
-
"has-data-checked:bg-primary/5 has-data-checked:border-primary dark:has-data-checked:bg-primary/10 gap-2 group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-
|
|
103
|
+
"has-data-checked:bg-primary/5 has-data-checked:border-primary dark:has-data-checked:bg-primary/10 gap-2 group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-row has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-3 group/field-label peer/field-label flex w-fit leading-snug",
|
|
104
104
|
"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col",
|
|
105
105
|
className,
|
|
106
106
|
)}
|
|
@@ -34,7 +34,7 @@ function HoverCardContent({
|
|
|
34
34
|
<PreviewCardPrimitive.Popup
|
|
35
35
|
data-slot="hover-card-content"
|
|
36
36
|
className={cn(
|
|
37
|
-
"z-50 w-64 origin-(--transform-origin) rounded-
|
|
37
|
+
"z-50 w-64 origin-(--transform-origin) rounded-card bg-popover p-4 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 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",
|
|
38
38
|
className,
|
|
39
39
|
)}
|
|
40
40
|
{...props}
|
|
@@ -10,7 +10,7 @@ function InputGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
10
10
|
data-slot="input-group"
|
|
11
11
|
role="group"
|
|
12
12
|
className={cn(
|
|
13
|
-
"border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 h-9 rounded-
|
|
13
|
+
"border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 h-9 rounded-control border shadow-xs transition-[color,box-shadow] has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5 [[data-slot=combobox-content]_&]:focus-within:border-inherit [[data-slot=combobox-content]_&]:focus-within:ring-0 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto",
|
|
14
14
|
className,
|
|
15
15
|
)}
|
|
16
16
|
{...props}
|
|
@@ -19,7 +19,7 @@ function InputGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
const inputGroupAddonVariants = cva(
|
|
22
|
-
"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-
|
|
22
|
+
"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-control-inset [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none",
|
|
23
23
|
{
|
|
24
24
|
variants: {
|
|
25
25
|
align: {
|
|
@@ -64,9 +64,9 @@ function InputGroupAddon({
|
|
|
64
64
|
const inputGroupButtonVariants = cva("gap-2 text-sm shadow-none flex items-center", {
|
|
65
65
|
variants: {
|
|
66
66
|
size: {
|
|
67
|
-
xs: "h-6 gap-1 rounded-
|
|
67
|
+
xs: "h-6 gap-1 rounded-control-inset px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
|
|
68
68
|
sm: "",
|
|
69
|
-
"icon-xs": "size-6 rounded-
|
|
69
|
+
"icon-xs": "size-6 rounded-control-inset p-0 has-[>svg]:p-0",
|
|
70
70
|
"icon-sm": "size-8 p-0 has-[>svg]:p-0",
|
|
71
71
|
},
|
|
72
72
|
},
|
|
@@ -7,7 +7,7 @@ function Input({ className, type, ...props }: React.ComponentProps<"input">) {
|
|
|
7
7
|
type={type}
|
|
8
8
|
data-slot="input"
|
|
9
9
|
className={cn(
|
|
10
|
-
"dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 h-9 rounded-
|
|
10
|
+
"dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 h-9 rounded-control border bg-transparent px-2.5 py-1 text-base shadow-xs transition-[color,box-shadow] file:h-7 file:text-sm file:font-medium focus-visible:ring-[3px] aria-invalid:ring-[3px] md:text-sm file:text-foreground placeholder:text-muted-foreground w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
|
|
11
11
|
className,
|
|
12
12
|
)}
|
|
13
13
|
{...props}
|
package/source/elements/item.tsx
CHANGED
|
@@ -30,7 +30,7 @@ function ItemSeparator({ className, ...props }: React.ComponentProps<typeof Sepa
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
const itemVariants = cva(
|
|
33
|
-
"[a]:hover:bg-muted rounded-
|
|
33
|
+
"[a]:hover:bg-muted rounded-row border text-sm w-full group/item focus-visible:border-ring focus-visible:ring-ring/50 flex items-center flex-wrap outline-none transition-colors duration-100 focus-visible:ring-[3px] [a]:transition-colors",
|
|
34
34
|
{
|
|
35
35
|
variants: {
|
|
36
36
|
variant: {
|
|
@@ -25,7 +25,7 @@ function Menubar({ className, ...props }: MenubarPrimitive.Props) {
|
|
|
25
25
|
<MenubarPrimitive
|
|
26
26
|
data-slot="menubar"
|
|
27
27
|
className={cn(
|
|
28
|
-
"flex h-9 items-center gap-1 rounded-
|
|
28
|
+
"flex h-9 items-center gap-1 rounded-control border p-1 shadow-xs",
|
|
29
29
|
className,
|
|
30
30
|
)}
|
|
31
31
|
{...props}
|
|
@@ -53,7 +53,7 @@ function MenubarTrigger({
|
|
|
53
53
|
<DropdownMenuTrigger
|
|
54
54
|
data-slot="menubar-trigger"
|
|
55
55
|
className={cn(
|
|
56
|
-
"flex items-center rounded-
|
|
56
|
+
"flex items-center rounded-control px-2 py-1 text-sm font-medium outline-hidden select-none hover:bg-muted aria-expanded:bg-muted",
|
|
57
57
|
className,
|
|
58
58
|
)}
|
|
59
59
|
{...props}
|
|
@@ -75,7 +75,7 @@ function MenubarContent({
|
|
|
75
75
|
alignOffset={alignOffset}
|
|
76
76
|
sideOffset={sideOffset}
|
|
77
77
|
className={cn(
|
|
78
|
-
"cn-menu-target cn-menu-translucent min-w-36 rounded-
|
|
78
|
+
"cn-menu-target cn-menu-translucent min-w-36 rounded-menu bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95",
|
|
79
79
|
className,
|
|
80
80
|
)}
|
|
81
81
|
{...props}
|
|
@@ -95,7 +95,7 @@ function MenubarItem({
|
|
|
95
95
|
data-inset={inset}
|
|
96
96
|
data-variant={variant}
|
|
97
97
|
className={cn(
|
|
98
|
-
"group/menubar-item gap-2 rounded-
|
|
98
|
+
"group/menubar-item gap-2 rounded-menu-item px-2 py-1.5 text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!",
|
|
99
99
|
className,
|
|
100
100
|
)}
|
|
101
101
|
{...props}
|
|
@@ -117,7 +117,7 @@ function MenubarCheckboxItem({
|
|
|
117
117
|
data-slot="menubar-checkbox-item"
|
|
118
118
|
data-inset={inset}
|
|
119
119
|
className={cn(
|
|
120
|
-
"relative flex cursor-default items-center gap-2 rounded-
|
|
120
|
+
"relative flex cursor-default items-center gap-2 rounded-menu-item py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
121
121
|
className,
|
|
122
122
|
)}
|
|
123
123
|
checked={checked}
|
|
@@ -152,7 +152,7 @@ function MenubarRadioItem({
|
|
|
152
152
|
data-slot="menubar-radio-item"
|
|
153
153
|
data-inset={inset}
|
|
154
154
|
className={cn(
|
|
155
|
-
"relative flex cursor-default items-center gap-2 rounded-
|
|
155
|
+
"relative flex cursor-default items-center gap-2 rounded-menu-item py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
156
156
|
className,
|
|
157
157
|
)}
|
|
158
158
|
{...props}
|
|
@@ -229,7 +229,7 @@ function MenubarSubTrigger({
|
|
|
229
229
|
data-slot="menubar-sub-trigger"
|
|
230
230
|
data-inset={inset}
|
|
231
231
|
className={cn(
|
|
232
|
-
"gap-2 rounded-
|
|
232
|
+
"gap-2 rounded-menu-item px-2 py-1.5 text-sm focus:bg-accent focus:text-accent-foreground data-inset:pl-8 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4",
|
|
233
233
|
className,
|
|
234
234
|
)}
|
|
235
235
|
{...props}
|
|
@@ -245,7 +245,7 @@ function MenubarSubContent({
|
|
|
245
245
|
<DropdownMenuSubContent
|
|
246
246
|
data-slot="menubar-sub-content"
|
|
247
247
|
className={cn(
|
|
248
|
-
"cn-menu-target cn-menu-translucent min-w-32 rounded-
|
|
248
|
+
"cn-menu-target cn-menu-translucent min-w-32 rounded-menu bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 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",
|
|
249
249
|
className,
|
|
250
250
|
)}
|
|
251
251
|
{...props}
|
|
@@ -20,7 +20,7 @@ function NativeSelect({ className, size = "default", ...props }: NativeSelectPro
|
|
|
20
20
|
<select
|
|
21
21
|
data-slot="native-select"
|
|
22
22
|
data-size={size}
|
|
23
|
-
className="h-9 w-full min-w-0 appearance-none rounded-
|
|
23
|
+
className="h-9 w-full min-w-0 appearance-none rounded-control border border-input bg-transparent py-1 pr-8 pl-2.5 text-sm shadow-xs transition-[color,box-shadow] outline-none select-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=sm]:h-8 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40"
|
|
24
24
|
{...props}
|
|
25
25
|
/>
|
|
26
26
|
<ChevronDownIcon
|
|
@@ -35,7 +35,7 @@ function PopoverContent({
|
|
|
35
35
|
<PopoverPrimitive.Popup
|
|
36
36
|
data-slot="popover-content"
|
|
37
37
|
className={cn(
|
|
38
|
-
"z-50 flex w-72 origin-(--transform-origin) flex-col gap-4 rounded-
|
|
38
|
+
"z-50 flex w-72 origin-(--transform-origin) flex-col gap-4 rounded-card bg-popover p-4 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 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",
|
|
39
39
|
className,
|
|
40
40
|
)}
|
|
41
41
|
{...props}
|
|
@@ -39,7 +39,7 @@ function SelectTrigger({
|
|
|
39
39
|
data-slot="select-trigger"
|
|
40
40
|
data-size={size}
|
|
41
41
|
className={cn(
|
|
42
|
-
"flex w-fit items-center justify-between gap-1.5 rounded-
|
|
42
|
+
"flex w-fit items-center justify-between gap-1.5 rounded-control border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
43
43
|
className,
|
|
44
44
|
)}
|
|
45
45
|
{...props}
|
|
@@ -82,7 +82,7 @@ function SelectContent({
|
|
|
82
82
|
data-slot="select-content"
|
|
83
83
|
data-align-trigger={alignItemWithTrigger}
|
|
84
84
|
className={cn(
|
|
85
|
-
"cn-menu-target cn-menu-translucent relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-
|
|
85
|
+
"cn-menu-target cn-menu-translucent relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-menu bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 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",
|
|
86
86
|
className,
|
|
87
87
|
)}
|
|
88
88
|
{...props}
|
|
@@ -111,7 +111,7 @@ function SelectItem({ className, children, ...props }: SelectPrimitive.Item.Prop
|
|
|
111
111
|
<SelectPrimitive.Item
|
|
112
112
|
data-slot="select-item"
|
|
113
113
|
className={cn(
|
|
114
|
-
"relative flex w-full cursor-default items-center gap-2 rounded-
|
|
114
|
+
"relative flex w-full cursor-default items-center gap-2 rounded-menu-item py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
|
115
115
|
className,
|
|
116
116
|
)}
|
|
117
117
|
{...props}
|