@fayz-ai/plugin-shop 0.9.1 → 0.10.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.
Files changed (119) hide show
  1. package/dist/ShopPage-ZBJRNMKQ.js +2942 -0
  2. package/dist/ShopPage-ZBJRNMKQ.js.map +1 -0
  3. package/dist/analytics/cards.d.ts +3 -0
  4. package/dist/analytics/cards.d.ts.map +1 -0
  5. package/dist/chunk-EW4XJRA2.js +835 -0
  6. package/dist/chunk-EW4XJRA2.js.map +1 -0
  7. package/dist/data/registries.d.ts +53 -0
  8. package/dist/data/registries.d.ts.map +1 -0
  9. package/dist/data/registry-routes.d.ts +21 -0
  10. package/dist/data/registry-routes.d.ts.map +1 -0
  11. package/dist/data/shippingProfileDataProvider.d.ts +19 -0
  12. package/dist/data/shippingProfileDataProvider.d.ts.map +1 -0
  13. package/dist/data/stockLocationDataProvider.d.ts +13 -0
  14. package/dist/data/stockLocationDataProvider.d.ts.map +1 -0
  15. package/dist/index.d.ts +15 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +4446 -504
  18. package/dist/index.js.map +1 -1
  19. package/dist/integrations/abacatepay/connectorDef.d.ts +41 -0
  20. package/dist/integrations/abacatepay/connectorDef.d.ts.map +1 -0
  21. package/dist/integrations/appmax/connectorDef.d.ts +28 -0
  22. package/dist/integrations/appmax/connectorDef.d.ts.map +1 -0
  23. package/dist/integrations/bling/connectorDef.d.ts +10 -0
  24. package/dist/integrations/bling/connectorDef.d.ts.map +1 -0
  25. package/dist/integrations/bling/data.d.ts +61 -0
  26. package/dist/integrations/bling/data.d.ts.map +1 -0
  27. package/dist/integrations/bling/inbound.d.ts +97 -0
  28. package/dist/integrations/bling/inbound.d.ts.map +1 -0
  29. package/dist/integrations/bling/index.d.ts +9 -0
  30. package/dist/integrations/bling/index.d.ts.map +1 -0
  31. package/dist/integrations/bling/limits.d.ts +33 -0
  32. package/dist/integrations/bling/limits.d.ts.map +1 -0
  33. package/dist/integrations/bling/mapping.d.ts +10 -0
  34. package/dist/integrations/bling/mapping.d.ts.map +1 -0
  35. package/dist/integrations/bling/sync.d.ts +70 -0
  36. package/dist/integrations/bling/sync.d.ts.map +1 -0
  37. package/dist/integrations/bling/types.d.ts +59 -0
  38. package/dist/integrations/bling/types.d.ts.map +1 -0
  39. package/dist/integrations/melhor-envio/connectorDef.d.ts +38 -0
  40. package/dist/integrations/melhor-envio/connectorDef.d.ts.map +1 -0
  41. package/dist/integrations/melhor-envio/labelProvider.d.ts +4 -0
  42. package/dist/integrations/melhor-envio/labelProvider.d.ts.map +1 -0
  43. package/dist/integrations/stripe-connect/connectorDef.d.ts +17 -0
  44. package/dist/integrations/stripe-connect/connectorDef.d.ts.map +1 -0
  45. package/dist/settings/CheckoutSettings.d.ts +17 -0
  46. package/dist/settings/CheckoutSettings.d.ts.map +1 -0
  47. package/dist/settings/ChoiceCards.d.ts +23 -0
  48. package/dist/settings/ChoiceCards.d.ts.map +1 -0
  49. package/dist/settings/FulfillmentSettings.d.ts +23 -0
  50. package/dist/settings/FulfillmentSettings.d.ts.map +1 -0
  51. package/dist/settings/HandlingSettings.d.ts +17 -0
  52. package/dist/settings/HandlingSettings.d.ts.map +1 -0
  53. package/dist/settings/PackagesSettings.d.ts +22 -0
  54. package/dist/settings/PackagesSettings.d.ts.map +1 -0
  55. package/dist/settings/PaymentProviderRow.d.ts +28 -0
  56. package/dist/settings/PaymentProviderRow.d.ts.map +1 -0
  57. package/dist/settings/PaymentsSettings.d.ts +7 -0
  58. package/dist/settings/PaymentsSettings.d.ts.map +1 -0
  59. package/dist/settings/SettingsState.d.ts +27 -0
  60. package/dist/settings/SettingsState.d.ts.map +1 -0
  61. package/dist/settings/ShippingSettings.d.ts +27 -0
  62. package/dist/settings/ShippingSettings.d.ts.map +1 -0
  63. package/dist/settings/StoreGeneralSettings.d.ts +19 -0
  64. package/dist/settings/StoreGeneralSettings.d.ts.map +1 -0
  65. package/dist/settings/error-message.d.ts +2 -0
  66. package/dist/settings/error-message.d.ts.map +1 -0
  67. package/dist/settings/index.d.ts +12 -0
  68. package/dist/settings/index.d.ts.map +1 -0
  69. package/dist/settings/payment-provider.d.ts +13 -0
  70. package/dist/settings/payment-provider.d.ts.map +1 -0
  71. package/dist/settings/useStoreSettings.d.ts +30 -0
  72. package/dist/settings/useStoreSettings.d.ts.map +1 -0
  73. package/dist/views/AgencySelect.d.ts +17 -0
  74. package/dist/views/AgencySelect.d.ts.map +1 -0
  75. package/dist/views/ContentPage.d.ts.map +1 -1
  76. package/dist/views/FulfillmentProviderSelect.d.ts +14 -0
  77. package/dist/views/FulfillmentProviderSelect.d.ts.map +1 -0
  78. package/dist/views/NewOrderCharge.d.ts +17 -0
  79. package/dist/views/NewOrderCharge.d.ts.map +1 -0
  80. package/dist/views/NewOrderPage.d.ts +9 -0
  81. package/dist/views/NewOrderPage.d.ts.map +1 -0
  82. package/dist/views/OrderDetailView.d.ts +2 -0
  83. package/dist/views/OrderDetailView.d.ts.map +1 -1
  84. package/dist/views/OrderPaymentDetail.d.ts +5 -0
  85. package/dist/views/OrderPaymentDetail.d.ts.map +1 -0
  86. package/dist/views/OrderProviderLinks.d.ts +5 -0
  87. package/dist/views/OrderProviderLinks.d.ts.map +1 -0
  88. package/dist/views/PackageSelect.d.ts +20 -0
  89. package/dist/views/PackageSelect.d.ts.map +1 -0
  90. package/dist/views/ProductImagesTab.d.ts.map +1 -1
  91. package/dist/views/ProductVariantsTab.d.ts +29 -0
  92. package/dist/views/ProductVariantsTab.d.ts.map +1 -0
  93. package/dist/views/SenderLocationModal.d.ts +20 -0
  94. package/dist/views/SenderLocationModal.d.ts.map +1 -0
  95. package/dist/views/ShipOrderForm.d.ts +10 -0
  96. package/dist/views/ShipOrderForm.d.ts.map +1 -0
  97. package/dist/views/ShipWithCarrier.d.ts +18 -0
  98. package/dist/views/ShipWithCarrier.d.ts.map +1 -0
  99. package/dist/views/ShipmentActions.d.ts +11 -0
  100. package/dist/views/ShipmentActions.d.ts.map +1 -0
  101. package/dist/views/ShippingProfileSelect.d.ts +13 -0
  102. package/dist/views/ShippingProfileSelect.d.ts.map +1 -0
  103. package/dist/views/ShopPage.d.ts.map +1 -1
  104. package/dist/views/customerEntity.d.ts.map +1 -1
  105. package/dist/views/eta-label.d.ts +6 -0
  106. package/dist/views/eta-label.d.ts.map +1 -0
  107. package/dist/views/media-links.d.ts +12 -0
  108. package/dist/views/media-links.d.ts.map +1 -0
  109. package/dist/views/new-order-rules.d.ts +55 -0
  110. package/dist/views/new-order-rules.d.ts.map +1 -0
  111. package/dist/views/order-actions.d.ts +4 -0
  112. package/dist/views/order-actions.d.ts.map +1 -0
  113. package/dist/views/productEntity.d.ts.map +1 -1
  114. package/dist/views/shippingZoneEntity.d.ts.map +1 -1
  115. package/package.json +10 -7
  116. package/dist/ShopPage-PVHFKDF3.js +0 -690
  117. package/dist/ShopPage-PVHFKDF3.js.map +0 -1
  118. package/dist/components/ShopSettings.d.ts +0 -15
  119. package/dist/components/ShopSettings.d.ts.map +0 -1
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { type ShopProviderResolver } from '../data/shared';
3
+ import type { StoreSettingsHandle } from './useStoreSettings';
4
+ export interface HandlingSettingsProps {
5
+ /** The Entrega screen's own settings read, shared rather than repeated. */
6
+ settings: StoreSettingsHandle;
7
+ provider?: ShopProviderResolver;
8
+ }
9
+ /**
10
+ * Shipping profiles, and the handling note that travels with the parcel.
11
+ *
12
+ * Replaces a three-way cold-chain radio: a profile answers refrigerated, fragile,
13
+ * oversized and made-to-order with one mechanism. The note is separate because it
14
+ * does not decide who may carry the box.
15
+ */
16
+ export declare function HandlingSettings({ settings, provider }: HandlingSettingsProps): React.JSX.Element | null;
17
+ //# sourceMappingURL=HandlingSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HandlingSettings.d.ts","sourceRoot":"","sources":["../../src/settings/HandlingSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,EAAW,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAI7D,MAAM,WAAW,qBAAqB;IACpC,2EAA2E;IAC3E,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,QAAQ,CAAC,EAAE,oBAAoB,CAAA;CAChC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,qBAAqB,4BAkF7E"}
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ /**
3
+ * Embalagens — em que caixas a loja embala.
4
+ *
5
+ * É a metade que faltava do frete real. O produto declara o que ele É (peso e
6
+ * medidas, na seção Envio do cadastro) e para onde ele VAI (a embalagem que
7
+ * aponta); esta tela é o cadastro de onde essa escolha sai. Enquanto ela não
8
+ * existia, a caixa da cotação era uma constante no código — 4×16×20cm e 300g
9
+ * para toda loja da plataforma, que é o piso que a Correios aceita e não a
10
+ * medida de nada que alguém vende. O frete cotado e o frete pago divergiam, e a
11
+ * diferença saía da margem do lojista.
12
+ *
13
+ * A LISTA NÃO É DESTE ARQUIVO, e essa é a correção: era um CRUD escrito à mão,
14
+ * com o seu próprio jeito de listar, criar, validar e apagar. Agora é
15
+ * `PluginRegistryDef` + `RegistryCrudView`, o mesmo par que desenha feriados,
16
+ * locais e categorias — uma interface a menos para o lojista aprender e umas
17
+ * duzentas linhas a menos para manter sincronizadas com o resto do admin.
18
+ */
19
+ export declare function PackagesSettings({ basePath }: {
20
+ basePath?: string;
21
+ }): React.JSX.Element;
22
+ //# sourceMappingURL=PackagesSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackagesSettings.d.ts","sourceRoot":"","sources":["../../src/settings/PackagesSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,QAAkD,EAAE,EAAE;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,qBAUA"}
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { type UnifiedConnector } from '@fayz-ai/admin';
3
+ /**
4
+ * One payment gateway, where activating it IS choosing it.
5
+ *
6
+ * Shopify and Nuvemshop have no "primary provider" control: a provider is active
7
+ * or it is not, and turning one on is what makes it charge. Ours were two
8
+ * sections, so the gateway was chosen in one place and listed in another with
9
+ * the relationship left to be guessed.
10
+ *
11
+ * The row body ONLY selects, and the named link beside it is the only way into
12
+ * the connection's own screen — a row that sometimes selected and sometimes
13
+ * opened a panel read as broken, which is what it was reported as.
14
+ */
15
+ export declare function PaymentProviderRow({ connector, selected, onSelect, onOpen }: {
16
+ connector: UnifiedConnector;
17
+ selected: boolean;
18
+ onSelect: (connector: UnifiedConnector) => void;
19
+ onOpen: (connector: UnifiedConnector) => void;
20
+ }): React.JSX.Element;
21
+ /** The absence of a gateway, as a choice in the same list — Shopify's "manual
22
+ * payment methods only". A separate section for it made it look like a setting
23
+ * about something else. */
24
+ export declare function ManualChargeRow({ selected, onSelect }: {
25
+ selected: boolean;
26
+ onSelect: () => void;
27
+ }): React.JSX.Element;
28
+ //# sourceMappingURL=PaymentProviderRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaymentProviderRow.d.ts","sourceRoot":"","sources":["../../src/settings/PaymentProviderRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEhF;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;IAC5E,SAAS,EAAE,gBAAgB,CAAA;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,CAAC,SAAS,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC/C,MAAM,EAAE,CAAC,SAAS,EAAE,gBAAgB,KAAK,IAAI,CAAA;CAC9C,qBAoDA;AAED;;4BAE4B;AAC5B,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;IACtD,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB,qBA4BA"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { ShopProviderResolver } from '../data/shared';
3
+ export interface PaymentsSettingsProps {
4
+ provider?: ShopProviderResolver;
5
+ }
6
+ export declare function PaymentsSettings({ provider }: PaymentsSettingsProps): React.JSX.Element;
7
+ //# sourceMappingURL=PaymentsSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaymentsSettings.d.ts","sourceRoot":"","sources":["../../src/settings/PaymentsSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAM1D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,oBAAoB,CAAA;CAChC;AA0CD,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,qBA2InE"}
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ /**
3
+ * The three things every Commerce settings screen has to say, said once.
4
+ *
5
+ * Loading, saving and refused are not decoration on a settings screen that
6
+ * writes to a server: without them a merchant cannot tell "salvo" from "não
7
+ * chegou", and the whole reason these screens exist is that the previous ones
8
+ * silently kept everything in React state. The saving/saved line is what
9
+ * replaces the Save button the auto-save design removes.
10
+ *
11
+ * `supported: false` is its own case, and deliberately loud: it means the
12
+ * mounted shop provider has no store-settings methods at all, so every control
13
+ * below would be a toggle wired to nothing — which is exactly the bug this wave
14
+ * fixes and must not be reintroduced silently by a bespoke provider.
15
+ */
16
+ export declare function SettingsState({ loading, saving, error, loadError, supported, children, }: {
17
+ loading: boolean;
18
+ saving: boolean;
19
+ error: string | null;
20
+ /** The READ failed. Opposite copy from `error`, and shown ABOVE the controls
21
+ * rather than below: what is on screen is defaults, not the store's settings,
22
+ * and that has to be read before anything is clicked. */
23
+ loadError?: string | null;
24
+ supported: boolean;
25
+ children: React.ReactNode;
26
+ }): React.JSX.Element;
27
+ //# sourceMappingURL=SettingsState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsState.d.ts","sourceRoot":"","sources":["../../src/settings/SettingsState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,MAAM,EACN,KAAK,EACL,SAAS,EACT,SAAS,EACT,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB;;8DAE0D;IAC1D,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,qBA6DA"}
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import { type ShopProviderResolver } from '../data/shared';
3
+ export interface ShippingSettingsProps {
4
+ provider?: ShopProviderResolver;
5
+ }
6
+ /**
7
+ * Entrega — o preço base, as zonas e quem coleta.
8
+ *
9
+ * A ORDEM DE PRECEDÊNCIA é o assunto desta tela, e está escrita nela em vez de
10
+ * só no SQL: uma ZONA que cobre o CEP ganha do preço base; o preço base é o que
11
+ * a loja cobra para um endereço que nenhuma zona cobre. Sem isso dito, um
12
+ * lojista que criou uma zona não entende por que o número que ele digitou aqui
13
+ * não aparece no checkout.
14
+ *
15
+ * O preço base vive em public.shipping_settings desde a 0015 e, até agora, só
16
+ * podia ser escrito por SQL à mão — a tabela existia, com RLS e leitura anônima,
17
+ * e nenhuma tela. É este arquivo que fecha isso.
18
+ *
19
+ * ZONAS E EMBALAGENS SÃO CADASTROS, e desde a FAY-1407 são cadastros DAQUI. As
20
+ * zonas moravam numa página de CRUD própria em /store/shipping, então clicar em
21
+ * "Zonas de entrega" no meio de configurar a entrega jogava o lojista para fora
22
+ * de Configurações e o trazia de volta pela seta do navegador. Agora as duas
23
+ * abrem em `_properties/<id>` dentro desta mesma tela, pelo `RegistryCrudView`
24
+ * genérico — o mesmo que desenha feriados e locais.
25
+ */
26
+ export declare function ShippingSettings({ provider }: ShippingSettingsProps): React.JSX.Element;
27
+ //# sourceMappingURL=ShippingSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShippingSettings.d.ts","sourceRoot":"","sources":["../../src/settings/ShippingSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,OAAO,EAAW,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAWnE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,oBAAoB,CAAA;CAChC;AAuCD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,qBAqYnE"}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import type { ShopProviderResolver } from '../data/shared';
3
+ export interface StoreGeneralSettingsProps {
4
+ currency?: {
5
+ code?: string;
6
+ locale?: string;
7
+ symbol?: string;
8
+ };
9
+ provider?: ShopProviderResolver;
10
+ }
11
+ /**
12
+ * Loja — moeda, formatação e as regras de catálogo.
13
+ *
14
+ * O `currency` que o app passa na criação do plugin é o VALOR INICIAL mostrado,
15
+ * não o valor salvo: enquanto o lojista não escolhe, a vitrine segue com o que o
16
+ * app declarou, e é isso que a coluna nula significa. Escolher grava.
17
+ */
18
+ export declare function StoreGeneralSettings({ currency, provider }: StoreGeneralSettingsProps): React.JSX.Element;
19
+ //# sourceMappingURL=StoreGeneralSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StoreGeneralSettings.d.ts","sourceRoot":"","sources":["../../src/settings/StoreGeneralSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAI1D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9D,QAAQ,CAAC,EAAE,oBAAoB,CAAA;CAChC;AAeD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,yBAAyB,qBAmErF"}
@@ -0,0 +1,2 @@
1
+ export declare function errorMessage(error: unknown): string;
2
+ //# sourceMappingURL=error-message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-message.d.ts","sourceRoot":"","sources":["../../src/settings/error-message.ts"],"names":[],"mappings":"AAmBA,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAInD"}
@@ -0,0 +1,12 @@
1
+ export { useStoreSettings } from './useStoreSettings';
2
+ export type { StoreSettingsHandle } from './useStoreSettings';
3
+ export { SettingsState } from './SettingsState';
4
+ export { errorMessage } from './error-message';
5
+ export { StoreGeneralSettings } from './StoreGeneralSettings';
6
+ export { PaymentsSettings } from './PaymentsSettings';
7
+ export { CheckoutSettings } from './CheckoutSettings';
8
+ export { ShippingSettings } from './ShippingSettings';
9
+ export { PackagesSettings } from './PackagesSettings';
10
+ export { HandlingSettings } from './HandlingSettings';
11
+ export { FulfillmentSettings } from './FulfillmentSettings';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Which gateway should be charging, given what the store stored and what is
3
+ * connected right now. Returns the slug to persist, or null for "leave it".
4
+ *
5
+ * The store must always have someone charging: a gateway just connected and
6
+ * nobody named makes every order pending for no reason, and a named gateway
7
+ * that went away makes the checkout promise a charge that cannot open.
8
+ *
9
+ * `''` is the one answer this never overrides — it is the merchant saying "eu
10
+ * confirmo à mão", which is a decision. `undefined` is the absence of one.
11
+ */
12
+ export declare function resolvePaymentProvider(current: string | undefined | null, live: readonly string[]): string | null;
13
+ //# sourceMappingURL=payment-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-provider.d.ts","sourceRoot":"","sources":["../../src/settings/payment-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAClC,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,MAAM,GAAG,IAAI,CAKf"}
@@ -0,0 +1,30 @@
1
+ import type { StoreSettings, UpdateStoreSettingsInput } from '@fayz-ai/shop';
2
+ import { type ShopProviderResolver } from '../data/shared';
3
+ export interface StoreSettingsHandle {
4
+ /** Merged over `defaults`: what the controls render. */
5
+ value: StoreSettings;
6
+ /** What is actually stored — `undefined` for anything undecided. */
7
+ stored: StoreSettings | null;
8
+ set: (patch: UpdateStoreSettingsInput) => void;
9
+ loading: boolean;
10
+ /** True while a write is in flight or pending. Drives the "saving…" hint. */
11
+ saving: boolean;
12
+ /** The provider refused the WRITE. Shown inline; the optimistic value stays
13
+ * on screen so the merchant does not lose what they typed. */
14
+ error: string | null;
15
+ /**
16
+ * The provider refused the READ.
17
+ *
18
+ * Kept apart from `error` because the two need opposite copy and imply
19
+ * opposite things. A failed save means "your change did not stick"; a failed
20
+ * load means "everything below is a default, not your settings" — and showing
21
+ * the save wording for a load failure, which is what this hook did at first,
22
+ * tells the merchant a change was lost when they had not made one.
23
+ */
24
+ loadError: string | null;
25
+ /** False when the mounted provider has no store-settings support at all —
26
+ * the screen says so instead of pretending the toggles work. */
27
+ supported: boolean;
28
+ }
29
+ export declare function useStoreSettings(provider: ShopProviderResolver | undefined, defaults?: StoreSettings): StoreSettingsHandle;
30
+ //# sourceMappingURL=useStoreSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStoreSettings.d.ts","sourceRoot":"","sources":["../../src/settings/useStoreSettings.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,EAAW,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAwBnE,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,KAAK,EAAE,aAAa,CAAA;IACpB,oEAAoE;IACpE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;IAC5B,GAAG,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAA;IAC9C,OAAO,EAAE,OAAO,CAAA;IAChB,6EAA6E;IAC7E,MAAM,EAAE,OAAO,CAAA;IACf;mEAC+D;IAC/D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB;;;;;;;;OAQG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB;qEACiE;IACjE,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,oBAAoB,GAAG,SAAS,EAC1C,QAAQ,GAAE,aAAkB,GAC3B,mBAAmB,CA6DrB"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import type { ShopProvider } from '@fayz-ai/shop';
3
+ type Chosen = Record<string, {
4
+ id: string;
5
+ name?: string;
6
+ }>;
7
+ export interface AgencySelectProps {
8
+ /** The `carrierAgencies` map of the location being edited. */
9
+ value: Chosen | null | undefined;
10
+ onChange: (value: Chosen) => void;
11
+ /** The rest of the form — the address this place has. */
12
+ values?: Record<string, unknown>;
13
+ provider?: () => ShopProvider;
14
+ }
15
+ export declare function AgencySelect({ value, onChange, values, provider }: AgencySelectProps): React.JSX.Element | null;
16
+ export {};
17
+ //# sourceMappingURL=AgencySelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgencySelect.d.ts","sourceRoot":"","sources":["../../src/views/AgencySelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAMlD,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,eAAe,CAAA;AAejE,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAE3D,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,QAAQ,CAAC,EAAE,MAAM,YAAY,CAAA;CAC9B;AAED,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,iBAAiB,4BAuHpF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPage.d.ts","sourceRoot":"","sources":["../../src/views/ContentPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AA+BtD,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,oBAAoB,CAAA;CACvC;AAED,wBAAgB,WAAW,CAAC,EAAE,eAAe,EAAE,EAAE,gBAAgB,qBAiJhE"}
1
+ {"version":3,"file":"ContentPage.d.ts","sourceRoot":"","sources":["../../src/views/ContentPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAyCtD,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,oBAAoB,CAAA;CACvC;AAED,wBAAgB,WAAW,CAAC,EAAE,eAAe,EAAE,EAAE,gBAAgB,qBAwOhE"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ /**
3
+ * Who ships from this location. Three-state, and the empty option is named:
4
+ * "segue a loja" is a real answer, different from "eu mesmo despacho" — the
5
+ * first follows whatever Entrega decides later, the second never asks a gateway.
6
+ *
7
+ * A gateway that is declared but not yet connected is still offered: deciding
8
+ * in advance is the point of the field, and the row says it is not connected.
9
+ */
10
+ export declare function FulfillmentProviderSelect({ value, onChange }: {
11
+ value: string | null;
12
+ onChange: (next: string | null) => void;
13
+ }): React.JSX.Element;
14
+ //# sourceMappingURL=FulfillmentProviderSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FulfillmentProviderSelect.d.ts","sourceRoot":"","sources":["../../src/views/FulfillmentProviderSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAC7D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;CACxC,qBAoCA"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import type { ShopProvider } from '@fayz-ai/shop';
3
+ export interface NewOrderChargeProps {
4
+ open: boolean;
5
+ provider: () => ShopProvider;
6
+ sessionId: string;
7
+ emv: string;
8
+ qrcodeBase64: string | null;
9
+ total: number;
10
+ currency: string;
11
+ customerName: string;
12
+ customerPhone: string;
13
+ onPaid: (orderId?: string) => void;
14
+ onClose: () => void;
15
+ }
16
+ export declare function NewOrderCharge({ open, provider, sessionId, emv, qrcodeBase64, total, currency, customerName, customerPhone, onPaid, onClose, }: NewOrderChargeProps): React.JSX.Element;
17
+ //# sourceMappingURL=NewOrderCharge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewOrderCharge.d.ts","sourceRoot":"","sources":["../../src/views/NewOrderCharge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAOvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAmBjD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,YAAY,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAC7D,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,GAC7C,EAAE,mBAAmB,qBA2IrB"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { ShopProvider } from '@fayz-ai/shop';
3
+ export interface NewOrderPageProps {
4
+ provider: () => ShopProvider;
5
+ onDone: (orderId?: string) => void;
6
+ onCancel: () => void;
7
+ }
8
+ export declare function NewOrderPage({ provider, onDone, onCancel }: NewOrderPageProps): React.JSX.Element;
9
+ //# sourceMappingURL=NewOrderPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewOrderPage.d.ts","sourceRoot":"","sources":["../../src/views/NewOrderPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAWxE,OAAO,KAAK,EAC8C,YAAY,EACrE,MAAM,eAAe,CAAA;AAkGtB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,YAAY,CAAA;IAC5B,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,iBAAiB,qBAkc7E"}
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { ShopProvider } from '@fayz-ai/shop';
3
+ /** Shared with the orders table: one order vocabulary, not two. */
4
+ export declare const ORDER_STATUS_LABEL: Record<string, string>;
3
5
  export declare function OrderDetailView({ orderId, provider, onBack }: {
4
6
  orderId: string;
5
7
  provider: () => ShopProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"OrderDetailView.d.ts","sourceRoot":"","sources":["../../src/views/OrderDetailView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAOlD,OAAO,KAAK,EAAS,YAAY,EAAE,MAAM,eAAe,CAAA;AAsFxD,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;IAC7D,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,YAAY,CAAA;IAC5B,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB,qBA0NA;AAED,eAAO,MAAM,eAAe,GAAI,IAAI,MAAM,WAAyB,CAAA;AACnE,eAAO,MAAM,SAAS,GAAI,IAAI,MAAM,SAAyC,CAAA"}
1
+ {"version":3,"file":"OrderDetailView.d.ts","sourceRoot":"","sources":["../../src/views/OrderDetailView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAc/D,OAAO,KAAK,EAAS,YAAY,EAAE,MAAM,eAAe,CAAA;AA0DxD,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKrD,CAAA;AAoED,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;IAC7D,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,YAAY,CAAA;IAC5B,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB,qBA8WA;AAED,eAAO,MAAM,eAAe,GAAI,IAAI,MAAM,WAAyB,CAAA;AACnE,eAAO,MAAM,SAAS,GAAI,IAAI,MAAM,SAAyC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare function OrderPaymentDetail({ orderId }: {
3
+ orderId: string;
4
+ }): React.JSX.Element | null;
5
+ //# sourceMappingURL=OrderPaymentDetail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrderPaymentDetail.d.ts","sourceRoot":"","sources":["../../src/views/OrderPaymentDetail.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAsClD,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,4BA8ElE"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare function OrderProviderLinks({ orderId }: {
3
+ orderId: string;
4
+ }): React.JSX.Element | null;
5
+ //# sourceMappingURL=OrderProviderLinks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrderProviderLinks.d.ts","sourceRoot":"","sources":["../../src/views/OrderProviderLinks.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAsDlD,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,4BAqDlE"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import type { ShopProvider } from '@fayz-ai/shop';
3
+ /**
4
+ * Em que embalagem ESTE produto vai.
5
+ *
6
+ * A lista de embalagens da loja é a fonte (Configurações → Entrega →
7
+ * Embalagens); aqui o produto só aponta para uma linha dela. Foi a correção do
8
+ * founder sobre o Shopify: lá o produto se ASSOCIA a uma embalagem já
9
+ * cadastrada, em vez de repetir altura e largura no cadastro de cada item — o
10
+ * que ele escolhe não é uma medida, é o pacote em que a loja despacha.
11
+ *
12
+ * Vazio = «padrão da loja», que é um estado legítimo e o de toda loja no dia
13
+ * seguinte à 0046. Não é «não preenchido».
14
+ */
15
+ export declare function PackageSelect({ value, onChange, getProvider }: {
16
+ value: string | null;
17
+ onChange: (next: string | null) => void;
18
+ getProvider?: () => ShopProvider;
19
+ }): React.JSX.Element;
20
+ //# sourceMappingURL=PackageSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageSelect.d.ts","sourceRoot":"","sources":["../../src/views/PackageSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAA;AAWlE;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE;IAC9D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IACvC,WAAW,CAAC,EAAE,MAAM,YAAY,CAAA;CACjC,qBAwFA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProductImagesTab.d.ts","sourceRoot":"","sources":["../../src/views/ProductImagesTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAC1D,OAAO,KAAK,EAAyB,YAAY,EAAE,MAAM,eAAe,CAAA;AAExE;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;IACtD,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,MAAM,YAAY,CAAA;CAChC,qBAwIA"}
1
+ {"version":3,"file":"ProductImagesTab.d.ts","sourceRoot":"","sources":["../../src/views/ProductImagesTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAE1D,OAAO,KAAK,EAAyB,YAAY,EAAE,MAAM,eAAe,CAAA;AAExE;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;IACtD,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,MAAM,YAAY,CAAA;CAChC,qBAwIA"}
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import type { ShopProvider } from '@fayz-ai/shop';
3
+ /**
4
+ * Variantes — os eixos de opção e a matriz que eles geram.
5
+ *
6
+ * A tela que faltava. As tabelas existem desde a 0028, a vitrine monta o
7
+ * seletor a partir delas desde o M5 e o `shop_place_order` cobra por elas desde
8
+ * a 0029 — mas nenhuma tela do admin sabia criá-las. Na prática, ou o lojista
9
+ * chamava alguém com acesso ao banco, ou vendia P, M e G contra o mesmo
10
+ * contador, que é exatamente o defeito que o cabeçalho da 0028 descreve.
11
+ *
12
+ * DUAS COISAS AQUI NÃO SÃO ESCOLHA DE TELA, e é por isso que elas moram no
13
+ * @fayz-ai/shop e não neste arquivo:
14
+ *
15
+ * • A VARIANTE PADRÃO (0037). Todo produto tem uma, ela não aparece em lugar
16
+ * nenhum, e sumir com o último eixo tem que trazê-la de volta — senão o
17
+ * produto fica esgotado para sempre e ninguém vê erro. `applyVariantMatrix`
18
+ * é quem sabe disso.
19
+ * • O ESTOQUE. Desde a 0034 ele é razão, não coluna: quem digita 12 aqui não
20
+ * escreve 12 em lugar nenhum, gera o movimento da DIFERENÇA e deixa a 0036
21
+ * espelhar de volta. `setVariantStock` é quem sabe disso.
22
+ */
23
+ export declare function ProductVariantsTab({ item, getProvider }: {
24
+ item: unknown;
25
+ getProvider: () => ShopProvider;
26
+ }): React.JSX.Element;
27
+ /** '2,5' e '2.5' são a mesma medida — o lojista digita como o teclado dele manda. */
28
+ export declare function parseNumber(raw: string): number | null;
29
+ //# sourceMappingURL=ProductVariantsTab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductVariantsTab.d.ts","sourceRoot":"","sources":["../../src/views/ProductVariantsTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAA2B,YAAY,EAAsC,MAAM,eAAe,CAAA;AAO9G;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;IACxD,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,MAAM,YAAY,CAAA;CAChC,qBAuKA;AA0VD,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKtD"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import type { ShopProvider, StockLocation } from '@fayz-ai/shop';
3
+ /**
4
+ * The same row `shop-shipping-label` reads: active, dispatching online, default
5
+ * first. Resolved here too rather than passed in, so the screen showing the
6
+ * refusal and the function that produced it cannot disagree about which
7
+ * warehouse is wrong.
8
+ */
9
+ export declare function pickDispatchLocation(locations: StockLocation[], locationId?: string | null): StockLocation | null;
10
+ export interface SenderLocationModalProps {
11
+ open: boolean;
12
+ onClose: () => void;
13
+ /** Called after a save, so the caller can retry what the carrier refused. */
14
+ onSaved: () => void;
15
+ provider?: () => ShopProvider;
16
+ /** Which place. Defaults to the one the label function reads. */
17
+ locationId?: string | null;
18
+ }
19
+ export declare function SenderLocationModal({ open, onClose, onSaved, provider, locationId, }: SenderLocationModalProps): React.JSX.Element;
20
+ //# sourceMappingURL=SenderLocationModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SenderLocationModal.d.ts","sourceRoot":"","sources":["../../src/views/SenderLocationModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAWhE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,aAAa,EAAE,EAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GACzB,aAAa,GAAG,IAAI,CAStB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,YAAY,CAAA;IAC7B,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,GAC7C,EAAE,wBAAwB,qBA0B1B"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { ShopProvider } from '@fayz-ai/shop';
3
+ export interface ShipOrderFormProps {
4
+ orderId: string;
5
+ provider: () => ShopProvider;
6
+ /** Called after the shipment exists, so the page can re-read it. */
7
+ onShipped: () => void;
8
+ }
9
+ export declare function ShipOrderForm({ orderId, provider, onShipped }: ShipOrderFormProps): React.JSX.Element | null;
10
+ //# sourceMappingURL=ShipOrderForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShipOrderForm.d.ts","sourceRoot":"","sources":["../../src/views/ShipOrderForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAgBjD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,YAAY,CAAA;IAC5B,oEAAoE;IACpE,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB;AAED,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,kBAAkB,4BAsHjF"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import type { ShopProvider } from '@fayz-ai/shop';
3
+ export interface ShipWithCarrierProps {
4
+ orderId: string;
5
+ /**
6
+ * The app's shop provider. WHO carries the parcel is resolved from the
7
+ * registry, but reading the store's own dispatch location is ordinary data
8
+ * access — and the global runtime provider is not the app's, so without this
9
+ * the sender form found no locations in a store that has them.
10
+ */
11
+ provider?: () => ShopProvider;
12
+ /** The carrier the merchant chose, when they chose one. */
13
+ preferredCarrier?: string | null;
14
+ /** Called after the label exists, so the order can re-read its shipments. */
15
+ onShipped: () => void;
16
+ }
17
+ export declare function ShipWithCarrier({ orderId, provider, preferredCarrier, onShipped }: ShipWithCarrierProps): React.JSX.Element | null;
18
+ //# sourceMappingURL=ShipWithCarrier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShipWithCarrier.d.ts","sourceRoot":"","sources":["../../src/views/ShipWithCarrier.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAQxE,OAAO,KAAK,EAAsC,YAAY,EAAE,MAAM,eAAe,CAAA;AA2BrF,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,YAAY,CAAA;IAC7B,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,6EAA6E;IAC7E,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB;AAED,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,oBAAoB,4BAiTvG"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type { ShopProvider } from '@fayz-ai/shop';
3
+ export interface ShipmentActionsProps {
4
+ fulfillmentId: string;
5
+ status: string;
6
+ hasTracking: boolean;
7
+ provider: () => ShopProvider;
8
+ onChanged: () => void;
9
+ }
10
+ export declare function ShipmentActions({ fulfillmentId, status, hasTracking, provider, onChanged }: ShipmentActionsProps): React.JSX.Element | null;
11
+ //# sourceMappingURL=ShipmentActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShipmentActions.d.ts","sourceRoot":"","sources":["../../src/views/ShipmentActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAGvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAiBjD,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,MAAM,YAAY,CAAA;IAC5B,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB;AAED,wBAAgB,eAAe,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,oBAAoB,4BAkJhH"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { ShopProvider } from '@fayz-ai/shop';
3
+ /**
4
+ * Which zones this product ships through — it points at an existing profile, the
5
+ * way it points at a package. Empty is the general profile, a real state, which
6
+ * is why the empty option is named rather than blank.
7
+ */
8
+ export declare function ShippingProfileSelect({ value, onChange, getProvider }: {
9
+ value: string | null;
10
+ onChange: (next: string | null) => void;
11
+ getProvider?: () => ShopProvider;
12
+ }): React.JSX.Element;
13
+ //# sourceMappingURL=ShippingProfileSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShippingProfileSelect.d.ts","sourceRoot":"","sources":["../../src/views/ShippingProfileSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAA;AAMlE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE;IACtE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IACvC,WAAW,CAAC,EAAE,MAAM,YAAY,CAAA;CACjC,qBAkDA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ShopPage.d.ts","sourceRoot":"","sources":["../../src/views/ShopPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAQxE,OAAO,KAAK,EAA+D,YAAY,EAAE,MAAM,eAAe,CAAA;AAE9G,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,CAAA;AAEtE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,oBAAoB,CAAA;CAChC;AA4UD,QAAA,MAAM,IAAI;;;;;;;;;;;;EAKA,CAAA;AAEV,KAAK,KAAK,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;AAStC;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,GAAG;IAAE,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,CA2DlE,CAAA"}
1
+ {"version":3,"file":"ShopPage.d.ts","sourceRoot":"","sources":["../../src/views/ShopPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAYxE,OAAO,KAAK,EAA+D,YAAY,EAAE,MAAM,eAAe,CAAA;AAE9G,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,CAAA;AAEtE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,oBAAoB,CAAA;CAChC;AAmcD,QAAA,MAAM,IAAI;;;;;;;;;;;;EAKA,CAAA;AAEV,KAAK,KAAK,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;AAStC;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,GAAG;IAAE,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,CA+ElE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"customerEntity.d.ts","sourceRoot":"","sources":["../../src/views/customerEntity.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAmBjD,wBAAgB,uBAAuB,IAAI,SAAS,CAAC,YAAY,CAAC,CAwFjE"}
1
+ {"version":3,"file":"customerEntity.d.ts","sourceRoot":"","sources":["../../src/views/customerEntity.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAmBjD,wBAAgB,uBAAuB,IAAI,SAAS,CAAC,YAAY,CAAC,CAiGjE"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * The delivery estimate as a merchant says it: zero days is not a number of days,
3
+ * it is today, and "0–1 dias" hid the same-day offer from the person selling it.
4
+ */
5
+ export declare function etaLabel(min: number | null | undefined, max: number | null | undefined): string;
6
+ //# sourceMappingURL=eta-label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eta-label.d.ts","sourceRoot":"","sources":["../../src/views/eta-label.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAS/F"}
@@ -0,0 +1,12 @@
1
+ import type { MediaFile } from '@fayz-ai/shop';
2
+ /** A tela onde a foto é gerenciada — a aba de fotos do produto, não a lista. */
3
+ export declare function recordRoute(reference: NonNullable<MediaFile['reference']>): string;
4
+ /**
5
+ * O endereço que baixa o arquivo em vez de abri-lo.
6
+ *
7
+ * O storage devolve o arquivo como anexo quando pedimos; o atributo `download`
8
+ * do link sozinho é ignorado quando o arquivo vem de outro domínio — que é o
9
+ * caso de toda foto da loja.
10
+ */
11
+ export declare function downloadUrlOf(file: MediaFile): string;
12
+ //# sourceMappingURL=media-links.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-links.d.ts","sourceRoot":"","sources":["../../src/views/media-links.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAS9C,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,MAAM,CAElF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAIrD"}