@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,80 @@
|
|
|
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 SheetPrimitive from "@radix-ui/react-dialog";
|
|
8
|
+
|
|
9
|
+
//#region ../ui-kit-web/dist/ui/sheet.js
|
|
10
|
+
init_utils();
|
|
11
|
+
function Sheet({ ...props }) {
|
|
12
|
+
return /* @__PURE__ */ jsx(SheetPrimitive.Root, {
|
|
13
|
+
"data-slot": "sheet",
|
|
14
|
+
...props
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
function SheetTrigger({ ...props }) {
|
|
18
|
+
return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, {
|
|
19
|
+
"data-slot": "sheet-trigger",
|
|
20
|
+
...props
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function SheetPortal({ ...props }) {
|
|
24
|
+
return /* @__PURE__ */ jsx(SheetPrimitive.Portal, {
|
|
25
|
+
"data-slot": "sheet-portal",
|
|
26
|
+
...props
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function SheetOverlay({ className, ...props }) {
|
|
30
|
+
return /* @__PURE__ */ jsx(SheetPrimitive.Overlay, {
|
|
31
|
+
"data-slot": "sheet-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 SheetContent({ className, children, side = "right", ...props }) {
|
|
37
|
+
return /* @__PURE__ */ jsxs(SheetPortal, { children: [/* @__PURE__ */ jsx(SheetOverlay, {}), /* @__PURE__ */ jsxs(SheetPrimitive.Content, {
|
|
38
|
+
"data-slot": "sheet-content",
|
|
39
|
+
className: cn("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500", side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm", side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm", side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b", side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t", className),
|
|
40
|
+
...props,
|
|
41
|
+
children: [children, /* @__PURE__ */ jsxs(SheetPrimitive.Close, {
|
|
42
|
+
className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary 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",
|
|
43
|
+
children: [/* @__PURE__ */ jsx(XIcon, { className: "size-4" }), /* @__PURE__ */ jsx("span", {
|
|
44
|
+
className: "sr-only",
|
|
45
|
+
children: "Close"
|
|
46
|
+
})]
|
|
47
|
+
})]
|
|
48
|
+
})] });
|
|
49
|
+
}
|
|
50
|
+
function SheetHeader({ className, ...props }) {
|
|
51
|
+
return /* @__PURE__ */ jsx("div", {
|
|
52
|
+
"data-slot": "sheet-header",
|
|
53
|
+
className: cn("flex flex-col gap-1.5 p-4", className),
|
|
54
|
+
...props
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function SheetFooter({ className, ...props }) {
|
|
58
|
+
return /* @__PURE__ */ jsx("div", {
|
|
59
|
+
"data-slot": "sheet-footer",
|
|
60
|
+
className: cn("mt-auto flex flex-col gap-2 p-4", className),
|
|
61
|
+
...props
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
function SheetTitle({ className, ...props }) {
|
|
65
|
+
return /* @__PURE__ */ jsx(SheetPrimitive.Title, {
|
|
66
|
+
"data-slot": "sheet-title",
|
|
67
|
+
className: cn("text-foreground font-semibold", className),
|
|
68
|
+
...props
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
function SheetDescription({ className, ...props }) {
|
|
72
|
+
return /* @__PURE__ */ jsx(SheetPrimitive.Description, {
|
|
73
|
+
"data-slot": "sheet-description",
|
|
74
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
75
|
+
...props
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
//#endregion
|
|
80
|
+
export { Sheet, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cn, init_utils } from "../ui-kit-core/dist/utils.js";
|
|
4
|
+
import { Input } from "./input.js";
|
|
5
|
+
import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from "./sheet.js";
|
|
6
|
+
import { useIsMobile } from "./use-mobile.js";
|
|
7
|
+
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./tooltip.js";
|
|
8
|
+
import * as React$1 from "react";
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
import { cva } from "class-variance-authority";
|
|
11
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
12
|
+
import "lucide-react";
|
|
13
|
+
|
|
14
|
+
//#region ../ui-kit-web/dist/ui/sidebar.js
|
|
15
|
+
init_utils();
|
|
16
|
+
const SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
17
|
+
const SIDEBAR_COOKIE_MAX_AGE = 3600 * 24 * 7;
|
|
18
|
+
const SIDEBAR_WIDTH = "16rem";
|
|
19
|
+
const SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
20
|
+
const SIDEBAR_WIDTH_ICON = "3rem";
|
|
21
|
+
const SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
22
|
+
const SidebarContext = React$1.createContext(null);
|
|
23
|
+
function useSidebar() {
|
|
24
|
+
const context = React$1.useContext(SidebarContext);
|
|
25
|
+
if (!context) throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
26
|
+
return context;
|
|
27
|
+
}
|
|
28
|
+
function SidebarProvider({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }) {
|
|
29
|
+
const isMobile = useIsMobile();
|
|
30
|
+
const [openMobile, setOpenMobile] = React$1.useState(false);
|
|
31
|
+
const [_open, _setOpen] = React$1.useState(defaultOpen);
|
|
32
|
+
const open = openProp ?? _open;
|
|
33
|
+
const setOpen = React$1.useCallback((value) => {
|
|
34
|
+
const openState = typeof value === "function" ? value(open) : value;
|
|
35
|
+
if (setOpenProp) setOpenProp(openState);
|
|
36
|
+
else _setOpen(openState);
|
|
37
|
+
document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
|
|
38
|
+
}, [setOpenProp, open]);
|
|
39
|
+
const toggleSidebar = React$1.useCallback(() => {
|
|
40
|
+
return isMobile ? setOpenMobile((open$1) => !open$1) : setOpen((open$1) => !open$1);
|
|
41
|
+
}, [
|
|
42
|
+
isMobile,
|
|
43
|
+
setOpen,
|
|
44
|
+
setOpenMobile
|
|
45
|
+
]);
|
|
46
|
+
React$1.useEffect(() => {
|
|
47
|
+
const handleKeyDown = (event) => {
|
|
48
|
+
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
toggleSidebar();
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
54
|
+
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
55
|
+
}, [toggleSidebar]);
|
|
56
|
+
const state = open ? "expanded" : "collapsed";
|
|
57
|
+
const contextValue = React$1.useMemo(() => ({
|
|
58
|
+
state,
|
|
59
|
+
open,
|
|
60
|
+
setOpen,
|
|
61
|
+
isMobile,
|
|
62
|
+
openMobile,
|
|
63
|
+
setOpenMobile,
|
|
64
|
+
toggleSidebar
|
|
65
|
+
}), [
|
|
66
|
+
state,
|
|
67
|
+
open,
|
|
68
|
+
setOpen,
|
|
69
|
+
isMobile,
|
|
70
|
+
openMobile,
|
|
71
|
+
setOpenMobile,
|
|
72
|
+
toggleSidebar
|
|
73
|
+
]);
|
|
74
|
+
return /* @__PURE__ */ jsx(SidebarContext.Provider, {
|
|
75
|
+
value: contextValue,
|
|
76
|
+
children: /* @__PURE__ */ jsx(TooltipProvider, {
|
|
77
|
+
delayDuration: 0,
|
|
78
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
79
|
+
"data-slot": "sidebar-wrapper",
|
|
80
|
+
style: {
|
|
81
|
+
"--sidebar-width": SIDEBAR_WIDTH,
|
|
82
|
+
"--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
|
|
83
|
+
...style
|
|
84
|
+
},
|
|
85
|
+
className: cn("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full", className),
|
|
86
|
+
...props,
|
|
87
|
+
children
|
|
88
|
+
})
|
|
89
|
+
})
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
function Sidebar({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, ...props }) {
|
|
93
|
+
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
94
|
+
if (collapsible === "none") return /* @__PURE__ */ jsx("div", {
|
|
95
|
+
"data-slot": "sidebar",
|
|
96
|
+
className: cn("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col", className),
|
|
97
|
+
...props,
|
|
98
|
+
children
|
|
99
|
+
});
|
|
100
|
+
if (isMobile) return /* @__PURE__ */ jsx(Sheet, {
|
|
101
|
+
open: openMobile,
|
|
102
|
+
onOpenChange: setOpenMobile,
|
|
103
|
+
...props,
|
|
104
|
+
children: /* @__PURE__ */ jsxs(SheetContent, {
|
|
105
|
+
"data-sidebar": "sidebar",
|
|
106
|
+
"data-slot": "sidebar",
|
|
107
|
+
"data-mobile": "true",
|
|
108
|
+
className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",
|
|
109
|
+
style: { "--sidebar-width": SIDEBAR_WIDTH_MOBILE },
|
|
110
|
+
side,
|
|
111
|
+
children: [/* @__PURE__ */ jsxs(SheetHeader, {
|
|
112
|
+
className: "sr-only",
|
|
113
|
+
children: [/* @__PURE__ */ jsx(SheetTitle, { children: "Sidebar" }), /* @__PURE__ */ jsx(SheetDescription, { children: "Displays the mobile sidebar." })]
|
|
114
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
115
|
+
className: "flex h-full w-full flex-col",
|
|
116
|
+
children
|
|
117
|
+
})]
|
|
118
|
+
})
|
|
119
|
+
});
|
|
120
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
121
|
+
className: "group peer text-sidebar-foreground hidden md:block",
|
|
122
|
+
"data-state": state,
|
|
123
|
+
"data-collapsible": state === "collapsed" ? collapsible : "",
|
|
124
|
+
"data-variant": variant,
|
|
125
|
+
"data-side": side,
|
|
126
|
+
"data-slot": "sidebar",
|
|
127
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
128
|
+
"data-slot": "sidebar-gap",
|
|
129
|
+
className: cn("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)")
|
|
130
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
131
|
+
"data-slot": "sidebar-container",
|
|
132
|
+
className: cn("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex", side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]", variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", className),
|
|
133
|
+
...props,
|
|
134
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
135
|
+
"data-sidebar": "sidebar",
|
|
136
|
+
"data-slot": "sidebar-inner",
|
|
137
|
+
className: "bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",
|
|
138
|
+
children
|
|
139
|
+
})
|
|
140
|
+
})]
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
function SidebarRail({ className, ...props }) {
|
|
144
|
+
const { toggleSidebar } = useSidebar();
|
|
145
|
+
return /* @__PURE__ */ jsx("button", {
|
|
146
|
+
"data-sidebar": "rail",
|
|
147
|
+
"data-slot": "sidebar-rail",
|
|
148
|
+
"aria-label": "Toggle Sidebar",
|
|
149
|
+
tabIndex: -1,
|
|
150
|
+
onClick: toggleSidebar,
|
|
151
|
+
title: "Toggle Sidebar",
|
|
152
|
+
className: cn("hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex", "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize", "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize", "hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full", "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2", "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2", className),
|
|
153
|
+
...props
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
function SidebarInput({ className, ...props }) {
|
|
157
|
+
return /* @__PURE__ */ jsx(Input, {
|
|
158
|
+
"data-slot": "sidebar-input",
|
|
159
|
+
"data-sidebar": "input",
|
|
160
|
+
className: cn("bg-background h-8 w-full shadow-none", className),
|
|
161
|
+
...props
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
function SidebarHeader({ className, ...props }) {
|
|
165
|
+
return /* @__PURE__ */ jsx("div", {
|
|
166
|
+
"data-slot": "sidebar-header",
|
|
167
|
+
"data-sidebar": "header",
|
|
168
|
+
className: cn("flex flex-col gap-2 p-2", className),
|
|
169
|
+
...props
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
function SidebarFooter({ className, ...props }) {
|
|
173
|
+
return /* @__PURE__ */ jsx("div", {
|
|
174
|
+
"data-slot": "sidebar-footer",
|
|
175
|
+
"data-sidebar": "footer",
|
|
176
|
+
className: cn("flex flex-col gap-2 p-2", className),
|
|
177
|
+
...props
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
function SidebarContent({ className, ...props }) {
|
|
181
|
+
return /* @__PURE__ */ jsx("div", {
|
|
182
|
+
"data-slot": "sidebar-content",
|
|
183
|
+
"data-sidebar": "content",
|
|
184
|
+
className: cn("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden", className),
|
|
185
|
+
...props
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
function SidebarGroup({ className, ...props }) {
|
|
189
|
+
return /* @__PURE__ */ jsx("div", {
|
|
190
|
+
"data-slot": "sidebar-group",
|
|
191
|
+
"data-sidebar": "group",
|
|
192
|
+
className: cn("relative flex w-full min-w-0 flex-col p-2", className),
|
|
193
|
+
...props
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
function SidebarGroupLabel({ className, asChild = false, ...props }) {
|
|
197
|
+
return /* @__PURE__ */ jsx(asChild ? Slot : "div", {
|
|
198
|
+
"data-slot": "sidebar-group-label",
|
|
199
|
+
"data-sidebar": "group-label",
|
|
200
|
+
className: cn("text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0", className),
|
|
201
|
+
...props
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
function SidebarGroupContent({ className, ...props }) {
|
|
205
|
+
return /* @__PURE__ */ jsx("div", {
|
|
206
|
+
"data-slot": "sidebar-group-content",
|
|
207
|
+
"data-sidebar": "group-content",
|
|
208
|
+
className: cn("w-full text-sm", className),
|
|
209
|
+
...props
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
function SidebarMenu({ className, ...props }) {
|
|
213
|
+
return /* @__PURE__ */ jsx("ul", {
|
|
214
|
+
"data-slot": "sidebar-menu",
|
|
215
|
+
"data-sidebar": "menu",
|
|
216
|
+
className: cn("flex w-full min-w-0 flex-col gap-1", className),
|
|
217
|
+
...props
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
function SidebarMenuItem({ className, ...props }) {
|
|
221
|
+
return /* @__PURE__ */ jsx("li", {
|
|
222
|
+
"data-slot": "sidebar-menu-item",
|
|
223
|
+
"data-sidebar": "menu-item",
|
|
224
|
+
className: cn("group/menu-item relative", className),
|
|
225
|
+
...props
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
const sidebarMenuButtonVariants = cva("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", {
|
|
229
|
+
variants: {
|
|
230
|
+
variant: {
|
|
231
|
+
default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
232
|
+
outline: "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"
|
|
233
|
+
},
|
|
234
|
+
size: {
|
|
235
|
+
default: "h-8 text-sm",
|
|
236
|
+
sm: "h-7 text-xs",
|
|
237
|
+
lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
defaultVariants: {
|
|
241
|
+
variant: "default",
|
|
242
|
+
size: "default"
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
function SidebarMenuButton({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }) {
|
|
246
|
+
const Comp = asChild ? Slot : "button";
|
|
247
|
+
const { isMobile, state } = useSidebar();
|
|
248
|
+
const button = /* @__PURE__ */ jsx(Comp, {
|
|
249
|
+
"data-slot": "sidebar-menu-button",
|
|
250
|
+
"data-sidebar": "menu-button",
|
|
251
|
+
"data-size": size,
|
|
252
|
+
"data-active": isActive,
|
|
253
|
+
className: cn(sidebarMenuButtonVariants({
|
|
254
|
+
variant,
|
|
255
|
+
size
|
|
256
|
+
}), className),
|
|
257
|
+
...props
|
|
258
|
+
});
|
|
259
|
+
if (!tooltip) return button;
|
|
260
|
+
if (typeof tooltip === "string") tooltip = { children: tooltip };
|
|
261
|
+
return /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
262
|
+
asChild: true,
|
|
263
|
+
children: button
|
|
264
|
+
}), /* @__PURE__ */ jsx(TooltipContent, {
|
|
265
|
+
side: "right",
|
|
266
|
+
align: "center",
|
|
267
|
+
hidden: state !== "collapsed" || isMobile,
|
|
268
|
+
...tooltip
|
|
269
|
+
})] });
|
|
270
|
+
}
|
|
271
|
+
function SidebarMenuBadge({ className, ...props }) {
|
|
272
|
+
return /* @__PURE__ */ jsx("div", {
|
|
273
|
+
"data-slot": "sidebar-menu-badge",
|
|
274
|
+
"data-sidebar": "menu-badge",
|
|
275
|
+
className: cn("text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none", "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", className),
|
|
276
|
+
...props
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
//#endregion
|
|
281
|
+
export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarMenu, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarProvider, SidebarRail };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { cn } from "./utils.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region ../ui-kit-web/dist/ui/skeleton.js
|
|
5
|
+
function Skeleton({ className, ...props }) {
|
|
6
|
+
return /* @__PURE__ */ jsx("div", {
|
|
7
|
+
"data-slot": "skeleton",
|
|
8
|
+
className: cn("bg-accent animate-pulse rounded-md", className),
|
|
9
|
+
...props
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
export { Skeleton };
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { cn, init_utils } from "../ui-kit-core/dist/utils.js";
|
|
2
|
+
import * as React$1 from "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
|
+
|
|
6
|
+
//#region ../ui-kit-web/dist/ui/stack.js
|
|
7
|
+
init_utils();
|
|
8
|
+
const vStackVariants = cva("flex flex-col", {
|
|
9
|
+
variants: {
|
|
10
|
+
gap: {
|
|
11
|
+
none: "gap-0",
|
|
12
|
+
xs: "gap-1",
|
|
13
|
+
sm: "gap-2",
|
|
14
|
+
md: "gap-3",
|
|
15
|
+
lg: "gap-4",
|
|
16
|
+
xl: "gap-6",
|
|
17
|
+
"2xl": "gap-8"
|
|
18
|
+
},
|
|
19
|
+
align: {
|
|
20
|
+
start: "items-start",
|
|
21
|
+
center: "items-center",
|
|
22
|
+
end: "items-end",
|
|
23
|
+
stretch: "items-stretch"
|
|
24
|
+
},
|
|
25
|
+
justify: {
|
|
26
|
+
start: "justify-start",
|
|
27
|
+
center: "justify-center",
|
|
28
|
+
end: "justify-end",
|
|
29
|
+
between: "justify-between",
|
|
30
|
+
around: "justify-around",
|
|
31
|
+
evenly: "justify-evenly"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
defaultVariants: {
|
|
35
|
+
gap: "md",
|
|
36
|
+
align: "stretch",
|
|
37
|
+
justify: "start"
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
const VStack = React$1.forwardRef(({ className, gap, align, justify, as = "div", ...props }, ref) => {
|
|
41
|
+
return /* @__PURE__ */ jsx(as, {
|
|
42
|
+
ref,
|
|
43
|
+
className: cn(vStackVariants({
|
|
44
|
+
gap,
|
|
45
|
+
align,
|
|
46
|
+
justify
|
|
47
|
+
}), className),
|
|
48
|
+
...props
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
VStack.displayName = "VStack";
|
|
52
|
+
const hStackVariants = cva("flex flex-row", {
|
|
53
|
+
variants: {
|
|
54
|
+
gap: {
|
|
55
|
+
none: "gap-0",
|
|
56
|
+
xs: "gap-1",
|
|
57
|
+
sm: "gap-2",
|
|
58
|
+
md: "gap-3",
|
|
59
|
+
lg: "gap-4",
|
|
60
|
+
xl: "gap-6",
|
|
61
|
+
"2xl": "gap-8"
|
|
62
|
+
},
|
|
63
|
+
align: {
|
|
64
|
+
start: "items-start",
|
|
65
|
+
center: "items-center",
|
|
66
|
+
end: "items-end",
|
|
67
|
+
stretch: "items-stretch",
|
|
68
|
+
baseline: "items-baseline"
|
|
69
|
+
},
|
|
70
|
+
justify: {
|
|
71
|
+
start: "justify-start",
|
|
72
|
+
center: "justify-center",
|
|
73
|
+
end: "justify-end",
|
|
74
|
+
between: "justify-between",
|
|
75
|
+
around: "justify-around",
|
|
76
|
+
evenly: "justify-evenly"
|
|
77
|
+
},
|
|
78
|
+
wrap: {
|
|
79
|
+
nowrap: "flex-nowrap",
|
|
80
|
+
wrap: "flex-wrap",
|
|
81
|
+
wrapReverse: "flex-wrap-reverse"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
defaultVariants: {
|
|
85
|
+
gap: "md",
|
|
86
|
+
align: "center",
|
|
87
|
+
justify: "start",
|
|
88
|
+
wrap: "wrap"
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
const HStack = React$1.forwardRef(({ className, gap, align, justify, wrap, as = "div", ...props }, ref) => {
|
|
92
|
+
return /* @__PURE__ */ jsx(as, {
|
|
93
|
+
ref,
|
|
94
|
+
className: cn(hStackVariants({
|
|
95
|
+
gap,
|
|
96
|
+
align,
|
|
97
|
+
justify,
|
|
98
|
+
wrap
|
|
99
|
+
}), className),
|
|
100
|
+
...props
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
HStack.displayName = "HStack";
|
|
104
|
+
const boxVariants = cva("flex flex-row", {
|
|
105
|
+
variants: {
|
|
106
|
+
gap: {
|
|
107
|
+
none: "gap-0",
|
|
108
|
+
xs: "gap-1",
|
|
109
|
+
sm: "gap-2",
|
|
110
|
+
md: "gap-3",
|
|
111
|
+
lg: "gap-4",
|
|
112
|
+
xl: "gap-6",
|
|
113
|
+
"2xl": "gap-8"
|
|
114
|
+
},
|
|
115
|
+
align: {
|
|
116
|
+
start: "items-start",
|
|
117
|
+
center: "items-center",
|
|
118
|
+
end: "items-end",
|
|
119
|
+
stretch: "items-stretch",
|
|
120
|
+
baseline: "items-baseline"
|
|
121
|
+
},
|
|
122
|
+
justify: {
|
|
123
|
+
start: "justify-start",
|
|
124
|
+
center: "justify-center",
|
|
125
|
+
end: "justify-end",
|
|
126
|
+
between: "justify-between",
|
|
127
|
+
around: "justify-around",
|
|
128
|
+
evenly: "justify-evenly"
|
|
129
|
+
},
|
|
130
|
+
wrap: {
|
|
131
|
+
nowrap: "flex-nowrap",
|
|
132
|
+
wrap: "flex-wrap",
|
|
133
|
+
wrapReverse: "flex-wrap-reverse"
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
defaultVariants: {
|
|
137
|
+
gap: "md",
|
|
138
|
+
align: "center",
|
|
139
|
+
justify: "center",
|
|
140
|
+
wrap: "nowrap"
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
const Box = React$1.forwardRef(({ className, gap, align, justify, wrap, as = "div", ...props }, ref) => {
|
|
144
|
+
return /* @__PURE__ */ jsx(as, {
|
|
145
|
+
ref,
|
|
146
|
+
className: cn(boxVariants({
|
|
147
|
+
gap,
|
|
148
|
+
align,
|
|
149
|
+
justify,
|
|
150
|
+
wrap
|
|
151
|
+
}), className),
|
|
152
|
+
...props
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
Box.displayName = "Box";
|
|
156
|
+
|
|
157
|
+
//#endregion
|
|
158
|
+
export { Box, HStack, VStack };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { cn, init_utils } from "../ui-kit-core/dist/utils.js";
|
|
2
|
+
import { HStack } from "./stack.js";
|
|
3
|
+
import "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { cva } from "class-variance-authority";
|
|
6
|
+
|
|
7
|
+
//#region ../ui-kit-web/dist/ui/stepper.js
|
|
8
|
+
init_utils();
|
|
9
|
+
const dotVariants = cva("h-2 w-2 rounded-full", {
|
|
10
|
+
variants: {
|
|
11
|
+
state: {
|
|
12
|
+
active: "bg-primary",
|
|
13
|
+
inactive: "bg-muted-foreground/20"
|
|
14
|
+
},
|
|
15
|
+
size: {
|
|
16
|
+
sm: "",
|
|
17
|
+
md: "h-2.5 w-2.5"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
defaultVariants: {
|
|
21
|
+
state: "inactive",
|
|
22
|
+
size: "md"
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
function Stepper({ current, total, size, className }) {
|
|
26
|
+
const items = Array.from({ length: Math.max(0, total) });
|
|
27
|
+
return /* @__PURE__ */ jsx(HStack, {
|
|
28
|
+
className: cn("items-center gap-2", className),
|
|
29
|
+
children: items.map((_, idx) => /* @__PURE__ */ jsx("span", { className: cn(dotVariants({
|
|
30
|
+
state: idx + 1 === current ? "active" : "inactive",
|
|
31
|
+
size
|
|
32
|
+
})) }, idx))
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
//#endregion
|
|
37
|
+
export { Stepper };
|
|
@@ -0,0 +1,24 @@
|
|
|
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 { cva } from "class-variance-authority";
|
|
7
|
+
import * as SwitchPrimitive from "@radix-ui/react-switch";
|
|
8
|
+
|
|
9
|
+
//#region ../ui-kit-web/dist/ui/switch.js
|
|
10
|
+
init_utils();
|
|
11
|
+
function Switch({ className, thumbClassName, ...props }) {
|
|
12
|
+
return /* @__PURE__ */ jsx(SwitchPrimitive.Root, {
|
|
13
|
+
"data-slot": "switch",
|
|
14
|
+
className: cn("peer focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-2xs outline-hidden transition-all focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", className),
|
|
15
|
+
...props,
|
|
16
|
+
children: /* @__PURE__ */ jsx(SwitchPrimitive.Thumb, {
|
|
17
|
+
"data-slot": "switch-thumb",
|
|
18
|
+
className: cn("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0", thumbClassName)
|
|
19
|
+
})
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
export { Switch };
|
|
@@ -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 } from "react/jsx-runtime";
|
|
6
|
+
|
|
7
|
+
//#region ../ui-kit-web/dist/ui/table.js
|
|
8
|
+
init_utils();
|
|
9
|
+
function Table({ className, ...props }) {
|
|
10
|
+
return /* @__PURE__ */ jsx("div", {
|
|
11
|
+
"data-slot": "table-container",
|
|
12
|
+
className: "relative w-full overflow-x-auto",
|
|
13
|
+
children: /* @__PURE__ */ jsx("table", {
|
|
14
|
+
"data-slot": "table",
|
|
15
|
+
className: cn("w-full caption-bottom text-sm", className),
|
|
16
|
+
...props
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function TableHeader({ className, ...props }) {
|
|
21
|
+
return /* @__PURE__ */ jsx("thead", {
|
|
22
|
+
"data-slot": "table-header",
|
|
23
|
+
className: cn("[&_tr]:border-b", className),
|
|
24
|
+
...props
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function TableBody({ className, ...props }) {
|
|
28
|
+
return /* @__PURE__ */ jsx("tbody", {
|
|
29
|
+
"data-slot": "table-body",
|
|
30
|
+
className: cn("[&_tr:last-child]:border-0", className),
|
|
31
|
+
...props
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function TableRow({ className, ...props }) {
|
|
35
|
+
return /* @__PURE__ */ jsx("tr", {
|
|
36
|
+
"data-slot": "table-row",
|
|
37
|
+
className: cn("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", className),
|
|
38
|
+
...props
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function TableHead({ className, ...props }) {
|
|
42
|
+
return /* @__PURE__ */ jsx("th", {
|
|
43
|
+
"data-slot": "table-head",
|
|
44
|
+
className: cn("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className),
|
|
45
|
+
...props
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function TableCell({ className, ...props }) {
|
|
49
|
+
return /* @__PURE__ */ jsx("td", {
|
|
50
|
+
"data-slot": "table-cell",
|
|
51
|
+
className: cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className),
|
|
52
|
+
...props
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
//#endregion
|
|
57
|
+
export { Table, TableBody, TableCell, TableHead, TableHeader, TableRow };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { cn, init_utils } from "../ui-kit-core/dist/utils.js";
|
|
2
|
+
import "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
5
|
+
|
|
6
|
+
//#region ../ui-kit-web/dist/ui/text.js
|
|
7
|
+
init_utils();
|
|
8
|
+
function Text({ className, asChild = false, ...props }) {
|
|
9
|
+
return /* @__PURE__ */ jsx(asChild ? Slot : "p", {
|
|
10
|
+
className: cn("text-foreground web:select-text text-base", className),
|
|
11
|
+
...props
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { Text };
|