@cellarnode/ui 0.1.0 → 0.2.1
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/classification-select.d.ts +24 -0
- package/dist/components/classification-select.d.ts.map +1 -0
- package/dist/components/classification-select.js +51 -0
- package/dist/components/classification-select.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/offer/beverage-details.d.ts +23 -0
- package/dist/offer/beverage-details.d.ts.map +1 -0
- package/dist/offer/beverage-details.js +41 -0
- package/dist/offer/beverage-details.js.map +1 -0
- package/dist/offer/composition-list.d.ts +9 -0
- package/dist/offer/composition-list.d.ts.map +1 -0
- package/dist/offer/composition-list.js +9 -0
- package/dist/offer/composition-list.js.map +1 -0
- package/dist/offer/index.d.ts +12 -0
- package/dist/offer/index.d.ts.map +1 -1
- package/dist/offer/index.js +6 -0
- package/dist/offer/index.js.map +1 -1
- package/dist/offer/opportunity-requirements.d.ts +31 -0
- package/dist/offer/opportunity-requirements.d.ts.map +1 -0
- package/dist/offer/opportunity-requirements.js +54 -0
- package/dist/offer/opportunity-requirements.js.map +1 -0
- package/dist/offer/org-banner.d.ts +11 -0
- package/dist/offer/org-banner.d.ts.map +1 -0
- package/dist/offer/org-banner.js +19 -0
- package/dist/offer/org-banner.js.map +1 -0
- package/dist/offer/reviews-summary.d.ts +19 -0
- package/dist/offer/reviews-summary.d.ts.map +1 -0
- package/dist/offer/reviews-summary.js +17 -0
- package/dist/offer/reviews-summary.js.map +1 -0
- package/dist/offer/sensory-profile.d.ts +11 -0
- package/dist/offer/sensory-profile.d.ts.map +1 -0
- package/dist/offer/sensory-profile.js +28 -0
- package/dist/offer/sensory-profile.js.map +1 -0
- package/package.json +5 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface CategoryOption {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
subtypes: {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
}[];
|
|
8
|
+
}
|
|
9
|
+
export interface ClassificationSelectProps {
|
|
10
|
+
categories: CategoryOption[];
|
|
11
|
+
selectedCategory?: string;
|
|
12
|
+
selectedSubtype?: string;
|
|
13
|
+
onCategoryChange: (categoryId: string) => void;
|
|
14
|
+
onSubtypeChange: (subtypeId: string) => void;
|
|
15
|
+
isLoading?: boolean;
|
|
16
|
+
allowOther?: boolean;
|
|
17
|
+
categoryLabel?: string;
|
|
18
|
+
subtypeLabel?: string;
|
|
19
|
+
categoryPlaceholder?: string;
|
|
20
|
+
subtypePlaceholder?: string;
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare function ClassificationSelect({ categories, selectedCategory, selectedSubtype, onCategoryChange, onSubtypeChange, isLoading, allowOther, categoryLabel, subtypeLabel, categoryPlaceholder, subtypePlaceholder, className, }: ClassificationSelectProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
//# sourceMappingURL=classification-select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classification-select.d.ts","sourceRoot":"","sources":["../../src/components/classification-select.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACzC;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9C,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,SAAiB,EACjB,UAAiB,EACjB,aAA0B,EAC1B,YAAwB,EACxB,mBAAyC,EACzC,kBAAuC,EACvC,SAAS,GACV,EAAE,yBAAyB,2CAoI3B"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { Select } from './select';
|
|
4
|
+
import { Input } from './input';
|
|
5
|
+
import { Field, Label } from './fieldset';
|
|
6
|
+
import { cn } from '../lib/utils';
|
|
7
|
+
const OTHER_VALUE = '__other__';
|
|
8
|
+
export function ClassificationSelect({ categories, selectedCategory, selectedSubtype, onCategoryChange, onSubtypeChange, isLoading = false, allowOther = true, categoryLabel = 'Category', subtypeLabel = 'Subtype', categoryPlaceholder = 'Select a category', subtypePlaceholder = 'Select a subtype', className, }) {
|
|
9
|
+
const [categoryOtherText, setCategoryOtherText] = useState('');
|
|
10
|
+
const [subtypeOtherText, setSubtypeOtherText] = useState('');
|
|
11
|
+
const isCategoryOther = selectedCategory === OTHER_VALUE;
|
|
12
|
+
const isSubtypeOther = selectedSubtype === OTHER_VALUE;
|
|
13
|
+
const currentCategory = categories.find((c) => c.id === selectedCategory);
|
|
14
|
+
const availableSubtypes = currentCategory?.subtypes ?? [];
|
|
15
|
+
// When category changes, clear the subtype other text
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
setSubtypeOtherText('');
|
|
18
|
+
}, [selectedCategory]);
|
|
19
|
+
function handleCategoryChange(e) {
|
|
20
|
+
const value = e.target.value;
|
|
21
|
+
onCategoryChange(value);
|
|
22
|
+
// Always clear subtype when category changes
|
|
23
|
+
onSubtypeChange('');
|
|
24
|
+
}
|
|
25
|
+
function handleSubtypeChange(e) {
|
|
26
|
+
onSubtypeChange(e.target.value);
|
|
27
|
+
}
|
|
28
|
+
function handleCategoryOtherChange(e) {
|
|
29
|
+
const value = e.target.value;
|
|
30
|
+
setCategoryOtherText(value);
|
|
31
|
+
onCategoryChange(value ? `other:${value}` : OTHER_VALUE);
|
|
32
|
+
}
|
|
33
|
+
function handleSubtypeOtherChange(e) {
|
|
34
|
+
const value = e.target.value;
|
|
35
|
+
setSubtypeOtherText(value);
|
|
36
|
+
onSubtypeChange(value ? `other:${value}` : OTHER_VALUE);
|
|
37
|
+
}
|
|
38
|
+
return (_jsxs("div", { className: cn('grid grid-cols-1 gap-4 sm:grid-cols-2', className), children: [_jsxs(Field, { children: [_jsx(Label, { children: categoryLabel }), isCategoryOther ? (_jsxs("div", { className: "mt-3 flex gap-2", children: [_jsx(Input, { type: "text", value: categoryOtherText, onChange: handleCategoryOtherChange, placeholder: "Enter category\u2026", disabled: isLoading }), _jsx("button", { type: "button", onClick: () => {
|
|
39
|
+
setCategoryOtherText('');
|
|
40
|
+
onCategoryChange('');
|
|
41
|
+
onSubtypeChange('');
|
|
42
|
+
}, className: "shrink-0 text-sm/6 text-zinc-500 hover:text-zinc-700 dark:text-zinc-400 dark:hover:text-zinc-200", children: "\u21A9 Back" })] })) : (_jsxs(Select, { value: selectedCategory ?? '', onChange: handleCategoryChange, disabled: isLoading, children: [_jsx("option", { value: "", disabled: true, children: isLoading ? 'Loading…' : categoryPlaceholder }), categories.map((cat) => (_jsx("option", { value: cat.id, children: cat.name }, cat.id))), allowOther && _jsx("option", { value: OTHER_VALUE, children: "Other\u2026" })] }))] }), _jsxs(Field, { children: [_jsx(Label, { children: subtypeLabel }), isSubtypeOther ? (_jsxs("div", { className: "mt-3 flex gap-2", children: [_jsx(Input, { type: "text", value: subtypeOtherText, onChange: handleSubtypeOtherChange, placeholder: "Enter subtype\u2026", disabled: isLoading }), _jsx("button", { type: "button", onClick: () => {
|
|
43
|
+
setSubtypeOtherText('');
|
|
44
|
+
onSubtypeChange('');
|
|
45
|
+
}, className: "shrink-0 text-sm/6 text-zinc-500 hover:text-zinc-700 dark:text-zinc-400 dark:hover:text-zinc-200", children: "\u21A9 Back" })] })) : (_jsxs(Select, { value: selectedSubtype ?? '', onChange: handleSubtypeChange, disabled: isLoading || !selectedCategory || isCategoryOther, children: [_jsx("option", { value: "", disabled: true, children: isLoading
|
|
46
|
+
? 'Loading…'
|
|
47
|
+
: !selectedCategory || isCategoryOther
|
|
48
|
+
? 'Select a category first'
|
|
49
|
+
: subtypePlaceholder }), availableSubtypes.map((sub) => (_jsx("option", { value: sub.id, children: sub.name }, sub.id))), allowOther && selectedCategory && !isCategoryOther && (_jsx("option", { value: OTHER_VALUE, children: "Other\u2026" }))] }))] })] }));
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=classification-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classification-select.js","sourceRoot":"","sources":["../../src/components/classification-select.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -55,4 +55,6 @@ export { ShadcnDialog, ShadcnDialogClose, ShadcnDialogContent, ShadcnDialogDescr
|
|
|
55
55
|
export { ShadcnSelect, ShadcnSelectContent, ShadcnSelectGroup, ShadcnSelectItem, ShadcnSelectScrollDownButton, ShadcnSelectScrollUpButton, ShadcnSelectTrigger, ShadcnSelectValue, } from "./components/shadcn-select";
|
|
56
56
|
export { AnimatedList } from "./components/animated-list";
|
|
57
57
|
export type { AnimatedListItem, AnimatedListProps } from "./components/animated-list";
|
|
58
|
+
export { ClassificationSelect } from "./components/classification-select";
|
|
59
|
+
export type { ClassificationSelectProps, CategoryOption } from "./components/classification-select";
|
|
58
60
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -65,4 +65,5 @@ export { ShadcnTextarea } from "./components/shadcn-textarea";
|
|
|
65
65
|
export { ShadcnDialog, ShadcnDialogClose, ShadcnDialogContent, ShadcnDialogDescription, ShadcnDialogFooter, ShadcnDialogHeader, ShadcnDialogOverlay, ShadcnDialogPortal, ShadcnDialogTitle, ShadcnDialogTrigger, } from "./components/shadcn-dialog";
|
|
66
66
|
export { ShadcnSelect, ShadcnSelectContent, ShadcnSelectGroup, ShadcnSelectItem, ShadcnSelectScrollDownButton, ShadcnSelectScrollUpButton, ShadcnSelectTrigger, ShadcnSelectValue, } from "./components/shadcn-select";
|
|
67
67
|
export { AnimatedList } from "./components/animated-list";
|
|
68
|
+
export { ClassificationSelect } from "./components/classification-select";
|
|
68
69
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface BeverageDetailsProps {
|
|
2
|
+
beverageType?: string | null;
|
|
3
|
+
producerName?: string | null;
|
|
4
|
+
countryOfOrigin?: string | null;
|
|
5
|
+
region?: string | null;
|
|
6
|
+
vintage?: string | number | null;
|
|
7
|
+
abv?: string | number | null;
|
|
8
|
+
containerVolume?: string | number | null;
|
|
9
|
+
productionVolume?: string | number | null;
|
|
10
|
+
residualSugar?: string | number | null;
|
|
11
|
+
totalAcidity?: string | number | null;
|
|
12
|
+
pH?: string | number | null;
|
|
13
|
+
packaging?: string | null;
|
|
14
|
+
closure?: string | null;
|
|
15
|
+
priceRange?: {
|
|
16
|
+
min?: number;
|
|
17
|
+
max?: number;
|
|
18
|
+
} | null;
|
|
19
|
+
currency?: string | null;
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function BeverageDetails(props: BeverageDetailsProps): import("react/jsx-runtime").JSX.Element | null;
|
|
23
|
+
//# sourceMappingURL=beverage-details.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beverage-details.d.ts","sourceRoot":"","sources":["../../src/offer/beverage-details.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACtC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,kDAoC1D"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../lib/utils";
|
|
3
|
+
function formatPriceRange(range, currency) {
|
|
4
|
+
if (!range)
|
|
5
|
+
return null;
|
|
6
|
+
const { min, max } = range;
|
|
7
|
+
if (min == null && max == null)
|
|
8
|
+
return null;
|
|
9
|
+
const cur = currency ?? "";
|
|
10
|
+
if (min != null && max != null)
|
|
11
|
+
return `${cur} ${min} – ${max}`.trim();
|
|
12
|
+
if (min != null)
|
|
13
|
+
return `${cur} ${min}+`.trim();
|
|
14
|
+
return `up to ${cur} ${max}`.trim();
|
|
15
|
+
}
|
|
16
|
+
export function BeverageDetails(props) {
|
|
17
|
+
const fields = [];
|
|
18
|
+
const push = (label, value) => {
|
|
19
|
+
if (value != null && String(value).trim() !== "") {
|
|
20
|
+
fields.push({ label, value: String(value) });
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
push("Beverage Type", props.beverageType);
|
|
24
|
+
push("Producer", props.producerName);
|
|
25
|
+
push("Country of Origin", props.countryOfOrigin);
|
|
26
|
+
push("Region", props.region);
|
|
27
|
+
push("Vintage", props.vintage);
|
|
28
|
+
push("ABV", props.abv != null ? `${props.abv}%` : null);
|
|
29
|
+
push("Container Volume", props.containerVolume);
|
|
30
|
+
push("Production Volume", props.productionVolume);
|
|
31
|
+
push("Residual Sugar", props.residualSugar);
|
|
32
|
+
push("Total Acidity", props.totalAcidity);
|
|
33
|
+
push("pH", props.pH);
|
|
34
|
+
push("Packaging", props.packaging);
|
|
35
|
+
push("Closure", props.closure);
|
|
36
|
+
push("Price Range", formatPriceRange(props.priceRange, props.currency));
|
|
37
|
+
if (fields.length === 0)
|
|
38
|
+
return null;
|
|
39
|
+
return (_jsx("div", { className: cn("grid grid-cols-2 gap-x-4 gap-y-3 sm:grid-cols-3", props.className), children: fields.map((field) => (_jsxs("div", { className: "grid gap-0.5", children: [_jsx("span", { className: "text-xs text-muted-foreground", children: field.label }), _jsx("span", { className: "text-sm font-medium text-foreground", children: field.value })] }, field.label))) }));
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=beverage-details.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beverage-details.js","sourceRoot":"","sources":["../../src/offer/beverage-details.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface CompositionListProps {
|
|
2
|
+
composition?: {
|
|
3
|
+
name: string;
|
|
4
|
+
percentage?: number | null;
|
|
5
|
+
}[] | null;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function CompositionList({ composition, className }: CompositionListProps): import("react/jsx-runtime").JSX.Element | null;
|
|
9
|
+
//# sourceMappingURL=composition-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composition-list.d.ts","sourceRoot":"","sources":["../../src/offer/composition-list.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,oBAAoB,kDAe/E"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Badge } from "../components/badge";
|
|
3
|
+
import { cn } from "../lib/utils";
|
|
4
|
+
export function CompositionList({ composition, className }) {
|
|
5
|
+
if (!composition || composition.length === 0)
|
|
6
|
+
return null;
|
|
7
|
+
return (_jsx("div", { className: cn("flex flex-wrap gap-2", className), children: composition.map((entry) => (_jsxs(Badge, { color: "zinc", children: [entry.name, entry.percentage != null && (_jsxs("span", { className: "ml-0.5 opacity-70", children: [entry.percentage, "%"] }))] }, entry.name))) }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=composition-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composition-list.js","sourceRoot":"","sources":["../../src/offer/composition-list.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAOlC,MAAM,UAAU,eAAe,CAAC,EAAE,WAAW,EAAE,SAAS,EAAwB;IAC9E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1D,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC,YAClD,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC1B,MAAC,KAAK,IAAkB,KAAK,EAAC,MAAM,aACjC,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,CAC3B,gBAAM,SAAS,EAAC,mBAAmB,aAAE,KAAK,CAAC,UAAU,SAAS,CAC/D,KAJS,KAAK,CAAC,IAAI,CAKd,CACT,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
package/dist/offer/index.d.ts
CHANGED
|
@@ -8,4 +8,16 @@ export type { ConfirmActionDialogProps } from "./confirm-action-dialog";
|
|
|
8
8
|
export { AttachmentsFolder } from "./attachments-folder";
|
|
9
9
|
export type { AttachmentsFolderProps } from "./attachments-folder";
|
|
10
10
|
export type { OfferResponseThread, OfferResponseInput, TranslationFn, AttachmentMetadata, OfferActionType, } from "./types";
|
|
11
|
+
export { BeverageDetails } from "./beverage-details";
|
|
12
|
+
export type { BeverageDetailsProps } from "./beverage-details";
|
|
13
|
+
export { SensoryProfile } from "./sensory-profile";
|
|
14
|
+
export type { SensoryProfileProps } from "./sensory-profile";
|
|
15
|
+
export { CompositionList } from "./composition-list";
|
|
16
|
+
export type { CompositionListProps } from "./composition-list";
|
|
17
|
+
export { ReviewsSummary } from "./reviews-summary";
|
|
18
|
+
export type { ReviewsSummaryProps } from "./reviews-summary";
|
|
19
|
+
export { OpportunityRequirements } from "./opportunity-requirements";
|
|
20
|
+
export type { OpportunityRequirementsProps } from "./opportunity-requirements";
|
|
21
|
+
export { OrgBanner } from "./org-banner";
|
|
22
|
+
export type { OrgBannerProps } from "./org-banner";
|
|
11
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/offer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,eAAe,GAChB,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/offer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,YAAY,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/offer/index.js
CHANGED
|
@@ -3,4 +3,10 @@ export { NegotiationEventCard } from "./negotiation-event-card";
|
|
|
3
3
|
export { InlineCounterForm } from "./inline-counter-form";
|
|
4
4
|
export { ConfirmActionDialog } from "./confirm-action-dialog";
|
|
5
5
|
export { AttachmentsFolder } from "./attachments-folder";
|
|
6
|
+
export { BeverageDetails } from "./beverage-details";
|
|
7
|
+
export { SensoryProfile } from "./sensory-profile";
|
|
8
|
+
export { CompositionList } from "./composition-list";
|
|
9
|
+
export { ReviewsSummary } from "./reviews-summary";
|
|
10
|
+
export { OpportunityRequirements } from "./opportunity-requirements";
|
|
11
|
+
export { OrgBanner } from "./org-banner";
|
|
6
12
|
//# sourceMappingURL=index.js.map
|
package/dist/offer/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/offer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/offer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AASzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface OpportunityRequirementsProps {
|
|
2
|
+
marketIdentifier?: string | null;
|
|
3
|
+
beverageType?: string | null;
|
|
4
|
+
countryOfOrigin?: string | null;
|
|
5
|
+
packagingType?: string | null;
|
|
6
|
+
closure?: string | null;
|
|
7
|
+
currency?: string | null;
|
|
8
|
+
submissionDeadline?: string | null;
|
|
9
|
+
sampleDeadline?: string | null;
|
|
10
|
+
alcoholContent?: {
|
|
11
|
+
min?: number;
|
|
12
|
+
max?: number;
|
|
13
|
+
} | null;
|
|
14
|
+
residualSugarMin?: number | null;
|
|
15
|
+
residualSugarMax?: number | null;
|
|
16
|
+
volumeOptions?: number[] | null;
|
|
17
|
+
grapeBlend?: {
|
|
18
|
+
grape: string;
|
|
19
|
+
amount?: string;
|
|
20
|
+
}[] | null;
|
|
21
|
+
vintages?: number[] | null;
|
|
22
|
+
certifications?: {
|
|
23
|
+
organic?: boolean;
|
|
24
|
+
fairtrade?: boolean;
|
|
25
|
+
sustainable?: boolean;
|
|
26
|
+
} | null;
|
|
27
|
+
styleTasteProfile?: string | null;
|
|
28
|
+
className?: string;
|
|
29
|
+
}
|
|
30
|
+
export declare function OpportunityRequirements(props: OpportunityRequirementsProps): import("react/jsx-runtime").JSX.Element | null;
|
|
31
|
+
//# sourceMappingURL=opportunity-requirements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opportunity-requirements.d.ts","sourceRoot":"","sources":["../../src/offer/opportunity-requirements.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,4BAA4B;IAC3C,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,GAAG,IAAI,CAAC;IACT,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA+BD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,kDAwE1E"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Badge } from "../components/badge";
|
|
3
|
+
import { cn } from "../lib/utils";
|
|
4
|
+
function formatRange(label, min, max, suffix) {
|
|
5
|
+
if (min == null && max == null)
|
|
6
|
+
return null;
|
|
7
|
+
const s = suffix ? ` ${suffix}` : "";
|
|
8
|
+
if (min != null && max != null)
|
|
9
|
+
return `${min}${s} – ${max}${s}`;
|
|
10
|
+
if (min != null)
|
|
11
|
+
return `${min}${s}+`;
|
|
12
|
+
return `up to ${max}${s}`;
|
|
13
|
+
}
|
|
14
|
+
function buildCertsList(certs) {
|
|
15
|
+
if (!certs)
|
|
16
|
+
return null;
|
|
17
|
+
const active = [];
|
|
18
|
+
if (certs.organic)
|
|
19
|
+
active.push("Organic");
|
|
20
|
+
if (certs.fairtrade)
|
|
21
|
+
active.push("Fairtrade");
|
|
22
|
+
if (certs.sustainable)
|
|
23
|
+
active.push("Sustainable");
|
|
24
|
+
return active.length > 0 ? active.join(", ") : null;
|
|
25
|
+
}
|
|
26
|
+
export function OpportunityRequirements(props) {
|
|
27
|
+
const fields = [];
|
|
28
|
+
const push = (label, value) => {
|
|
29
|
+
if (value != null && String(value).trim() !== "") {
|
|
30
|
+
fields.push({ label, value: String(value) });
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
push("Market", props.marketIdentifier);
|
|
34
|
+
push("Beverage Type", props.beverageType);
|
|
35
|
+
push("Country of Origin", props.countryOfOrigin);
|
|
36
|
+
push("Packaging", props.packagingType);
|
|
37
|
+
push("Closure", props.closure);
|
|
38
|
+
push("Currency", props.currency);
|
|
39
|
+
push("Submission Deadline", props.submissionDeadline);
|
|
40
|
+
push("Sample Deadline", props.sampleDeadline);
|
|
41
|
+
push("Alcohol Content", formatRange("ABV", props.alcoholContent?.min, props.alcoholContent?.max, "%"));
|
|
42
|
+
push("Residual Sugar", formatRange("RS", props.residualSugarMin, props.residualSugarMax, "g/L"));
|
|
43
|
+
push("Volume Options", props.volumeOptions && props.volumeOptions.length > 0
|
|
44
|
+
? props.volumeOptions.join(", ")
|
|
45
|
+
: null);
|
|
46
|
+
push("Vintages", props.vintages && props.vintages.length > 0 ? props.vintages.join(", ") : null);
|
|
47
|
+
push("Certifications", buildCertsList(props.certifications));
|
|
48
|
+
push("Style / Taste Profile", props.styleTasteProfile);
|
|
49
|
+
const hasGrapeBlend = props.grapeBlend && props.grapeBlend.length > 0;
|
|
50
|
+
if (fields.length === 0 && !hasGrapeBlend)
|
|
51
|
+
return null;
|
|
52
|
+
return (_jsxs("div", { className: cn("grid gap-4", props.className), children: [fields.length > 0 && (_jsx("div", { className: "grid grid-cols-2 gap-x-4 gap-y-3 sm:grid-cols-3", children: fields.map((field) => (_jsxs("div", { className: "grid gap-0.5", children: [_jsx("span", { className: "text-xs text-muted-foreground", children: field.label }), _jsx("span", { className: "text-sm font-medium text-foreground", children: field.value })] }, field.label))) })), hasGrapeBlend && (_jsxs("div", { className: "grid gap-1.5", children: [_jsx("span", { className: "text-xs text-muted-foreground", children: "Grape Blend" }), _jsx("div", { className: "flex flex-wrap gap-2", children: props.grapeBlend.map((entry) => (_jsxs(Badge, { color: "zinc", children: [entry.grape, entry.amount && (_jsx("span", { className: "ml-0.5 opacity-70", children: entry.amount }))] }, entry.grape))) })] }))] }));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=opportunity-requirements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opportunity-requirements.js","sourceRoot":"","sources":["../../src/offer/opportunity-requirements.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface OrgBannerProps {
|
|
2
|
+
name: string;
|
|
3
|
+
country?: string | null;
|
|
4
|
+
region?: string | null;
|
|
5
|
+
verified?: boolean;
|
|
6
|
+
profilePictureUrl?: string | null;
|
|
7
|
+
description?: string | null;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function OrgBanner({ name, country, region, verified, profilePictureUrl, description, className, }: OrgBannerProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=org-banner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-banner.d.ts","sourceRoot":"","sources":["../../src/offer/org-banner.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkBD,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,OAAO,EACP,MAAM,EACN,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,SAAS,GACV,EAAE,cAAc,2CAqChB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Badge } from "../components/badge";
|
|
3
|
+
import { cn } from "../lib/utils";
|
|
4
|
+
function getInitials(name) {
|
|
5
|
+
return name
|
|
6
|
+
.split(/\s+/)
|
|
7
|
+
.slice(0, 2)
|
|
8
|
+
.map((w) => w.charAt(0).toUpperCase())
|
|
9
|
+
.join("");
|
|
10
|
+
}
|
|
11
|
+
function buildLocation(country, region) {
|
|
12
|
+
const parts = [region, country].filter(Boolean);
|
|
13
|
+
return parts.length > 0 ? parts.join(", ") : null;
|
|
14
|
+
}
|
|
15
|
+
export function OrgBanner({ name, country, region, verified, profilePictureUrl, description, className, }) {
|
|
16
|
+
const location = buildLocation(country, region);
|
|
17
|
+
return (_jsxs("div", { className: cn("flex items-start gap-4", className), children: [profilePictureUrl ? (_jsx("img", { src: profilePictureUrl, alt: name, className: "size-12 shrink-0 rounded-full object-cover" })) : (_jsx("div", { className: "flex size-12 shrink-0 items-center justify-center rounded-full bg-muted text-sm font-semibold text-muted-foreground", children: getInitials(name) })), _jsxs("div", { className: "grid min-w-0 gap-0.5", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "truncate text-sm font-semibold text-foreground", children: name }), verified && (_jsx(Badge, { color: "emerald", children: "Verified" }))] }), location && (_jsx("span", { className: "text-xs text-muted-foreground", children: location })), description && (_jsx("p", { className: "mt-1 text-sm/6 text-muted-foreground", children: description }))] })] }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=org-banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-banner.js","sourceRoot":"","sources":["../../src/offer/org-banner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAYlC,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI;SACR,KAAK,CAAC,KAAK,CAAC;SACZ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACrC,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CACpB,OAAuB,EACvB,MAAsB;IAEtB,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EACxB,IAAI,EACJ,OAAO,EACP,MAAM,EACN,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,SAAS,GACM;IACf,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEhD,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,aAEpD,iBAAiB,CAAC,CAAC,CAAC,CACnB,cACE,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,IAAI,EACT,SAAS,EAAC,4CAA4C,GACtD,CACH,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,qHAAqH,YACjI,WAAW,CAAC,IAAI,CAAC,GACd,CACP,EAGD,eAAK,SAAS,EAAC,sBAAsB,aACnC,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAM,SAAS,EAAC,gDAAgD,YAAE,IAAI,GAAQ,EAC7E,QAAQ,IAAI,CACX,KAAC,KAAK,IAAC,KAAK,EAAC,SAAS,yBAAiB,CACxC,IACG,EAEL,QAAQ,IAAI,CACX,eAAM,SAAS,EAAC,+BAA+B,YAAE,QAAQ,GAAQ,CAClE,EAEA,WAAW,IAAI,CACd,YAAG,SAAS,EAAC,sCAAsC,YAAE,WAAW,GAAK,CACtE,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface ReviewsSummaryProps {
|
|
2
|
+
averageScore?: number | null;
|
|
3
|
+
individualScores?: {
|
|
4
|
+
source: string;
|
|
5
|
+
score: number;
|
|
6
|
+
}[] | null;
|
|
7
|
+
professionalSummary?: string | null;
|
|
8
|
+
awards?: {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
}[] | null;
|
|
12
|
+
citations?: {
|
|
13
|
+
url: string;
|
|
14
|
+
title?: string;
|
|
15
|
+
}[] | null;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function ReviewsSummary(props: ReviewsSummaryProps): import("react/jsx-runtime").JSX.Element | null;
|
|
19
|
+
//# sourceMappingURL=reviews-summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviews-summary.d.ts","sourceRoot":"","sources":["../../src/offer/reviews-summary.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IAC9D,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IAC/C,SAAS,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAYD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,kDAwExD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Badge } from "../components/badge";
|
|
3
|
+
import { cn } from "../lib/utils";
|
|
4
|
+
function isEmpty(props) {
|
|
5
|
+
return (props.averageScore == null &&
|
|
6
|
+
(!props.individualScores || props.individualScores.length === 0) &&
|
|
7
|
+
!props.professionalSummary &&
|
|
8
|
+
(!props.awards || props.awards.length === 0) &&
|
|
9
|
+
(!props.citations || props.citations.length === 0));
|
|
10
|
+
}
|
|
11
|
+
export function ReviewsSummary(props) {
|
|
12
|
+
if (isEmpty(props))
|
|
13
|
+
return null;
|
|
14
|
+
const { averageScore, individualScores, professionalSummary, awards, citations, className, } = props;
|
|
15
|
+
return (_jsxs("div", { className: cn("grid gap-4", className), children: [averageScore != null && (_jsxs("div", { className: "flex items-baseline gap-2", children: [_jsx("span", { className: "text-2xl font-bold text-foreground", children: averageScore }), _jsx("span", { className: "text-sm text-muted-foreground", children: "/ 100" })] })), individualScores && individualScores.length > 0 && (_jsx("div", { className: "grid gap-1.5", children: individualScores.map((entry) => (_jsxs("div", { className: "flex items-center justify-between gap-4 text-sm", children: [_jsx("span", { className: "text-muted-foreground", children: entry.source }), _jsx("span", { className: "font-medium text-foreground", children: entry.score })] }, entry.source))) })), professionalSummary && (_jsx("p", { className: "text-sm/6 text-foreground", children: professionalSummary })), awards && awards.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-2", children: awards.map((award) => (_jsx(Badge, { color: "amber", children: award.name }, award.id))) })), citations && citations.length > 0 && (_jsx("ul", { className: "grid gap-1", children: citations.map((citation) => (_jsx("li", { children: _jsx("a", { href: citation.url, target: "_blank", rel: "noopener noreferrer", className: "text-sm text-primary underline-offset-2 hover:underline", children: citation.title || citation.url }) }, citation.url))) }))] }));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=reviews-summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviews-summary.js","sourceRoot":"","sources":["../../src/offer/reviews-summary.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAWlC,SAAS,OAAO,CAAC,KAA0B;IACzC,OAAO,CACL,KAAK,CAAC,YAAY,IAAI,IAAI;QAC1B,CAAC,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC;QAChE,CAAC,KAAK,CAAC,mBAAmB;QAC1B,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CACnD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,EACJ,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,EACN,SAAS,EACT,SAAS,GACV,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,aAExC,YAAY,IAAI,IAAI,IAAI,CACvB,eAAK,SAAS,EAAC,2BAA2B,aACxC,eAAM,SAAS,EAAC,oCAAoC,YAAE,YAAY,GAAQ,EAC1E,eAAM,SAAS,EAAC,+BAA+B,sBAAa,IACxD,CACP,EAGA,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CAClD,cAAK,SAAS,EAAC,cAAc,YAC1B,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC/B,eAEE,SAAS,EAAC,iDAAiD,aAE3D,eAAM,SAAS,EAAC,uBAAuB,YAAE,KAAK,CAAC,MAAM,GAAQ,EAC7D,eAAM,SAAS,EAAC,6BAA6B,YAAE,KAAK,CAAC,KAAK,GAAQ,KAJ7D,KAAK,CAAC,MAAM,CAKb,CACP,CAAC,GACE,CACP,EAGA,mBAAmB,IAAI,CACtB,YAAG,SAAS,EAAC,2BAA2B,YAAE,mBAAmB,GAAK,CACnE,EAGA,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAC9B,cAAK,SAAS,EAAC,sBAAsB,YAClC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,KAAC,KAAK,IAAgB,KAAK,EAAC,OAAO,YAChC,KAAK,CAAC,IAAI,IADD,KAAK,CAAC,EAAE,CAEZ,CACT,CAAC,GACE,CACP,EAGA,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACpC,aAAI,SAAS,EAAC,YAAY,YACvB,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC3B,uBACE,YACE,IAAI,EAAE,QAAQ,CAAC,GAAG,EAClB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,yDAAyD,YAElE,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,GAAG,GAC7B,IARG,QAAQ,CAAC,GAAG,CAShB,CACN,CAAC,GACC,CACN,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface SensoryProfileProps {
|
|
2
|
+
/** Stages keyed by stage name, each containing field key/value pairs. */
|
|
3
|
+
sensoryDetails?: Record<string, Record<string, string | null> | null> | null;
|
|
4
|
+
/** Optional label overrides per stage key. */
|
|
5
|
+
stageLabels?: Record<string, string>;
|
|
6
|
+
/** Optional label overrides per field, keyed by stage then field. */
|
|
7
|
+
fieldLabels?: Record<string, Record<string, string>>;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function SensoryProfile({ sensoryDetails, stageLabels, fieldLabels, className, }: SensoryProfileProps): import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
//# sourceMappingURL=sensory-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sensory-profile.d.ts","sourceRoot":"","sources":["../../src/offer/sensory-profile.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7E,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAWD,wBAAgB,cAAc,CAAC,EAC7B,cAAc,EACd,WAAW,EACX,WAAW,EACX,SAAS,GACV,EAAE,mBAAmB,kDAsCrB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../lib/utils";
|
|
3
|
+
function capitalize(s) {
|
|
4
|
+
return s.charAt(0).toUpperCase() + s.slice(1).replace(/[_-]/g, " ");
|
|
5
|
+
}
|
|
6
|
+
function hasValues(fields) {
|
|
7
|
+
if (!fields)
|
|
8
|
+
return false;
|
|
9
|
+
return Object.values(fields).some((v) => v != null && v.trim() !== "");
|
|
10
|
+
}
|
|
11
|
+
export function SensoryProfile({ sensoryDetails, stageLabels, fieldLabels, className, }) {
|
|
12
|
+
if (!sensoryDetails)
|
|
13
|
+
return null;
|
|
14
|
+
const stages = Object.entries(sensoryDetails).filter(([, fields]) => hasValues(fields));
|
|
15
|
+
if (stages.length === 0)
|
|
16
|
+
return null;
|
|
17
|
+
return (_jsx("div", { className: cn("grid gap-5", className), children: stages.map(([stageKey, fields]) => {
|
|
18
|
+
if (!fields)
|
|
19
|
+
return null;
|
|
20
|
+
const stageLabel = stageLabels?.[stageKey] ?? capitalize(stageKey);
|
|
21
|
+
const stageFieldLabels = fieldLabels?.[stageKey];
|
|
22
|
+
const entries = Object.entries(fields).filter(([, v]) => v != null && v.trim() !== "");
|
|
23
|
+
if (entries.length === 0)
|
|
24
|
+
return null;
|
|
25
|
+
return (_jsxs("div", { className: "grid gap-2", children: [_jsx("h4", { className: "text-sm font-semibold text-foreground", children: stageLabel }), _jsx("div", { className: "grid grid-cols-2 gap-x-4 gap-y-2 sm:grid-cols-3", children: entries.map(([fieldKey, value]) => (_jsxs("div", { className: "grid gap-0.5", children: [_jsx("span", { className: "text-xs text-muted-foreground", children: stageFieldLabels?.[fieldKey] ?? capitalize(fieldKey) }), _jsx("span", { className: "text-sm text-foreground", children: value })] }, fieldKey))) })] }, stageKey));
|
|
26
|
+
}) }));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=sensory-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sensory-profile.js","sourceRoot":"","sources":["../../src/offer/sensory-profile.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAYlC,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,SAAS,CAAC,MAAwD;IACzE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,cAAc,EACd,WAAW,EACX,WAAW,EACX,SAAS,GACW;IACpB,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAExF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,YACxC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE;YACjC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,MAAM,UAAU,GAAG,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;YACnE,MAAM,gBAAgB,GAAG,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC;YAEjD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CACxC,CAAC;YAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEtC,OAAO,CACL,eAAoB,SAAS,EAAC,YAAY,aACxC,aAAI,SAAS,EAAC,uCAAuC,YAAE,UAAU,GAAM,EACvE,cAAK,SAAS,EAAC,iDAAiD,YAC7D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAClC,eAAoB,SAAS,EAAC,cAAc,aAC1C,eAAM,SAAS,EAAC,+BAA+B,YAC5C,gBAAgB,EAAE,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAChD,EACP,eAAM,SAAS,EAAC,yBAAyB,YAAE,KAAK,GAAQ,KAJhD,QAAQ,CAKZ,CACP,CAAC,GACE,KAXE,QAAQ,CAYZ,CACP,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cellarnode/ui",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Shared UI components, theme tokens, and chat/offer primitives for CellarNode dashboards.",
|
|
@@ -64,6 +64,7 @@
|
|
|
64
64
|
"@dnd-kit/dom": "^0.3.2",
|
|
65
65
|
"@dnd-kit/react": "^0.3.2",
|
|
66
66
|
"@tanstack/react-query": "^5.0.0",
|
|
67
|
+
"@cellarnode/beverage-utils": ">=0.3.0",
|
|
67
68
|
"i18n-iso-countries": ">=7.0.0",
|
|
68
69
|
"motion": "^12.0.0",
|
|
69
70
|
"react": "^19.0.0",
|
|
@@ -98,6 +99,9 @@
|
|
|
98
99
|
"world-atlas": {
|
|
99
100
|
"optional": true
|
|
100
101
|
},
|
|
102
|
+
"@cellarnode/beverage-utils": {
|
|
103
|
+
"optional": true
|
|
104
|
+
},
|
|
101
105
|
"i18n-iso-countries": {
|
|
102
106
|
"optional": true
|
|
103
107
|
}
|