@lssm/lib.design-system 0.0.0-canary-20251217060804 → 0.0.0-canary-20251217062139
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/dist/_virtual/rolldown_runtime.js +1 -12
- package/dist/components/agent/AgentMonitor.js +3 -3
- package/dist/components/agent/ApprovalQueue.d.ts +2 -2
- package/dist/components/agent/ApprovalQueue.js +4 -5
- package/dist/components/atoms/ActionButtons.d.ts +3 -3
- package/dist/components/atoms/ActionButtons.js +3 -3
- package/dist/components/atoms/Button.d.ts +6 -6
- package/dist/components/atoms/Button.js +2 -2
- package/dist/components/atoms/ButtonLink.js +2 -2
- package/dist/components/atoms/Cta.d.ts +7 -7
- package/dist/components/atoms/Cta.js +2 -2
- package/dist/components/atoms/DataChips.d.ts +2 -2
- package/dist/components/atoms/DataChips.js +1 -1
- package/dist/components/atoms/EmptyState.d.ts +2 -2
- package/dist/components/atoms/EmptyState.js +1 -1
- package/dist/components/atoms/ErrorState.d.ts +8 -8
- package/dist/components/atoms/ErrorState.js +1 -1
- package/dist/components/atoms/Input.d.ts +2 -2
- package/dist/components/atoms/Input.js +1 -1
- package/dist/components/atoms/Link.web.d.ts +3 -3
- package/dist/components/atoms/Link.web.js +4 -6
- package/dist/components/atoms/LoaderCircular.d.ts +7 -7
- package/dist/components/atoms/LoaderCircular.js +2 -2
- package/dist/components/atoms/NavBrand.d.ts +5 -5
- package/dist/components/atoms/NavBrand.js +1 -1
- package/dist/components/atoms/Stepper.d.ts +2 -2
- package/dist/components/atoms/Stepper.js +1 -1
- package/dist/components/atoms/Textarea.d.ts +2 -2
- package/dist/components/atoms/Textarea.js +4 -4
- package/dist/components/data-view/DataViewDetail.d.ts +5 -5
- package/dist/components/data-view/DataViewList.d.ts +5 -5
- package/dist/components/data-view/DataViewRenderer.d.ts +7 -7
- package/dist/components/data-view/DataViewRenderer.js +3 -3
- package/dist/components/data-view/DataViewTable.d.ts +6 -6
- package/dist/components/forms/ActionForm.d.ts +5 -5
- package/dist/components/forms/ActionForm.js +1 -1
- package/dist/components/forms/FormCardLayout.d.ts +7 -7
- package/dist/components/forms/FormCardLayout.js +2 -2
- package/dist/components/forms/FormDialog.d.ts +7 -7
- package/dist/components/forms/FormDialog.js +1 -1
- package/dist/components/forms/FormLayout.d.ts +8 -8
- package/dist/components/forms/FormLayout.js +1 -1
- package/dist/components/forms/FormOneByOneLayout.d.ts +6 -6
- package/dist/components/forms/FormOneByOneLayout.js +4 -4
- package/dist/components/forms/FormStepsLayout.d.ts +6 -6
- package/dist/components/forms/FormStepsLayout.js +5 -5
- package/dist/components/forms/ZodForm.d.ts +6 -6
- package/dist/components/forms/ZodForm.js +1 -1
- package/dist/components/legal/atoms/DefinitionList.d.ts +5 -5
- package/dist/components/legal/atoms/DefinitionList.js +1 -1
- package/dist/components/legal/atoms/KeyValueList.d.ts +5 -5
- package/dist/components/legal/atoms/KeyValueList.js +1 -1
- package/dist/components/legal/atoms/LegalCallout.d.ts +6 -6
- package/dist/components/legal/atoms/LegalCallout.js +1 -1
- package/dist/components/legal/atoms/LegalHeading.d.ts +6 -6
- package/dist/components/legal/atoms/LegalHeading.js +1 -1
- package/dist/components/legal/atoms/LegalList.d.ts +6 -6
- package/dist/components/legal/atoms/LegalList.js +1 -1
- package/dist/components/legal/atoms/LegalSection.d.ts +6 -6
- package/dist/components/legal/atoms/LegalSection.js +1 -1
- package/dist/components/legal/atoms/LegalText.d.ts +6 -6
- package/dist/components/legal/atoms/LegalText.js +1 -1
- package/dist/components/legal/molecules/Consent.d.ts +8 -8
- package/dist/components/legal/molecules/Consent.js +2 -2
- package/dist/components/legal/molecules/ContactFields.d.ts +2 -2
- package/dist/components/legal/molecules/ContactFields.js +1 -1
- package/dist/components/legal/molecules/LegalMeta.d.ts +2 -2
- package/dist/components/legal/molecules/LegalMeta.js +1 -1
- package/dist/components/legal/molecules/LegalTOC.d.ts +7 -7
- package/dist/components/legal/molecules/LegalTOC.js +1 -1
- package/dist/components/legal/organisms/ContactForm.d.ts +4 -4
- package/dist/components/legal/organisms/ContactForm.js +3 -3
- package/dist/components/legal/organisms/GDPRDataRequest.d.ts +5 -5
- package/dist/components/legal/organisms/GDPRDataRequest.js +2 -2
- package/dist/components/legal/organisms/GDPRRights.d.ts +5 -5
- package/dist/components/legal/organisms/LegalPageLayout.d.ts +5 -5
- package/dist/components/legal/organisms/LegalPageLayout.js +1 -1
- package/dist/components/legal/templates/ContactTemplate.d.ts +4 -4
- package/dist/components/legal/templates/ContactTemplate.js +3 -3
- package/dist/components/legal/templates/CookiesTemplate.d.ts +9 -9
- package/dist/components/legal/templates/PrivacyTemplate.d.ts +9 -9
- package/dist/components/legal/templates/SalesTermsTemplate.d.ts +7 -7
- package/dist/components/legal/templates/TermsTemplate.d.ts +7 -7
- package/dist/components/marketing/MarketingCard.d.ts +4 -4
- package/dist/components/marketing/MarketingCard.js +3 -3
- package/dist/components/marketing/MarketingCardsSection.d.ts +2 -2
- package/dist/components/marketing/MarketingCardsSection.js +1 -1
- package/dist/components/marketing/MarketingComparisonSection.d.ts +5 -5
- package/dist/components/marketing/MarketingComparisonSection.js +3 -3
- package/dist/components/marketing/MarketingIconCard.d.ts +5 -5
- package/dist/components/marketing/MarketingIconCard.js +4 -3
- package/dist/components/marketing/MarketingSection.d.ts +5 -5
- package/dist/components/marketing/MarketingSection.js +3 -3
- package/dist/components/marketing/MarketingStepCard.d.ts +3 -3
- package/dist/components/marketing/MarketingStepCard.js +4 -3
- package/dist/components/molecules/AiLinkButton.d.ts +2 -2
- package/dist/components/molecules/AiLinkButton.js +5 -5
- package/dist/components/molecules/Breadcrumbs.d.ts +4 -4
- package/dist/components/molecules/Breadcrumbs.js +3 -3
- package/dist/components/molecules/CommandPalette.js +4 -4
- package/dist/components/molecules/CommandSearchTrigger.d.ts +2 -2
- package/dist/components/molecules/CommandSearchTrigger.js +5 -5
- package/dist/components/molecules/EntityCard.d.ts +11 -11
- package/dist/components/molecules/EntityCard.js +2 -2
- package/dist/components/molecules/FiltersToolbar.d.ts +6 -6
- package/dist/components/molecules/FiltersToolbar.js +6 -6
- package/dist/components/molecules/HoverPreview.d.ts +5 -5
- package/dist/components/molecules/HoverPreview.js +4 -2
- package/dist/components/molecules/LangSwitch.d.ts +4 -4
- package/dist/components/molecules/LangSwitchDropdown.js +4 -4
- package/dist/components/molecules/LoaderBlock.d.ts +5 -5
- package/dist/components/molecules/LoaderBlock.js +1 -1
- package/dist/components/molecules/MobileNavMenu.js +1 -1
- package/dist/components/molecules/NavItemCard.js +1 -1
- package/dist/components/molecules/NavMain.d.ts +2 -2
- package/dist/components/molecules/NavMain.js +4 -4
- package/dist/components/molecules/NavUser.js +2 -2
- package/dist/components/molecules/OverviewCard.d.ts +4 -4
- package/dist/components/molecules/OverviewCard.js +3 -5
- package/dist/components/molecules/SkeletonBlock/index.web.d.ts +2 -2
- package/dist/components/molecules/SkeletonBlock/index.web.js +2 -2
- package/dist/components/molecules/SkeletonCircle/index.web.js +1 -1
- package/dist/components/molecules/SkeletonList/index.web.d.ts +2 -2
- package/dist/components/molecules/SkeletonList/index.web.js +1 -1
- package/dist/components/molecules/StatCard.d.ts +11 -11
- package/dist/components/molecules/StatCard.js +2 -2
- package/dist/components/molecules/StatusChip.d.ts +7 -7
- package/dist/components/molecules/StatusChip.js +1 -1
- package/dist/components/molecules/hover-previews/Doc.d.ts +6 -6
- package/dist/components/molecules/hover-previews/Media.d.ts +7 -7
- package/dist/components/molecules/hover-previews/Simple.d.ts +9 -9
- package/dist/components/molecules/hover-previews/Stats.d.ts +8 -8
- package/dist/components/molecules/hover-previews/User.d.ts +9 -9
- package/dist/components/organisms/AcademyLayout.d.ts +9 -9
- package/dist/components/organisms/AcademyLayout.js +4 -4
- package/dist/components/organisms/AppHeader.d.ts +5 -5
- package/dist/components/organisms/AppHeader.js +2 -2
- package/dist/components/organisms/AppLayout.d.ts +6 -6
- package/dist/components/organisms/AppLayout.js +5 -5
- package/dist/components/organisms/AppSidebar.d.ts +3 -3
- package/dist/components/organisms/AppSidebar.js +2 -2
- package/dist/components/organisms/EmptyDataList.d.ts +2 -2
- package/dist/components/organisms/EmptyDataList.js +1 -1
- package/dist/components/organisms/EmptyDataList.types.d.ts +8 -8
- package/dist/components/organisms/EmptySearchResult.d.ts +7 -7
- package/dist/components/organisms/EmptySearchResult.js +3 -3
- package/dist/components/organisms/FAQSection.d.ts +8 -8
- package/dist/components/organisms/FAQSection.js +4 -4
- package/dist/components/organisms/FeatureCarousel.d.ts +4 -4
- package/dist/components/organisms/FeatureCarousel.js +2 -2
- package/dist/components/organisms/FeaturesSection.d.ts +6 -6
- package/dist/components/organisms/FeaturesSection.js +1 -1
- package/dist/components/organisms/Footer.d.ts +5 -5
- package/dist/components/organisms/Footer.js +2 -2
- package/dist/components/organisms/Header.d.ts +5 -5
- package/dist/components/organisms/Header.js +4 -4
- package/dist/components/organisms/HeroResponsive.d.ts +3 -3
- package/dist/components/organisms/HeroSection.d.ts +5 -5
- package/dist/components/organisms/HeroSection.js +1 -1
- package/dist/components/organisms/ListCardPage.d.ts +9 -9
- package/dist/components/organisms/ListCardPage.js +2 -2
- package/dist/components/organisms/ListGridPage.d.ts +9 -9
- package/dist/components/organisms/ListGridPage.js +1 -1
- package/dist/components/organisms/ListPageResponsive.d.ts +2 -2
- package/dist/components/organisms/ListPageResponsive.js +1 -1
- package/dist/components/organisms/ListTablePage.d.ts +10 -10
- package/dist/components/organisms/ListTablePage.js +2 -2
- package/dist/components/organisms/MarketingHeader.d.ts +4 -4
- package/dist/components/organisms/MarketingHeader.js +9 -9
- package/dist/components/organisms/MarketingHeaderDesktop.js +3 -3
- package/dist/components/organisms/MarketingHeaderMobile.js +6 -6
- package/dist/components/organisms/MarketingLayout.d.ts +4 -4
- package/dist/components/organisms/MarketingLayout.js +2 -2
- package/dist/components/organisms/PageHeaderResponsive.d.ts +2 -2
- package/dist/components/organisms/PageHeaderResponsive.js +1 -1
- package/dist/components/organisms/PricingCarousel.d.ts +2 -2
- package/dist/components/organisms/PricingCarousel.js +2 -2
- package/dist/components/organisms/PricingSection.d.ts +5 -5
- package/dist/components/organisms/PricingSection.js +1 -1
- package/dist/components/organisms/TestimonialCarousel.d.ts +7 -7
- package/dist/components/organisms/TestimonialCarousel.js +2 -2
- package/dist/components/templates/lists/ListPageTemplate/index.web.d.ts +2 -2
- package/dist/components/templates/lists/ListPageTemplate/index.web.js +5 -5
- package/dist/components/templates/lists/ListPageTemplate/types.d.ts +7 -7
- package/dist/contracts/dist/client/react/drivers/shadcn.js +7 -0
- package/dist/contracts/dist/client/react/form-render.js +261 -0
- package/dist/contracts/dist/forms.js +78 -0
- package/dist/hooks/useListUrlState.js +7 -7
- package/dist/index.js +2 -1
- package/dist/platform/useColorScheme.js +3 -3
- package/dist/platform/useReducedMotion.js +3 -3
- package/dist/platform/useResponsive.js +4 -4
- package/dist/renderers/form-contract.d.ts +3 -3
- package/dist/renderers/form-contract.js +13 -13
- package/dist/theme/variants.d.ts +2 -2
- package/dist/types/navigation.d.ts +10 -10
- package/dist/ui-kit-web/dist/ui/accordion.js +48 -0
- package/dist/ui-kit-web/dist/ui/atoms/FilterSelect/FilterSelect.js +52 -0
- package/dist/ui-kit-web/dist/ui/atoms/Pagination/Pagination.js +156 -0
- package/dist/ui-kit-web/dist/ui/atoms/SearchInput/SearchInput.js +49 -0
- package/dist/ui-kit-web/dist/ui/avatar.js +32 -0
- package/dist/ui-kit-web/dist/ui/badge.js +27 -0
- package/dist/ui-kit-web/dist/ui/breadcrumb.js +59 -0
- package/dist/ui-kit-web/dist/ui/button.js +55 -0
- package/dist/ui-kit-web/dist/ui/card.js +44 -0
- package/dist/ui-kit-web/dist/ui/carousel.js +135 -0
- package/dist/ui-kit-web/dist/ui/checkbox.js +25 -0
- package/dist/ui-kit-web/dist/ui/collapsible.js +27 -0
- package/dist/ui-kit-web/dist/ui/command.js +90 -0
- package/dist/ui-kit-web/dist/ui/dialog.js +84 -0
- package/dist/ui-kit-web/dist/ui/dropdown-menu.js +57 -0
- package/dist/ui-kit-web/dist/ui/empty-state.js +43 -0
- package/dist/ui-kit-web/dist/ui/empty.js +62 -0
- package/dist/ui-kit-web/dist/ui/field.js +78 -0
- package/dist/ui-kit-web/dist/ui/form.js +16 -0
- package/dist/ui-kit-web/dist/ui/hover-card.js +40 -0
- package/dist/ui-kit-web/dist/ui/input.js +17 -0
- package/dist/ui-kit-web/dist/ui/label.js +19 -0
- package/dist/ui-kit-web/dist/ui/marketing/Hero.js +52 -0
- package/dist/ui-kit-web/dist/ui/marketing/PricingTable.js +59 -0
- package/dist/ui-kit-web/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +102 -0
- package/dist/ui-kit-web/dist/ui/molecules/SkeletonList.js +14 -0
- package/dist/ui-kit-web/dist/ui/navigation-menu.js +75 -0
- package/dist/ui-kit-web/dist/ui/organisms/ListPage/ListPage.js +197 -0
- package/dist/ui-kit-web/dist/ui/page-header.js +40 -0
- package/dist/ui-kit-web/dist/ui/pagination.js +65 -0
- package/dist/ui-kit-web/dist/ui/radio-group.js +32 -0
- package/dist/ui-kit-web/dist/ui/select.js +86 -0
- package/dist/ui-kit-web/dist/ui/separator.js +21 -0
- package/dist/ui-kit-web/dist/ui/sheet.js +80 -0
- package/dist/ui-kit-web/dist/ui/sidebar.js +281 -0
- package/dist/ui-kit-web/dist/ui/skeleton.js +14 -0
- package/dist/ui-kit-web/dist/ui/stack.js +158 -0
- package/dist/ui-kit-web/dist/ui/stepper.js +37 -0
- package/dist/ui-kit-web/dist/ui/switch.js +24 -0
- package/dist/ui-kit-web/dist/ui/table.js +57 -0
- package/dist/ui-kit-web/dist/ui/text.js +16 -0
- package/dist/ui-kit-web/dist/ui/textarea.js +16 -0
- package/dist/ui-kit-web/dist/ui/tooltip.js +40 -0
- package/dist/ui-kit-web/dist/ui/typography.js +23 -0
- package/dist/ui-kit-web/dist/ui/use-mobile.js +20 -0
- package/dist/ui-kit-web/dist/ui/utils.js +10 -0
- package/dist/ui-kit-web/dist/ui-kit-core/dist/utils.js +13 -0
- package/package.json +7 -7
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cn, init_utils } from "../ui-kit-core/dist/utils.js";
|
|
4
|
+
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "./dialog.js";
|
|
5
|
+
import "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { SearchIcon } from "lucide-react";
|
|
8
|
+
import { Command } from "cmdk";
|
|
9
|
+
|
|
10
|
+
//#region ../ui-kit-web/dist/ui/command.js
|
|
11
|
+
init_utils();
|
|
12
|
+
function Command$1({ className, ...props }) {
|
|
13
|
+
return /* @__PURE__ */ jsx(Command, {
|
|
14
|
+
"data-slot": "command",
|
|
15
|
+
className: cn("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md", className),
|
|
16
|
+
...props
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function CommandDialog({ title = "Command Palette", description = "Search for a command to run...", children, className, showCloseButton = true, ...props }) {
|
|
20
|
+
return /* @__PURE__ */ jsxs(Dialog, {
|
|
21
|
+
...props,
|
|
22
|
+
children: [/* @__PURE__ */ jsxs(DialogHeader, {
|
|
23
|
+
className: "sr-only",
|
|
24
|
+
children: [/* @__PURE__ */ jsx(DialogTitle, { children: title }), /* @__PURE__ */ jsx(DialogDescription, { children: description })]
|
|
25
|
+
}), /* @__PURE__ */ jsx(DialogContent, {
|
|
26
|
+
className: cn("overflow-hidden p-0", className),
|
|
27
|
+
showCloseButton,
|
|
28
|
+
children: /* @__PURE__ */ jsx(Command$1, {
|
|
29
|
+
className: "[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",
|
|
30
|
+
children
|
|
31
|
+
})
|
|
32
|
+
})]
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function CommandInput({ className, ...props }) {
|
|
36
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
37
|
+
"data-slot": "command-input-wrapper",
|
|
38
|
+
className: "flex h-9 items-center gap-2 border-b px-3",
|
|
39
|
+
children: [/* @__PURE__ */ jsx(SearchIcon, { className: "size-4 shrink-0 opacity-50" }), /* @__PURE__ */ jsx(Command.Input, {
|
|
40
|
+
"data-slot": "command-input",
|
|
41
|
+
className: cn("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className),
|
|
42
|
+
...props
|
|
43
|
+
})]
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function CommandList({ className, ...props }) {
|
|
47
|
+
return /* @__PURE__ */ jsx(Command.List, {
|
|
48
|
+
"data-slot": "command-list",
|
|
49
|
+
className: cn("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto", className),
|
|
50
|
+
...props
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function CommandEmpty({ ...props }) {
|
|
54
|
+
return /* @__PURE__ */ jsx(Command.Empty, {
|
|
55
|
+
"data-slot": "command-empty",
|
|
56
|
+
className: "py-6 text-center text-sm",
|
|
57
|
+
...props
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function CommandGroup({ className, ...props }) {
|
|
61
|
+
return /* @__PURE__ */ jsx(Command.Group, {
|
|
62
|
+
"data-slot": "command-group",
|
|
63
|
+
className: cn("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium", className),
|
|
64
|
+
...props
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function CommandSeparator({ className, ...props }) {
|
|
68
|
+
return /* @__PURE__ */ jsx(Command.Separator, {
|
|
69
|
+
"data-slot": "command-separator",
|
|
70
|
+
className: cn("bg-border -mx-1 h-px", className),
|
|
71
|
+
...props
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
function CommandItem({ className, ...props }) {
|
|
75
|
+
return /* @__PURE__ */ jsx(Command.Item, {
|
|
76
|
+
"data-slot": "command-item",
|
|
77
|
+
className: cn("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
78
|
+
...props
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function CommandShortcut({ className, ...props }) {
|
|
82
|
+
return /* @__PURE__ */ jsx("span", {
|
|
83
|
+
"data-slot": "command-shortcut",
|
|
84
|
+
className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
|
|
85
|
+
...props
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
//#endregion
|
|
90
|
+
export { CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cn, init_utils } from "../ui-kit-core/dist/utils.js";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { XIcon } from "lucide-react";
|
|
7
|
+
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
8
|
+
|
|
9
|
+
//#region ../ui-kit-web/dist/ui/dialog.js
|
|
10
|
+
init_utils();
|
|
11
|
+
function Dialog({ ...props }) {
|
|
12
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Root, {
|
|
13
|
+
"data-slot": "dialog",
|
|
14
|
+
...props
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
function DialogTrigger({ ...props }) {
|
|
18
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, {
|
|
19
|
+
"data-slot": "dialog-trigger",
|
|
20
|
+
...props
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function DialogPortal({ ...props }) {
|
|
24
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Portal, {
|
|
25
|
+
"data-slot": "dialog-portal",
|
|
26
|
+
...props
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function DialogOverlay({ className, ...props }) {
|
|
30
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, {
|
|
31
|
+
"data-slot": "dialog-overlay",
|
|
32
|
+
className: cn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50", className),
|
|
33
|
+
...props
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function DialogContent({ className, children, showCloseButton = true, ...props }) {
|
|
37
|
+
return /* @__PURE__ */ jsxs(DialogPortal, {
|
|
38
|
+
"data-slot": "dialog-portal",
|
|
39
|
+
children: [/* @__PURE__ */ jsx(DialogOverlay, {}), /* @__PURE__ */ jsxs(DialogPrimitive.Content, {
|
|
40
|
+
"data-slot": "dialog-content",
|
|
41
|
+
className: cn("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg", className),
|
|
42
|
+
...props,
|
|
43
|
+
children: [children, showCloseButton && /* @__PURE__ */ jsxs(DialogPrimitive.Close, {
|
|
44
|
+
"data-slot": "dialog-close",
|
|
45
|
+
className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
46
|
+
children: [/* @__PURE__ */ jsx(XIcon, {}), /* @__PURE__ */ jsx("span", {
|
|
47
|
+
className: "sr-only",
|
|
48
|
+
children: "Close"
|
|
49
|
+
})]
|
|
50
|
+
})]
|
|
51
|
+
})]
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function DialogHeader({ className, ...props }) {
|
|
55
|
+
return /* @__PURE__ */ jsx("div", {
|
|
56
|
+
"data-slot": "dialog-header",
|
|
57
|
+
className: cn("flex flex-col gap-2 text-center sm:text-left", className),
|
|
58
|
+
...props
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function DialogFooter({ className, ...props }) {
|
|
62
|
+
return /* @__PURE__ */ jsx("div", {
|
|
63
|
+
"data-slot": "dialog-footer",
|
|
64
|
+
className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
|
|
65
|
+
...props
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
function DialogTitle({ className, ...props }) {
|
|
69
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Title, {
|
|
70
|
+
"data-slot": "dialog-title",
|
|
71
|
+
className: cn("text-lg leading-none font-semibold", className),
|
|
72
|
+
...props
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
function DialogDescription({ className, ...props }) {
|
|
76
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Description, {
|
|
77
|
+
"data-slot": "dialog-description",
|
|
78
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
79
|
+
...props
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
//#endregion
|
|
84
|
+
export { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cn, init_utils } from "../ui-kit-core/dist/utils.js";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { CheckIcon, CircleIcon } from "lucide-react";
|
|
7
|
+
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
8
|
+
|
|
9
|
+
//#region ../ui-kit-web/dist/ui/dropdown-menu.js
|
|
10
|
+
init_utils();
|
|
11
|
+
function DropdownMenu({ ...props }) {
|
|
12
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Root, {
|
|
13
|
+
"data-slot": "dropdown-menu",
|
|
14
|
+
...props
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
function DropdownMenuTrigger({ ...props }) {
|
|
18
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Trigger, {
|
|
19
|
+
"data-slot": "dropdown-menu-trigger",
|
|
20
|
+
...props
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function DropdownMenuContent({ className, sideOffset = 4, ...props }) {
|
|
24
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.Content, {
|
|
25
|
+
"data-slot": "dropdown-menu-content",
|
|
26
|
+
sideOffset,
|
|
27
|
+
className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md", className),
|
|
28
|
+
...props
|
|
29
|
+
}) });
|
|
30
|
+
}
|
|
31
|
+
function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
|
|
32
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Item, {
|
|
33
|
+
"data-slot": "dropdown-menu-item",
|
|
34
|
+
"data-inset": inset,
|
|
35
|
+
"data-variant": variant,
|
|
36
|
+
className: cn("data-[variant=destructive]:*:[svg]:text-destructive! focus:bg-accent focus:text-accent-foreground 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 [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
37
|
+
...props
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function DropdownMenuLabel({ className, inset, ...props }) {
|
|
41
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Label, {
|
|
42
|
+
"data-slot": "dropdown-menu-label",
|
|
43
|
+
"data-inset": inset,
|
|
44
|
+
className: cn("px-2 py-1.5 text-sm font-medium data-inset:pl-8", className),
|
|
45
|
+
...props
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function DropdownMenuSeparator({ className, ...props }) {
|
|
49
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Separator, {
|
|
50
|
+
"data-slot": "dropdown-menu-separator",
|
|
51
|
+
className: cn("bg-border -mx-1 my-1 h-px", className),
|
|
52
|
+
...props
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
//#endregion
|
|
57
|
+
export { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { cn, init_utils } from "../ui-kit-core/dist/utils.js";
|
|
2
|
+
import { VStack } from "./stack.js";
|
|
3
|
+
import "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { cva } from "class-variance-authority";
|
|
6
|
+
|
|
7
|
+
//#region ../ui-kit-web/dist/ui/empty-state.js
|
|
8
|
+
init_utils();
|
|
9
|
+
const containerVariants = cva("items-center text-center", {
|
|
10
|
+
variants: { density: {
|
|
11
|
+
compact: "gap-3 p-6",
|
|
12
|
+
default: "gap-4 p-8"
|
|
13
|
+
} },
|
|
14
|
+
defaultVariants: { density: "default" }
|
|
15
|
+
});
|
|
16
|
+
function EmptyState({ icon, title, description, primaryAction, secondaryAction, className, density }) {
|
|
17
|
+
return /* @__PURE__ */ jsxs(VStack, {
|
|
18
|
+
className: cn(containerVariants({ density }), className),
|
|
19
|
+
children: [
|
|
20
|
+
icon ? /* @__PURE__ */ jsx("div", {
|
|
21
|
+
className: "bg-muted flex h-12 w-12 items-center justify-center rounded-full",
|
|
22
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
23
|
+
className: "text-muted-foreground flex items-center justify-center",
|
|
24
|
+
children: icon
|
|
25
|
+
})
|
|
26
|
+
}) : null,
|
|
27
|
+
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("h3", {
|
|
28
|
+
className: "font-medium",
|
|
29
|
+
children: title
|
|
30
|
+
}), description ? /* @__PURE__ */ jsx("p", {
|
|
31
|
+
className: "text-muted-foreground text-base",
|
|
32
|
+
children: description
|
|
33
|
+
}) : null] }),
|
|
34
|
+
(primaryAction || secondaryAction) && /* @__PURE__ */ jsxs("div", {
|
|
35
|
+
className: "flex items-center justify-center gap-2",
|
|
36
|
+
children: [primaryAction, secondaryAction]
|
|
37
|
+
})
|
|
38
|
+
]
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
//#endregion
|
|
43
|
+
export { EmptyState };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { cn, init_utils } from "../ui-kit-core/dist/utils.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
|
|
5
|
+
//#region ../ui-kit-web/dist/ui/empty.js
|
|
6
|
+
init_utils();
|
|
7
|
+
function Empty({ className, ...props }) {
|
|
8
|
+
return /* @__PURE__ */ jsx("div", {
|
|
9
|
+
"data-slot": "empty",
|
|
10
|
+
className: cn("flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12", className),
|
|
11
|
+
...props
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
function EmptyHeader({ className, ...props }) {
|
|
15
|
+
return /* @__PURE__ */ jsx("div", {
|
|
16
|
+
"data-slot": "empty-header",
|
|
17
|
+
className: cn("flex max-w-sm flex-col items-center gap-2 text-center", className),
|
|
18
|
+
...props
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
const emptyMediaVariants = cva("flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
|
|
22
|
+
variants: { variant: {
|
|
23
|
+
default: "bg-transparent",
|
|
24
|
+
icon: "bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6"
|
|
25
|
+
} },
|
|
26
|
+
defaultVariants: { variant: "default" }
|
|
27
|
+
});
|
|
28
|
+
function EmptyMedia({ className, variant = "default", ...props }) {
|
|
29
|
+
return /* @__PURE__ */ jsx("div", {
|
|
30
|
+
"data-slot": "empty-icon",
|
|
31
|
+
"data-variant": variant,
|
|
32
|
+
className: cn(emptyMediaVariants({
|
|
33
|
+
variant,
|
|
34
|
+
className
|
|
35
|
+
})),
|
|
36
|
+
...props
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function EmptyTitle({ className, ...props }) {
|
|
40
|
+
return /* @__PURE__ */ jsx("div", {
|
|
41
|
+
"data-slot": "empty-title",
|
|
42
|
+
className: cn("text-lg font-medium tracking-tight", className),
|
|
43
|
+
...props
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function EmptyDescription({ className, ...props }) {
|
|
47
|
+
return /* @__PURE__ */ jsx("p", {
|
|
48
|
+
"data-slot": "empty-description",
|
|
49
|
+
className: cn("text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4", className),
|
|
50
|
+
...props
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function EmptyContent({ className, ...props }) {
|
|
54
|
+
return /* @__PURE__ */ jsx("div", {
|
|
55
|
+
"data-slot": "empty-content",
|
|
56
|
+
className: cn("flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance", className),
|
|
57
|
+
...props
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
//#endregion
|
|
62
|
+
export { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle };
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cn, init_utils } from "../ui-kit-core/dist/utils.js";
|
|
4
|
+
import { Label } from "./label.js";
|
|
5
|
+
import * as React$1 from "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { cva } from "class-variance-authority";
|
|
8
|
+
|
|
9
|
+
//#region ../ui-kit-web/dist/ui/field.js
|
|
10
|
+
init_utils();
|
|
11
|
+
function FieldGroup({ className, ...props }) {
|
|
12
|
+
return /* @__PURE__ */ jsx("div", {
|
|
13
|
+
"data-slot": "field-group",
|
|
14
|
+
className: cn("group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 data-[slot=field-group]:*:gap-4", className),
|
|
15
|
+
...props
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
const fieldVariants = cva("group/field flex w-full gap-3 data-[invalid=true]:text-destructive", {
|
|
19
|
+
variants: { orientation: {
|
|
20
|
+
vertical: ["flex-col *:w-full [&>.sr-only]:w-auto"],
|
|
21
|
+
horizontal: [
|
|
22
|
+
"flex-row items-center",
|
|
23
|
+
"data-[slot=field-label]:*:flex-auto",
|
|
24
|
+
"has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
|
|
25
|
+
],
|
|
26
|
+
responsive: [
|
|
27
|
+
"flex-col *:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto",
|
|
28
|
+
"@md/field-group:data-[slot=field-label]:*:flex-auto",
|
|
29
|
+
"@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
|
|
30
|
+
]
|
|
31
|
+
} },
|
|
32
|
+
defaultVariants: { orientation: "vertical" }
|
|
33
|
+
});
|
|
34
|
+
function Field({ className, orientation = "vertical", ...props }) {
|
|
35
|
+
return /* @__PURE__ */ jsx("div", {
|
|
36
|
+
role: "group",
|
|
37
|
+
"data-slot": "field",
|
|
38
|
+
"data-orientation": orientation,
|
|
39
|
+
className: cn(fieldVariants({ orientation }), className),
|
|
40
|
+
...props
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function FieldLabel({ className, ...props }) {
|
|
44
|
+
return /* @__PURE__ */ jsx(Label, {
|
|
45
|
+
"data-slot": "field-label",
|
|
46
|
+
className: cn("group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50", "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border *:data-[slot=field]:p-4", "has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10", className),
|
|
47
|
+
...props
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function FieldDescription({ className, ...props }) {
|
|
51
|
+
return /* @__PURE__ */ jsx("p", {
|
|
52
|
+
"data-slot": "field-description",
|
|
53
|
+
className: cn("text-muted-foreground text-sm leading-normal font-normal group-has-data-[orientation=horizontal]/field:text-balance", "last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5", "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4", className),
|
|
54
|
+
...props
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function FieldError({ className, children, errors, ...props }) {
|
|
58
|
+
const content = React$1.useMemo(() => {
|
|
59
|
+
if (children) return children;
|
|
60
|
+
if (!errors?.length) return null;
|
|
61
|
+
if (errors?.length == 1) return errors[0]?.message;
|
|
62
|
+
return /* @__PURE__ */ jsx("ul", {
|
|
63
|
+
className: "ml-4 flex list-disc flex-col gap-1",
|
|
64
|
+
children: errors.map((error, index) => error?.message && /* @__PURE__ */ jsx("li", { children: error.message }, index))
|
|
65
|
+
});
|
|
66
|
+
}, [children, errors]);
|
|
67
|
+
if (!content) return null;
|
|
68
|
+
return /* @__PURE__ */ jsx("div", {
|
|
69
|
+
role: "alert",
|
|
70
|
+
"data-slot": "field-error",
|
|
71
|
+
className: cn("text-destructive text-sm font-normal", className),
|
|
72
|
+
...props,
|
|
73
|
+
children: content
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
//#endregion
|
|
78
|
+
export { Field, FieldDescription, FieldError, FieldGroup, FieldLabel };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as React$1 from "react";
|
|
4
|
+
import { Controller, FormProvider, useForm as useForm$1 } from "react-hook-form";
|
|
5
|
+
import { zodResolver as zodResolver$1 } from "@hookform/resolvers/zod";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
import "@radix-ui/react-label";
|
|
8
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
9
|
+
|
|
10
|
+
//#region ../ui-kit-web/dist/ui/form.js
|
|
11
|
+
const Form = FormProvider;
|
|
12
|
+
const FormFieldContext = React$1.createContext({});
|
|
13
|
+
const FormItemContext = React$1.createContext({});
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { Form, useForm$1 as useForm, zodResolver$1 as zodResolver };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { __esmMin } from "../../../_virtual/rolldown_runtime.js";
|
|
4
|
+
import { cn, init_utils } from "../ui-kit-core/dist/utils.js";
|
|
5
|
+
import "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
8
|
+
|
|
9
|
+
//#region ../ui-kit-web/dist/ui/hover-card.js
|
|
10
|
+
function HoverCard({ ...props }) {
|
|
11
|
+
return /* @__PURE__ */ jsx(HoverCardPrimitive.Root, {
|
|
12
|
+
"data-slot": "hover-card",
|
|
13
|
+
...props
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
function HoverCardTrigger({ ...props }) {
|
|
17
|
+
return /* @__PURE__ */ jsx(HoverCardPrimitive.Trigger, {
|
|
18
|
+
"data-slot": "hover-card-trigger",
|
|
19
|
+
...props
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function HoverCardContent({ className, align = "center", sideOffset = 4, ...props }) {
|
|
23
|
+
return /* @__PURE__ */ jsx(HoverCardPrimitive.Portal, {
|
|
24
|
+
"data-slot": "hover-card-portal",
|
|
25
|
+
children: /* @__PURE__ */ jsx(HoverCardPrimitive.Content, {
|
|
26
|
+
"data-slot": "hover-card-content",
|
|
27
|
+
align,
|
|
28
|
+
sideOffset,
|
|
29
|
+
className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden", className),
|
|
30
|
+
...props
|
|
31
|
+
})
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
var init_hover_card = __esmMin((() => {
|
|
35
|
+
init_utils();
|
|
36
|
+
}));
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
init_hover_card();
|
|
40
|
+
export { HoverCard, HoverCardContent, HoverCardTrigger, init_hover_card };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { cn, init_utils } from "../ui-kit-core/dist/utils.js";
|
|
2
|
+
import "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region ../ui-kit-web/dist/ui/input.js
|
|
6
|
+
init_utils();
|
|
7
|
+
function Input({ className, type, ...props }) {
|
|
8
|
+
return /* @__PURE__ */ jsx("input", {
|
|
9
|
+
type,
|
|
10
|
+
"data-slot": "input",
|
|
11
|
+
className: cn("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", className),
|
|
12
|
+
...props
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
export { Input };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cn, init_utils } from "../ui-kit-core/dist/utils.js";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
7
|
+
|
|
8
|
+
//#region ../ui-kit-web/dist/ui/label.js
|
|
9
|
+
init_utils();
|
|
10
|
+
function Label({ className, ...props }) {
|
|
11
|
+
return /* @__PURE__ */ jsx(LabelPrimitive.Root, {
|
|
12
|
+
"data-slot": "label",
|
|
13
|
+
className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className),
|
|
14
|
+
...props
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
export { Label };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Button } from "../button.js";
|
|
2
|
+
import { cn } from "../utils.js";
|
|
3
|
+
import "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region ../ui-kit-web/dist/ui/marketing/Hero.js
|
|
7
|
+
function Hero({ title, subtitle, primaryCta, secondaryCta, className }) {
|
|
8
|
+
return /* @__PURE__ */ jsxs("section", {
|
|
9
|
+
className: cn("mx-auto max-w-4xl py-16 text-center", className),
|
|
10
|
+
children: [
|
|
11
|
+
/* @__PURE__ */ jsx("h1", {
|
|
12
|
+
className: "text-4xl font-bold tracking-tight md:text-5xl",
|
|
13
|
+
children: title
|
|
14
|
+
}),
|
|
15
|
+
subtitle && /* @__PURE__ */ jsx("p", {
|
|
16
|
+
className: "text-muted-foreground mt-4 text-lg md:text-xl",
|
|
17
|
+
children: subtitle
|
|
18
|
+
}),
|
|
19
|
+
(primaryCta || secondaryCta) && /* @__PURE__ */ jsxs("div", {
|
|
20
|
+
className: "mt-8 flex items-center justify-center gap-3",
|
|
21
|
+
children: [primaryCta && (primaryCta.href ? /* @__PURE__ */ jsx(Button, {
|
|
22
|
+
asChild: true,
|
|
23
|
+
size: "lg",
|
|
24
|
+
children: /* @__PURE__ */ jsx("a", {
|
|
25
|
+
href: primaryCta.href,
|
|
26
|
+
children: primaryCta.label
|
|
27
|
+
})
|
|
28
|
+
}) : /* @__PURE__ */ jsx(Button, {
|
|
29
|
+
size: "lg",
|
|
30
|
+
onClick: primaryCta.onClick,
|
|
31
|
+
children: primaryCta.label
|
|
32
|
+
})), secondaryCta && (secondaryCta.href ? /* @__PURE__ */ jsx(Button, {
|
|
33
|
+
variant: "outline",
|
|
34
|
+
asChild: true,
|
|
35
|
+
size: "lg",
|
|
36
|
+
children: /* @__PURE__ */ jsx("a", {
|
|
37
|
+
href: secondaryCta.href,
|
|
38
|
+
children: secondaryCta.label
|
|
39
|
+
})
|
|
40
|
+
}) : /* @__PURE__ */ jsx(Button, {
|
|
41
|
+
variant: "outline",
|
|
42
|
+
size: "lg",
|
|
43
|
+
onClick: secondaryCta.onClick,
|
|
44
|
+
children: secondaryCta.label
|
|
45
|
+
}))]
|
|
46
|
+
})
|
|
47
|
+
]
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
//#endregion
|
|
52
|
+
export { Hero };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Button } from "../button.js";
|
|
2
|
+
import { cn } from "../utils.js";
|
|
3
|
+
import "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region ../ui-kit-web/dist/ui/marketing/PricingTable.js
|
|
7
|
+
function PricingTable({ tiers, className }) {
|
|
8
|
+
return /* @__PURE__ */ jsxs("section", {
|
|
9
|
+
className: cn("mx-auto max-w-6xl py-12", className),
|
|
10
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
11
|
+
className: "grid grid-cols-1 gap-6 md:grid-cols-3",
|
|
12
|
+
children: tiers.map((t, idx) => /* @__PURE__ */ jsxs("div", {
|
|
13
|
+
className: cn("flex flex-col rounded-lg border p-6", t.highlighted && "border-primary shadow-lg"),
|
|
14
|
+
children: [
|
|
15
|
+
/* @__PURE__ */ jsx("div", {
|
|
16
|
+
className: "text-muted-foreground mb-2 text-base font-medium",
|
|
17
|
+
children: t.name
|
|
18
|
+
}),
|
|
19
|
+
/* @__PURE__ */ jsx("div", {
|
|
20
|
+
className: "text-3xl font-semibold",
|
|
21
|
+
children: t.price
|
|
22
|
+
}),
|
|
23
|
+
t.tagline && /* @__PURE__ */ jsx("div", {
|
|
24
|
+
className: "text-muted-foreground mt-1 text-base",
|
|
25
|
+
children: t.tagline
|
|
26
|
+
}),
|
|
27
|
+
/* @__PURE__ */ jsx("ul", {
|
|
28
|
+
className: "mt-4 space-y-2 text-base",
|
|
29
|
+
children: t.features.map((f, i) => /* @__PURE__ */ jsxs("li", {
|
|
30
|
+
className: "flex items-start gap-2",
|
|
31
|
+
children: [/* @__PURE__ */ jsx("span", { className: "bg-primary mt-1 h-1.5 w-1.5 rounded-full" }), /* @__PURE__ */ jsx("span", { children: f })]
|
|
32
|
+
}, i))
|
|
33
|
+
}),
|
|
34
|
+
t.cta && /* @__PURE__ */ jsx("div", {
|
|
35
|
+
className: "mt-6",
|
|
36
|
+
children: t.cta.href ? /* @__PURE__ */ jsx(Button, {
|
|
37
|
+
asChild: true,
|
|
38
|
+
className: "w-full",
|
|
39
|
+
children: /* @__PURE__ */ jsx("a", {
|
|
40
|
+
href: t.cta.href,
|
|
41
|
+
children: t.cta.label
|
|
42
|
+
})
|
|
43
|
+
}) : /* @__PURE__ */ jsx(Button, {
|
|
44
|
+
className: "w-full",
|
|
45
|
+
onClick: t.cta.onClick,
|
|
46
|
+
children: t.cta.label
|
|
47
|
+
})
|
|
48
|
+
})
|
|
49
|
+
]
|
|
50
|
+
}, idx))
|
|
51
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
52
|
+
className: "text-muted-foreground mt-6 text-center text-base",
|
|
53
|
+
children: "Usage-based tiers inspired by generous free allowances and per-unit pricing."
|
|
54
|
+
})]
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
//#endregion
|
|
59
|
+
export { PricingTable };
|