@cellarnode/ui 0.5.5 → 0.7.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/chat/chat-toggle-button.d.ts.map +1 -1
- package/dist/chat/chat-toggle-button.js +6 -4
- package/dist/chat/chat-toggle-button.js.map +1 -1
- package/dist/components/dashboard-stats-grid.d.ts.map +1 -1
- package/dist/components/dashboard-stats-grid.js +2 -1
- package/dist/components/dashboard-stats-grid.js.map +1 -1
- package/dist/components/kanban-dnd-board.js.map +1 -1
- package/dist/globe/electron-arc.d.ts.map +1 -1
- package/dist/globe/electron-arc.js +17 -14
- package/dist/globe/electron-arc.js.map +1 -1
- package/dist/globe/globe-canvas.d.ts.map +1 -1
- package/dist/globe/globe-canvas.js +3 -3
- package/dist/globe/globe-canvas.js.map +1 -1
- package/dist/globe/globe-halo.js +2 -2
- package/dist/globe/globe-scene.d.ts.map +1 -1
- package/dist/globe/globe-scene.js +30 -23
- package/dist/globe/globe-scene.js.map +1 -1
- package/dist/globe/globe-theme.d.ts +9 -0
- package/dist/globe/globe-theme.d.ts.map +1 -1
- package/dist/globe/globe-theme.js +54 -9
- package/dist/globe/globe-theme.js.map +1 -1
- package/dist/globe/globe-types.d.ts +2 -2
- package/dist/globe/globe-types.d.ts.map +1 -1
- package/dist/globe/globe-view.d.ts.map +1 -1
- package/dist/globe/globe-view.js +51 -3
- package/dist/globe/globe-view.js.map +1 -1
- package/dist/globe/globe-view.stories.d.ts +1 -0
- package/dist/globe/globe-view.stories.d.ts.map +1 -1
- package/dist/globe/globe-view.stories.js +12 -0
- package/dist/globe/globe-view.stories.js.map +1 -1
- package/dist/notifications/notification-item.d.ts.map +1 -1
- package/dist/notifications/notification-list.js +1 -1
- package/dist/notifications/notification-list.js.map +1 -1
- package/dist/notifications/notification-provider.d.ts.map +1 -1
- package/dist/notifications/notification-provider.js +3 -3
- package/dist/notifications/notification-provider.js.map +1 -1
- package/dist/notifications/use-push-permission.d.ts.map +1 -1
- package/dist/notifications/use-push-permission.js +2 -4
- package/dist/notifications/use-push-permission.js.map +1 -1
- package/dist/notifications/utils.d.ts.map +1 -1
- package/dist/notifications/utils.js.map +1 -1
- package/dist/offer/offer-detail-header.d.ts.map +1 -1
- package/dist/offer/offer-detail-header.js +2 -3
- package/dist/offer/offer-detail-header.js.map +1 -1
- package/dist/profile/about-section.d.ts +8 -0
- package/dist/profile/about-section.d.ts.map +1 -0
- package/dist/profile/about-section.js +11 -0
- package/dist/profile/about-section.js.map +1 -0
- package/dist/profile/about-section.stories.d.ts +16 -0
- package/dist/profile/about-section.stories.d.ts.map +1 -0
- package/dist/profile/about-section.stories.js +22 -0
- package/dist/profile/about-section.stories.js.map +1 -0
- package/dist/profile/beverage-expertise.d.ts +9 -0
- package/dist/profile/beverage-expertise.d.ts.map +1 -0
- package/dist/profile/beverage-expertise.js +11 -0
- package/dist/profile/beverage-expertise.js.map +1 -0
- package/dist/profile/beverage-expertise.stories.d.ts +15 -0
- package/dist/profile/beverage-expertise.stories.d.ts.map +1 -0
- package/dist/profile/beverage-expertise.stories.js +18 -0
- package/dist/profile/beverage-expertise.stories.js.map +1 -0
- package/dist/profile/business-details.d.ts +14 -0
- package/dist/profile/business-details.d.ts.map +1 -0
- package/dist/profile/business-details.js +8 -0
- package/dist/profile/business-details.js.map +1 -0
- package/dist/profile/business-details.stories.d.ts +14 -0
- package/dist/profile/business-details.stories.d.ts.map +1 -0
- package/dist/profile/business-details.stories.js +18 -0
- package/dist/profile/business-details.stories.js.map +1 -0
- package/dist/profile/certifications-card.d.ts +12 -0
- package/dist/profile/certifications-card.d.ts.map +1 -0
- package/dist/profile/certifications-card.js +6 -0
- package/dist/profile/certifications-card.js.map +1 -0
- package/dist/profile/certifications-card.stories.d.ts +15 -0
- package/dist/profile/certifications-card.stories.d.ts.map +1 -0
- package/dist/profile/certifications-card.stories.js +19 -0
- package/dist/profile/certifications-card.stories.js.map +1 -0
- package/dist/profile/index.d.ts +10 -0
- package/dist/profile/index.d.ts.map +1 -1
- package/dist/profile/index.js +10 -0
- package/dist/profile/index.js.map +1 -1
- package/dist/profile/market-reach.d.ts +7 -0
- package/dist/profile/market-reach.d.ts.map +1 -0
- package/dist/profile/market-reach.js +25 -0
- package/dist/profile/market-reach.js.map +1 -0
- package/dist/profile/market-reach.stories.d.ts +16 -0
- package/dist/profile/market-reach.stories.d.ts.map +1 -0
- package/dist/profile/market-reach.stories.js +18 -0
- package/dist/profile/market-reach.stories.js.map +1 -0
- package/dist/profile/org-profile-page.stories.d.ts +13 -0
- package/dist/profile/org-profile-page.stories.d.ts.map +1 -0
- package/dist/profile/org-profile-page.stories.js +52 -0
- package/dist/profile/org-profile-page.stories.js.map +1 -0
- package/dist/profile/portfolio-showcase.d.ts +27 -0
- package/dist/profile/portfolio-showcase.d.ts.map +1 -0
- package/dist/profile/portfolio-showcase.js +17 -0
- package/dist/profile/portfolio-showcase.js.map +1 -0
- package/dist/profile/portfolio-showcase.stories.d.ts +16 -0
- package/dist/profile/portfolio-showcase.stories.d.ts.map +1 -0
- package/dist/profile/portfolio-showcase.stories.js +24 -0
- package/dist/profile/portfolio-showcase.stories.js.map +1 -0
- package/dist/profile/profile-bento-grid.d.ts +12 -0
- package/dist/profile/profile-bento-grid.d.ts.map +1 -0
- package/dist/profile/profile-bento-grid.js +9 -0
- package/dist/profile/profile-bento-grid.js.map +1 -0
- package/dist/profile/profile-cta.d.ts +12 -0
- package/dist/profile/profile-cta.d.ts.map +1 -0
- package/dist/profile/profile-cta.js +24 -0
- package/dist/profile/profile-cta.js.map +1 -0
- package/dist/profile/profile-cta.stories.d.ts +17 -0
- package/dist/profile/profile-cta.stories.d.ts.map +1 -0
- package/dist/profile/profile-cta.stories.js +21 -0
- package/dist/profile/profile-cta.stories.js.map +1 -0
- package/dist/profile/profile-hero.d.ts +16 -0
- package/dist/profile/profile-hero.d.ts.map +1 -0
- package/dist/profile/profile-hero.js +19 -0
- package/dist/profile/profile-hero.js.map +1 -0
- package/dist/profile/profile-hero.stories.d.ts +16 -0
- package/dist/profile/profile-hero.stories.d.ts.map +1 -0
- package/dist/profile/profile-hero.stories.js +33 -0
- package/dist/profile/profile-hero.stories.js.map +1 -0
- package/dist/profile/stats-ribbon.d.ts +11 -0
- package/dist/profile/stats-ribbon.d.ts.map +1 -0
- package/dist/profile/stats-ribbon.js +16 -0
- package/dist/profile/stats-ribbon.js.map +1 -0
- package/dist/profile/stats-ribbon.stories.d.ts +15 -0
- package/dist/profile/stats-ribbon.stories.d.ts.map +1 -0
- package/dist/profile/stats-ribbon.stories.js +28 -0
- package/dist/profile/stats-ribbon.stories.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beverage-expertise.js","sourceRoot":"","sources":["../../src/profile/beverage-expertise.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AASlC,SAAS,YAAY,CAAC,EAAU,EAAE,QAAiC;IACjE,OAAO,QAAQ,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAChC,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,GACc;IACvB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,sDAAsD,EAAE,SAAS,CAAC,aACnF,aAAI,SAAS,EAAC,6EAA6E,mCAEtF,EACL,cAAK,SAAS,EAAC,wBAAwB,YACpC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACvB,eAEE,SAAS,EAAC,8EAA8E,YAEvF,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,IAHvB,GAAG,CAIH,CACR,CAAC,GACE,EACL,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAClC,eAAK,SAAS,EAAC,uCAAuC,aACpD,cAAK,SAAS,EAAC,wCAAwC,gCAAsB,EAC7E,cAAK,SAAS,EAAC,yBAAyB,YACrC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GACvD,IACF,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { BeverageExpertise } from "./beverage-expertise";
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: typeof BeverageExpertise;
|
|
6
|
+
tags: string[];
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export default meta;
|
|
12
|
+
type Story = StoryObj<typeof meta>;
|
|
13
|
+
export declare const Default: Story;
|
|
14
|
+
export declare const CategoriesOnly: Story;
|
|
15
|
+
//# sourceMappingURL=beverage-expertise.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beverage-expertise.stories.d.ts","sourceRoot":"","sources":["../../src/profile/beverage-expertise.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,QAAA,MAAM,IAAI;;;;;;;CAKgC,CAAC;AAE3C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAE5B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BeverageExpertise } from "./beverage-expertise";
|
|
2
|
+
const meta = {
|
|
3
|
+
title: "Profile/BeverageExpertise",
|
|
4
|
+
component: BeverageExpertise,
|
|
5
|
+
tags: ["autodocs"],
|
|
6
|
+
parameters: { layout: "padded" },
|
|
7
|
+
};
|
|
8
|
+
export default meta;
|
|
9
|
+
export const Default = {
|
|
10
|
+
args: {
|
|
11
|
+
categories: ["Spirits", "Fortified Wine", "Beer", "Non-Alcoholic"],
|
|
12
|
+
subtypes: ["IPA", "Dessert Wine", "Rosé Sparkling", "Grappa", "Port"],
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
export const CategoriesOnly = {
|
|
16
|
+
args: { categories: ["Wine", "Spirits"] },
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=beverage-expertise.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beverage-expertise.stories.js","sourceRoot":"","sources":["../../src/profile/beverage-expertise.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,2BAA2B;IAClC,SAAS,EAAE,iBAAiB;IAC5B,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;CACQ,CAAC;AAE3C,eAAe,IAAI,CAAC;AAGpB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,eAAe,CAAC;QAClE,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC;KACtE;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAU;IACnC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;CAC1C,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
interface BusinessDetailItem {
|
|
3
|
+
icon: React.ReactNode;
|
|
4
|
+
label: string;
|
|
5
|
+
value: React.ReactNode;
|
|
6
|
+
href?: string;
|
|
7
|
+
}
|
|
8
|
+
interface BusinessDetailsProps {
|
|
9
|
+
items: BusinessDetailItem[];
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function BusinessDetails({ items, className }: BusinessDetailsProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=business-details.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"business-details.d.ts","sourceRoot":"","sources":["../../src/profile/business-details.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,UAAU,kBAAkB;IAC1B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,oBAAoB;IAC5B,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,oBAAoB,kDAoBzE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../lib/utils";
|
|
3
|
+
export function BusinessDetails({ items, className }) {
|
|
4
|
+
if (items.length === 0)
|
|
5
|
+
return null;
|
|
6
|
+
return (_jsxs("div", { className: cn("rounded-xl border border-border/60 bg-card px-5 py-4", className), children: [_jsx("h3", { className: "mb-2.5 text-[11px] font-bold uppercase tracking-wider text-muted-foreground", children: "Business Details" }), _jsx("div", { className: "flex flex-col gap-2.5", children: items.map((item) => (_jsxs("div", { className: "flex items-center gap-2.5", children: [_jsx("span", { className: "shrink-0 text-sm text-muted-foreground/60", children: item.icon }), item.href ? (_jsx("a", { href: item.href, target: "_blank", rel: "noopener noreferrer", className: "truncate text-xs font-medium text-primary hover:opacity-80", children: item.value })) : (_jsx("span", { className: "truncate text-xs text-foreground", children: item.value }))] }, item.label))) })] }));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=business-details.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"business-details.js","sourceRoot":"","sources":["../../src/profile/business-details.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAclC,MAAM,UAAU,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAwB;IACxE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,sDAAsD,EAAE,SAAS,CAAC,aACnF,aAAI,SAAS,EAAC,6EAA6E,iCAAsB,EACjH,cAAK,SAAS,EAAC,uBAAuB,YACnC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,eAAsB,SAAS,EAAC,2BAA2B,aACzD,eAAM,SAAS,EAAC,2CAA2C,YAAE,IAAI,CAAC,IAAI,GAAQ,EAC7E,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACX,YAAG,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,EAAC,SAAS,EAAC,4DAA4D,YAAE,IAAI,CAAC,KAAK,GAAK,CACtJ,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,kCAAkC,YAAE,IAAI,CAAC,KAAK,GAAQ,CACvE,KANO,IAAI,CAAC,KAAK,CAOd,CACP,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { BusinessDetails } from "./business-details";
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: typeof BusinessDetails;
|
|
6
|
+
tags: string[];
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export default meta;
|
|
12
|
+
type Story = StoryObj<typeof meta>;
|
|
13
|
+
export declare const Default: Story;
|
|
14
|
+
//# sourceMappingURL=business-details.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"business-details.stories.d.ts","sourceRoot":"","sources":["../../src/profile/business-details.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,QAAA,MAAM,IAAI;;;;;;;CAK8B,CAAC;AAEzC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BusinessDetails } from "./business-details";
|
|
2
|
+
const meta = {
|
|
3
|
+
title: "Profile/BusinessDetails",
|
|
4
|
+
component: BusinessDetails,
|
|
5
|
+
tags: ["autodocs"],
|
|
6
|
+
parameters: { layout: "padded" },
|
|
7
|
+
};
|
|
8
|
+
export default meta;
|
|
9
|
+
export const Default = {
|
|
10
|
+
args: {
|
|
11
|
+
items: [
|
|
12
|
+
{ icon: "📍", label: "Location", value: "Florence, Tuscany, Italy" },
|
|
13
|
+
{ icon: "🌐", label: "Website", value: "tuscanyimports.it", href: "https://tuscanyimports.it" },
|
|
14
|
+
{ icon: "🏛", label: "VAT", value: "IT02345678901" },
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=business-details.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"business-details.stories.js","sourceRoot":"","sources":["../../src/profile/business-details.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,yBAAyB;IAChC,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;CACM,CAAC;AAEzC,eAAe,IAAI,CAAC;AAGpB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,0BAA0B,EAAE;YACpE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,2BAA2B,EAAE;YAC/F,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE;SACrD;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface Certification {
|
|
2
|
+
name: string;
|
|
3
|
+
type: string;
|
|
4
|
+
verified?: boolean;
|
|
5
|
+
}
|
|
6
|
+
interface CertificationsCardProps {
|
|
7
|
+
certifications: Certification[];
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function CertificationsCard({ certifications, className }: CertificationsCardProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=certifications-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certifications-card.d.ts","sourceRoot":"","sources":["../../src/profile/certifications-card.tsx"],"names":[],"mappings":"AAGA,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,uBAAuB;IAC/B,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAkBxF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../lib/utils";
|
|
3
|
+
export function CertificationsCard({ certifications, className }) {
|
|
4
|
+
return (_jsxs("div", { className: cn("rounded-xl border border-border/60 bg-card px-5 py-4", className), children: [_jsx("h3", { className: "mb-2.5 text-[11px] font-bold uppercase tracking-wider text-muted-foreground", children: "Certifications" }), certifications.length === 0 ? (_jsx("p", { className: "text-xs text-muted-foreground", children: "No certifications uploaded" })) : (_jsx("div", { className: "flex flex-col gap-2", children: certifications.map((cert) => (_jsxs("div", { className: "flex items-center gap-2.5 rounded-lg bg-primary/4 px-3 py-1.5", children: [_jsx("div", { className: "flex size-5 shrink-0 items-center justify-center rounded-full bg-primary/10 text-[10px] text-primary", children: "\u2713" }), _jsx("span", { className: "truncate text-xs text-foreground", children: cert.name })] }, cert.type))) }))] }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=certifications-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certifications-card.js","sourceRoot":"","sources":["../../src/profile/certifications-card.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAalC,MAAM,UAAU,kBAAkB,CAAC,EAAE,cAAc,EAAE,SAAS,EAA2B;IACvF,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,sDAAsD,EAAE,SAAS,CAAC,aACnF,aAAI,SAAS,EAAC,6EAA6E,+BAAoB,EAC9G,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC7B,YAAG,SAAS,EAAC,+BAA+B,2CAA+B,CAC5E,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,qBAAqB,YACjC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC5B,eAAqB,SAAS,EAAC,+DAA+D,aAC5F,cAAK,SAAS,EAAC,sGAAsG,uBAAQ,EAC7H,eAAM,SAAS,EAAC,kCAAkC,YAAE,IAAI,CAAC,IAAI,GAAQ,KAF7D,IAAI,CAAC,IAAI,CAGb,CACP,CAAC,GACE,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { CertificationsCard } from "./certifications-card";
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: typeof CertificationsCard;
|
|
6
|
+
tags: string[];
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export default meta;
|
|
12
|
+
type Story = StoryObj<typeof meta>;
|
|
13
|
+
export declare const Default: Story;
|
|
14
|
+
export declare const Empty: Story;
|
|
15
|
+
//# sourceMappingURL=certifications-card.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certifications-card.stories.d.ts","sourceRoot":"","sources":["../../src/profile/certifications-card.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,QAAA,MAAM,IAAI;;;;;;;CAKiC,CAAC;AAE5C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAAwC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CertificationsCard } from "./certifications-card";
|
|
2
|
+
const meta = {
|
|
3
|
+
title: "Profile/CertificationsCard",
|
|
4
|
+
component: CertificationsCard,
|
|
5
|
+
tags: ["autodocs"],
|
|
6
|
+
parameters: { layout: "padded" },
|
|
7
|
+
};
|
|
8
|
+
export default meta;
|
|
9
|
+
export const Default = {
|
|
10
|
+
args: {
|
|
11
|
+
certifications: [
|
|
12
|
+
{ name: "Import License", type: "import_license" },
|
|
13
|
+
{ name: "Organic Certificate", type: "organic_certificate" },
|
|
14
|
+
{ name: "VAT Certificate", type: "vat_certificate" },
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
export const Empty = { args: { certifications: [] } };
|
|
19
|
+
//# sourceMappingURL=certifications-card.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certifications-card.stories.js","sourceRoot":"","sources":["../../src/profile/certifications-card.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,4BAA4B;IACnC,SAAS,EAAE,kBAAkB;IAC7B,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;CACS,CAAC;AAE5C,eAAe,IAAI,CAAC;AAGpB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE;QACJ,cAAc,EAAE;YACd,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE;YAClD,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,qBAAqB,EAAE;YAC5D,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE;SACrD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAU,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC"}
|
package/dist/profile/index.d.ts
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
1
|
export * from "./profile";
|
|
2
|
+
export * from "./profile-hero";
|
|
3
|
+
export * from "./stats-ribbon";
|
|
4
|
+
export * from "./about-section";
|
|
5
|
+
export * from "./profile-bento-grid";
|
|
6
|
+
export * from "./beverage-expertise";
|
|
7
|
+
export * from "./market-reach";
|
|
8
|
+
export * from "./portfolio-showcase";
|
|
9
|
+
export * from "./business-details";
|
|
10
|
+
export * from "./certifications-card";
|
|
11
|
+
export * from "./profile-cta";
|
|
2
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/profile/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/profile/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC"}
|
package/dist/profile/index.js
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
1
|
export * from "./profile";
|
|
2
|
+
export * from "./profile-hero";
|
|
3
|
+
export * from "./stats-ribbon";
|
|
4
|
+
export * from "./about-section";
|
|
5
|
+
export * from "./profile-bento-grid";
|
|
6
|
+
export * from "./beverage-expertise";
|
|
7
|
+
export * from "./market-reach";
|
|
8
|
+
export * from "./portfolio-showcase";
|
|
9
|
+
export * from "./business-details";
|
|
10
|
+
export * from "./certifications-card";
|
|
11
|
+
export * from "./profile-cta";
|
|
2
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profile/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profile/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"market-reach.d.ts","sourceRoot":"","sources":["../../src/profile/market-reach.tsx"],"names":[],"mappings":"AAGA,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmBD,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,gBAAgB,kDAgCrE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cn } from "../lib/utils";
|
|
4
|
+
function countryFlag(code) {
|
|
5
|
+
const upper = code.toUpperCase();
|
|
6
|
+
return String.fromCodePoint(...Array.from(upper).map((c) => 0x1f1e6 + c.charCodeAt(0) - 65));
|
|
7
|
+
}
|
|
8
|
+
const displayNames = new Intl.DisplayNames(["en"], { type: "region" });
|
|
9
|
+
function countryName(code) {
|
|
10
|
+
try {
|
|
11
|
+
return displayNames.of(code.toUpperCase()) ?? code;
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return code;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function MarketReach({ countries, className }) {
|
|
18
|
+
const [expanded, setExpanded] = React.useState(false);
|
|
19
|
+
if (countries.length === 0)
|
|
20
|
+
return null;
|
|
21
|
+
const visible = expanded ? countries : countries.slice(0, 9);
|
|
22
|
+
const hasMore = countries.length > 9;
|
|
23
|
+
return (_jsxs("div", { className: cn("rounded-xl border border-border/60 bg-card px-5 py-4", className), children: [_jsx("h3", { className: "mb-2.5 text-[11px] font-bold uppercase tracking-wider text-muted-foreground", children: "Market Reach" }), _jsx("div", { className: "grid grid-cols-3 gap-1.5", children: visible.map((code) => (_jsxs("div", { className: "rounded-lg bg-muted/40 px-2 py-2 text-center", children: [_jsx("div", { className: "text-lg leading-none", children: countryFlag(code) }), _jsx("div", { className: "mt-1 text-[9px] text-muted-foreground", children: countryName(code) })] }, code))) }), hasMore && (_jsx("button", { type: "button", onClick: () => setExpanded((v) => !v), className: "mt-2 text-xs font-medium text-primary hover:opacity-80", children: expanded ? "Show less" : `+${countries.length - 9} more` }))] }));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=market-reach.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"market-reach.js","sourceRoot":"","sources":["../../src/profile/market-reach.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAOlC,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,MAAM,CAAC,aAAa,CACzB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAChE,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAEvE,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,EAAE,SAAS,EAAoB;IACpE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEtD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAErC,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,sDAAsD,EAAE,SAAS,CAAC,aACnF,aAAI,SAAS,EAAC,6EAA6E,6BAEtF,EACL,cAAK,SAAS,EAAC,0BAA0B,YACtC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACrB,eAAgB,SAAS,EAAC,8CAA8C,aACtE,cAAK,SAAS,EAAC,sBAAsB,YAAE,WAAW,CAAC,IAAI,CAAC,GAAO,EAC/D,cAAK,SAAS,EAAC,uCAAuC,YAAE,WAAW,CAAC,IAAI,CAAC,GAAO,KAFxE,IAAI,CAGR,CACP,CAAC,GACE,EACL,OAAO,IAAI,CACV,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EACrC,SAAS,EAAC,wDAAwD,YAEjE,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,OAAO,GAClD,CACV,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { MarketReach } from "./market-reach";
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: typeof MarketReach;
|
|
6
|
+
tags: string[];
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export default meta;
|
|
12
|
+
type Story = StoryObj<typeof meta>;
|
|
13
|
+
export declare const SixCountries: Story;
|
|
14
|
+
export declare const ManyCountries: Story;
|
|
15
|
+
export declare const FewCountries: Story;
|
|
16
|
+
//# sourceMappingURL=market-reach.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"market-reach.stories.d.ts","sourceRoot":"","sources":["../../src/profile/market-reach.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,QAAA,MAAM,IAAI;;;;;;;CAK0B,CAAC;AAErC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,YAAY,EAAE,KAE1B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAE3B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAE1B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { MarketReach } from "./market-reach";
|
|
2
|
+
const meta = {
|
|
3
|
+
title: "Profile/MarketReach",
|
|
4
|
+
component: MarketReach,
|
|
5
|
+
tags: ["autodocs"],
|
|
6
|
+
parameters: { layout: "padded" },
|
|
7
|
+
};
|
|
8
|
+
export default meta;
|
|
9
|
+
export const SixCountries = {
|
|
10
|
+
args: { countries: ["PT", "ES", "IT", "FR", "DE", "GB"] },
|
|
11
|
+
};
|
|
12
|
+
export const ManyCountries = {
|
|
13
|
+
args: { countries: ["PT", "ES", "IT", "FR", "DE", "GB", "SE", "NO", "DK", "FI", "NL", "BE"] },
|
|
14
|
+
};
|
|
15
|
+
export const FewCountries = {
|
|
16
|
+
args: { countries: ["SE", "NO"] },
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=market-reach.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"market-reach.stories.js","sourceRoot":"","sources":["../../src/profile/market-reach.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;CACE,CAAC;AAErC,eAAe,IAAI,CAAC;AAGpB,MAAM,CAAC,MAAM,YAAY,GAAU;IACjC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;CAC1D,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAU;IAClC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;CAC9F,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAU;IACjC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;CAClC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
tags: string[];
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export default meta;
|
|
10
|
+
type Story = StoryObj<typeof meta>;
|
|
11
|
+
export declare const ImporterProfile: Story;
|
|
12
|
+
export declare const ProducerProfile: Story;
|
|
13
|
+
//# sourceMappingURL=org-profile-page.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-profile-page.stories.d.ts","sourceRoot":"","sources":["../../src/profile/org-profile-page.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAY5D,QAAA,MAAM,IAAI;;;;;;CAIM,CAAC;AAEjB,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,eAAe,EAAE,KA+C7B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KA8C7B,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ProfileHero } from "./profile-hero";
|
|
3
|
+
import { StatsRibbon } from "./stats-ribbon";
|
|
4
|
+
import { AboutSection } from "./about-section";
|
|
5
|
+
import { ProfileBentoGrid } from "./profile-bento-grid";
|
|
6
|
+
import { BeverageExpertise } from "./beverage-expertise";
|
|
7
|
+
import { MarketReach } from "./market-reach";
|
|
8
|
+
import { PortfolioShowcase } from "./portfolio-showcase";
|
|
9
|
+
import { BusinessDetails } from "./business-details";
|
|
10
|
+
import { CertificationsCard } from "./certifications-card";
|
|
11
|
+
import { ProfileCTA } from "./profile-cta";
|
|
12
|
+
const meta = {
|
|
13
|
+
title: "Profile/OrgProfilePage",
|
|
14
|
+
tags: ["autodocs"],
|
|
15
|
+
parameters: { layout: "fullscreen" },
|
|
16
|
+
};
|
|
17
|
+
export default meta;
|
|
18
|
+
export const ImporterProfile = {
|
|
19
|
+
render: () => (_jsxs("div", { className: "mx-auto max-w-4xl space-y-3 p-4 sm:p-6", children: [_jsx(ProfileHero, { name: "Tuscany Imports SRL", subtitle: "Florence, Tuscany \u00B7 Italy", verified: true, badges: [{ label: "Recommended", variant: "recommended" }] }), _jsx(StatsRibbon, { stats: [
|
|
20
|
+
{ value: 4, label: "Categories" },
|
|
21
|
+
{ value: 6, label: "Markets" },
|
|
22
|
+
{ value: 3, label: "Certificates" },
|
|
23
|
+
{ value: "2019", label: "Since" },
|
|
24
|
+
] }), _jsx(AboutSection, { description: "Italian importer with deep connections across European wine regions, serving restaurants and retail across the continent. Specializing in premium spirits and artisanal wines from select producers." }), _jsxs(ProfileBentoGrid, { children: [_jsx(BeverageExpertise, { categories: ["Spirits", "Fortified Wine", "Beer", "Non-Alcoholic"], subtypes: ["IPA", "Dessert Wine", "Rosé Sparkling"] }), _jsx(MarketReach, { countries: ["PT", "ES", "IT", "FR", "DE", "GB"] }), _jsx(BusinessDetails, { items: [
|
|
25
|
+
{ icon: "📍", label: "Location", value: "Florence, Tuscany, Italy" },
|
|
26
|
+
{ icon: "🌐", label: "Website", value: "tuscanyimports.it", href: "https://tuscanyimports.it" },
|
|
27
|
+
{ icon: "🏛", label: "VAT", value: "IT02345678901" },
|
|
28
|
+
] }), _jsx(CertificationsCard, { certifications: [
|
|
29
|
+
{ name: "Import License", type: "import_license" },
|
|
30
|
+
{ name: "Organic Certificate", type: "organic_certificate" },
|
|
31
|
+
{ name: "VAT Certificate", type: "vat_certificate" },
|
|
32
|
+
] })] }), _jsx(ProfileCTA, { heading: "Interested in partnering?", description: "Send a request to start the conversation", buttonLabel: "Request Partnership", onAction: () => alert("Request") })] })),
|
|
33
|
+
};
|
|
34
|
+
export const ProducerProfile = {
|
|
35
|
+
render: () => (_jsxs("div", { className: "mx-auto max-w-4xl space-y-3 p-4 sm:p-6", children: [_jsx(ProfileHero, { name: "Quinta da Lua", subtitle: "Douro Valley \u00B7 Portugal", verified: true }), _jsx(StatsRibbon, { stats: [
|
|
36
|
+
{ value: 12, label: "Products" },
|
|
37
|
+
{ value: 3, label: "Awards" },
|
|
38
|
+
{ value: "1998", label: "Since" },
|
|
39
|
+
] }), _jsx(AboutSection, { description: "Family-owned winery in Portugal's Douro Valley, producing premium fortified and still wines since 1998. Our organic vineyards span 45 hectares of terraced hillsides." }), _jsx(PortfolioShowcase, { beverages: [
|
|
40
|
+
{ id: "1", name: "Lua Reserve Tawny", subtype: "Port", variants: [{ id: "v1", vintage: 2018, awards: [{ name: "IWC", level: "Gold" }] }] },
|
|
41
|
+
{ id: "2", name: "Douro Rosé", subtype: "Rosé Sparkling", variants: [{ id: "v2", vintage: 2022 }] },
|
|
42
|
+
{ id: "3", name: "Quinta Branco", subtype: "White Wine", variants: [{ id: "v3", vintage: 2023 }] },
|
|
43
|
+
] }), _jsxs(ProfileBentoGrid, { children: [_jsx(BusinessDetails, { items: [
|
|
44
|
+
{ icon: "📍", label: "Location", value: "Peso da Régua, Douro, Portugal" },
|
|
45
|
+
{ icon: "🌐", label: "Website", value: "quintadalua.pt", href: "https://quintadalua.pt" },
|
|
46
|
+
{ icon: "🎯", label: "Samples", value: "Samples available" },
|
|
47
|
+
] }), _jsx(CertificationsCard, { certifications: [
|
|
48
|
+
{ name: "Organic Certification", type: "organic_certificate" },
|
|
49
|
+
{ name: "DOC Designation", type: "compliance_certificate" },
|
|
50
|
+
] })] }), _jsx(ProfileCTA, { heading: "Interested in their products?", description: "Send an offer to start a conversation", buttonLabel: "Send Offer", onAction: () => alert("Send") })] })),
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=org-profile-page.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-profile-page.stories.js","sourceRoot":"","sources":["../../src/profile/org-profile-page.stories.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
interface Award {
|
|
2
|
+
name: string;
|
|
3
|
+
level?: string;
|
|
4
|
+
}
|
|
5
|
+
interface Variant {
|
|
6
|
+
id: string;
|
|
7
|
+
vintage?: number | null;
|
|
8
|
+
imageUrl?: string | null;
|
|
9
|
+
awards?: Award[];
|
|
10
|
+
}
|
|
11
|
+
interface Beverage {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
category?: string;
|
|
15
|
+
subtype?: string;
|
|
16
|
+
variants: Variant[];
|
|
17
|
+
}
|
|
18
|
+
interface PortfolioShowcaseProps {
|
|
19
|
+
beverages: Beverage[];
|
|
20
|
+
maxVisible?: number;
|
|
21
|
+
onViewAll?: () => void;
|
|
22
|
+
onProductClick?: (beverageId: string) => void;
|
|
23
|
+
className?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function PortfolioShowcase({ beverages, maxVisible, onViewAll, onProductClick, className }: PortfolioShowcaseProps): import("react/jsx-runtime").JSX.Element | null;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=portfolio-showcase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio-showcase.d.ts","sourceRoot":"","sources":["../../src/profile/portfolio-showcase.tsx"],"names":[],"mappings":"AAGA,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;CAClB;AAED,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,UAAU,sBAAsB;IAC9B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6CD,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,UAAc,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,sBAAsB,kDA0B5H"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../lib/utils";
|
|
3
|
+
function ProductCard({ beverage, onClick }) {
|
|
4
|
+
const firstVariant = beverage.variants[0];
|
|
5
|
+
const imageUrl = firstVariant?.imageUrl;
|
|
6
|
+
const vintage = firstVariant?.vintage;
|
|
7
|
+
const awards = firstVariant?.awards ?? [];
|
|
8
|
+
return (_jsxs("button", { type: "button", onClick: onClick, className: "group overflow-hidden rounded-xl border border-border/60 bg-card text-left transition-colors hover:bg-accent/5", children: [_jsx("div", { className: "relative aspect-[4/3] overflow-hidden bg-muted/30", children: imageUrl ? (_jsx("img", { src: imageUrl, alt: beverage.name, className: "size-full object-cover transition-transform group-hover:scale-105" })) : (_jsx("div", { className: "flex size-full items-center justify-center bg-linear-to-br from-muted/20 to-muted/40", children: _jsxs("svg", { className: "size-8 text-muted-foreground/25", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", children: [_jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6.827 6.175A2.31 2.31 0 015.186 7.23c-.38.054-.757.112-1.134.175C2.999 7.58 2.25 8.507 2.25 9.574V18a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9.574c0-1.067-.75-1.994-1.802-2.169a47.865 47.865 0 00-1.134-.175 2.31 2.31 0 01-1.64-1.055l-.822-1.316a2.192 2.192 0 00-1.736-1.039 48.774 48.774 0 00-5.232 0 2.192 2.192 0 00-1.736 1.039l-.821 1.316z" }), _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M16.5 12.75a4.5 4.5 0 11-9 0 4.5 4.5 0 019 0z" })] }) })) }), _jsxs("div", { className: "px-3 py-2.5", children: [_jsx("div", { className: "truncate text-[13px] font-semibold text-foreground", children: beverage.name }), _jsx("div", { className: "mt-0.5 truncate text-[11px] text-muted-foreground", children: [beverage.subtype ?? beverage.category, vintage].filter(Boolean).join(" · ") }), awards.length > 0 && (_jsx("div", { className: "mt-1.5 flex flex-wrap gap-1", children: awards.slice(0, 2).map((a) => (_jsx("span", { className: "rounded-full bg-amber-500/10 px-1.5 py-px text-[9px] font-medium text-amber-700", children: a.level ? `🏆 ${a.level}` : `🏆 ${a.name}` }, a.name))) }))] })] }));
|
|
9
|
+
}
|
|
10
|
+
export function PortfolioShowcase({ beverages, maxVisible = 6, onViewAll, onProductClick, className }) {
|
|
11
|
+
if (beverages.length === 0)
|
|
12
|
+
return null;
|
|
13
|
+
const visible = beverages.slice(0, maxVisible);
|
|
14
|
+
const hasMore = beverages.length > maxVisible;
|
|
15
|
+
return (_jsxs("div", { className: cn("rounded-xl border border-border/60 bg-card px-5 py-4", className), children: [_jsxs("div", { className: "mb-3 flex items-center justify-between", children: [_jsx("h3", { className: "text-[11px] font-bold uppercase tracking-wider text-muted-foreground", children: "Product Portfolio" }), _jsxs("span", { className: "text-[10px] text-muted-foreground", children: [beverages.length, " product", beverages.length !== 1 ? "s" : ""] })] }), _jsx("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2 md:grid-cols-3", children: visible.map((bev) => (_jsx(ProductCard, { beverage: bev, onClick: onProductClick ? () => onProductClick(bev.id) : undefined }, bev.id))) }), hasMore && onViewAll && (_jsx("div", { className: "mt-3 text-center", children: _jsxs("button", { type: "button", onClick: onViewAll, className: "text-xs font-semibold text-primary hover:opacity-80", children: ["View all ", beverages.length, " products \u2192"] }) }))] }));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=portfolio-showcase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio-showcase.js","sourceRoot":"","sources":["../../src/profile/portfolio-showcase.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { PortfolioShowcase } from "./portfolio-showcase";
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: typeof PortfolioShowcase;
|
|
6
|
+
tags: string[];
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export default meta;
|
|
12
|
+
type Story = StoryObj<typeof meta>;
|
|
13
|
+
export declare const Default: Story;
|
|
14
|
+
export declare const WithViewAll: Story;
|
|
15
|
+
export declare const SingleProduct: Story;
|
|
16
|
+
//# sourceMappingURL=portfolio-showcase.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio-showcase.stories.d.ts","sourceRoot":"","sources":["../../src/profile/portfolio-showcase.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,QAAA,MAAM,IAAI;;;;;;;CAKgC,CAAC;AAE3C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AASnC,eAAO,MAAM,OAAO,EAAE,KAAgD,CAAC;AAEvE,eAAO,MAAM,WAAW,EAAE,KAMzB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAqD,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { PortfolioShowcase } from "./portfolio-showcase";
|
|
2
|
+
const meta = {
|
|
3
|
+
title: "Profile/PortfolioShowcase",
|
|
4
|
+
component: PortfolioShowcase,
|
|
5
|
+
tags: ["autodocs"],
|
|
6
|
+
parameters: { layout: "padded" },
|
|
7
|
+
};
|
|
8
|
+
export default meta;
|
|
9
|
+
const sampleBeverages = [
|
|
10
|
+
{ id: "1", name: "Lua Reserve Tawny", category: "Fortified Wine", subtype: "Port", variants: [{ id: "v1", vintage: 2018, imageUrl: null, awards: [{ name: "IWC", level: "Gold" }] }] },
|
|
11
|
+
{ id: "2", name: "Douro Rosé Sparkling", subtype: "Rosé Sparkling", variants: [{ id: "v2", vintage: 2022, imageUrl: null }] },
|
|
12
|
+
{ id: "3", name: "Quinta Branco", subtype: "White Wine", variants: [{ id: "v3", vintage: 2023, imageUrl: null }] },
|
|
13
|
+
{ id: "4", name: "Reserva Tinto", subtype: "Red Wine", variants: [{ id: "v4", vintage: 2019, imageUrl: null }] },
|
|
14
|
+
];
|
|
15
|
+
export const Default = { args: { beverages: sampleBeverages } };
|
|
16
|
+
export const WithViewAll = {
|
|
17
|
+
args: {
|
|
18
|
+
beverages: [...sampleBeverages, ...sampleBeverages.map((b) => ({ ...b, id: `dup-${b.id}` }))],
|
|
19
|
+
maxVisible: 3,
|
|
20
|
+
onViewAll: () => alert("View all"),
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
export const SingleProduct = { args: { beverages: [sampleBeverages[0]] } };
|
|
24
|
+
//# sourceMappingURL=portfolio-showcase.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio-showcase.stories.js","sourceRoot":"","sources":["../../src/profile/portfolio-showcase.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,2BAA2B;IAClC,SAAS,EAAE,iBAAiB;IAC5B,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;CACQ,CAAC;AAE3C,eAAe,IAAI,CAAC;AAGpB,MAAM,eAAe,GAAG;IACtB,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE;IACtL,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;IAC7H,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;IAClH,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;CACjH,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAU,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,CAAC;AAEvE,MAAM,CAAC,MAAM,WAAW,GAAU;IAChC,IAAI,EAAE;QACJ,SAAS,EAAE,CAAC,GAAG,eAAe,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7F,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;KACnC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAU,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
interface ProfileBentoGridProps {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
className?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function ProfileBentoGrid({ children, className }: ProfileBentoGridProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function BentoFullWidth({ children, className, }: {
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
className?: string;
|
|
10
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=profile-bento-grid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-bento-grid.d.ts","sourceRoot":"","sources":["../../src/profile/profile-bento-grid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,qBAAqB,2CAM9E;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAEA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../lib/utils";
|
|
3
|
+
export function ProfileBentoGrid({ children, className }) {
|
|
4
|
+
return (_jsx("div", { className: cn("grid grid-cols-1 gap-3 md:grid-cols-2", className), children: children }));
|
|
5
|
+
}
|
|
6
|
+
export function BentoFullWidth({ children, className, }) {
|
|
7
|
+
return _jsx("div", { className: cn("md:col-span-2", className), children: children });
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=profile-bento-grid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-bento-grid.js","sourceRoot":"","sources":["../../src/profile/profile-bento-grid.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAOlC,MAAM,UAAU,gBAAgB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAyB;IAC7E,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,uCAAuC,EAAE,SAAS,CAAC,YACnE,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,SAAS,GAIV;IACC,OAAO,cAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,YAAG,QAAQ,GAAO,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface ProfileCTAProps {
|
|
2
|
+
heading: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
buttonLabel: string;
|
|
5
|
+
onAction: () => void;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
variant?: "primary" | "success" | "muted";
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function ProfileCTA({ heading, description, buttonLabel, onAction, disabled, variant, className }: ProfileCTAProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=profile-cta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-cta.d.ts","sourceRoot":"","sources":["../../src/profile/profile-cta.tsx"],"names":[],"mappings":"AAGA,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAmB,EAAE,SAAS,EAAE,EAAE,eAAe,2CAmBpI"}
|