@fayz-ai/plugin-automations 0.10.2 → 0.12.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,5 +1,14 @@
1
1
  import React from 'react';
2
+ import type { MessageAction, MessageActionId } from '@fayz-ai/core';
2
3
  import type { MessageTemplateStore } from '../data/templates';
4
+ /**
5
+ * A lista de botões depois de ligar ou desligar um deles.
6
+ *
7
+ * A ordem é a do catálogo e não a do clique: os botões chegam ao WhatsApp
8
+ * numerados, e reordená-los ao ligar o terceiro mudaria o que o segundo faz
9
+ * numa mensagem que a Meta já aprovou.
10
+ */
11
+ export declare function nextActions(current: MessageAction[], id: MessageActionId, on: boolean): MessageAction[];
3
12
  export interface AutomationDetailPageProps {
4
13
  eventKey?: string;
5
14
  channel?: string;
@@ -7,6 +16,22 @@ export interface AutomationDetailPageProps {
7
16
  /** Para onde o "voltar" leva — a lista pode morar no menu ou nas
8
17
  * configurações, e a pessoa tem que voltar por onde entrou. */
9
18
  backTo?: string;
19
+ /**
20
+ * Montada na coluna da direita, ao lado da lista, em vez de ser a tela.
21
+ *
22
+ * Some o cabeçalho próprio: quem nomeia a coluna e oferece a volta é o
23
+ * cabeçalho dela, e desenhar o nosso ali embaixo era o mesmo título duas
24
+ * vezes, com dois jeitos de sair.
25
+ */
26
+ embedded?: boolean;
27
+ /**
28
+ * Como sair, quando sair NÃO é navegar.
29
+ *
30
+ * Aberta pela coluna a partir de outra tela (o raio do CRM), a saída é fechar
31
+ * a coluna e continuar onde se estava — `backTo` levaria embora justamente a
32
+ * tela que se queria manter.
33
+ */
34
+ onDone?: () => void;
10
35
  }
11
- export declare function AutomationDetailPage({ eventKey, channel, store, backTo }: AutomationDetailPageProps): React.JSX.Element;
36
+ export declare function AutomationDetailPage({ eventKey, channel, store, backTo, embedded, onDone }: AutomationDetailPageProps): React.JSX.Element;
12
37
  //# sourceMappingURL=AutomationDetailPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutomationDetailPage.d.ts","sourceRoot":"","sources":["../../src/views/AutomationDetailPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAiD7D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,oBAAoB,CAAA;IAC3B;oEACgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAuB,EAAE,EAAE,yBAAyB,qBAyQpH"}
1
+ {"version":3,"file":"AutomationDetailPage.d.ts","sourceRoot":"","sources":["../../src/views/AutomationDetailPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAiD,MAAM,eAAe,CAAA;AAUlH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAwC7D;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,GACzD,aAAa,EAAE,CASjB;AAiKD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,oBAAoB,CAAA;IAC3B;oEACgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAuB,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,yBAAyB,qBA2gBtI"}
@@ -1,6 +1,26 @@
1
1
  import React from 'react';
2
2
  import type { MessageTemplateStore } from '../data/templates';
3
- export declare function AutomationsList({ store }: {
3
+ export declare function AutomationsList({ store, variant, basePath }: {
4
4
  store: MessageTemplateStore;
5
+ /**
6
+ * Onde esta lista mora, e portanto sob que caminho o detalhe abre.
7
+ *
8
+ * A lista pode estar no menu (`/automations`) ou dentro de Configurações
9
+ * (`/settings/automations`) — e o detalhe tem que abrir SOB ela, senão clicar
10
+ * numa linha dentro de Configurações jogava a pessoa para fora da tela em que
11
+ * ela estava.
12
+ */
13
+ basePath?: string;
14
+ /**
15
+ * Onde a lista está montada, e portanto que faixa de abas ela desenha.
16
+ *
17
+ * 'page' a tela é dela: a faixa é a sub-cabeça do módulo, sangra até as
18
+ * bordas e sua régua encontra a barra da shell.
19
+ * 'panel' ela é o conteúdo de uma aba de Configurações, onde a shell já
20
+ * escreveu "← Configurações / Automações". Aí vale a MESMA faixa dos
21
+ * outros painéis de configuração (Agenda, CRM, Formulários), que
22
+ * começa e termina onde o conteúdo começa e termina.
23
+ */
24
+ variant?: 'page' | 'panel';
5
25
  }): React.JSX.Element;
6
26
  //# sourceMappingURL=AutomationsList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutomationsList.d.ts","sourceRoot":"","sources":["../../src/views/AutomationsList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAwD7D,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,oBAAoB,CAAA;CAAE,qBA+JzE"}
1
+ {"version":3,"file":"AutomationsList.d.ts","sourceRoot":"","sources":["../../src/views/AutomationsList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAkDzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AA+F7D,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,OAAgB,EAAE,QAAyB,EAAE,EAAE;IACtF,KAAK,EAAE,oBAAoB,CAAA;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAC3B,qBAgUA"}
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import type { MessageChannel } from '@fayz-ai/core';
3
+ import { type ProviderTemplateRow } from '../data/provider-templates';
4
+ export type ProviderApproval = {
5
+ tone: 'ok';
6
+ label: string;
7
+ detail?: string;
8
+ } | {
9
+ tone: 'waiting';
10
+ label: string;
11
+ detail?: string;
12
+ } | {
13
+ tone: 'error';
14
+ label: string;
15
+ detail?: string;
16
+ };
17
+ /**
18
+ * O que a linha mostra para um (evento × canal).
19
+ *
20
+ * `null` = nada a dizer, e é o caso comum: canal sem aprovação, ou WhatsApp
21
+ * ainda não conectado (sem nenhuma linha, o assunto não existe para este
22
+ * negócio e uma pastilha vermelha seria um alarme sobre algo que ninguém pediu).
23
+ *
24
+ * A regra que decide o texto é a mesma do envio: sai pelo modelo do produto até
25
+ * o do tenant ser aprovado. Por isso um modelo do tenant recusado, com o do
26
+ * produto aprovado, é um AVISO e não uma falha — a mensagem continua saindo.
27
+ */
28
+ export declare function providerApprovalFor(rows: ProviderTemplateRow[], eventKey: string, channel: MessageChannel): ProviderApproval | null;
29
+ export declare function ProviderTemplateBadge({ approval, showDetail }: {
30
+ approval: ProviderApproval | null;
31
+ showDetail?: boolean;
32
+ }): React.JSX.Element | null;
33
+ /** Uma leitura por tela. Nunca lança: sem a tabela, a lista continua inteira. */
34
+ export declare function useProviderTemplates(): ProviderTemplateRow[];
35
+ //# sourceMappingURL=ProviderTemplateStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderTemplateStatus.d.ts","sourceRoot":"","sources":["../../src/views/ProviderTemplateStatus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAA;AAenC,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAErD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,mBAAmB,EAAE,EAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,GACtB,gBAAgB,GAAG,IAAI,CAsCzB;AAQD,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE;IAC9D,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAA;IACjC,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,4BAcA;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,IAAI,mBAAmB,EAAE,CAQ5D"}
@@ -0,0 +1,2 @@
1
+ export declare const WHATSAPP_PREVIEW_BG = "https://assets.fayz.ai/connectors/whatsapp-background.jpg";
2
+ //# sourceMappingURL=whatsapp-preview-bg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp-preview-bg.d.ts","sourceRoot":"","sources":["../../src/views/whatsapp-preview-bg.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,8DAA8D,CAAA"}
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@fayz-ai/plugin-automations",
3
3
  "fayz": {
4
- "status": "preview"
4
+ "status": "preview",
5
+ "dependencies": []
5
6
  },
6
- "version": "0.10.2",
7
+ "version": "0.12.0",
7
8
  "description": "[experimental] Fayz SDK — workflows & automations plugin",
8
9
  "type": "module",
9
10
  "sideEffects": false,
@@ -25,10 +26,10 @@
25
26
  "lucide-react": ">=0.400.0 <1.0.0"
26
27
  },
27
28
  "dependencies": {
28
- "@fayz-ai/core": "^0.14.0",
29
- "@fayz-ai/admin": "^0.14.0",
30
- "@fayz-ai/sdk": "^0.12.0",
31
- "@fayz-ai/ui": "^0.14.0"
29
+ "@fayz-ai/core": "^0.16.0",
30
+ "@fayz-ai/admin": "^0.16.0",
31
+ "@fayz-ai/sdk": "^0.15.0",
32
+ "@fayz-ai/ui": "^0.16.0"
32
33
  },
33
34
  "devDependencies": {
34
35
  "@types/react": "^18.3.0",