@contractspec/lib.design-system 1.46.1 → 1.47.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/dist/components/atoms/Cta.js.map +1 -1
- package/dist/components/atoms/ErrorState.d.ts +2 -2
- package/dist/components/atoms/LoaderCircular.d.ts +2 -2
- package/dist/components/atoms/NavBrand.d.ts +2 -2
- package/dist/components/data-view/DataViewDetail.d.ts +2 -2
- package/dist/components/data-view/DataViewList.d.ts +2 -2
- package/dist/components/data-view/DataViewRenderer.js.map +1 -1
- package/dist/components/data-view/DataViewTable.d.ts +2 -2
- package/dist/components/data-view/utils.js.map +1 -1
- package/dist/components/forms/ActionForm.d.ts +2 -2
- package/dist/components/forms/FormCardLayout.d.ts +2 -2
- package/dist/components/forms/FormDialog.d.ts +2 -2
- package/dist/components/forms/FormLayout.d.ts +4 -4
- package/dist/components/forms/FormOneByOneLayout.d.ts +2 -2
- package/dist/components/forms/FormStepsLayout.d.ts +2 -2
- package/dist/components/forms/ZodForm.d.ts +2 -2
- package/dist/components/legal/atoms/DefinitionList.d.ts +2 -2
- package/dist/components/legal/atoms/KeyValueList.d.ts +2 -2
- package/dist/components/legal/atoms/LegalCallout.d.ts +2 -2
- package/dist/components/legal/atoms/LegalHeading.d.ts +2 -2
- package/dist/components/legal/atoms/LegalList.d.ts +2 -2
- package/dist/components/legal/atoms/LegalSection.d.ts +2 -2
- package/dist/components/legal/atoms/LegalText.d.ts +2 -2
- package/dist/components/legal/molecules/Consent.d.ts +3 -3
- package/dist/components/legal/molecules/ContactFields.d.ts +2 -2
- package/dist/components/legal/molecules/LegalMeta.d.ts +2 -2
- package/dist/components/legal/molecules/LegalTOC.d.ts +2 -2
- package/dist/components/legal/organisms/ContactForm.d.ts +2 -2
- package/dist/components/legal/organisms/GDPRDataRequest.d.ts +2 -2
- package/dist/components/legal/organisms/GDPRRights.d.ts +2 -2
- package/dist/components/legal/organisms/LegalPageLayout.d.ts +2 -2
- package/dist/components/legal/templates/ContactTemplate.d.ts +2 -2
- package/dist/components/legal/templates/ContactTemplate.js +0 -1
- package/dist/components/legal/templates/ContactTemplate.js.map +1 -1
- package/dist/components/legal/templates/CookiesTemplate.d.ts +2 -2
- package/dist/components/legal/templates/PrivacyTemplate.d.ts +2 -2
- package/dist/components/legal/templates/SalesTermsTemplate.d.ts +2 -2
- package/dist/components/legal/templates/TermsTemplate.d.ts +2 -2
- package/dist/components/marketing/MarketingCard.d.ts +2 -2
- package/dist/components/marketing/MarketingCard.js.map +1 -1
- package/dist/components/marketing/MarketingCardsSection.d.ts +2 -2
- package/dist/components/marketing/MarketingComparisonSection.d.ts +2 -2
- package/dist/components/marketing/MarketingIconCard.d.ts +2 -2
- package/dist/components/marketing/MarketingSection.d.ts +2 -2
- package/dist/components/marketing/MarketingStepCard.d.ts +2 -2
- package/dist/components/molecules/AiLinkButton.d.ts +2 -2
- package/dist/components/molecules/Breadcrumbs.d.ts +2 -2
- package/dist/components/molecules/CodeBlock/CodeBlock.d.ts +16 -0
- package/dist/components/molecules/CodeBlock/CodeBlock.d.ts.map +1 -0
- package/dist/components/molecules/CodeBlock/CodeBlock.js +54 -0
- package/dist/components/molecules/CodeBlock/CodeBlock.js.map +1 -0
- package/dist/components/molecules/CodeBlock/index.d.ts +2 -0
- package/dist/components/molecules/CodeBlock/types.d.ts +19 -0
- package/dist/components/molecules/CodeBlock/types.d.ts.map +1 -0
- package/dist/components/molecules/CommandPalette.d.ts +2 -2
- package/dist/components/molecules/CommandSearchTrigger.d.ts +2 -2
- package/dist/components/molecules/CommandTabs/CommandTabs.d.ts +13 -0
- package/dist/components/molecules/CommandTabs/CommandTabs.d.ts.map +1 -0
- package/dist/components/molecules/CommandTabs/CommandTabs.js +68 -0
- package/dist/components/molecules/CommandTabs/CommandTabs.js.map +1 -0
- package/dist/components/molecules/CommandTabs/index.d.ts +2 -0
- package/dist/components/molecules/CommandTabs/types.d.ts +19 -0
- package/dist/components/molecules/CommandTabs/types.d.ts.map +1 -0
- package/dist/components/molecules/CopyButton/CopyButton.d.ts +13 -0
- package/dist/components/molecules/CopyButton/CopyButton.d.ts.map +1 -0
- package/dist/components/molecules/CopyButton/CopyButton.js +42 -0
- package/dist/components/molecules/CopyButton/CopyButton.js.map +1 -0
- package/dist/components/molecules/CopyButton/index.d.ts +2 -0
- package/dist/components/molecules/CopyButton/types.d.ts +12 -0
- package/dist/components/molecules/CopyButton/types.d.ts.map +1 -0
- package/dist/components/molecules/EntityCard.d.ts +2 -2
- package/dist/components/molecules/EntityCard.js.map +1 -1
- package/dist/components/molecules/FiltersToolbar.d.ts +2 -2
- package/dist/components/molecules/FiltersToolbar.js +0 -1
- package/dist/components/molecules/FiltersToolbar.js.map +1 -1
- package/dist/components/molecules/HoverPreview.d.ts +2 -2
- package/dist/components/molecules/InstallCommand/InstallCommand.d.ts +27 -0
- package/dist/components/molecules/InstallCommand/InstallCommand.d.ts.map +1 -0
- package/dist/components/molecules/InstallCommand/InstallCommand.js +68 -0
- package/dist/components/molecules/InstallCommand/InstallCommand.js.map +1 -0
- package/dist/components/molecules/InstallCommand/index.d.ts +2 -0
- package/dist/components/molecules/InstallCommand/types.d.ts +17 -0
- package/dist/components/molecules/InstallCommand/types.d.ts.map +1 -0
- package/dist/components/molecules/LangSwitch.d.ts +2 -2
- package/dist/components/molecules/LoaderBlock.d.ts +2 -2
- package/dist/components/molecules/OverviewCard.d.ts +2 -2
- package/dist/components/molecules/SkeletonBlock/index.web.d.ts +2 -2
- package/dist/components/molecules/SkeletonCircle/index.web.d.ts +2 -2
- package/dist/components/molecules/SkeletonList/index.web.d.ts +2 -2
- package/dist/components/molecules/StatCard.d.ts +3 -3
- package/dist/components/molecules/StatusChip.d.ts +2 -2
- package/dist/components/molecules/hover-previews/Doc.d.ts +2 -2
- package/dist/components/molecules/hover-previews/Media.d.ts +2 -2
- package/dist/components/molecules/hover-previews/Simple.d.ts +2 -2
- package/dist/components/molecules/hover-previews/Stats.d.ts +2 -2
- package/dist/components/molecules/hover-previews/User.d.ts +2 -2
- package/dist/components/organisms/AcademyLayout.d.ts +2 -2
- package/dist/components/organisms/AppHeader.d.ts +2 -2
- package/dist/components/organisms/AppLayout.d.ts +2 -2
- package/dist/components/organisms/AppSidebar.d.ts +2 -2
- package/dist/components/organisms/EmptyDataList.d.ts +2 -2
- package/dist/components/organisms/EmptySearchResult.d.ts +2 -2
- package/dist/components/organisms/FAQSection.d.ts +2 -2
- package/dist/components/organisms/FeatureCarousel.d.ts +2 -2
- package/dist/components/organisms/FeaturesSection.d.ts +2 -2
- package/dist/components/organisms/Footer.d.ts +2 -2
- package/dist/components/organisms/Header.d.ts +4 -4
- package/dist/components/organisms/HeroResponsive.d.ts +2 -2
- package/dist/components/organisms/HeroSection.d.ts +2 -2
- package/dist/components/organisms/ListCardPage.d.ts +2 -2
- package/dist/components/organisms/ListGridPage.d.ts +2 -2
- package/dist/components/organisms/ListPageResponsive.d.ts +2 -2
- package/dist/components/organisms/ListTablePage.d.ts +2 -2
- package/dist/components/organisms/MarketingHeader.d.ts +2 -2
- package/dist/components/organisms/MarketingHeader.js +1 -1
- package/dist/components/organisms/MarketingHeader.js.map +1 -1
- package/dist/components/organisms/MarketingHeaderDesktop.d.ts +2 -2
- package/dist/components/organisms/MarketingHeaderMobile.d.ts +2 -2
- package/dist/components/organisms/MarketingLayout.d.ts +2 -2
- package/dist/components/organisms/PageHeaderResponsive.d.ts +2 -2
- package/dist/components/organisms/PricingCarousel.d.ts +2 -2
- package/dist/components/organisms/PricingSection.d.ts +2 -2
- package/dist/components/organisms/TestimonialCarousel.d.ts +2 -2
- package/dist/components/providers/PackageManagerProvider.d.ts +26 -0
- package/dist/components/providers/PackageManagerProvider.d.ts.map +1 -0
- package/dist/components/providers/PackageManagerProvider.js +50 -0
- package/dist/components/providers/PackageManagerProvider.js.map +1 -0
- package/dist/components/templates/lists/ListPageTemplate/index.web.d.ts +2 -2
- package/dist/hooks/useListUrlState.js.map +1 -1
- package/dist/index.d.ts +14 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/keyboard.js.map +1 -1
- package/dist/platform/useResponsive.js.map +1 -1
- package/dist/platform/withPlatformUI.js.map +1 -1
- package/dist/renderers/form-contract.d.ts +2 -2
- package/dist/theme/tokens.js.map +1 -1
- package/package.json +16 -13
- package/dist/types/navigation.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime95 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/legal/templates/CookiesTemplate.d.ts
|
|
5
5
|
declare function CookiesTemplate({
|
|
@@ -27,7 +27,7 @@ declare function CookiesTemplate({
|
|
|
27
27
|
title: React.ReactNode;
|
|
28
28
|
content: React.ReactNode;
|
|
29
29
|
}[];
|
|
30
|
-
}):
|
|
30
|
+
}): react_jsx_runtime95.JSX.Element;
|
|
31
31
|
//#endregion
|
|
32
32
|
export { CookiesTemplate };
|
|
33
33
|
//# sourceMappingURL=CookiesTemplate.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime94 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/legal/templates/PrivacyTemplate.d.ts
|
|
5
5
|
declare function PrivacyTemplate({
|
|
@@ -27,7 +27,7 @@ declare function PrivacyTemplate({
|
|
|
27
27
|
term: React.ReactNode;
|
|
28
28
|
description: React.ReactNode;
|
|
29
29
|
}[];
|
|
30
|
-
}):
|
|
30
|
+
}): react_jsx_runtime94.JSX.Element;
|
|
31
31
|
//#endregion
|
|
32
32
|
export { PrivacyTemplate };
|
|
33
33
|
//# sourceMappingURL=PrivacyTemplate.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime93 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/legal/templates/SalesTermsTemplate.d.ts
|
|
5
5
|
declare function SalesTermsTemplate({
|
|
@@ -22,7 +22,7 @@ declare function SalesTermsTemplate({
|
|
|
22
22
|
title: React.ReactNode;
|
|
23
23
|
content: React.ReactNode;
|
|
24
24
|
}[];
|
|
25
|
-
}):
|
|
25
|
+
}): react_jsx_runtime93.JSX.Element;
|
|
26
26
|
//#endregion
|
|
27
27
|
export { SalesTermsTemplate };
|
|
28
28
|
//# sourceMappingURL=SalesTermsTemplate.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime92 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/legal/templates/TermsTemplate.d.ts
|
|
5
5
|
declare function TermsTemplate({
|
|
@@ -22,7 +22,7 @@ declare function TermsTemplate({
|
|
|
22
22
|
title: React.ReactNode;
|
|
23
23
|
content: React.ReactNode;
|
|
24
24
|
}[];
|
|
25
|
-
}):
|
|
25
|
+
}): react_jsx_runtime92.JSX.Element;
|
|
26
26
|
//#endregion
|
|
27
27
|
export { TermsTemplate };
|
|
28
28
|
//# sourceMappingURL=TermsTemplate.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime34 from "react/jsx-runtime";
|
|
3
3
|
import { Card, CardContent as CardContent$1, CardDescription, CardHeader as CardHeader$1, CardTitle as CardTitle$1 } from "@contractspec/lib.ui-kit-web/ui/card";
|
|
4
4
|
|
|
5
5
|
//#region src/components/marketing/MarketingCard.d.ts
|
|
@@ -11,7 +11,7 @@ declare function MarketingCard({
|
|
|
11
11
|
tone,
|
|
12
12
|
className,
|
|
13
13
|
...props
|
|
14
|
-
}: MarketingCardProps):
|
|
14
|
+
}: MarketingCardProps): react_jsx_runtime34.JSX.Element;
|
|
15
15
|
//#endregion
|
|
16
16
|
export { CardContent$1 as CardContent, CardDescription, CardHeader$1 as CardHeader, CardTitle$1 as CardTitle, MarketingCard, MarketingCardTone };
|
|
17
17
|
//# sourceMappingURL=MarketingCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarketingCard.js","names":[
|
|
1
|
+
{"version":3,"file":"MarketingCard.js","names":[],"sources":["../../../src/components/marketing/MarketingCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@contractspec/lib.ui-kit-web/ui/card';\nimport { cn } from '@contractspec/lib.ui-kit-web/ui/utils';\n\nexport type MarketingCardTone = 'default' | 'muted' | 'elevated';\n\nconst toneClasses: Record<MarketingCardTone, string> = {\n default: 'border-border/60 bg-card/90',\n muted: 'border-border/50 bg-muted/50',\n elevated: 'border-border/50 bg-card shadow-lg shadow-black/5',\n};\n\ntype MarketingCardProps = React.ComponentProps<typeof Card> & {\n tone?: MarketingCardTone;\n};\n\nexport function MarketingCard({\n tone = 'default',\n className,\n ...props\n}: MarketingCardProps) {\n return (\n <Card\n className={cn(\n 'backdrop-blur transition-shadow',\n toneClasses[tone],\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n CardContent as MarketingCardContent,\n CardDescription as MarketingCardDescription,\n CardHeader as MarketingCardHeader,\n CardTitle as MarketingCardTitle,\n};\n"],"mappings":";;;;;;AAYA,MAAM,cAAiD;CACrD,SAAS;CACT,OAAO;CACP,UAAU;CACX;AAMD,SAAgB,cAAc,EAC5B,OAAO,WACP,WACA,GAAG,SACkB;AACrB,QACE,oBAAC;EACC,WAAW,GACT,mCACA,YAAY,OACZ,UACD;EACD,GAAI;GACJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MarketingSection } from "./MarketingSection.js";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react_jsx_runtime33 from "react/jsx-runtime";
|
|
4
4
|
import { VariantProps } from "class-variance-authority";
|
|
5
5
|
import * as class_variance_authority_types4 from "class-variance-authority/types";
|
|
6
6
|
|
|
@@ -16,7 +16,7 @@ declare function MarketingCardsSection({
|
|
|
16
16
|
columns,
|
|
17
17
|
gridClassName,
|
|
18
18
|
...sectionProps
|
|
19
|
-
}: MarketingCardsSectionProps):
|
|
19
|
+
}: MarketingCardsSectionProps): react_jsx_runtime33.JSX.Element;
|
|
20
20
|
//#endregion
|
|
21
21
|
export { MarketingCardsSection };
|
|
22
22
|
//# sourceMappingURL=MarketingCardsSection.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MarketingSectionPadding, MarketingSectionTone } from "./MarketingSection.js";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react_jsx_runtime37 from "react/jsx-runtime";
|
|
4
4
|
|
|
5
5
|
//#region src/components/marketing/MarketingComparisonSection.d.ts
|
|
6
6
|
interface ComparisonColumn {
|
|
@@ -24,7 +24,7 @@ declare function MarketingComparisonSection({
|
|
|
24
24
|
right,
|
|
25
25
|
tone,
|
|
26
26
|
padding
|
|
27
|
-
}: MarketingComparisonSectionProps):
|
|
27
|
+
}: MarketingComparisonSectionProps): react_jsx_runtime37.JSX.Element;
|
|
28
28
|
//#endregion
|
|
29
29
|
export { MarketingComparisonSection };
|
|
30
30
|
//# sourceMappingURL=MarketingComparisonSection.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MarketingCardTone } from "./MarketingCard.js";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react_jsx_runtime35 from "react/jsx-runtime";
|
|
4
4
|
import { VariantProps } from "class-variance-authority";
|
|
5
5
|
import * as class_variance_authority_types5 from "class-variance-authority/types";
|
|
6
6
|
|
|
@@ -32,7 +32,7 @@ declare function MarketingIconCard({
|
|
|
32
32
|
headerAction,
|
|
33
33
|
variant,
|
|
34
34
|
className
|
|
35
|
-
}: MarketingIconCardProps):
|
|
35
|
+
}: MarketingIconCardProps): react_jsx_runtime35.JSX.Element;
|
|
36
36
|
//#endregion
|
|
37
37
|
export { MarketingIconCard };
|
|
38
38
|
//# sourceMappingURL=MarketingIconCard.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime32 from "react/jsx-runtime";
|
|
3
3
|
import { VariantProps } from "class-variance-authority";
|
|
4
4
|
import * as class_variance_authority_types3 from "class-variance-authority/types";
|
|
5
5
|
|
|
@@ -28,7 +28,7 @@ declare function MarketingSection({
|
|
|
28
28
|
tone,
|
|
29
29
|
padding,
|
|
30
30
|
className
|
|
31
|
-
}: MarketingSectionProps):
|
|
31
|
+
}: MarketingSectionProps): react_jsx_runtime32.JSX.Element;
|
|
32
32
|
//#endregion
|
|
33
33
|
export { MarketingSection, MarketingSectionPadding, MarketingSectionTone };
|
|
34
34
|
//# sourceMappingURL=MarketingSection.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MarketingCardTone } from "./MarketingCard.js";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react_jsx_runtime36 from "react/jsx-runtime";
|
|
4
4
|
|
|
5
5
|
//#region src/components/marketing/MarketingStepCard.d.ts
|
|
6
6
|
interface MarketingStepCardProps {
|
|
@@ -14,7 +14,7 @@ declare function MarketingStepCard({
|
|
|
14
14
|
title,
|
|
15
15
|
description,
|
|
16
16
|
tone
|
|
17
|
-
}: MarketingStepCardProps):
|
|
17
|
+
}: MarketingStepCardProps): react_jsx_runtime36.JSX.Element;
|
|
18
18
|
//#endregion
|
|
19
19
|
export { MarketingStepCard };
|
|
20
20
|
//# sourceMappingURL=MarketingStepCard.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime70 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/components/molecules/AiLinkButton.d.ts
|
|
4
4
|
type Provider = 'chatgpt' | 'claude';
|
|
@@ -10,7 +10,7 @@ interface AiLinkButtonProps {
|
|
|
10
10
|
declare function AiLinkButton({
|
|
11
11
|
href,
|
|
12
12
|
className
|
|
13
|
-
}: AiLinkButtonProps):
|
|
13
|
+
}: AiLinkButtonProps): react_jsx_runtime70.JSX.Element;
|
|
14
14
|
//#endregion
|
|
15
15
|
export { AiLinkButton };
|
|
16
16
|
//# sourceMappingURL=AiLinkButton.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime44 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/molecules/Breadcrumbs.d.ts
|
|
5
5
|
interface BreadcrumbItemDef {
|
|
@@ -10,7 +10,7 @@ declare function Breadcrumbs({
|
|
|
10
10
|
items
|
|
11
11
|
}: {
|
|
12
12
|
items: BreadcrumbItemDef[];
|
|
13
|
-
}):
|
|
13
|
+
}): react_jsx_runtime44.JSX.Element | null;
|
|
14
14
|
//#endregion
|
|
15
15
|
export { Breadcrumbs };
|
|
16
16
|
//# sourceMappingURL=Breadcrumbs.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CodeBlockProps } from "./types.js";
|
|
2
|
+
import * as react_jsx_runtime115 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/molecules/CodeBlock/CodeBlock.d.ts
|
|
5
|
+
declare function CodeBlock({
|
|
6
|
+
code,
|
|
7
|
+
language,
|
|
8
|
+
filename,
|
|
9
|
+
showLineNumbers,
|
|
10
|
+
showCopyButton,
|
|
11
|
+
className,
|
|
12
|
+
...props
|
|
13
|
+
}: CodeBlockProps): react_jsx_runtime115.JSX.Element;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { CodeBlock };
|
|
16
|
+
//# sourceMappingURL=CodeBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeBlock.d.ts","names":[],"sources":["../../../../src/components/molecules/CodeBlock/CodeBlock.tsx"],"sourcesContent":[],"mappings":";;;;iBAOgB,SAAA;;;;;;;;GAQb,iBAAc,oBAAA,CAAA,GAAA,CAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cn } from "../../../lib/utils.js";
|
|
4
|
+
import { CopyButton } from "../CopyButton/CopyButton.js";
|
|
5
|
+
import { useEffect, useState } from "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
|
|
8
|
+
//#region src/components/molecules/CodeBlock/CodeBlock.tsx
|
|
9
|
+
function CodeBlock({ code, language = "typescript", filename, showLineNumbers = false, showCopyButton = true, className, ...props }) {
|
|
10
|
+
const [highlightedHtml, setHighlightedHtml] = useState(null);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
let mounted = true;
|
|
13
|
+
async function highlight() {
|
|
14
|
+
try {
|
|
15
|
+
const { codeToHtml } = await import("shiki");
|
|
16
|
+
const html = await codeToHtml(code, {
|
|
17
|
+
lang: language === "text" ? "plaintext" : language,
|
|
18
|
+
theme: "vitesse-dark"
|
|
19
|
+
});
|
|
20
|
+
if (mounted) setHighlightedHtml(html);
|
|
21
|
+
} catch (err) {
|
|
22
|
+
console.error("Failed to highlight code:", err);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
highlight();
|
|
26
|
+
return () => {
|
|
27
|
+
mounted = false;
|
|
28
|
+
};
|
|
29
|
+
}, [code, language]);
|
|
30
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
31
|
+
className: cn("relative overflow-hidden rounded-lg border border-zinc-800 bg-zinc-950", className),
|
|
32
|
+
...props,
|
|
33
|
+
children: [filename && /* @__PURE__ */ jsx("div", {
|
|
34
|
+
className: "flex items-center justify-between border-b border-zinc-800 bg-zinc-900/50 px-4 py-2 text-xs text-zinc-400",
|
|
35
|
+
children: /* @__PURE__ */ jsx("span", { children: filename })
|
|
36
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
37
|
+
className: "relative",
|
|
38
|
+
children: [showCopyButton && /* @__PURE__ */ jsx(CopyButton, {
|
|
39
|
+
value: code,
|
|
40
|
+
className: "absolute top-3 right-3"
|
|
41
|
+
}), highlightedHtml ? /* @__PURE__ */ jsx("div", {
|
|
42
|
+
className: cn("overflow-x-auto p-4 font-mono text-[13px] leading-6", "[&_pre]:!m-0 [&_pre]:!bg-transparent [&_pre]:!p-0", "[&_code]:!bg-transparent", showLineNumbers && "line-numbers"),
|
|
43
|
+
dangerouslySetInnerHTML: { __html: highlightedHtml }
|
|
44
|
+
}) : /* @__PURE__ */ jsx("pre", {
|
|
45
|
+
className: cn("overflow-x-auto p-4 font-mono text-[13px] leading-6 text-zinc-300", showLineNumbers && "line-numbers"),
|
|
46
|
+
children: /* @__PURE__ */ jsx("code", { children: code })
|
|
47
|
+
})]
|
|
48
|
+
})]
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
//#endregion
|
|
53
|
+
export { CodeBlock };
|
|
54
|
+
//# sourceMappingURL=CodeBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeBlock.js","names":[],"sources":["../../../../src/components/molecules/CodeBlock/CodeBlock.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '../../../lib/utils';\nimport { useEffect, useState } from 'react';\nimport { CopyButton } from '../CopyButton';\nimport type { CodeBlockProps } from './types';\n\nexport function CodeBlock({\n code,\n language = 'typescript',\n filename,\n showLineNumbers = false,\n showCopyButton = true,\n className,\n ...props\n}: CodeBlockProps) {\n const [highlightedHtml, setHighlightedHtml] = useState<string | null>(null);\n\n useEffect(() => {\n let mounted = true;\n\n async function highlight() {\n try {\n const { codeToHtml } = await import('shiki');\n const html = await codeToHtml(code, {\n lang: language === 'text' ? 'plaintext' : language,\n // theme: 'github-dark-dimmed',\n theme: 'vitesse-dark',\n });\n if (mounted) {\n setHighlightedHtml(html);\n }\n } catch (err) {\n console.error('Failed to highlight code:', err);\n }\n }\n\n highlight();\n\n return () => {\n mounted = false;\n };\n }, [code, language]);\n\n return (\n <div\n className={cn(\n 'relative overflow-hidden rounded-lg border border-zinc-800 bg-zinc-950',\n className\n )}\n {...props}\n >\n {filename && (\n <div className=\"flex items-center justify-between border-b border-zinc-800 bg-zinc-900/50 px-4 py-2 text-xs text-zinc-400\">\n <span>{filename}</span>\n </div>\n )}\n <div className=\"relative\">\n {showCopyButton && (\n <CopyButton value={code} className=\"absolute top-3 right-3\" />\n )}\n {highlightedHtml ? (\n <div\n className={cn(\n 'overflow-x-auto p-4 font-mono text-[13px] leading-6',\n '[&_pre]:!m-0 [&_pre]:!bg-transparent [&_pre]:!p-0',\n '[&_code]:!bg-transparent',\n showLineNumbers && 'line-numbers'\n )}\n dangerouslySetInnerHTML={{ __html: highlightedHtml }}\n />\n ) : (\n <pre\n className={cn(\n 'overflow-x-auto p-4 font-mono text-[13px] leading-6 text-zinc-300',\n showLineNumbers && 'line-numbers'\n )}\n >\n <code>{code}</code>\n </pre>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;AAOA,SAAgB,UAAU,EACxB,MACA,WAAW,cACX,UACA,kBAAkB,OAClB,iBAAiB,MACjB,WACA,GAAG,SACc;CACjB,MAAM,CAAC,iBAAiB,sBAAsB,SAAwB,KAAK;AAE3E,iBAAgB;EACd,IAAI,UAAU;EAEd,eAAe,YAAY;AACzB,OAAI;IACF,MAAM,EAAE,eAAe,MAAM,OAAO;IACpC,MAAM,OAAO,MAAM,WAAW,MAAM;KAClC,MAAM,aAAa,SAAS,cAAc;KAE1C,OAAO;KACR,CAAC;AACF,QAAI,QACF,oBAAmB,KAAK;YAEnB,KAAK;AACZ,YAAQ,MAAM,6BAA6B,IAAI;;;AAInD,aAAW;AAEX,eAAa;AACX,aAAU;;IAEX,CAAC,MAAM,SAAS,CAAC;AAEpB,QACE,qBAAC;EACC,WAAW,GACT,0EACA,UACD;EACD,GAAI;aAEH,YACC,oBAAC;GAAI,WAAU;aACb,oBAAC,oBAAM,WAAgB;IACnB,EAER,qBAAC;GAAI,WAAU;cACZ,kBACC,oBAAC;IAAW,OAAO;IAAM,WAAU;KAA2B,EAE/D,kBACC,oBAAC;IACC,WAAW,GACT,uDACA,qDACA,4BACA,mBAAmB,eACpB;IACD,yBAAyB,EAAE,QAAQ,iBAAiB;KACpD,GAEF,oBAAC;IACC,WAAW,GACT,qEACA,mBAAmB,eACpB;cAED,oBAAC,oBAAM,OAAY;KACf;IAEJ;GACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { HTMLAttributes } from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/components/molecules/CodeBlock/types.d.ts
|
|
4
|
+
type CodeLanguage = 'typescript' | 'tsx' | 'javascript' | 'jsx' | 'bash' | 'shell' | 'json' | 'yaml' | 'graphql' | 'sql' | 'python' | 'go' | 'rust' | 'css' | 'scss' | 'html' | 'markdown' | 'text';
|
|
5
|
+
interface CodeBlockProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
+
/** The code to display */
|
|
7
|
+
code: string;
|
|
8
|
+
/** The language for syntax highlighting */
|
|
9
|
+
language?: CodeLanguage;
|
|
10
|
+
/** Optional filename to display in header */
|
|
11
|
+
filename?: string;
|
|
12
|
+
/** Whether to show line numbers */
|
|
13
|
+
showLineNumbers?: boolean;
|
|
14
|
+
/** Whether to show the copy button */
|
|
15
|
+
showCopyButton?: boolean;
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { CodeBlockProps, CodeLanguage };
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../../src/components/molecules/CodeBlock/types.ts"],"sourcesContent":[],"mappings":";;;KAEY,YAAA;UAoBK,cAAA,SAAuB,eAAe;EApB3C;EAoBK,IAAA,EAAA,MAAA;EAAsC;EAI1C,QAAA,CAAA,EAAA,YAAA;EAJ2B;EAAc,QAAA,CAAA,EAAA,MAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime41 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/components/molecules/CommandPalette.d.ts
|
|
4
4
|
interface CommandPaletteProps {
|
|
@@ -21,7 +21,7 @@ declare function CommandPalette({
|
|
|
21
21
|
onOpenChange,
|
|
22
22
|
groups,
|
|
23
23
|
placeholder
|
|
24
|
-
}: CommandPaletteProps):
|
|
24
|
+
}: CommandPaletteProps): react_jsx_runtime41.JSX.Element;
|
|
25
25
|
//#endregion
|
|
26
26
|
export { CommandPalette };
|
|
27
27
|
//# sourceMappingURL=CommandPalette.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CommandPalette } from "./CommandPalette.js";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react_jsx_runtime45 from "react/jsx-runtime";
|
|
4
4
|
|
|
5
5
|
//#region src/components/molecules/CommandSearchTrigger.d.ts
|
|
6
6
|
declare function CommandSearchTrigger({
|
|
@@ -13,7 +13,7 @@ declare function CommandSearchTrigger({
|
|
|
13
13
|
className?: string;
|
|
14
14
|
placeholder?: string;
|
|
15
15
|
compact?: boolean;
|
|
16
|
-
}):
|
|
16
|
+
}): react_jsx_runtime45.JSX.Element;
|
|
17
17
|
//#endregion
|
|
18
18
|
export { CommandSearchTrigger };
|
|
19
19
|
//# sourceMappingURL=CommandSearchTrigger.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CommandTabsProps } from "./types.js";
|
|
2
|
+
import * as react_jsx_runtime117 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/molecules/CommandTabs/CommandTabs.d.ts
|
|
5
|
+
declare function CommandTabs({
|
|
6
|
+
commands,
|
|
7
|
+
initialPreference,
|
|
8
|
+
className,
|
|
9
|
+
...props
|
|
10
|
+
}: CommandTabsProps): react_jsx_runtime117.JSX.Element | null;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { CommandTabs };
|
|
13
|
+
//# sourceMappingURL=CommandTabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandTabs.d.ts","names":[],"sources":["../../../../src/components/molecules/CommandTabs/CommandTabs.tsx"],"sourcesContent":[],"mappings":";;;;iBAUgB,WAAA;;;;;GAKb,mBAAgB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cn } from "../../../lib/utils.js";
|
|
4
|
+
import { CopyButton } from "../CopyButton/CopyButton.js";
|
|
5
|
+
import { usePackageManager } from "../../providers/PackageManagerProvider.js";
|
|
6
|
+
import { useEffect, useState } from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
|
|
9
|
+
//#region src/components/molecules/CommandTabs/CommandTabs.tsx
|
|
10
|
+
const STORAGE_KEY = "package-manager-preference";
|
|
11
|
+
function CommandTabs({ commands, initialPreference = "bun", className, ...props }) {
|
|
12
|
+
const context = usePackageManager();
|
|
13
|
+
const [localSelected, setLocalSelected] = useState(() => {
|
|
14
|
+
return initialPreference;
|
|
15
|
+
});
|
|
16
|
+
const selected = context?.preference ?? localSelected;
|
|
17
|
+
const setSelected = context?.setPreference ?? setLocalSelected;
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (context) return;
|
|
20
|
+
try {
|
|
21
|
+
const saved = localStorage.getItem(STORAGE_KEY);
|
|
22
|
+
if (saved && commands[saved]) setLocalSelected(saved);
|
|
23
|
+
} catch {}
|
|
24
|
+
}, [commands, context]);
|
|
25
|
+
const handleSelect = (pm) => {
|
|
26
|
+
setSelected(pm);
|
|
27
|
+
if (!context) try {
|
|
28
|
+
localStorage.setItem(STORAGE_KEY, pm);
|
|
29
|
+
} catch {}
|
|
30
|
+
};
|
|
31
|
+
const packageManagers = Object.keys(commands);
|
|
32
|
+
if (packageManagers.length === 0) return null;
|
|
33
|
+
const effectiveSelected = commands[selected] ? selected : packageManagers[0];
|
|
34
|
+
if (!effectiveSelected) return null;
|
|
35
|
+
const currentCommand = commands[effectiveSelected];
|
|
36
|
+
if (!currentCommand) return null;
|
|
37
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
38
|
+
className: cn("relative rounded-lg border border-zinc-800 bg-zinc-950", className),
|
|
39
|
+
...props,
|
|
40
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
41
|
+
className: "flex items-center border-b border-zinc-800 bg-zinc-900/50 px-2 pt-2",
|
|
42
|
+
role: "tablist",
|
|
43
|
+
"aria-label": "Package manager selection",
|
|
44
|
+
children: packageManagers.map((pm) => /* @__PURE__ */ jsx("button", {
|
|
45
|
+
type: "button",
|
|
46
|
+
role: "tab",
|
|
47
|
+
"aria-selected": effectiveSelected === pm,
|
|
48
|
+
onClick: () => handleSelect(pm),
|
|
49
|
+
className: cn("rounded-t-md border-t border-r border-l border-transparent px-4 py-2 text-xs font-medium text-zinc-400", "transition-colors hover:text-zinc-100", "focus:ring-2 focus:ring-zinc-600 focus:ring-offset-1 focus:ring-offset-zinc-900 focus:outline-none", effectiveSelected === pm && "border-zinc-800 bg-zinc-950 text-zinc-100"),
|
|
50
|
+
children: pm
|
|
51
|
+
}, pm))
|
|
52
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
53
|
+
className: "relative p-4",
|
|
54
|
+
role: "tabpanel",
|
|
55
|
+
children: [/* @__PURE__ */ jsx(CopyButton, {
|
|
56
|
+
value: currentCommand,
|
|
57
|
+
className: "absolute top-3 right-3"
|
|
58
|
+
}), /* @__PURE__ */ jsx("pre", {
|
|
59
|
+
className: "overflow-x-auto pr-10 font-mono text-[13px] leading-6 text-white",
|
|
60
|
+
children: /* @__PURE__ */ jsx("code", { children: currentCommand })
|
|
61
|
+
})]
|
|
62
|
+
})]
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
//#endregion
|
|
67
|
+
export { CommandTabs };
|
|
68
|
+
//# sourceMappingURL=CommandTabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandTabs.js","names":[],"sources":["../../../../src/components/molecules/CommandTabs/CommandTabs.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '../../../lib/utils';\nimport { useEffect, useState } from 'react';\nimport { CopyButton } from '../CopyButton';\nimport { usePackageManager } from '../../providers/PackageManagerProvider';\nimport type { CommandTabsProps, PackageManager } from './types';\n\nconst STORAGE_KEY = 'package-manager-preference';\n\nexport function CommandTabs({\n commands,\n initialPreference = 'bun',\n className,\n ...props\n}: CommandTabsProps) {\n const context = usePackageManager();\n\n const [localSelected, setLocalSelected] = useState<PackageManager>(() => {\n return initialPreference;\n });\n\n // Use context if available, otherwise use local state\n const selected = context?.preference ?? localSelected;\n const setSelected = context?.setPreference ?? setLocalSelected;\n\n // Hydrate preference from localStorage (only if not using context)\n useEffect(() => {\n if (context) return; // Context handles its own persistence\n\n try {\n const saved = localStorage.getItem(STORAGE_KEY) as PackageManager | null;\n if (saved && commands[saved]) {\n setLocalSelected(saved);\n }\n } catch {\n // localStorage not available\n }\n }, [commands, context]);\n\n const handleSelect = (pm: PackageManager) => {\n setSelected(pm);\n\n // Only persist locally if not using context\n if (!context) {\n try {\n localStorage.setItem(STORAGE_KEY, pm);\n } catch {\n // localStorage not available\n }\n }\n };\n\n // Get available package managers from commands\n const packageManagers = Object.keys(commands) as PackageManager[];\n\n // Early return if no commands available\n if (packageManagers.length === 0) return null;\n\n // Use selected if available, otherwise fallback to first available\n const effectiveSelected = commands[selected] ? selected : packageManagers[0];\n if (!effectiveSelected) return null;\n const currentCommand = commands[effectiveSelected];\n if (!currentCommand) return null;\n\n return (\n <div\n className={cn(\n 'relative rounded-lg border border-zinc-800 bg-zinc-950',\n className\n )}\n {...props}\n >\n <div\n className=\"flex items-center border-b border-zinc-800 bg-zinc-900/50 px-2 pt-2\"\n role=\"tablist\"\n aria-label=\"Package manager selection\"\n >\n {packageManagers.map((pm) => (\n <button\n key={pm}\n type=\"button\"\n role=\"tab\"\n aria-selected={effectiveSelected === pm}\n onClick={() => handleSelect(pm)}\n className={cn(\n 'rounded-t-md border-t border-r border-l border-transparent px-4 py-2 text-xs font-medium text-zinc-400',\n 'transition-colors hover:text-zinc-100',\n 'focus:ring-2 focus:ring-zinc-600 focus:ring-offset-1 focus:ring-offset-zinc-900 focus:outline-none',\n effectiveSelected === pm &&\n 'border-zinc-800 bg-zinc-950 text-zinc-100'\n )}\n >\n {pm}\n </button>\n ))}\n </div>\n <div className=\"relative p-4\" role=\"tabpanel\">\n <CopyButton value={currentCommand} className=\"absolute top-3 right-3\" />\n <pre className=\"overflow-x-auto pr-10 font-mono text-[13px] leading-6 text-white\">\n <code>{currentCommand}</code>\n </pre>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;AAQA,MAAM,cAAc;AAEpB,SAAgB,YAAY,EAC1B,UACA,oBAAoB,OACpB,WACA,GAAG,SACgB;CACnB,MAAM,UAAU,mBAAmB;CAEnC,MAAM,CAAC,eAAe,oBAAoB,eAA+B;AACvE,SAAO;GACP;CAGF,MAAM,WAAW,SAAS,cAAc;CACxC,MAAM,cAAc,SAAS,iBAAiB;AAG9C,iBAAgB;AACd,MAAI,QAAS;AAEb,MAAI;GACF,MAAM,QAAQ,aAAa,QAAQ,YAAY;AAC/C,OAAI,SAAS,SAAS,OACpB,kBAAiB,MAAM;UAEnB;IAGP,CAAC,UAAU,QAAQ,CAAC;CAEvB,MAAM,gBAAgB,OAAuB;AAC3C,cAAY,GAAG;AAGf,MAAI,CAAC,QACH,KAAI;AACF,gBAAa,QAAQ,aAAa,GAAG;UAC/B;;CAOZ,MAAM,kBAAkB,OAAO,KAAK,SAAS;AAG7C,KAAI,gBAAgB,WAAW,EAAG,QAAO;CAGzC,MAAM,oBAAoB,SAAS,YAAY,WAAW,gBAAgB;AAC1E,KAAI,CAAC,kBAAmB,QAAO;CAC/B,MAAM,iBAAiB,SAAS;AAChC,KAAI,CAAC,eAAgB,QAAO;AAE5B,QACE,qBAAC;EACC,WAAW,GACT,0DACA,UACD;EACD,GAAI;aAEJ,oBAAC;GACC,WAAU;GACV,MAAK;GACL,cAAW;aAEV,gBAAgB,KAAK,OACpB,oBAAC;IAEC,MAAK;IACL,MAAK;IACL,iBAAe,sBAAsB;IACrC,eAAe,aAAa,GAAG;IAC/B,WAAW,GACT,0GACA,yCACA,sGACA,sBAAsB,MACpB,4CACH;cAEA;MAbI,GAcE,CACT;IACE,EACN,qBAAC;GAAI,WAAU;GAAe,MAAK;cACjC,oBAAC;IAAW,OAAO;IAAgB,WAAU;KAA2B,EACxE,oBAAC;IAAI,WAAU;cACb,oBAAC,oBAAM,iBAAsB;KACzB;IACF;GACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { HTMLAttributes } from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/components/molecules/CommandTabs/types.d.ts
|
|
4
|
+
type PackageManager = 'bun' | 'npm' | 'yarn' | 'pnpm';
|
|
5
|
+
interface CommandTabsProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
+
/** Commands for each package manager */
|
|
7
|
+
commands: Partial<Record<PackageManager, string>>;
|
|
8
|
+
/** Initial package manager preference (overridden by context if available) */
|
|
9
|
+
initialPreference?: PackageManager;
|
|
10
|
+
}
|
|
11
|
+
interface PackageManagerContextValue {
|
|
12
|
+
/** Current package manager preference */
|
|
13
|
+
preference: PackageManager;
|
|
14
|
+
/** Set the package manager preference */
|
|
15
|
+
setPreference: (pm: PackageManager) => void;
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { CommandTabsProps, PackageManager, PackageManagerContextValue };
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../../src/components/molecules/CommandTabs/types.ts"],"sourcesContent":[],"mappings":";;;KAEY,cAAA;UAEK,gBAAA,SAAyB,eAAe;EAF7C;EAEK,QAAA,EAEL,OAFK,CAEG,MAFc,CAEP,cAFO,EAAA,MAAA,CAAA,CAAA;EAAuB;EAE9B,iBAAA,CAAA,EAEL,cAFK;;AAAf,UAKK,0BAAA,CALL;EAEU;EAJoB,UAAA,EAS5B,cAT4B;EAAc;EAOvC,aAAA,EAAA,CAAA,EAAA,EAIK,cAJqB,EAAA,GAAA,IAE7B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CopyButtonProps } from "./types.js";
|
|
2
|
+
import * as react_jsx_runtime116 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/molecules/CopyButton/CopyButton.d.ts
|
|
5
|
+
declare function CopyButton({
|
|
6
|
+
value,
|
|
7
|
+
onCopy,
|
|
8
|
+
className,
|
|
9
|
+
...props
|
|
10
|
+
}: CopyButtonProps): react_jsx_runtime116.JSX.Element;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { CopyButton };
|
|
13
|
+
//# sourceMappingURL=CopyButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyButton.d.ts","names":[],"sources":["../../../../src/components/molecules/CopyButton/CopyButton.tsx"],"sourcesContent":[],"mappings":";;;;iBAOgB,UAAA;;;;;GAKb,kBAAe,oBAAA,CAAA,GAAA,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cn } from "../../../lib/utils.js";
|
|
4
|
+
import { useCallback, useEffect, useState } from "react";
|
|
5
|
+
import { Check, Copy } from "lucide-react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
|
|
8
|
+
//#region src/components/molecules/CopyButton/CopyButton.tsx
|
|
9
|
+
function CopyButton({ value, onCopy, className, ...props }) {
|
|
10
|
+
const [hasCopied, setHasCopied] = useState(false);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
if (!hasCopied) return;
|
|
13
|
+
const timeout = setTimeout(() => {
|
|
14
|
+
setHasCopied(false);
|
|
15
|
+
}, 2e3);
|
|
16
|
+
return () => clearTimeout(timeout);
|
|
17
|
+
}, [hasCopied]);
|
|
18
|
+
const copyToClipboard = useCallback(async () => {
|
|
19
|
+
try {
|
|
20
|
+
await navigator.clipboard.writeText(value);
|
|
21
|
+
setHasCopied(true);
|
|
22
|
+
onCopy?.();
|
|
23
|
+
} catch (err) {
|
|
24
|
+
console.error("Failed to copy to clipboard:", err);
|
|
25
|
+
}
|
|
26
|
+
}, [value, onCopy]);
|
|
27
|
+
return /* @__PURE__ */ jsxs("button", {
|
|
28
|
+
type: "button",
|
|
29
|
+
className: cn("relative z-10 inline-flex h-6 w-6 items-center justify-center rounded-md", "border border-zinc-700 bg-zinc-800 text-zinc-400", "transition-all hover:bg-zinc-700 hover:text-zinc-100", "focus:ring-2 focus:ring-zinc-600 focus:ring-offset-2 focus:ring-offset-zinc-900 focus:outline-none", className),
|
|
30
|
+
onClick: copyToClipboard,
|
|
31
|
+
"aria-label": hasCopied ? "Copied" : "Copy to clipboard",
|
|
32
|
+
...props,
|
|
33
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
34
|
+
className: "sr-only",
|
|
35
|
+
children: hasCopied ? "Copied" : "Copy"
|
|
36
|
+
}), hasCopied ? /* @__PURE__ */ jsx(Check, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx(Copy, { className: "h-3 w-3" })]
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
//#endregion
|
|
41
|
+
export { CopyButton };
|
|
42
|
+
//# sourceMappingURL=CopyButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyButton.js","names":[],"sources":["../../../../src/components/molecules/CopyButton/CopyButton.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '../../../lib/utils';\nimport { Check, Copy } from 'lucide-react';\nimport { useCallback, useEffect, useState } from 'react';\nimport type { CopyButtonProps } from './types';\n\nexport function CopyButton({\n value,\n onCopy,\n className,\n ...props\n}: CopyButtonProps) {\n const [hasCopied, setHasCopied] = useState(false);\n\n useEffect(() => {\n if (!hasCopied) return;\n const timeout = setTimeout(() => {\n setHasCopied(false);\n }, 2000);\n return () => clearTimeout(timeout);\n }, [hasCopied]);\n\n const copyToClipboard = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(value);\n setHasCopied(true);\n onCopy?.();\n } catch (err) {\n console.error('Failed to copy to clipboard:', err);\n }\n }, [value, onCopy]);\n\n return (\n <button\n type=\"button\"\n className={cn(\n 'relative z-10 inline-flex h-6 w-6 items-center justify-center rounded-md',\n 'border border-zinc-700 bg-zinc-800 text-zinc-400',\n 'transition-all hover:bg-zinc-700 hover:text-zinc-100',\n 'focus:ring-2 focus:ring-zinc-600 focus:ring-offset-2 focus:ring-offset-zinc-900 focus:outline-none',\n className\n )}\n onClick={copyToClipboard}\n aria-label={hasCopied ? 'Copied' : 'Copy to clipboard'}\n {...props}\n >\n <span className=\"sr-only\">{hasCopied ? 'Copied' : 'Copy'}</span>\n {hasCopied ? <Check className=\"h-3 w-3\" /> : <Copy className=\"h-3 w-3\" />}\n </button>\n );\n}\n"],"mappings":";;;;;;;;AAOA,SAAgB,WAAW,EACzB,OACA,QACA,WACA,GAAG,SACe;CAClB,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;AAEjD,iBAAgB;AACd,MAAI,CAAC,UAAW;EAChB,MAAM,UAAU,iBAAiB;AAC/B,gBAAa,MAAM;KAClB,IAAK;AACR,eAAa,aAAa,QAAQ;IACjC,CAAC,UAAU,CAAC;CAEf,MAAM,kBAAkB,YAAY,YAAY;AAC9C,MAAI;AACF,SAAM,UAAU,UAAU,UAAU,MAAM;AAC1C,gBAAa,KAAK;AAClB,aAAU;WACH,KAAK;AACZ,WAAQ,MAAM,gCAAgC,IAAI;;IAEnD,CAAC,OAAO,OAAO,CAAC;AAEnB,QACE,qBAAC;EACC,MAAK;EACL,WAAW,GACT,4EACA,oDACA,wDACA,sGACA,UACD;EACD,SAAS;EACT,cAAY,YAAY,WAAW;EACnC,GAAI;aAEJ,oBAAC;GAAK,WAAU;aAAW,YAAY,WAAW;IAAc,EAC/D,YAAY,oBAAC,SAAM,WAAU,YAAY,GAAG,oBAAC,QAAK,WAAU,YAAY;GAClE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HTMLAttributes } from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/components/molecules/CopyButton/types.d.ts
|
|
4
|
+
interface CopyButtonProps extends HTMLAttributes<HTMLButtonElement> {
|
|
5
|
+
/** The value to copy to clipboard */
|
|
6
|
+
value: string;
|
|
7
|
+
/** Optional callback when copy succeeds */
|
|
8
|
+
onCopy?: () => void;
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { CopyButtonProps };
|
|
12
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../../src/components/molecules/CopyButton/types.ts"],"sourcesContent":[],"mappings":";;;UAEiB,eAAA,SAAwB,eAAe;;EAAvC,KAAA,EAAA,MAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime47 from "react/jsx-runtime";
|
|
3
3
|
import { VariantProps } from "class-variance-authority";
|
|
4
4
|
import { Card } from "@contractspec/lib.ui-kit-web/ui/card";
|
|
5
5
|
import * as class_variance_authority_types7 from "class-variance-authority/types";
|
|
@@ -32,7 +32,7 @@ declare function EntityCard({
|
|
|
32
32
|
href,
|
|
33
33
|
preview,
|
|
34
34
|
...cardProps
|
|
35
|
-
}: EntityCardProps):
|
|
35
|
+
}: EntityCardProps): react_jsx_runtime47.JSX.Element;
|
|
36
36
|
//#endregion
|
|
37
37
|
export { EntityCard };
|
|
38
38
|
//# sourceMappingURL=EntityCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityCard.js","names":[
|
|
1
|
+
{"version":3,"file":"EntityCard.js","names":[],"sources":["../../../src/components/molecules/EntityCard.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Card, CardContent } from '@contractspec/lib.ui-kit-web/ui/card';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@contractspec/lib.ui-kit-web/ui/utils';\n\nconst entityCardVariants = cva('transition-all hover:shadow-2xs', {\n variants: {\n emphasis: {\n default: '',\n subtle: 'border-muted/60 bg-muted/20',\n strong: 'border-primary/50 bg-primary/5',\n },\n density: {\n compact: 'p-3',\n comfortable: 'p-4 md:p-5',\n },\n },\n defaultVariants: { emphasis: 'default', density: 'comfortable' },\n});\n\nexport type EntityCardProps = React.ComponentProps<typeof Card> &\n VariantProps<typeof entityCardVariants> & {\n cardTitle: React.ReactNode;\n cardSubtitle?: React.ReactNode;\n chips?: React.ReactNode; // right-aligned small chips\n meta?: React.ReactNode; // rows of icon+text data\n footer?: React.ReactNode; // actions area\n href?: string; // optional link wrapper\n contentClassName?: string;\n preview?: React.ReactNode; // hover preview content\n };\n\nexport function EntityCard({\n cardTitle,\n cardSubtitle,\n chips,\n meta,\n footer,\n emphasis,\n density,\n className,\n contentClassName,\n href,\n preview,\n ...cardProps\n}: EntityCardProps) {\n const Wrapper: React.ElementType = href ? 'a' : 'div';\n const cardContent = (\n <Card\n className={cn(entityCardVariants({ emphasis }), className)}\n {...cardProps}\n >\n <CardContent\n className={cn(entityCardVariants({ density }), contentClassName)}\n >\n <div className=\"space-y-3\">\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"min-w-0\">\n <div className=\"truncate text-lg font-medium\">{cardTitle}</div>\n {cardSubtitle && (\n <div className=\"text-muted-foreground text-base\">\n {cardSubtitle}\n </div>\n )}\n </div>\n {chips && (\n <div className=\"inline-flex shrink-0 items-center gap-1\">\n {chips}\n </div>\n )}\n </div>\n {meta && <div className=\"space-y-1\">{meta}</div>}\n {footer && (\n <div className=\"flex items-center justify-between\">{footer}</div>\n )}\n </div>\n </CardContent>\n </Card>\n );\n\n const maybePreview = (() => {\n if (!preview) return cardContent;\n try {\n /* eslint-disable @typescript-eslint/no-require-imports */\n const { HoverPreview } =\n require('./HoverPreview') as typeof import('./HoverPreview');\n /* eslint-enable @typescript-eslint/no-require-imports */\n return <HoverPreview trigger={cardContent} content={preview} />;\n } catch {\n return cardContent;\n }\n })();\n\n return (\n <Wrapper href={href} className={href ? 'block' : undefined}>\n {maybePreview}\n </Wrapper>\n );\n}\n"],"mappings":";;;;;;;;;;;AAOA,MAAM,qBAAqB,IAAI,mCAAmC;CAChE,UAAU;EACR,UAAU;GACR,SAAS;GACT,QAAQ;GACR,QAAQ;GACT;EACD,SAAS;GACP,SAAS;GACT,aAAa;GACd;EACF;CACD,iBAAiB;EAAE,UAAU;EAAW,SAAS;EAAe;CACjE,CAAC;AAcF,SAAgB,WAAW,EACzB,WACA,cACA,OACA,MACA,QACA,UACA,SACA,WACA,kBACA,MACA,SACA,GAAG,aACe;CAClB,MAAM,UAA6B,OAAO,MAAM;CAChD,MAAM,cACJ,oBAAC;EACC,WAAW,GAAG,mBAAmB,EAAE,UAAU,CAAC,EAAE,UAAU;EAC1D,GAAI;YAEJ,oBAAC;GACC,WAAW,GAAG,mBAAmB,EAAE,SAAS,CAAC,EAAE,iBAAiB;aAEhE,qBAAC;IAAI,WAAU;;KACb,qBAAC;MAAI,WAAU;iBACb,qBAAC;OAAI,WAAU;kBACb,oBAAC;QAAI,WAAU;kBAAgC;SAAgB,EAC9D,gBACC,oBAAC;QAAI,WAAU;kBACZ;SACG;QAEJ,EACL,SACC,oBAAC;OAAI,WAAU;iBACZ;QACG;OAEJ;KACL,QAAQ,oBAAC;MAAI,WAAU;gBAAa;OAAW;KAC/C,UACC,oBAAC;MAAI,WAAU;gBAAqC;OAAa;;KAE/D;IACM;GACT;CAGT,MAAM,sBAAsB;AAC1B,MAAI,CAAC,QAAS,QAAO;AACrB,MAAI;GAEF,MAAM,EAAE;AAGR,UAAO,oBAAC;IAAa,SAAS;IAAa,SAAS;KAAW;UACzD;AACN,UAAO;;KAEP;AAEJ,QACE,oBAAC;EAAc;EAAM,WAAW,OAAO,UAAU;YAC9C;GACO"}
|