@voyantjs/products-ui 0.34.0 → 0.37.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.
@@ -1 +1 @@
1
- {"version":3,"file":"product-catalog-card.d.ts","sourceRoot":"","sources":["../../src/components/product-catalog-card.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAK/D,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,gBAAgB,CAAA;IACrB,wEAAwE;IACxE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACzC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAoDtF"}
1
+ {"version":3,"file":"product-catalog-card.d.ts","sourceRoot":"","sources":["../../src/components/product-catalog-card.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAM/D,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,gBAAgB,CAAA;IACrB,wEAAwE;IACxE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACzC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAmDtF"}
@@ -3,25 +3,25 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { Badge } from "@voyantjs/ui/components/badge";
4
4
  import { Card, CardContent } from "@voyantjs/ui/components/card";
5
5
  import { cn } from "@voyantjs/ui/lib/utils";
6
+ import { useProductsUiI18nOrDefault } from "../i18n/index.js";
6
7
  /**
7
8
  * Search-result card for a product hit. Reads `name`, `status`,
8
9
  * `productTypeId`, `bookingMode`, `sellAmountCents`, `sellCurrency`,
9
10
  * `tags` from the resolved indexer document.
10
11
  */
11
12
  export function ProductCatalogCard({ hit, onClick, className }) {
13
+ const i18n = useProductsUiI18nOrDefault();
12
14
  const fields = hit.document.fields;
13
- const name = stringOr(fields.name, "Untitled product");
15
+ const name = stringOr(fields.name, i18n.messages.catalogCard.untitled);
14
16
  const status = stringOr(fields.status, null);
15
17
  const bookingMode = stringOr(fields.bookingMode, null);
16
18
  const sellAmount = numberOr(fields.sellAmountCents, null);
17
19
  const sellCurrency = stringOr(fields.sellCurrency, null);
18
20
  const tags = stringArray(fields.tags);
19
21
  const price = sellAmount != null && sellCurrency
20
- ? new Intl.NumberFormat(undefined, {
21
- style: "currency",
22
- currency: sellCurrency,
22
+ ? i18n.formatCurrency(sellAmount / 100, sellCurrency, {
23
23
  maximumFractionDigits: 0,
24
- }).format(sellAmount / 100)
24
+ })
25
25
  : null;
26
26
  return (_jsx(Card, { className: cn("h-full cursor-pointer transition-colors hover:border-primary/40", onClick == null && "cursor-default", className), onClick: onClick ? () => onClick(hit) : undefined, children: _jsxs(CardContent, { className: "flex h-full flex-col gap-2 p-4", children: [_jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsx("h3", { className: "line-clamp-2 font-medium text-sm", children: name }), status && (_jsx(Badge, { variant: status === "active" ? "default" : "secondary", className: "shrink-0", children: status }))] }), _jsxs("div", { className: "flex items-center gap-2 text-muted-foreground text-xs", children: [bookingMode && _jsx("span", { children: bookingMode }), price && _jsx("span", { className: "ml-auto font-medium text-foreground", children: price })] }), tags.length > 0 && (_jsx("div", { className: "mt-auto flex flex-wrap gap-1", children: tags.slice(0, 4).map((tag) => (_jsx(Badge, { variant: "outline", className: "text-[10px]", children: tag }, tag))) }))] }) }));
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"product-category-form.d.ts","sourceRoot":"","sources":["../../src/components/product-category-form.tsx"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,qBAAqB,EAE3B,MAAM,0BAA0B,CAAA;AAYjC,KAAK,IAAI,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,qBAAqB,CAAA;CAAE,CAAA;AAElF,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACrD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB;AAmDD,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,wBAAwB,2CAqJ1F"}
1
+ {"version":3,"file":"product-category-form.d.ts","sourceRoot":"","sources":["../../src/components/product-category-form.tsx"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,qBAAqB,EAE3B,MAAM,0BAA0B,CAAA;AAYjC,KAAK,IAAI,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,qBAAqB,CAAA;CAAE,CAAA;AAElF,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACrD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB;AAmDD,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,wBAAwB,2CAsJ1F"}
@@ -76,7 +76,7 @@ export function ProductCategoryForm({ mode, onSuccess, onCancel }) {
76
76
  setError(err instanceof Error ? err.message : messages.productCategoryForm.validation.saveFailed);
77
77
  }
78
78
  };
79
- return (_jsxs("form", { "data-slot": "product-category-form", onSubmit: handleSubmit, className: "flex flex-col gap-4", children: [_jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-category-name", children: messages.productCategoryForm.fields.name }), _jsx(Input, { id: "product-category-name", required: true, autoFocus: true, value: state.name, onChange: (event) => setState((prev) => ({ ...prev, name: event.target.value })), placeholder: messages.productCategoryForm.placeholders.name })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-category-slug", children: messages.productCategoryForm.fields.slug }), _jsx(Input, { id: "product-category-slug", required: true, value: state.slug, onChange: (event) => setState((prev) => ({ ...prev, slug: event.target.value })), placeholder: messages.productCategoryForm.placeholders.slug })] })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { children: messages.productCategoryForm.fields.parentCategory }), _jsx(ProductCategoryCombobox, { value: state.parentId === "__none__" ? null : state.parentId, onChange: (value) => setState((prev) => ({ ...prev, parentId: value ?? "__none__" })), excludeId: mode.kind === "edit" ? mode.category.id : null, placeholder: messages.productCategoryForm.placeholders.parentCategory })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-category-description", children: messages.productCategoryForm.fields.description }), _jsx(Textarea, { id: "product-category-description", value: state.description, onChange: (event) => setState((prev) => ({ ...prev, description: event.target.value })), placeholder: messages.productCategoryForm.placeholders.description })] }), _jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-category-sort-order", children: messages.productCategoryForm.fields.sortOrder }), _jsx(Input, { id: "product-category-sort-order", type: "number", value: state.sortOrder, onChange: (event) => setState((prev) => ({ ...prev, sortOrder: event.target.value })) })] }), _jsxs("div", { className: "flex items-center gap-2 pt-7", children: [_jsx(Switch, { checked: state.active, onCheckedChange: (active) => setState((prev) => ({ ...prev, active })) }), _jsx(Label, { children: messages.productCategoryForm.fields.active })] })] }), _jsxs("div", { className: "flex flex-col gap-3 rounded-md border bg-muted/10 p-4", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-sm font-medium", children: "Customer payment policy" }), _jsx("p", { className: "text-muted-foreground text-xs", children: "When set, products in this category inherit these terms unless the listing or booking sets its own override. Wins over the supplier-level policy." })] }), _jsxs("div", { className: "grid gap-4 lg:grid-cols-[2fr_1fr]", children: [_jsx(PaymentPolicyForm, { value: state.customerPaymentPolicy, onChange: (next) => setState((prev) => ({ ...prev, customerPaymentPolicy: next })), inheritable: true, disabled: isSubmitting }), _jsx(PaymentPolicyPreview, { policy: state.customerPaymentPolicy })] })] }), error ? _jsx("p", { className: "text-sm text-destructive", children: error }) : null, _jsxs("div", { className: "flex items-center justify-end gap-2", children: [onCancel ? (_jsx(Button, { type: "button", variant: "ghost", onClick: onCancel, children: messages.common.cancel })) : null, _jsxs(Button, { type: "submit", disabled: isSubmitting, children: [isSubmitting ? (_jsx(Loader2, { className: "mr-2 size-4 animate-spin", "aria-hidden": "true" })) : null, mode.kind === "edit"
79
+ return (_jsxs("form", { "data-slot": "product-category-form", onSubmit: handleSubmit, className: "flex flex-col gap-4", children: [_jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-category-name", children: messages.productCategoryForm.fields.name }), _jsx(Input, { id: "product-category-name", required: true, autoFocus: true, value: state.name, onChange: (event) => setState((prev) => ({ ...prev, name: event.target.value })), placeholder: messages.productCategoryForm.placeholders.name })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-category-slug", children: messages.productCategoryForm.fields.slug }), _jsx(Input, { id: "product-category-slug", required: true, value: state.slug, onChange: (event) => setState((prev) => ({ ...prev, slug: event.target.value })), placeholder: messages.productCategoryForm.placeholders.slug })] })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { children: messages.productCategoryForm.fields.parentCategory }), _jsx(ProductCategoryCombobox, { value: state.parentId === "__none__" ? null : state.parentId, onChange: (value) => setState((prev) => ({ ...prev, parentId: value ?? "__none__" })), excludeId: mode.kind === "edit" ? mode.category.id : null, placeholder: messages.productCategoryForm.placeholders.parentCategory })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-category-description", children: messages.productCategoryForm.fields.description }), _jsx(Textarea, { id: "product-category-description", value: state.description, onChange: (event) => setState((prev) => ({ ...prev, description: event.target.value })), placeholder: messages.productCategoryForm.placeholders.description })] }), _jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-category-sort-order", children: messages.productCategoryForm.fields.sortOrder }), _jsx(Input, { id: "product-category-sort-order", type: "number", value: state.sortOrder, onChange: (event) => setState((prev) => ({ ...prev, sortOrder: event.target.value })) })] }), _jsxs("div", { className: "flex items-center gap-2 pt-7", children: [_jsx(Switch, { checked: state.active, onCheckedChange: (active) => setState((prev) => ({ ...prev, active })) }), _jsx(Label, { children: messages.productCategoryForm.fields.active })] })] }), _jsxs("div", { className: "flex flex-col gap-3 rounded-md border bg-muted/10 p-4", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-sm font-medium", children: messages.productCategoryForm.fields.customerPaymentPolicy }), _jsx("p", { className: "text-muted-foreground text-xs", children: messages.productCategoryForm.descriptions.customerPaymentPolicy })] }), _jsxs("div", { className: "grid gap-4 lg:grid-cols-[2fr_1fr]", children: [_jsx(PaymentPolicyForm, { value: state.customerPaymentPolicy, onChange: (next) => setState((prev) => ({ ...prev, customerPaymentPolicy: next })), inheritable: true, disabled: isSubmitting }), _jsx(PaymentPolicyPreview, { policy: state.customerPaymentPolicy })] })] }), error ? _jsx("p", { className: "text-sm text-destructive", children: error }) : null, _jsxs("div", { className: "flex items-center justify-end gap-2", children: [onCancel ? (_jsx(Button, { type: "button", variant: "ghost", onClick: onCancel, children: messages.common.cancel })) : null, _jsxs(Button, { type: "submit", disabled: isSubmitting, children: [isSubmitting ? (_jsx(Loader2, { className: "mr-2 size-4 animate-spin", "aria-hidden": "true" })) : null, mode.kind === "edit"
80
80
  ? messages.common.saveChanges
81
81
  : messages.productCategoryForm.actions.createCategory] })] })] }));
82
82
  }
@@ -0,0 +1,13 @@
1
+ export interface ProductComboboxProps {
2
+ value: string | null | undefined;
3
+ onChange: (value: string | null) => void;
4
+ placeholder?: string;
5
+ emptyText?: string;
6
+ disabled?: boolean;
7
+ className?: string;
8
+ triggerClassName?: string;
9
+ clearable?: boolean;
10
+ limit?: number;
11
+ }
12
+ export declare function ProductCombobox({ value, onChange, placeholder, emptyText, disabled, className, triggerClassName, clearable, limit, }: ProductComboboxProps): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=product-combobox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-combobox.d.ts","sourceRoot":"","sources":["../../src/components/product-combobox.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAYD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,SAAgB,EAChB,KAAqB,GACtB,EAAE,oBAAoB,2CA6BtB"}
@@ -0,0 +1,23 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useProduct, useProducts } from "@voyantjs/products-react";
4
+ import { AsyncCombobox } from "@voyantjs/ui/components/async-combobox";
5
+ import * as React from "react";
6
+ import { useProductsUiMessagesOrDefault } from "../i18n/provider.js";
7
+ const DEFAULT_LIMIT = 20;
8
+ function compact(parts) {
9
+ return parts.map((part) => part?.trim()).filter(Boolean);
10
+ }
11
+ function formatProductSecondary(product) {
12
+ return compact([product.status, product.bookingMode, product.sellCurrency]).join(" - ");
13
+ }
14
+ export function ProductCombobox({ value, onChange, placeholder, emptyText, disabled, className, triggerClassName, clearable = true, limit = DEFAULT_LIMIT, }) {
15
+ const messages = useProductsUiMessagesOrDefault();
16
+ const comboboxMessages = messages.comboboxes.product;
17
+ const [search, setSearch] = React.useState("");
18
+ const listQuery = useProducts({ search: search || undefined, limit });
19
+ const selectedQuery = useProduct(value ?? undefined, { enabled: Boolean(value) });
20
+ return (_jsx(AsyncCombobox, { value: value ?? null, onChange: onChange, items: listQuery.data?.data ?? [], selectedItem: selectedQuery.data ?? null, getKey: (product) => product.id, getLabel: (product) => product.name, getSecondary: formatProductSecondary, onSearchChange: setSearch, placeholder: placeholder ?? comboboxMessages.placeholder, emptyText: listQuery.isPending || selectedQuery.isPending
21
+ ? messages.common.loading
22
+ : (emptyText ?? comboboxMessages.empty), disabled: disabled, className: className, triggerClassName: triggerClassName, clearable: clearable }));
23
+ }
@@ -30,7 +30,7 @@ function initialState(mode) {
30
30
  description: "",
31
31
  countryCode: "",
32
32
  supplierServiceId: "",
33
- costCurrency: "EUR",
33
+ costCurrency: "EUR", // i18n-literal-ok ISO default currency
34
34
  costAmount: "0",
35
35
  quantity: "1",
36
36
  sortOrder: mode.sortOrder == null ? "" : String(mode.sortOrder),
@@ -3,7 +3,6 @@ import * as React from "react";
3
3
  import { type ProductItineraryDayRowRenderContext } from "./product-itinerary-day-row.js";
4
4
  import { type ProductMediaSectionProps } from "./product-media-section.js";
5
5
  import { type ProductOptionsSectionProps } from "./product-options-section.js";
6
- export type ProductDetailPageTab = "overview" | "media" | "itinerary" | "options" | "versions";
7
6
  export interface ProductDetailPageSlots {
8
7
  header?: React.ReactNode;
9
8
  afterHeader?: React.ReactNode;
@@ -18,7 +17,6 @@ export interface ProductDetailPageSlots {
18
17
  export interface ProductDetailPageProps {
19
18
  id: string;
20
19
  className?: string;
21
- defaultTab?: ProductDetailPageTab;
22
20
  onBack?: () => void;
23
21
  onBookingCreate?: (product: ProductRecord) => void;
24
22
  onDeleted?: () => void;
@@ -28,7 +26,7 @@ export interface ProductDetailPageProps {
28
26
  renderItineraryServiceActions?: (service: ProductDayServiceRecord) => React.ReactNode;
29
27
  slots?: ProductDetailPageSlots;
30
28
  }
31
- export declare function ProductDetailPage({ id, className, defaultTab, onBack, onBookingCreate, onDeleted, uploadMedia, renderOptionDetails, renderItineraryDayDetails, renderItineraryServiceActions, slots, }: ProductDetailPageProps): import("react/jsx-runtime").JSX.Element;
29
+ export declare function ProductDetailPage({ id, className, onBack, onBookingCreate, onDeleted, uploadMedia, renderOptionDetails, renderItineraryDayDetails, renderItineraryServiceActions, slots, }: ProductDetailPageProps): import("react/jsx-runtime").JSX.Element;
32
30
  export interface ProductDetailHeaderProps {
33
31
  product: ProductRecord;
34
32
  onBack?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"product-detail-page.d.ts","sourceRoot":"","sources":["../../src/components/product-detail-page.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"product-detail-page.d.ts","sourceRoot":"","sources":["../../src/components/product-detail-page.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@ import { Badge } from "@voyantjs/ui/components/badge";
5
5
  import { Button } from "@voyantjs/ui/components/button";
6
6
  import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@voyantjs/ui/components/card";
7
7
  import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@voyantjs/ui/components/select";
8
- import { Tabs, TabsContent, TabsList, TabsTrigger } from "@voyantjs/ui/components/tabs";
9
8
  import { cn } from "@voyantjs/ui/lib/utils";
10
9
  import { ArrowLeft, Edit, FileText, Loader2, Plus, ReceiptText, Trash2 } from "lucide-react";
11
10
  import * as React from "react";
@@ -17,7 +16,7 @@ import { ProductItineraryDialog } from "./product-itinerary-dialog.js";
17
16
  import { ProductMediaSection } from "./product-media-section.js";
18
17
  import { ProductOptionsSection, } from "./product-options-section.js";
19
18
  import { ProductVersionsSection } from "./product-versions-section.js";
20
- export function ProductDetailPage({ id, className, defaultTab = "overview", onBack, onBookingCreate, onDeleted, uploadMedia, renderOptionDetails, renderItineraryDayDetails, renderItineraryServiceActions, slots, }) {
19
+ export function ProductDetailPage({ id, className, onBack, onBookingCreate, onDeleted, uploadMedia, renderOptionDetails, renderItineraryDayDetails, renderItineraryServiceActions, slots, }) {
21
20
  const messages = useProductsUiMessagesOrDefault();
22
21
  const pageMessages = messages.productDetailPage;
23
22
  const productQuery = useProduct(id);
@@ -46,7 +45,7 @@ export function ProductDetailPage({ id, className, defaultTab = "overview", onBa
46
45
  setDeleteError(error instanceof Error ? error.message : pageMessages.states.deleteFailed);
47
46
  }
48
47
  };
49
- return (_jsxs("div", { "data-slot": "product-detail-page", className: cn("flex flex-col gap-6 p-6", className), children: [_jsx(ProductDetailHeader, { product: product, onBack: onBack, onEdit: () => setEditOpen(true), onDelete: () => void handleDelete(), onBookingCreate: onBookingCreate ? () => onBookingCreate(product) : undefined, deleting: remove.isPending, actionsSlot: slots?.header }), deleteError ? _jsx("p", { className: "text-sm text-destructive", children: deleteError }) : null, slots?.afterHeader, _jsxs(Tabs, { defaultValue: defaultTab, children: [_jsxs(TabsList, { className: "w-full justify-start overflow-x-auto", children: [_jsx(TabsTrigger, { value: "overview", children: pageMessages.tabs.overview }), _jsx(TabsTrigger, { value: "media", children: pageMessages.tabs.media }), _jsx(TabsTrigger, { value: "itinerary", children: pageMessages.tabs.itinerary }), _jsx(TabsTrigger, { value: "options", children: pageMessages.tabs.options }), _jsx(TabsTrigger, { value: "versions", children: pageMessages.tabs.versions })] }), _jsx(TabsContent, { value: "overview", className: "mt-4", children: _jsxs("div", { className: "grid gap-4 xl:grid-cols-[minmax(0,1fr)_320px]", children: [_jsxs("div", { className: "flex flex-col gap-4", children: [slots?.overviewStart, _jsx(ProductOverviewCard, { product: product }), _jsx(ProductCommercialCard, { product: product }), slots?.overviewEnd] }), _jsxs("div", { className: "flex flex-col gap-4", children: [_jsx(ProductDetailSidebar, { product: product }), slots?.sidebar] })] }) }), _jsxs(TabsContent, { value: "media", className: "mt-4 space-y-4", children: [_jsx(ProductMediaSection, { productId: product.id, uploadMedia: uploadMedia }), slots?.mediaEnd] }), _jsxs(TabsContent, { value: "itinerary", className: "mt-4 space-y-4", children: [_jsx(ProductItinerarySection, { productId: product.id, renderDayDetails: renderItineraryDayDetails, renderServiceActions: renderItineraryServiceActions }), slots?.itineraryEnd] }), _jsxs(TabsContent, { value: "options", className: "mt-4 space-y-4", children: [_jsx(ProductOptionsSection, { productId: product.id, renderOptionDetails: renderOptionDetails }), slots?.optionsEnd] }), _jsxs(TabsContent, { value: "versions", className: "mt-4 space-y-4", children: [_jsx(ProductVersionsSection, { productId: product.id }), slots?.versionsEnd] })] }), _jsx(ProductDialog, { open: editOpen, onOpenChange: setEditOpen, product: product, onSuccess: () => setEditOpen(false) })] }));
48
+ return (_jsxs("div", { "data-slot": "product-detail-page", className: cn("flex flex-col gap-6 p-6", className), children: [_jsx(ProductDetailHeader, { product: product, onBack: onBack, onEdit: () => setEditOpen(true), onDelete: () => void handleDelete(), onBookingCreate: onBookingCreate ? () => onBookingCreate(product) : undefined, deleting: remove.isPending, actionsSlot: slots?.header }), deleteError ? _jsx("p", { className: "text-sm text-destructive", children: deleteError }) : null, slots?.afterHeader, _jsxs("div", { className: "grid gap-6 xl:grid-cols-[minmax(0,1fr)_320px]", children: [_jsxs("div", { className: "flex min-w-0 flex-col gap-6", children: [slots?.overviewStart, _jsx(ProductOverviewCard, { product: product }), _jsx(ProductCommercialCard, { product: product }), slots?.overviewEnd, _jsx(ProductMediaSection, { productId: product.id, uploadMedia: uploadMedia }), slots?.mediaEnd, _jsx(ProductItinerarySection, { productId: product.id, renderDayDetails: renderItineraryDayDetails, renderServiceActions: renderItineraryServiceActions }), slots?.itineraryEnd, _jsx(ProductOptionsSection, { productId: product.id, renderOptionDetails: renderOptionDetails }), slots?.optionsEnd, _jsx(ProductVersionsSection, { productId: product.id }), slots?.versionsEnd] }), _jsxs("div", { className: "flex min-w-0 flex-col gap-6", children: [_jsx(ProductDetailSidebar, { product: product }), slots?.sidebar] })] }), _jsx(ProductDialog, { open: editOpen, onOpenChange: setEditOpen, product: product, onSuccess: () => setEditOpen(false) })] }));
50
49
  }
51
50
  export function ProductDetailHeader({ product, onBack, onEdit, onDelete, onBookingCreate, deleting = false, actionsSlot, className, }) {
52
51
  const messages = useProductsUiMessagesOrDefault();
@@ -33,7 +33,7 @@ function initialState(mode) {
33
33
  status: "draft",
34
34
  bookingMode: "itinerary",
35
35
  productTypeId: "__none__",
36
- sellCurrency: "EUR",
36
+ sellCurrency: "EUR", // i18n-literal-ok ISO default currency
37
37
  sellAmount: "",
38
38
  costAmount: "",
39
39
  tags: [],
@@ -1 +1 @@
1
- {"version":3,"file":"product-media-section.d.ts","sourceRoot":"","sources":["../../src/components/product-media-section.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,kBAAkB,EAGxB,MAAM,0BAA0B,CAAA;AAwBjC,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAA;IAC3C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,MAAM,yBAAyB,GAAG,CACtC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAC3C,OAAO,CAAC,wBAAwB,CAAC,CAAA;AAEtC,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,yBAAyB,CAAA;IACvC,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,KAAK,EACL,KAAK,EACL,WAAW,EACX,OAAe,EACf,WAAW,EACX,YAAgD,GACjD,EAAE,wBAAwB,2CAgQ1B"}
1
+ {"version":3,"file":"product-media-section.d.ts","sourceRoot":"","sources":["../../src/components/product-media-section.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,kBAAkB,EAGxB,MAAM,0BAA0B,CAAA;AA8BjC,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAA;IAC3C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,MAAM,yBAAyB,GAAG,CACtC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAC3C,OAAO,CAAC,wBAAwB,CAAC,CAAA;AAEtC,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,yBAAyB,CAAA;IACvC,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,KAAK,EACL,KAAK,EACL,WAAW,EACX,OAAe,EACf,WAAW,EACX,YAAgD,GACjD,EAAE,wBAAwB,2CAqS1B"}
@@ -4,32 +4,37 @@ import { useProductMedia, useProductMediaMutation, } from "@voyantjs/products-re
4
4
  import { Badge } from "@voyantjs/ui/components/badge";
5
5
  import { Button } from "@voyantjs/ui/components/button";
6
6
  import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@voyantjs/ui/components/card";
7
- import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@voyantjs/ui/components/table";
8
- import { ImageIcon, Loader2, Pencil, Plus, Star, Trash2, Upload } from "lucide-react";
7
+ import { Dialog, DialogContent, DialogTitle } from "@voyantjs/ui/components/dialog";
8
+ import { cn } from "@voyantjs/ui/lib/utils";
9
+ import { ChevronLeft, ChevronRight, FileText, GripVertical, Loader2, Pencil, Plus, Star, Trash2, Upload, X, } from "lucide-react";
9
10
  import * as React from "react";
10
11
  import { useProductsUiMessagesOrDefault } from "../i18n/provider.js";
11
12
  import { ProductMediaDialog } from "./product-media-dialog.js";
12
13
  export function ProductMediaSection({ productId, dayId, title, description, compact = false, uploadMedia, uploadAccept = "image/*,video/*,application/pdf", }) {
13
14
  const messages = useProductsUiMessagesOrDefault();
15
+ const sectionMessages = messages.productMediaSection;
14
16
  const [dialogOpen, setDialogOpen] = React.useState(false);
15
17
  const [editingMedia, setEditingMedia] = React.useState();
16
18
  const [isUploading, setIsUploading] = React.useState(false);
17
19
  const [uploadError, setUploadError] = React.useState(null);
20
+ const [reorderMode, setReorderMode] = React.useState(false);
21
+ const [localOrder, setLocalOrder] = React.useState([]);
22
+ const [draggedId, setDraggedId] = React.useState(null);
23
+ const [lightboxIndex, setLightboxIndex] = React.useState(null);
18
24
  const fileInputRef = React.useRef(null);
19
25
  const { data, isPending, isError } = useProductMedia(productId, { dayId, limit: 100 });
20
- const { create, remove, setCover } = useProductMediaMutation();
26
+ const { create, remove, reorder, setCover } = useProductMediaMutation();
21
27
  const media = React.useMemo(() => (data?.data ?? [])
22
28
  .slice()
23
29
  .sort((left, right) => Number(right.isCover) - Number(left.isCover) || left.sortOrder - right.sortOrder), [data?.data]);
24
- const resolvedTitle = title ??
25
- (dayId
26
- ? messages.productMediaSection.titles.dayMedia
27
- : messages.productMediaSection.titles.media);
30
+ React.useEffect(() => {
31
+ if (!reorderMode)
32
+ setLocalOrder(media);
33
+ }, [media, reorderMode]);
34
+ const visibleMedia = reorderMode ? localOrder : media;
35
+ const resolvedTitle = title ?? (dayId ? sectionMessages.titles.dayMedia : sectionMessages.titles.media);
28
36
  const resolvedDescription = description ??
29
- (dayId
30
- ? messages.productMediaSection.descriptions.dayMedia
31
- : messages.productMediaSection.descriptions.media);
32
- const header = (_jsxs("div", { className: "space-y-1", children: [_jsx(CardTitle, { className: compact ? "text-base" : undefined, children: resolvedTitle }), _jsx(CardDescription, { children: resolvedDescription })] }));
37
+ (dayId ? sectionMessages.descriptions.dayMedia : sectionMessages.descriptions.media);
33
38
  const handleUpload = async (file) => {
34
39
  if (!uploadMedia)
35
40
  return;
@@ -59,29 +64,103 @@ export function ProductMediaSection({ productId, dayId, title, description, comp
59
64
  });
60
65
  }
61
66
  catch (error) {
62
- setUploadError(error instanceof Error ? error.message : messages.productMediaSection.uploadFailed);
67
+ setUploadError(error instanceof Error ? error.message : sectionMessages.uploadFailed);
63
68
  }
64
69
  finally {
65
70
  setIsUploading(false);
66
71
  }
67
72
  };
68
- const actions = (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [uploadMedia ? (_jsxs(_Fragment, { children: [_jsxs(Button, { variant: compact ? "outline" : "secondary", disabled: isUploading, onClick: () => fileInputRef.current?.click(), children: [isUploading ? (_jsx(Loader2, { className: "mr-2 size-4 animate-spin", "aria-hidden": "true" })) : (_jsx(Upload, { className: "mr-2 size-4", "aria-hidden": "true" })), messages.productMediaSection.actions.upload] }), _jsx("input", { ref: fileInputRef, type: "file", accept: uploadAccept, className: "hidden", onChange: (event) => {
73
+ const moveMedia = (sourceId, targetId) => {
74
+ if (sourceId === targetId)
75
+ return;
76
+ setLocalOrder((items) => {
77
+ const sourceIndex = items.findIndex((item) => item.id === sourceId);
78
+ const targetIndex = items.findIndex((item) => item.id === targetId);
79
+ if (sourceIndex < 0 || targetIndex < 0)
80
+ return items;
81
+ const next = items.slice();
82
+ const [moved] = next.splice(sourceIndex, 1);
83
+ if (!moved)
84
+ return items;
85
+ next.splice(targetIndex, 0, moved);
86
+ return next;
87
+ });
88
+ };
89
+ const commitReorder = async () => {
90
+ await reorder.mutateAsync({
91
+ productId,
92
+ items: localOrder.map((item, index) => ({ id: item.id, sortOrder: index })),
93
+ });
94
+ setReorderMode(false);
95
+ };
96
+ const cancelReorder = () => {
97
+ setLocalOrder(media);
98
+ setReorderMode(false);
99
+ setDraggedId(null);
100
+ };
101
+ const header = (_jsxs("div", { className: "space-y-1", children: [_jsx(CardTitle, { className: compact ? "text-base" : undefined, children: resolvedTitle }), _jsx(CardDescription, { children: resolvedDescription })] }));
102
+ const actions = (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [media.length > 1 ? (reorderMode ? (_jsxs(_Fragment, { children: [_jsx(Button, { type: "button", variant: "outline", size: compact ? "sm" : "default", onClick: cancelReorder, disabled: reorder.isPending, children: sectionMessages.actions.cancelReorder }), _jsxs(Button, { type: "button", size: compact ? "sm" : "default", onClick: () => void commitReorder(), disabled: reorder.isPending, children: [reorder.isPending ? (_jsx(Loader2, { className: "mr-2 size-4 animate-spin", "aria-hidden": "true" })) : null, sectionMessages.actions.saveOrder] })] })) : (_jsxs(Button, { type: "button", variant: "outline", size: compact ? "sm" : "default", onClick: () => {
103
+ setLocalOrder(media);
104
+ setReorderMode(true);
105
+ }, children: [_jsx(GripVertical, { className: "mr-2 size-4", "aria-hidden": "true" }), sectionMessages.actions.reorder] }))) : null, uploadMedia ? (_jsxs(_Fragment, { children: [_jsxs(Button, { type: "button", variant: compact ? "outline" : "secondary", size: compact ? "sm" : "default", disabled: isUploading || reorderMode, onClick: () => fileInputRef.current?.click(), children: [isUploading ? (_jsx(Loader2, { className: "mr-2 size-4 animate-spin", "aria-hidden": "true" })) : (_jsx(Upload, { className: "mr-2 size-4", "aria-hidden": "true" })), sectionMessages.actions.upload] }), _jsx("input", { ref: fileInputRef, type: "file", accept: uploadAccept, className: "hidden", onChange: (event) => {
69
106
  const file = event.target.files?.[0];
70
107
  if (file) {
71
108
  void handleUpload(file);
72
109
  event.target.value = "";
73
110
  }
74
- } })] })) : null, _jsxs(Button, { onClick: () => {
111
+ } })] })) : null, _jsxs(Button, { type: "button", size: compact ? "sm" : "default", disabled: reorderMode, onClick: () => {
75
112
  setEditingMedia(undefined);
76
113
  setDialogOpen(true);
77
- }, children: [_jsx(Plus, { className: "mr-2 size-4", "aria-hidden": "true" }), messages.productMediaSection.actions.addMedia] })] }));
78
- const body = (_jsxs(_Fragment, { children: [uploadError ? _jsx("p", { className: "text-sm text-destructive", children: uploadError }) : null, isPending ? (_jsx("div", { className: "flex min-h-24 items-center justify-center", children: _jsx(Loader2, { className: "size-4 animate-spin text-muted-foreground" }) })) : isError ? (_jsx("p", { className: "text-sm text-destructive", children: messages.productMediaSection.loadingError })) : media.length === 0 ? (_jsx("p", { className: "text-sm text-muted-foreground", children: messages.productMediaSection.empty })) : (_jsx("div", { className: "rounded-md border", children: _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: messages.productMediaSection.columns.name }), _jsx(TableHead, { children: messages.productMediaSection.columns.type }), _jsx(TableHead, { children: messages.productMediaSection.columns.url }), _jsx(TableHead, { children: messages.productMediaSection.columns.sort }), _jsx(TableHead, { className: "w-32" })] }) }), _jsx(TableBody, { children: media.map((item) => (_jsxs(TableRow, { children: [_jsx(TableCell, { children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(ImageIcon, { className: "size-4 text-muted-foreground", "aria-hidden": "true" }), _jsxs("div", { children: [_jsx("div", { className: "font-medium", children: item.name }), item.altText ? (_jsx("div", { className: "text-xs text-muted-foreground", children: item.altText })) : null] }), item.isCover ? (_jsx(Badge, { children: messages.productMediaSection.coverBadge })) : null] }) }), _jsx(TableCell, { children: _jsx(Badge, { variant: "outline", children: messages.common.mediaTypeLabels[item.mediaType] }) }), _jsx(TableCell, { className: "max-w-[320px]", children: _jsx("a", { href: item.url, target: "_blank", rel: "noreferrer", className: "truncate text-sm text-primary underline-offset-4 hover:underline", children: item.url }) }), _jsx(TableCell, { children: item.sortOrder }), _jsx(TableCell, { children: _jsxs("div", { className: "flex items-center justify-end gap-1", children: [!item.isCover ? (_jsx(Button, { variant: "ghost", size: "icon-sm", onClick: () => setCover.mutate(item.id), "aria-label": messages.productMediaSection.actions.markCover, children: _jsx(Star, { className: "size-4", "aria-hidden": "true" }) })) : null, _jsx(Button, { variant: "ghost", size: "icon-sm", onClick: () => {
79
- setEditingMedia(item);
80
- setDialogOpen(true);
81
- }, "aria-label": messages.productMediaSection.actions.edit, children: _jsx(Pencil, { className: "size-4", "aria-hidden": "true" }) }), _jsx(Button, { variant: "ghost", size: "icon-sm", onClick: () => {
82
- if (confirm(messages.productMediaSection.deleteConfirm)) {
83
- remove.mutate(item.id);
84
- }
85
- }, "aria-label": messages.productMediaSection.actions.delete, children: _jsx(Trash2, { className: "size-4", "aria-hidden": "true" }) })] }) })] }, item.id))) })] }) }))] }));
86
- return (_jsxs(_Fragment, { children: [compact ? (_jsxs("div", { "data-slot": "product-media-section", className: "flex flex-col gap-3 rounded-md border bg-background p-3", children: [_jsxs("div", { className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between", children: [header, actions] }), body] })) : (_jsxs(Card, { "data-slot": "product-media-section", children: [_jsxs(CardHeader, { className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between", children: [header, actions] }), _jsx(CardContent, { children: body })] })), _jsx(ProductMediaDialog, { open: dialogOpen, onOpenChange: setDialogOpen, productId: productId, dayId: dayId, media: editingMedia, onSuccess: () => setEditingMedia(undefined) })] }));
114
+ }, children: [_jsx(Plus, { className: "mr-2 size-4", "aria-hidden": "true" }), sectionMessages.actions.addMedia] })] }));
115
+ const body = (_jsxs(_Fragment, { children: [uploadError ? _jsx("p", { className: "text-sm text-destructive", children: uploadError }) : null, isPending ? (_jsx("div", { className: "flex min-h-40 items-center justify-center rounded-md border border-dashed", children: _jsx(Loader2, { className: "size-4 animate-spin text-muted-foreground", "aria-hidden": "true" }) })) : isError ? (_jsx("p", { className: "text-sm text-destructive", children: sectionMessages.loadingError })) : media.length === 0 ? (_jsx("div", { className: "flex min-h-40 items-center justify-center rounded-md border border-dashed p-6 text-center text-sm text-muted-foreground", children: sectionMessages.empty })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "text-xs text-muted-foreground", children: sectionMessages.itemCount.replace("{count}", String(media.length)) }), _jsx("ul", { className: cn("m-0 grid list-none gap-3 p-0", compact
116
+ ? "grid-cols-2" /* i18n-literal-ok CSS class token */
117
+ : "sm:grid-cols-2 2xl:grid-cols-3" /* i18n-literal-ok CSS class token */), children: visibleMedia.map((item, index) => (_jsx(MediaTile, { item: item, index: index, compact: compact, reorderMode: reorderMode, dragging: draggedId === item.id, onOpen: () => setLightboxIndex(index), onEdit: () => {
118
+ setEditingMedia(item);
119
+ setDialogOpen(true);
120
+ }, onSetCover: () => setCover.mutate(item.id), onDelete: () => {
121
+ if (confirm(sectionMessages.deleteConfirm)) {
122
+ remove.mutate(item.id);
123
+ }
124
+ }, onDragStart: () => setDraggedId(item.id), onDragOver: (event) => {
125
+ event.preventDefault();
126
+ if (draggedId)
127
+ moveMedia(draggedId, item.id);
128
+ }, onDrop: () => setDraggedId(null) }, item.id))) })] }))] }));
129
+ return (_jsxs(_Fragment, { children: [compact ? (_jsxs("div", { "data-slot": "product-media-section", className: "flex flex-col gap-3 rounded-md border bg-background p-3", children: [_jsxs("div", { className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between", children: [header, actions] }), body] })) : (_jsxs(Card, { "data-slot": "product-media-section", children: [_jsxs(CardHeader, { className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between", children: [header, actions] }), _jsx(CardContent, { className: "space-y-3", children: body })] })), _jsx(ProductMediaDialog, { open: dialogOpen, onOpenChange: setDialogOpen, productId: productId, dayId: dayId, media: editingMedia, onSuccess: () => setEditingMedia(undefined) }), _jsx(MediaLightbox, { media: visibleMedia, index: lightboxIndex, onClose: () => setLightboxIndex(null) })] }));
130
+ }
131
+ function MediaTile({ item, index, compact, reorderMode, dragging, onOpen, onEdit, onSetCover, onDelete, onDragStart, onDragOver, onDrop, }) {
132
+ const messages = useProductsUiMessagesOrDefault();
133
+ const sectionMessages = messages.productMediaSection;
134
+ const mediaTypeLabel = messages.common.mediaTypeLabels[item.mediaType];
135
+ return (_jsxs("li", { className: cn("group relative overflow-hidden rounded-md border bg-background transition", dragging && "opacity-50 ring-2 ring-primary", reorderMode && "cursor-grab active:cursor-grabbing"), draggable: reorderMode, onDragStart: (event) => {
136
+ event.dataTransfer.effectAllowed = "move";
137
+ event.dataTransfer.setData("text/plain", item.id);
138
+ onDragStart();
139
+ }, onDragOver: onDragOver, onDragEnd: onDrop, onDrop: onDrop, children: [_jsxs("div", { className: cn("relative bg-muted", compact ? "aspect-[4/3]" : "aspect-video"), children: [item.mediaType === "image" ? (_jsx("button", { type: "button", className: "h-full w-full", onClick: onOpen, disabled: reorderMode, "aria-label": sectionMessages.actions.openPreview, children: _jsx("img", { src: item.url, alt: item.altText ?? item.name, className: "h-full w-full object-cover", draggable: false }) })) : item.mediaType === "video" ? (_jsx("button", { type: "button", className: "flex h-full w-full items-center justify-center", onClick: onOpen, disabled: reorderMode, "aria-label": sectionMessages.actions.openPreview, children: _jsx("video", { src: item.url, className: "h-full w-full object-cover", muted: true }) })) : (_jsxs("button", { type: "button", className: "flex h-full w-full flex-col items-center justify-center gap-2 text-muted-foreground", onClick: onOpen, disabled: reorderMode, "aria-label": sectionMessages.actions.openPreview, children: [_jsx(FileText, { className: "size-6", "aria-hidden": "true" }), _jsx("span", { className: "text-xs font-medium uppercase", children: mediaTypeLabel })] })), item.isCover ? (_jsxs(Badge, { className: "absolute left-2 top-2 gap-1 bg-black/70 text-white hover:bg-black/70", children: [_jsx(Star, { className: "size-3 fill-yellow-400 text-yellow-400", "aria-hidden": "true" }), sectionMessages.coverBadge] })) : null, _jsx(Badge, { variant: "secondary", className: "absolute right-2 top-2 bg-background/90", children: mediaTypeLabel }), reorderMode ? (_jsxs("div", { className: "absolute inset-x-0 bottom-0 flex items-center justify-center gap-1 bg-black/65 px-2 py-1 text-xs text-white", children: [_jsx(GripVertical, { className: "size-3", "aria-hidden": "true" }), sectionMessages.actions.drag] })) : (_jsxs("div", { className: "pointer-events-none absolute inset-0 flex items-end justify-end gap-1.5 bg-gradient-to-t from-black/65 via-black/0 to-black/0 p-2 opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100", children: [!item.isCover ? (_jsxs(Button, { type: "button", size: "sm", variant: "secondary", className: "pointer-events-auto h-8 px-2 text-xs", onClick: onSetCover, children: [_jsx(Star, { className: "mr-1 size-3", "aria-hidden": "true" }), sectionMessages.actions.markCover] })) : null, _jsx(Button, { type: "button", size: "icon-sm", variant: "secondary", className: "pointer-events-auto", onClick: onEdit, "aria-label": sectionMessages.actions.edit, children: _jsx(Pencil, { className: "size-4", "aria-hidden": "true" }) }), _jsx(Button, { type: "button", size: "icon-sm", variant: "destructive", className: "pointer-events-auto", onClick: onDelete, "aria-label": sectionMessages.actions.delete, children: _jsx(Trash2, { className: "size-4", "aria-hidden": "true" }) })] }))] }), _jsx("div", { className: "space-y-1 p-3", children: _jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate text-sm font-medium", children: item.name }), item.altText ? (_jsx("div", { className: "truncate text-xs text-muted-foreground", children: item.altText })) : null] }), _jsx("span", { className: "shrink-0 text-xs tabular-nums text-muted-foreground", children: index + 1 })] }) })] }));
140
+ }
141
+ function MediaLightbox({ media, index, onClose, }) {
142
+ const messages = useProductsUiMessagesOrDefault();
143
+ const sectionMessages = messages.productMediaSection;
144
+ const [current, setCurrent] = React.useState(index ?? 0);
145
+ React.useEffect(() => {
146
+ if (index != null)
147
+ setCurrent(index);
148
+ }, [index]);
149
+ const item = media[current];
150
+ const open = index != null && item != null;
151
+ const canPrevious = current > 0;
152
+ const canNext = current < media.length - 1;
153
+ React.useEffect(() => {
154
+ if (!open)
155
+ return;
156
+ const onKeyDown = (event) => {
157
+ if (event.key === "ArrowLeft" && canPrevious)
158
+ setCurrent((value) => value - 1);
159
+ if (event.key === "ArrowRight" && canNext)
160
+ setCurrent((value) => value + 1);
161
+ };
162
+ window.addEventListener("keydown", onKeyDown);
163
+ return () => window.removeEventListener("keydown", onKeyDown);
164
+ }, [canNext, canPrevious, open]);
165
+ return (_jsx(Dialog, { open: open, onOpenChange: (nextOpen) => !nextOpen && onClose(), children: _jsxs(DialogContent, { className: "left-0 top-0 h-screen max-h-none w-screen max-w-none translate-x-0 translate-y-0 gap-0 rounded-none border-0 bg-black/90 p-0 text-white ring-0 sm:max-w-none", showCloseButton: false, children: [_jsx(DialogTitle, { className: "sr-only", children: sectionMessages.viewerTitle }), item ? (_jsxs("div", { className: "relative flex h-full w-full items-center justify-center p-4", children: [_jsx("button", { type: "button", onClick: onClose, className: "absolute right-3 top-3 z-10 rounded-full bg-black/60 p-2 text-white hover:bg-black/80", "aria-label": sectionMessages.actions.closePreview, children: _jsx(X, { className: "size-5", "aria-hidden": "true" }) }), canPrevious ? (_jsx("button", { type: "button", onClick: () => setCurrent((value) => value - 1), className: "absolute left-3 z-10 rounded-full bg-black/60 p-2 text-white hover:bg-black/80", "aria-label": sectionMessages.actions.previousMedia, children: _jsx(ChevronLeft, { className: "size-6", "aria-hidden": "true" }) })) : null, canNext ? (_jsx("button", { type: "button", onClick: () => setCurrent((value) => value + 1), className: "absolute right-3 z-10 rounded-full bg-black/60 p-2 text-white hover:bg-black/80", "aria-label": sectionMessages.actions.nextMedia, children: _jsx(ChevronRight, { className: "size-6", "aria-hidden": "true" }) })) : null, item.mediaType === "image" ? (_jsx("img", { src: item.url, alt: item.altText ?? item.name, className: "max-h-[95vh] max-w-[95vw] object-contain" })) : item.mediaType === "video" ? (_jsx("video", { src: item.url, controls: true, autoPlay: true, className: "max-h-[95vh] max-w-[95vw]" })) : (_jsxs("a", { href: item.url, target: "_blank", rel: "noreferrer", className: "flex max-w-md flex-col items-center gap-3 rounded-lg bg-background p-8 text-center text-foreground", children: [_jsx(FileText, { className: "size-8 text-muted-foreground", "aria-hidden": "true" }), _jsx("span", { className: "font-medium", children: item.name }), _jsx("span", { className: "text-sm text-muted-foreground", children: sectionMessages.actions.openFile })] }))] })) : null] }) }));
87
166
  }
package/dist/i18n/en.d.ts CHANGED
@@ -45,6 +45,10 @@ export declare const productsUiEn: {
45
45
  };
46
46
  };
47
47
  comboboxes: {
48
+ product: {
49
+ placeholder: string;
50
+ empty: string;
51
+ };
48
52
  productCategory: {
49
53
  placeholder: string;
50
54
  empty: string;
@@ -54,6 +58,9 @@ export declare const productsUiEn: {
54
58
  empty: string;
55
59
  };
56
60
  };
61
+ catalogCard: {
62
+ untitled: string;
63
+ };
57
64
  productCategoriesPage: {
58
65
  title: string;
59
66
  description: string;
@@ -73,13 +80,6 @@ export declare const productsUiEn: {
73
80
  deleteItinerary: string;
74
81
  addDay: string;
75
82
  };
76
- tabs: {
77
- overview: string;
78
- media: string;
79
- itinerary: string;
80
- options: string;
81
- versions: string;
82
- };
83
83
  sections: {
84
84
  overview: {
85
85
  title: string;
@@ -227,6 +227,10 @@ export declare const productsUiEn: {
227
227
  description: string;
228
228
  sortOrder: string;
229
229
  active: string;
230
+ customerPaymentPolicy: string;
231
+ };
232
+ descriptions: {
233
+ customerPaymentPolicy: string;
230
234
  };
231
235
  placeholders: {
232
236
  name: string;
@@ -380,21 +384,26 @@ export declare const productsUiEn: {
380
384
  actions: {
381
385
  upload: string;
382
386
  addMedia: string;
387
+ reorder: string;
388
+ saveOrder: string;
389
+ cancelReorder: string;
390
+ drag: string;
383
391
  markCover: string;
392
+ openPreview: string;
393
+ closePreview: string;
394
+ previousMedia: string;
395
+ nextMedia: string;
396
+ openFile: string;
384
397
  edit: string;
385
398
  delete: string;
386
399
  };
387
400
  loadingError: string;
388
401
  empty: string;
402
+ itemCount: string;
389
403
  uploadFailed: string;
390
404
  deleteConfirm: string;
405
+ viewerTitle: string;
391
406
  coverBadge: string;
392
- columns: {
393
- name: string;
394
- type: string;
395
- url: string;
396
- sort: string;
397
- };
398
407
  };
399
408
  productDayDialog: {
400
409
  titles: {
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6oBK,CAAA"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAupBK,CAAA"}
package/dist/i18n/en.js CHANGED
@@ -45,6 +45,10 @@ export const productsUiEn = {
45
45
  },
46
46
  },
47
47
  comboboxes: {
48
+ product: {
49
+ placeholder: "Search products...",
50
+ empty: "No products found.",
51
+ },
48
52
  productCategory: {
49
53
  placeholder: "Search parent category...",
50
54
  empty: "No product categories found.",
@@ -54,6 +58,9 @@ export const productsUiEn = {
54
58
  empty: "No product types found.",
55
59
  },
56
60
  },
61
+ catalogCard: {
62
+ untitled: "Untitled product",
63
+ },
57
64
  productCategoriesPage: {
58
65
  title: "Categories",
59
66
  description: "Hierarchical product categories for organizing your catalog.",
@@ -73,13 +80,6 @@ export const productsUiEn = {
73
80
  deleteItinerary: "Delete itinerary",
74
81
  addDay: "Add day",
75
82
  },
76
- tabs: {
77
- overview: "Overview",
78
- media: "Media",
79
- itinerary: "Itinerary",
80
- options: "Options",
81
- versions: "Versions",
82
- },
83
83
  sections: {
84
84
  overview: {
85
85
  title: "Overview",
@@ -227,6 +227,10 @@ export const productsUiEn = {
227
227
  description: "Description",
228
228
  sortOrder: "Sort order",
229
229
  active: "Active",
230
+ customerPaymentPolicy: "Customer payment policy",
231
+ },
232
+ descriptions: {
233
+ customerPaymentPolicy: "When set, products in this category inherit these terms unless the listing or booking sets its own override. Wins over the supplier-level policy.",
230
234
  },
231
235
  placeholders: {
232
236
  name: "Adventure",
@@ -380,21 +384,26 @@ export const productsUiEn = {
380
384
  actions: {
381
385
  upload: "Upload",
382
386
  addMedia: "Add media",
387
+ reorder: "Reorder",
388
+ saveOrder: "Save order",
389
+ cancelReorder: "Cancel",
390
+ drag: "Drag",
383
391
  markCover: "Mark as cover",
392
+ openPreview: "Open media preview",
393
+ closePreview: "Close preview",
394
+ previousMedia: "Previous media",
395
+ nextMedia: "Next media",
396
+ openFile: "Open file",
384
397
  edit: "Edit",
385
398
  delete: "Delete",
386
399
  },
387
400
  loadingError: "Failed to load media.",
388
401
  empty: "No media items configured yet.",
402
+ itemCount: "Media items: {count}",
389
403
  uploadFailed: "Failed to upload media.",
390
404
  deleteConfirm: "Delete this media item?",
405
+ viewerTitle: "Media preview",
391
406
  coverBadge: "Cover",
392
- columns: {
393
- name: "Name",
394
- type: "Type",
395
- url: "URL",
396
- sort: "Sort",
397
- },
398
407
  },
399
408
  productDayDialog: {
400
409
  titles: {
@@ -441,7 +450,7 @@ export const productsUiEn = {
441
450
  notes: "Notes",
442
451
  },
443
452
  placeholders: {
444
- supplierService: "Optional supplier service id",
453
+ supplierService: "Select a supplier service",
445
454
  countryCode: "RO",
446
455
  name: "Hotel stay",
447
456
  description: "Operational service details",
@@ -36,6 +36,10 @@ export type ProductsUiMessages = {
36
36
  productBookingModeLabels: Record<ProductBookingMode, string>;
37
37
  };
38
38
  comboboxes: {
39
+ product: {
40
+ placeholder: string;
41
+ empty: string;
42
+ };
39
43
  productCategory: {
40
44
  placeholder: string;
41
45
  empty: string;
@@ -45,6 +49,9 @@ export type ProductsUiMessages = {
45
49
  empty: string;
46
50
  };
47
51
  };
52
+ catalogCard: {
53
+ untitled: string;
54
+ };
48
55
  productCategoriesPage: {
49
56
  title: string;
50
57
  description: string;
@@ -64,13 +71,6 @@ export type ProductsUiMessages = {
64
71
  deleteItinerary: string;
65
72
  addDay: string;
66
73
  };
67
- tabs: {
68
- overview: string;
69
- media: string;
70
- itinerary: string;
71
- options: string;
72
- versions: string;
73
- };
74
74
  sections: {
75
75
  overview: {
76
76
  title: string;
@@ -218,6 +218,10 @@ export type ProductsUiMessages = {
218
218
  description: string;
219
219
  sortOrder: string;
220
220
  active: string;
221
+ customerPaymentPolicy: string;
222
+ };
223
+ descriptions: {
224
+ customerPaymentPolicy: string;
221
225
  };
222
226
  placeholders: {
223
227
  name: string;
@@ -371,21 +375,26 @@ export type ProductsUiMessages = {
371
375
  actions: {
372
376
  upload: string;
373
377
  addMedia: string;
378
+ reorder: string;
379
+ saveOrder: string;
380
+ cancelReorder: string;
381
+ drag: string;
374
382
  markCover: string;
383
+ openPreview: string;
384
+ closePreview: string;
385
+ previousMedia: string;
386
+ nextMedia: string;
387
+ openFile: string;
375
388
  edit: string;
376
389
  delete: string;
377
390
  };
378
391
  loadingError: string;
379
392
  empty: string;
393
+ itemCount: string;
380
394
  uploadFailed: string;
381
395
  deleteConfirm: string;
396
+ viewerTitle: string;
382
397
  coverBadge: string;
383
- columns: {
384
- name: string;
385
- type: string;
386
- url: string;
387
- sort: string;
388
- };
389
398
  };
390
399
  productDayDialog: {
391
400
  titles: {
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,10 @@ export declare const productsUiMessageDefinitions: {
49
49
  };
50
50
  };
51
51
  comboboxes: {
52
+ product: {
53
+ placeholder: string;
54
+ empty: string;
55
+ };
52
56
  productCategory: {
53
57
  placeholder: string;
54
58
  empty: string;
@@ -58,6 +62,9 @@ export declare const productsUiMessageDefinitions: {
58
62
  empty: string;
59
63
  };
60
64
  };
65
+ catalogCard: {
66
+ untitled: string;
67
+ };
61
68
  productCategoriesPage: {
62
69
  title: string;
63
70
  description: string;
@@ -77,13 +84,6 @@ export declare const productsUiMessageDefinitions: {
77
84
  deleteItinerary: string;
78
85
  addDay: string;
79
86
  };
80
- tabs: {
81
- overview: string;
82
- media: string;
83
- itinerary: string;
84
- options: string;
85
- versions: string;
86
- };
87
87
  sections: {
88
88
  overview: {
89
89
  title: string;
@@ -231,6 +231,10 @@ export declare const productsUiMessageDefinitions: {
231
231
  description: string;
232
232
  sortOrder: string;
233
233
  active: string;
234
+ customerPaymentPolicy: string;
235
+ };
236
+ descriptions: {
237
+ customerPaymentPolicy: string;
234
238
  };
235
239
  placeholders: {
236
240
  name: string;
@@ -384,21 +388,26 @@ export declare const productsUiMessageDefinitions: {
384
388
  actions: {
385
389
  upload: string;
386
390
  addMedia: string;
391
+ reorder: string;
392
+ saveOrder: string;
393
+ cancelReorder: string;
394
+ drag: string;
387
395
  markCover: string;
396
+ openPreview: string;
397
+ closePreview: string;
398
+ previousMedia: string;
399
+ nextMedia: string;
400
+ openFile: string;
388
401
  edit: string;
389
402
  delete: string;
390
403
  };
391
404
  loadingError: string;
392
405
  empty: string;
406
+ itemCount: string;
393
407
  uploadFailed: string;
394
408
  deleteConfirm: string;
409
+ viewerTitle: string;
395
410
  coverBadge: string;
396
- columns: {
397
- name: string;
398
- type: string;
399
- url: string;
400
- sort: string;
401
- };
402
411
  };
403
412
  productDayDialog: {
404
413
  titles: {
@@ -701,6 +710,10 @@ export declare const productsUiMessageDefinitions: {
701
710
  };
702
711
  };
703
712
  comboboxes: {
713
+ product: {
714
+ placeholder: string;
715
+ empty: string;
716
+ };
704
717
  productCategory: {
705
718
  placeholder: string;
706
719
  empty: string;
@@ -710,6 +723,9 @@ export declare const productsUiMessageDefinitions: {
710
723
  empty: string;
711
724
  };
712
725
  };
726
+ catalogCard: {
727
+ untitled: string;
728
+ };
713
729
  productCategoriesPage: {
714
730
  title: string;
715
731
  description: string;
@@ -729,13 +745,6 @@ export declare const productsUiMessageDefinitions: {
729
745
  deleteItinerary: string;
730
746
  addDay: string;
731
747
  };
732
- tabs: {
733
- overview: string;
734
- media: string;
735
- itinerary: string;
736
- options: string;
737
- versions: string;
738
- };
739
748
  sections: {
740
749
  overview: {
741
750
  title: string;
@@ -883,6 +892,10 @@ export declare const productsUiMessageDefinitions: {
883
892
  description: string;
884
893
  sortOrder: string;
885
894
  active: string;
895
+ customerPaymentPolicy: string;
896
+ };
897
+ descriptions: {
898
+ customerPaymentPolicy: string;
886
899
  };
887
900
  placeholders: {
888
901
  name: string;
@@ -1036,21 +1049,26 @@ export declare const productsUiMessageDefinitions: {
1036
1049
  actions: {
1037
1050
  upload: string;
1038
1051
  addMedia: string;
1052
+ reorder: string;
1053
+ saveOrder: string;
1054
+ cancelReorder: string;
1055
+ drag: string;
1039
1056
  markCover: string;
1057
+ openPreview: string;
1058
+ closePreview: string;
1059
+ previousMedia: string;
1060
+ nextMedia: string;
1061
+ openFile: string;
1040
1062
  edit: string;
1041
1063
  delete: string;
1042
1064
  };
1043
1065
  loadingError: string;
1044
1066
  empty: string;
1067
+ itemCount: string;
1045
1068
  uploadFailed: string;
1046
1069
  deleteConfirm: string;
1070
+ viewerTitle: string;
1047
1071
  coverBadge: string;
1048
- columns: {
1049
- name: string;
1050
- type: string;
1051
- url: string;
1052
- sort: string;
1053
- };
1054
1072
  };
1055
1073
  productDayDialog: {
1056
1074
  titles: {
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/i18n/provider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/i18n/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAKvD,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGe,CAAA;AAExD,MAAM,MAAM,0BAA0B,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,CAAA;AASnF,wBAAgB,yBAAyB,CAAC,EACxC,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,SAAS,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAA;CAC9C,sBAOA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAClC,SAAS,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAA;CAC9C,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CASvC;AAED,wBAAgB,0BAA0B,CAAC,EACzC,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,SAAS,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAA;CAC9C,2CAWA;AAED,eAAO,MAAM,iBAAiB,4CAA4B,CAAA;AAC1D,eAAO,MAAM,qBAAqB,0BAAgC,CAAA;AAElE,wBAAgB,0BAA0B,yCAEzC;AAED,wBAAgB,8BAA8B,uBAE7C"}
package/dist/i18n/ro.d.ts CHANGED
@@ -45,6 +45,10 @@ export declare const productsUiRo: {
45
45
  };
46
46
  };
47
47
  comboboxes: {
48
+ product: {
49
+ placeholder: string;
50
+ empty: string;
51
+ };
48
52
  productCategory: {
49
53
  placeholder: string;
50
54
  empty: string;
@@ -54,6 +58,9 @@ export declare const productsUiRo: {
54
58
  empty: string;
55
59
  };
56
60
  };
61
+ catalogCard: {
62
+ untitled: string;
63
+ };
57
64
  productCategoriesPage: {
58
65
  title: string;
59
66
  description: string;
@@ -73,13 +80,6 @@ export declare const productsUiRo: {
73
80
  deleteItinerary: string;
74
81
  addDay: string;
75
82
  };
76
- tabs: {
77
- overview: string;
78
- media: string;
79
- itinerary: string;
80
- options: string;
81
- versions: string;
82
- };
83
83
  sections: {
84
84
  overview: {
85
85
  title: string;
@@ -227,6 +227,10 @@ export declare const productsUiRo: {
227
227
  description: string;
228
228
  sortOrder: string;
229
229
  active: string;
230
+ customerPaymentPolicy: string;
231
+ };
232
+ descriptions: {
233
+ customerPaymentPolicy: string;
230
234
  };
231
235
  placeholders: {
232
236
  name: string;
@@ -380,21 +384,26 @@ export declare const productsUiRo: {
380
384
  actions: {
381
385
  upload: string;
382
386
  addMedia: string;
387
+ reorder: string;
388
+ saveOrder: string;
389
+ cancelReorder: string;
390
+ drag: string;
383
391
  markCover: string;
392
+ openPreview: string;
393
+ closePreview: string;
394
+ previousMedia: string;
395
+ nextMedia: string;
396
+ openFile: string;
384
397
  edit: string;
385
398
  delete: string;
386
399
  };
387
400
  loadingError: string;
388
401
  empty: string;
402
+ itemCount: string;
389
403
  uploadFailed: string;
390
404
  deleteConfirm: string;
405
+ viewerTitle: string;
391
406
  coverBadge: string;
392
- columns: {
393
- name: string;
394
- type: string;
395
- url: string;
396
- sort: string;
397
- };
398
407
  };
399
408
  productDayDialog: {
400
409
  titles: {
@@ -1 +1 @@
1
- {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+oBK,CAAA"}
1
+ {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAypBK,CAAA"}
package/dist/i18n/ro.js CHANGED
@@ -45,6 +45,10 @@ export const productsUiRo = {
45
45
  },
46
46
  },
47
47
  comboboxes: {
48
+ product: {
49
+ placeholder: "Cauta produse...",
50
+ empty: "Nu au fost gasite produse.",
51
+ },
48
52
  productCategory: {
49
53
  placeholder: "Cauta categoria parinte...",
50
54
  empty: "Nu au fost gasite categorii de produs.",
@@ -54,6 +58,9 @@ export const productsUiRo = {
54
58
  empty: "Nu au fost gasite tipuri de produs.",
55
59
  },
56
60
  },
61
+ catalogCard: {
62
+ untitled: "Produs fara nume",
63
+ },
57
64
  productCategoriesPage: {
58
65
  title: "Categorii",
59
66
  description: "Categorii ierarhice de produse pentru organizarea catalogului.",
@@ -73,13 +80,6 @@ export const productsUiRo = {
73
80
  deleteItinerary: "Sterge itinerarul",
74
81
  addDay: "Adauga zi",
75
82
  },
76
- tabs: {
77
- overview: "Prezentare",
78
- media: "Media",
79
- itinerary: "Itinerar",
80
- options: "Optiuni",
81
- versions: "Versiuni",
82
- },
83
83
  sections: {
84
84
  overview: {
85
85
  title: "Prezentare",
@@ -227,6 +227,10 @@ export const productsUiRo = {
227
227
  description: "Descriere",
228
228
  sortOrder: "Ordine sortare",
229
229
  active: "Activ",
230
+ customerPaymentPolicy: "Politica de plată client",
231
+ },
232
+ descriptions: {
233
+ customerPaymentPolicy: "Când este setată, produsele din această categorie moștenesc acești termeni dacă listarea sau rezervarea nu definește o suprascriere. Are prioritate peste politica de la nivel de furnizor.",
230
234
  },
231
235
  placeholders: {
232
236
  name: "Aventura",
@@ -380,21 +384,26 @@ export const productsUiRo = {
380
384
  actions: {
381
385
  upload: "Incarca",
382
386
  addMedia: "Adauga media",
387
+ reorder: "Reordoneaza",
388
+ saveOrder: "Salveaza ordinea",
389
+ cancelReorder: "Anuleaza",
390
+ drag: "Trage",
383
391
  markCover: "Seteaza cover",
392
+ openPreview: "Deschide previzualizarea media",
393
+ closePreview: "Inchide previzualizarea",
394
+ previousMedia: "Media precedenta",
395
+ nextMedia: "Media urmatoare",
396
+ openFile: "Deschide fisierul",
384
397
  edit: "Editeaza",
385
398
  delete: "Sterge",
386
399
  },
387
400
  loadingError: "Incarcarea media a esuat.",
388
401
  empty: "Nu exista inca elemente media configurate.",
402
+ itemCount: "Elemente media: {count}",
389
403
  uploadFailed: "Incarcarea media a esuat.",
390
404
  deleteConfirm: "Stergi acest element media?",
405
+ viewerTitle: "Previzualizare media",
391
406
  coverBadge: "Cover",
392
- columns: {
393
- name: "Nume",
394
- type: "Tip",
395
- url: "URL",
396
- sort: "Ordine",
397
- },
398
407
  },
399
408
  productDayDialog: {
400
409
  titles: {
@@ -441,7 +450,7 @@ export const productsUiRo = {
441
450
  notes: "Note",
442
451
  },
443
452
  placeholders: {
444
- supplierService: "ID serviciu furnizor optional",
453
+ supplierService: "Selecteaza un serviciu furnizor",
445
454
  countryCode: "RO",
446
455
  name: "Cazare hotel",
447
456
  description: "Detalii operationale ale serviciului",
package/dist/index.d.ts CHANGED
@@ -5,11 +5,12 @@ export { ProductCategoryCombobox } from "./components/product-category-combobox.
5
5
  export { ProductCategoryDialog, type ProductCategoryDialogProps, } from "./components/product-category-dialog.js";
6
6
  export { ProductCategoryForm, type ProductCategoryFormProps, } from "./components/product-category-form.js";
7
7
  export { ProductCategoryList, type ProductCategoryListProps, } from "./components/product-category-list.js";
8
+ export { ProductCombobox, type ProductComboboxProps } from "./components/product-combobox.js";
8
9
  export { ProductDayDialog, type ProductDayDialogProps } from "./components/product-day-dialog.js";
9
10
  export { ProductDayForm, type ProductDayFormProps } from "./components/product-day-form.js";
10
11
  export { ProductDayMediaTray, type ProductDayMediaTrayProps, } from "./components/product-day-media-tray.js";
11
12
  export { ProductDayServiceForm, type ProductDayServiceFormHelpers, type ProductDayServiceFormProps, type ProductDayServiceSupplierServiceFieldProps, type ProductDayServiceSupplierServiceOption, } from "./components/product-day-service-form.js";
12
- export { ProductCommercialCard, ProductDetailHeader, type ProductDetailHeaderProps, ProductDetailPage, type ProductDetailPageProps, type ProductDetailPageSlots, type ProductDetailPageTab, ProductDetailSidebar, type ProductDetailSidebarProps, ProductItinerarySection, type ProductItinerarySectionProps, ProductOverviewCard, type ProductOverviewCardProps, } from "./components/product-detail-page.js";
13
+ export { ProductCommercialCard, ProductDetailHeader, type ProductDetailHeaderProps, ProductDetailPage, type ProductDetailPageProps, type ProductDetailPageSlots, ProductDetailSidebar, type ProductDetailSidebarProps, ProductItinerarySection, type ProductItinerarySectionProps, ProductOverviewCard, type ProductOverviewCardProps, } from "./components/product-detail-page.js";
13
14
  export { ProductDialog, type ProductDialogProps } from "./components/product-dialog.js";
14
15
  export { ProductForm, type ProductFormMode, type ProductFormProps, } from "./components/product-form.js";
15
16
  export { ProductItineraryDayRow, type ProductItineraryDayRowProps, type ProductItineraryDayRowRenderContext, } from "./components/product-itinerary-day-row.js";
@@ -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
@@ -5,6 +5,7 @@ export { ProductCategoryCombobox } from "./components/product-category-combobox.
5
5
  export { ProductCategoryDialog, } from "./components/product-category-dialog.js";
6
6
  export { ProductCategoryForm, } from "./components/product-category-form.js";
7
7
  export { ProductCategoryList, } from "./components/product-category-list.js";
8
+ export { ProductCombobox } from "./components/product-combobox.js";
8
9
  export { ProductDayDialog } from "./components/product-day-dialog.js";
9
10
  export { ProductDayForm } from "./components/product-day-form.js";
10
11
  export { ProductDayMediaTray, } from "./components/product-day-media-tray.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyantjs/products-ui",
3
- "version": "0.34.0",
3
+ "version": "0.37.0",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -45,17 +45,17 @@
45
45
  "react-dom": "^19.0.0",
46
46
  "react-hook-form": "^7.60.0",
47
47
  "zod": "^4.3.6",
48
- "@voyantjs/availability-react": "0.34.0",
49
- "@voyantjs/catalog-react": "0.34.0",
50
- "@voyantjs/finance": "0.34.0",
51
- "@voyantjs/finance-ui": "0.34.0",
52
- "@voyantjs/pricing-react": "0.34.0",
53
- "@voyantjs/products-react": "0.34.0",
54
- "@voyantjs/suppliers-react": "0.34.0",
55
- "@voyantjs/ui": "0.34.0"
48
+ "@voyantjs/availability-react": "0.37.0",
49
+ "@voyantjs/catalog-react": "0.37.0",
50
+ "@voyantjs/finance": "0.37.0",
51
+ "@voyantjs/finance-ui": "0.37.0",
52
+ "@voyantjs/pricing-react": "0.37.0",
53
+ "@voyantjs/products-react": "0.37.0",
54
+ "@voyantjs/suppliers-react": "0.37.0",
55
+ "@voyantjs/ui": "0.37.0"
56
56
  },
57
57
  "dependencies": {
58
- "@voyantjs/i18n": "0.34.0"
58
+ "@voyantjs/i18n": "0.37.0"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@tanstack/react-query": "^5.96.2",
@@ -68,16 +68,16 @@
68
68
  "typescript": "^6.0.2",
69
69
  "vitest": "^4.1.2",
70
70
  "zod": "^4.3.6",
71
- "@voyantjs/availability-react": "0.34.0",
72
- "@voyantjs/catalog-react": "0.34.0",
73
- "@voyantjs/finance": "0.34.0",
74
- "@voyantjs/finance-ui": "0.34.0",
75
- "@voyantjs/i18n": "0.34.0",
76
- "@voyantjs/pricing-react": "0.34.0",
77
- "@voyantjs/products-react": "0.34.0",
78
- "@voyantjs/suppliers-react": "0.34.0",
71
+ "@voyantjs/availability-react": "0.37.0",
72
+ "@voyantjs/catalog-react": "0.37.0",
73
+ "@voyantjs/finance": "0.37.0",
74
+ "@voyantjs/finance-ui": "0.37.0",
75
+ "@voyantjs/i18n": "0.37.0",
76
+ "@voyantjs/pricing-react": "0.37.0",
77
+ "@voyantjs/products-react": "0.37.0",
78
+ "@voyantjs/suppliers-react": "0.37.0",
79
79
  "@voyantjs/voyant-typescript-config": "0.1.0",
80
- "@voyantjs/ui": "0.34.0"
80
+ "@voyantjs/ui": "0.37.0"
81
81
  },
82
82
  "files": [
83
83
  "dist",