@fayz-ai/plugin-shop 0.19.1 → 0.20.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/index.d.ts CHANGED
@@ -90,6 +90,15 @@ export declare function shopProductMarketPricesTab(options: {
90
90
  settingsHref?: string;
91
91
  label?: string;
92
92
  }): DetailTab;
93
+ export { ProductListingTab } from './views/ProductListingTab';
94
+ /**
95
+ * The "Loja" tab for a catalogue product owned by another plugin: puts the
96
+ * product in the store (and its delivery) and picks its store category.
97
+ */
98
+ export declare function shopProductListingTab(options: {
99
+ provider: () => ShopProviderForTab;
100
+ label?: string;
101
+ }): DetailTab;
93
102
  export { buildShopAnalyticsCards } from './analytics/cards';
94
103
  export type { Product, Order, ShopCustomer, Discount, Category, CreateProductInput, UpdateProductInput, ListProductsOptions, CreateOrderInput, UpdateOrderInput, ListOrdersOptions, } from '@fayz-ai/shop';
95
104
  export { melhorEnvioConnectorDef, MELHOR_ENVIO_CONNECTOR_ID, MELHOR_ENVIO_LATENCY_BUDGET_MS } from './integrations/melhor-envio/connectorDef';
@@ -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,7 +5,7 @@ import { createConnectionStore, connectionSettings, connectionStatus, settingsSt
5
5
  import { getShopTenantId, setShopTenantResolver, buildShopMessageDefaults, registerShippingLabelProvider, getShopProvider, buildShopDomainEvents, axesFromOptions, planVariantMatrix, validateVariantAxes, hasOnlyDefaultVariant, MAX_VARIANT_AXES, leavesNothingSellable, productImageToMediaFile, formatVariantCombination, applyVariantMatrix } from '@fayz-ai/shop';
6
6
  import { fayzConnectorOAuth, describeConnectorAccount, useOrganizationStore, registerEntityPath, registerPersonLookup, createCrudPage, registerCrudNavTabs, adminNavigateTo, DetailTabHeader, AskAIButton, PageActions, useAgentSurface, askAI, CrudFormPage, SettingsGroup, SelectRow, ToggleRow, RegistryCrudView, useConnectors, useConnectorsPanelAvailable, openConnectorsPanel, MultiSelectRow, AddConnectorButton, AddConnectorPanel, ConnectorDetail, TextRow, ConnectorRow, ConnectorMark, StateChip } from '@fayz-ai/admin';
7
7
  import { Package, Eye, FileEdit, PackageX, Users, UsersRound, Filter, UserX, Tag, TicketCheck, Layers, CreditCard, CircleDollarSign, Plus, UploadCloud, Upload, ImageOff, Loader2, WandSparkles, ChevronLeft, ChevronRight, Download, RefreshCw, Trash2, AlertTriangle, X, ExternalLink, Box, ChevronDown, Film, FileText, Warehouse, ArrowRight, MapPin, Car, Truck, Info, Check, Sparkles, Ban, ListChecks, Search, Building2 } from 'lucide-react';
8
- import { Skeleton, Badge, CurrencyInput, Button, PageTabs, PageHeaderActions, Card, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Modal, ModalContent, ModalHeader, ModalTitle, ModalDescription, Input, ModalFooter, Thumbnail, PageHeader, toast, ConfirmDialog, Checkbox, Hint, ModalBody, DataTable } from '@fayz-ai/ui';
8
+ import { Skeleton, Badge, CurrencyInput, Button, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, PageTabs, PageHeaderActions, Card, Modal, ModalContent, ModalHeader, ModalTitle, ModalDescription, Input, ModalFooter, Thumbnail, PageHeader, toast, ConfirmDialog, Checkbox, Hint, ModalBody, DataTable } from '@fayz-ai/ui';
9
9
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
10
10
  import { listStockReasonCodes, resolveStockStore, createSupabaseStockStore } from '@fayz-ai/shop/inventory';
11
11
  import { normalizeMovementType } from '@fayz-ai/inventory/domain/movement';
@@ -8948,6 +8948,129 @@ function ProductMarketPricesTab({ item, getProvider, settingsHref = "#/settings/
8948
8948
  ] })
8949
8949
  ] });
8950
8950
  }
8951
+ var NO_CATEGORY = "__none__";
8952
+ var STATUS_LABEL3 = {
8953
+ active: { label: "\xC0 venda na loja", variant: "success" },
8954
+ draft: { label: "Rascunho", variant: "secondary" },
8955
+ archived: { label: "Fora da loja", variant: "outline" }
8956
+ };
8957
+ function ProductListingTab({ item, getProvider }) {
8958
+ const catalog = item ?? {};
8959
+ const catalogId = catalog.id;
8960
+ const [listing, setListing] = useState(void 0);
8961
+ const [categories, setCategories] = useState([]);
8962
+ const [categoryId, setCategoryId] = useState(NO_CATEGORY);
8963
+ const [busy, setBusy] = useState(false);
8964
+ const [error, setError] = useState(null);
8965
+ useEffect(() => {
8966
+ if (!catalogId) {
8967
+ setListing(null);
8968
+ return;
8969
+ }
8970
+ let alive = true;
8971
+ setListing(void 0);
8972
+ const provider = getProvider();
8973
+ const lookup = provider.getProductByCatalogId ? provider.getProductByCatalogId(catalogId) : Promise.resolve(null);
8974
+ Promise.all([lookup, provider.listCategories().catch(() => [])]).then(([found, cats]) => {
8975
+ if (!alive) return;
8976
+ setListing(found);
8977
+ setCategories(cats);
8978
+ setCategoryId(found?.categoryId ?? NO_CATEGORY);
8979
+ }).catch((err) => {
8980
+ if (alive) {
8981
+ setListing(null);
8982
+ setError(errorMessage(err));
8983
+ }
8984
+ });
8985
+ return () => {
8986
+ alive = false;
8987
+ };
8988
+ }, [catalogId]);
8989
+ async function publish() {
8990
+ if (!catalogId || !catalog.name) return;
8991
+ setBusy(true);
8992
+ setError(null);
8993
+ try {
8994
+ const created = await getProvider().createProduct({
8995
+ catalogProductId: catalogId,
8996
+ name: catalog.name,
8997
+ description: catalog.description ?? void 0,
8998
+ sku: catalog.sku ?? void 0,
8999
+ price: Number(catalog.salePrice ?? catalog.price ?? 0),
9000
+ // An inactive record goes in as a draft: listed, not sold, until the
9001
+ // record's Ativo switch is turned on.
9002
+ status: catalog.isActive === false ? "draft" : "active",
9003
+ categoryId: categoryId === NO_CATEGORY ? void 0 : categoryId
9004
+ });
9005
+ setListing(created);
9006
+ } catch (err) {
9007
+ setError(errorMessage(err));
9008
+ } finally {
9009
+ setBusy(false);
9010
+ }
9011
+ }
9012
+ async function changeCategory(next) {
9013
+ if (!listing) return;
9014
+ const previous = categoryId;
9015
+ setCategoryId(next);
9016
+ setError(null);
9017
+ try {
9018
+ const updated = await getProvider().updateProduct(listing.id, { categoryId: next === NO_CATEGORY ? null : next });
9019
+ setListing(updated);
9020
+ } catch (err) {
9021
+ setCategoryId(previous);
9022
+ setError(errorMessage(err));
9023
+ }
9024
+ }
9025
+ if (listing === void 0) {
9026
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-3", "aria-busy": "true", children: [
9027
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-48" }),
9028
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-24 w-full" })
9029
+ ] });
9030
+ }
9031
+ const categoryPicker = /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
9032
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-medium text-muted-foreground", children: "Categoria na loja" }),
9033
+ /* @__PURE__ */ jsxs(Select, { value: categoryId, onValueChange: (v) => {
9034
+ if (listing) void changeCategory(v);
9035
+ else setCategoryId(v);
9036
+ }, children: [
9037
+ /* @__PURE__ */ jsx(SelectTrigger, { className: "w-72", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Sem categoria" }) }),
9038
+ /* @__PURE__ */ jsxs(SelectContent, { children: [
9039
+ /* @__PURE__ */ jsx(SelectItem, { value: NO_CATEGORY, children: "Sem categoria" }),
9040
+ categories.map((c) => /* @__PURE__ */ jsx(SelectItem, { value: c.id, children: c.name }, c.id))
9041
+ ] })
9042
+ ] })
9043
+ ] });
9044
+ if (!listing) {
9045
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
9046
+ /* @__PURE__ */ jsxs("div", { children: [
9047
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold", children: "Loja e delivery" }),
9048
+ /* @__PURE__ */ jsxs("p", { className: "mt-0.5 text-xs text-muted-foreground", children: [
9049
+ "Este produto ainda n\xE3o est\xE1 na loja. Ao colocar, ele aparece no site e no delivery com o nome, o pre\xE7o e a descri\xE7\xE3o deste cadastro",
9050
+ catalog.isActive === false ? " \u2014 como rascunho, at\xE9 o produto ser ativado" : "",
9051
+ "."
9052
+ ] })
9053
+ ] }),
9054
+ categoryPicker,
9055
+ error && /* @__PURE__ */ jsx("p", { className: "text-sm text-destructive", children: error }),
9056
+ /* @__PURE__ */ jsx(Button, { onClick: () => {
9057
+ void publish();
9058
+ }, disabled: busy || !catalog.name, children: busy ? "Colocando\u2026" : "Colocar na loja" })
9059
+ ] });
9060
+ }
9061
+ const status = STATUS_LABEL3[listing.status] ?? { label: listing.status, variant: "outline" };
9062
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
9063
+ /* @__PURE__ */ jsxs("div", { children: [
9064
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
9065
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold", children: "Loja e delivery" }),
9066
+ /* @__PURE__ */ jsx(Badge, { variant: status.variant, children: status.label })
9067
+ ] }),
9068
+ /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: "Nome, pre\xE7o e descri\xE7\xE3o v\xEAm deste cadastro. Para tirar o produto da loja, desative-o no cadastro; ativ\xE1-lo de novo o devolve \xE0 venda. Fotos ficam na aba Conte\xFAdo." })
9069
+ ] }),
9070
+ categoryPicker,
9071
+ error && /* @__PURE__ */ jsx("p", { className: "text-sm text-destructive", children: error })
9072
+ ] });
9073
+ }
8951
9074
 
8952
9075
  // src/index.ts
8953
9076
  var ShopPage = React13__default.lazy(() => import('./ShopPage-2CTRGQTX.js').then((m) => ({ default: m.ShopPage })));
@@ -9354,7 +9477,7 @@ function createShopPlugin(options) {
9354
9477
  }
9355
9478
  },
9356
9479
  suggestions: [
9357
- { label: "What products are available?" },
9480
+ { label: "Quais produtos est\xE3o dispon\xEDveis?" },
9358
9481
  { label: "Which products are out of stock?" }
9359
9482
  ]
9360
9483
  },
@@ -9373,8 +9496,8 @@ function createShopPlugin(options) {
9373
9496
  }
9374
9497
  },
9375
9498
  suggestions: [
9376
- { label: "Show me pending orders" },
9377
- { label: "How many orders were paid today?" }
9499
+ { label: "Mostre os pedidos pendentes" },
9500
+ { label: "Quantos pedidos foram pagos hoje?" }
9378
9501
  ]
9379
9502
  }
9380
9503
  ],
@@ -9497,7 +9620,16 @@ function shopProductMarketPricesTab(options) {
9497
9620
  props: { getProvider: options.provider, settingsHref: options.settingsHref ?? "#/settings/shop-markets" }
9498
9621
  };
9499
9622
  }
9623
+ function shopProductListingTab(options) {
9624
+ return {
9625
+ id: "store-listing",
9626
+ label: options.label ?? "Loja",
9627
+ icon: "Store",
9628
+ component: ProductListingTab,
9629
+ props: { getProvider: options.provider }
9630
+ };
9631
+ }
9500
9632
 
9501
- export { ABACATEPAY_CONNECTOR_ID, ABACATEPAY_LATENCY_BUDGET_MS, APPMAX_CONNECTOR_ID, APPMAX_LATENCY_BUDGET_MS, BLING_CONNECTOR_ID, BLING_MARKETPLACE_SOURCE, BLING_MAX_WINDOW_MS, BLING_PAGE_SIZE, BLING_RATE_LIMIT, BLING_SAMPLE_SIZE, BLING_SIGNATURE_HEADER, BLING_TOKEN_LEAD_MS, BLING_WEBHOOK_DEADLINE_MS, BLING_WINDOW_OVERLAP_MS, MELHOR_ENVIO_CONNECTOR_ID, MELHOR_ENVIO_LATENCY_BUDGET_MS, MERCADOPAGO_CONNECTOR_ID, MERCADOPAGO_LATENCY_BUDGET_MS, NEOCHEF_CONNECTOR_ID, NEOCHEF_CURSOR_OVERLAP_MS, NEOCHEF_FUNCTION, NEOCHEF_MARK, NEOCHEF_PAGE_SIZE, NEOCHEF_RATE_LIMIT, NEOCHEF_SAMPLE_SIZE, NEOCHEF_TOKEN_LEAD_MS, ProductContentTab, ProductMarketPricesTab, STRIPE_CONNECT_CONNECTOR_ID, STRIPE_CONNECT_LATENCY_BUDGET_MS, VINDI_CONNECTOR_ID, VINDI_LATENCY_BUDGET_MS, abacatePayConnectorDef, acceptWebhook, advanceNeoChefCursor, appmaxConnectorDef, blingConnectionStore, blingConnectorDef, buildShopAnalyticsCards, createShopPlugin, firstWindow, listOrderDeliveries2 as listOrderDeliveries, melhorEnvioConnectorDef, mercadoPagoConnectorDef, neoChefConnectionStore, neoChefConnectorDef, orphanConnection, pendingOrders2 as pendingOrders, pullCatalogue2 as pullCatalogue, pullProducts, pushOrders2 as pushOrders, reconcile2 as reconcile, routeCallback, sampleProducts, shopProductContentTab, shopProductMarketPricesTab, stripeConnectConnectorDef, testNeoChef, toMirroredNeoChefProduct, toMirroredProduct, toNeoChefOrder, vindiConnectorDef, windowFor };
9633
+ export { ABACATEPAY_CONNECTOR_ID, ABACATEPAY_LATENCY_BUDGET_MS, APPMAX_CONNECTOR_ID, APPMAX_LATENCY_BUDGET_MS, BLING_CONNECTOR_ID, BLING_MARKETPLACE_SOURCE, BLING_MAX_WINDOW_MS, BLING_PAGE_SIZE, BLING_RATE_LIMIT, BLING_SAMPLE_SIZE, BLING_SIGNATURE_HEADER, BLING_TOKEN_LEAD_MS, BLING_WEBHOOK_DEADLINE_MS, BLING_WINDOW_OVERLAP_MS, MELHOR_ENVIO_CONNECTOR_ID, MELHOR_ENVIO_LATENCY_BUDGET_MS, MERCADOPAGO_CONNECTOR_ID, MERCADOPAGO_LATENCY_BUDGET_MS, NEOCHEF_CONNECTOR_ID, NEOCHEF_CURSOR_OVERLAP_MS, NEOCHEF_FUNCTION, NEOCHEF_MARK, NEOCHEF_PAGE_SIZE, NEOCHEF_RATE_LIMIT, NEOCHEF_SAMPLE_SIZE, NEOCHEF_TOKEN_LEAD_MS, ProductContentTab, ProductListingTab, ProductMarketPricesTab, STRIPE_CONNECT_CONNECTOR_ID, STRIPE_CONNECT_LATENCY_BUDGET_MS, VINDI_CONNECTOR_ID, VINDI_LATENCY_BUDGET_MS, abacatePayConnectorDef, acceptWebhook, advanceNeoChefCursor, appmaxConnectorDef, blingConnectionStore, blingConnectorDef, buildShopAnalyticsCards, createShopPlugin, firstWindow, listOrderDeliveries2 as listOrderDeliveries, melhorEnvioConnectorDef, mercadoPagoConnectorDef, neoChefConnectionStore, neoChefConnectorDef, orphanConnection, pendingOrders2 as pendingOrders, pullCatalogue2 as pullCatalogue, pullProducts, pushOrders2 as pushOrders, reconcile2 as reconcile, routeCallback, sampleProducts, shopProductContentTab, shopProductListingTab, shopProductMarketPricesTab, stripeConnectConnectorDef, testNeoChef, toMirroredNeoChefProduct, toMirroredProduct, toNeoChefOrder, vindiConnectorDef, windowFor };
9502
9634
  //# sourceMappingURL=index.js.map
9503
9635
  //# sourceMappingURL=index.js.map