@cellarnode/ui 0.2.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/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 +1 -1
|
@@ -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"}
|