@iann29/rastro 0.9.0 → 0.10.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.
Files changed (265) hide show
  1. package/README.md +9 -1
  2. package/agent/integration.md +23 -1
  3. package/agent/manifest.json +4 -4
  4. package/dist/client/federation.d.ts +114 -9
  5. package/dist/client/federation.d.ts.map +1 -1
  6. package/dist/client/federation.js +54 -2
  7. package/dist/client/federation.js.map +1 -1
  8. package/dist/client/index.d.ts +642 -8
  9. package/dist/client/index.d.ts.map +1 -1
  10. package/dist/client/index.js +391 -9
  11. package/dist/client/index.js.map +1 -1
  12. package/dist/component/_generated/api.d.ts +14 -0
  13. package/dist/component/_generated/api.d.ts.map +1 -1
  14. package/dist/component/_generated/api.js.map +1 -1
  15. package/dist/component/_generated/component.d.ts +278 -1
  16. package/dist/component/_generated/component.d.ts.map +1 -1
  17. package/dist/component/_generated/server.d.ts +4 -0
  18. package/dist/component/_generated/server.d.ts.map +1 -1
  19. package/dist/component/_generated/server.js.map +1 -1
  20. package/dist/component/constants.d.ts +5 -0
  21. package/dist/component/constants.d.ts.map +1 -1
  22. package/dist/component/constants.js +10 -0
  23. package/dist/component/constants.js.map +1 -1
  24. package/dist/component/convex.config.d.ts +4 -0
  25. package/dist/component/convex.config.js +9 -0
  26. package/dist/component/convex.config.js.map +1 -1
  27. package/dist/component/errors.d.ts +1 -1
  28. package/dist/component/errors.d.ts.map +1 -1
  29. package/dist/component/errors.js.map +1 -1
  30. package/dist/component/leads.d.ts +69 -3
  31. package/dist/component/leads.d.ts.map +1 -1
  32. package/dist/component/leads.js +419 -16
  33. package/dist/component/leads.js.map +1 -1
  34. package/dist/component/meta.d.ts +358 -0
  35. package/dist/component/meta.d.ts.map +1 -0
  36. package/dist/component/meta.js +1295 -0
  37. package/dist/component/meta.js.map +1 -0
  38. package/dist/component/metaCapi.d.ts +162 -0
  39. package/dist/component/metaCapi.d.ts.map +1 -0
  40. package/dist/component/metaCapi.js +754 -0
  41. package/dist/component/metaCapi.js.map +1 -0
  42. package/dist/component/metaFake.d.ts +5 -0
  43. package/dist/component/metaFake.d.ts.map +1 -0
  44. package/dist/component/metaFake.js +225 -0
  45. package/dist/component/metaFake.js.map +1 -0
  46. package/dist/component/metaGraph.d.ts +165 -0
  47. package/dist/component/metaGraph.d.ts.map +1 -0
  48. package/dist/component/metaGraph.js +507 -0
  49. package/dist/component/metaGraph.js.map +1 -0
  50. package/dist/component/metaSync.d.ts +186 -0
  51. package/dist/component/metaSync.d.ts.map +1 -0
  52. package/dist/component/metaSync.js +961 -0
  53. package/dist/component/metaSync.js.map +1 -0
  54. package/dist/component/pipeline.d.ts +99 -0
  55. package/dist/component/pipeline.d.ts.map +1 -0
  56. package/dist/component/pipeline.js +337 -0
  57. package/dist/component/pipeline.js.map +1 -0
  58. package/dist/component/schema.d.ts +404 -2
  59. package/dist/component/schema.d.ts.map +1 -1
  60. package/dist/component/schema.js +168 -2
  61. package/dist/component/schema.js.map +1 -1
  62. package/dist/component/secrets.d.ts +15 -0
  63. package/dist/component/secrets.d.ts.map +1 -0
  64. package/dist/component/secrets.js +67 -0
  65. package/dist/component/secrets.js.map +1 -0
  66. package/dist/component/validators.d.ts +1052 -15
  67. package/dist/component/validators.d.ts.map +1 -1
  68. package/dist/component/validators.js +307 -3
  69. package/dist/component/validators.js.map +1 -1
  70. package/dist/tracker/generated.d.ts +1 -1
  71. package/dist/tracker/generated.d.ts.map +1 -1
  72. package/dist/tracker/generated.js +1 -1
  73. package/dist/tracker/generated.js.map +1 -1
  74. package/dist/ui/campaigns/CampaignsView.d.ts +48 -0
  75. package/dist/ui/campaigns/CampaignsView.d.ts.map +1 -0
  76. package/dist/ui/campaigns/CampaignsView.js +47 -0
  77. package/dist/ui/campaigns/CampaignsView.js.map +1 -0
  78. package/dist/ui/campaigns/Conversions.d.ts +16 -0
  79. package/dist/ui/campaigns/Conversions.d.ts.map +1 -0
  80. package/dist/ui/campaigns/Conversions.js +40 -0
  81. package/dist/ui/campaigns/Conversions.js.map +1 -0
  82. package/dist/ui/campaigns/Drawer.d.ts +24 -0
  83. package/dist/ui/campaigns/Drawer.d.ts.map +1 -0
  84. package/dist/ui/campaigns/Drawer.js +120 -0
  85. package/dist/ui/campaigns/Drawer.js.map +1 -0
  86. package/dist/ui/campaigns/Icons.d.ts +35 -0
  87. package/dist/ui/campaigns/Icons.d.ts.map +1 -0
  88. package/dist/ui/campaigns/Icons.js +41 -0
  89. package/dist/ui/campaigns/Icons.js.map +1 -0
  90. package/dist/ui/campaigns/Summary.d.ts +21 -0
  91. package/dist/ui/campaigns/Summary.d.ts.map +1 -0
  92. package/dist/ui/campaigns/Summary.js +56 -0
  93. package/dist/ui/campaigns/Summary.js.map +1 -0
  94. package/dist/ui/campaigns/Thumbnail.d.ts +11 -0
  95. package/dist/ui/campaigns/Thumbnail.d.ts.map +1 -0
  96. package/dist/ui/campaigns/Thumbnail.js +23 -0
  97. package/dist/ui/campaigns/Thumbnail.js.map +1 -0
  98. package/dist/ui/campaigns/Tree.d.ts +12 -0
  99. package/dist/ui/campaigns/Tree.d.ts.map +1 -0
  100. package/dist/ui/campaigns/Tree.js +105 -0
  101. package/dist/ui/campaigns/Tree.js.map +1 -0
  102. package/dist/ui/campaigns/glyphs.d.ts +20 -0
  103. package/dist/ui/campaigns/glyphs.d.ts.map +1 -0
  104. package/dist/ui/campaigns/glyphs.js +19 -0
  105. package/dist/ui/campaigns/glyphs.js.map +1 -0
  106. package/dist/ui/campaigns/index.d.ts +4 -0
  107. package/dist/ui/campaigns/index.d.ts.map +1 -0
  108. package/dist/ui/campaigns/index.js +3 -0
  109. package/dist/ui/campaigns/index.js.map +1 -0
  110. package/dist/ui/campaigns/labels.d.ts +53 -0
  111. package/dist/ui/campaigns/labels.d.ts.map +1 -0
  112. package/dist/ui/campaigns/labels.js +169 -0
  113. package/dist/ui/campaigns/labels.js.map +1 -0
  114. package/dist/ui/campaigns/model.d.ts +99 -0
  115. package/dist/ui/campaigns/model.d.ts.map +1 -0
  116. package/dist/ui/campaigns/model.js +230 -0
  117. package/dist/ui/campaigns/model.js.map +1 -0
  118. package/dist/ui/campaigns/modes.d.ts +18 -0
  119. package/dist/ui/campaigns/modes.d.ts.map +1 -0
  120. package/dist/ui/campaigns/modes.js +7 -0
  121. package/dist/ui/campaigns/modes.js.map +1 -0
  122. package/dist/ui/index.d.ts +21 -0
  123. package/dist/ui/index.d.ts.map +1 -0
  124. package/dist/ui/index.js +20 -0
  125. package/dist/ui/index.js.map +1 -0
  126. package/dist/ui/integrations/AccountPicker.d.ts +26 -0
  127. package/dist/ui/integrations/AccountPicker.d.ts.map +1 -0
  128. package/dist/ui/integrations/AccountPicker.js +101 -0
  129. package/dist/ui/integrations/AccountPicker.js.map +1 -0
  130. package/dist/ui/integrations/ClientCards.d.ts +17 -0
  131. package/dist/ui/integrations/ClientCards.d.ts.map +1 -0
  132. package/dist/ui/integrations/ClientCards.js +42 -0
  133. package/dist/ui/integrations/ClientCards.js.map +1 -0
  134. package/dist/ui/integrations/ClientsTable.d.ts +36 -0
  135. package/dist/ui/integrations/ClientsTable.d.ts.map +1 -0
  136. package/dist/ui/integrations/ClientsTable.js +143 -0
  137. package/dist/ui/integrations/ClientsTable.js.map +1 -0
  138. package/dist/ui/integrations/Connect.d.ts +35 -0
  139. package/dist/ui/integrations/Connect.d.ts.map +1 -0
  140. package/dist/ui/integrations/Connect.js +62 -0
  141. package/dist/ui/integrations/Connect.js.map +1 -0
  142. package/dist/ui/integrations/Connection.d.ts +37 -0
  143. package/dist/ui/integrations/Connection.d.ts.map +1 -0
  144. package/dist/ui/integrations/Connection.js +108 -0
  145. package/dist/ui/integrations/Connection.js.map +1 -0
  146. package/dist/ui/integrations/Dialogs.d.ts +21 -0
  147. package/dist/ui/integrations/Dialogs.d.ts.map +1 -0
  148. package/dist/ui/integrations/Dialogs.js +34 -0
  149. package/dist/ui/integrations/Dialogs.js.map +1 -0
  150. package/dist/ui/integrations/EventsFeed.d.ts +15 -0
  151. package/dist/ui/integrations/EventsFeed.d.ts.map +1 -0
  152. package/dist/ui/integrations/EventsFeed.js +61 -0
  153. package/dist/ui/integrations/EventsFeed.js.map +1 -0
  154. package/dist/ui/integrations/EventsSheet.d.ts +34 -0
  155. package/dist/ui/integrations/EventsSheet.d.ts.map +1 -0
  156. package/dist/ui/integrations/EventsSheet.js +136 -0
  157. package/dist/ui/integrations/EventsSheet.js.map +1 -0
  158. package/dist/ui/integrations/Icons.d.ts +38 -0
  159. package/dist/ui/integrations/Icons.d.ts.map +1 -0
  160. package/dist/ui/integrations/Icons.js +40 -0
  161. package/dist/ui/integrations/Icons.js.map +1 -0
  162. package/dist/ui/integrations/IntegrationsView.d.ts +15 -0
  163. package/dist/ui/integrations/IntegrationsView.d.ts.map +1 -0
  164. package/dist/ui/integrations/IntegrationsView.js +141 -0
  165. package/dist/ui/integrations/IntegrationsView.js.map +1 -0
  166. package/dist/ui/integrations/Overlay.d.ts +18 -0
  167. package/dist/ui/integrations/Overlay.d.ts.map +1 -0
  168. package/dist/ui/integrations/Overlay.js +36 -0
  169. package/dist/ui/integrations/Overlay.js.map +1 -0
  170. package/dist/ui/integrations/Partner.d.ts +14 -0
  171. package/dist/ui/integrations/Partner.d.ts.map +1 -0
  172. package/dist/ui/integrations/Partner.js +38 -0
  173. package/dist/ui/integrations/Partner.js.map +1 -0
  174. package/dist/ui/integrations/RowMenu.d.ts +15 -0
  175. package/dist/ui/integrations/RowMenu.d.ts.map +1 -0
  176. package/dist/ui/integrations/RowMenu.js +47 -0
  177. package/dist/ui/integrations/RowMenu.js.map +1 -0
  178. package/dist/ui/integrations/UnlinkDialog.d.ts +18 -0
  179. package/dist/ui/integrations/UnlinkDialog.d.ts.map +1 -0
  180. package/dist/ui/integrations/UnlinkDialog.js +29 -0
  181. package/dist/ui/integrations/UnlinkDialog.js.map +1 -0
  182. package/dist/ui/integrations/audience.d.ts +12 -0
  183. package/dist/ui/integrations/audience.d.ts.map +1 -0
  184. package/dist/ui/integrations/audience.js +12 -0
  185. package/dist/ui/integrations/audience.js.map +1 -0
  186. package/dist/ui/integrations/format.d.ts +28 -0
  187. package/dist/ui/integrations/format.d.ts.map +1 -0
  188. package/dist/ui/integrations/format.js +101 -0
  189. package/dist/ui/integrations/format.js.map +1 -0
  190. package/dist/ui/integrations/index.d.ts +5 -0
  191. package/dist/ui/integrations/index.d.ts.map +1 -0
  192. package/dist/ui/integrations/index.js +3 -0
  193. package/dist/ui/integrations/index.js.map +1 -0
  194. package/dist/ui/integrations/modal.d.ts +10 -0
  195. package/dist/ui/integrations/modal.d.ts.map +1 -0
  196. package/dist/ui/integrations/modal.js +77 -0
  197. package/dist/ui/integrations/modal.js.map +1 -0
  198. package/dist/ui/integrations/model.d.ts +99 -0
  199. package/dist/ui/integrations/model.d.ts.map +1 -0
  200. package/dist/ui/integrations/model.js +164 -0
  201. package/dist/ui/integrations/model.js.map +1 -0
  202. package/dist/ui/integrations/parts.d.ts +36 -0
  203. package/dist/ui/integrations/parts.d.ts.map +1 -0
  204. package/dist/ui/integrations/parts.js +85 -0
  205. package/dist/ui/integrations/parts.js.map +1 -0
  206. package/dist/ui/integrations/types.d.ts +146 -0
  207. package/dist/ui/integrations/types.d.ts.map +1 -0
  208. package/dist/ui/integrations/types.js +2 -0
  209. package/dist/ui/integrations/types.js.map +1 -0
  210. package/dist/ui/metrics.d.ts +106 -0
  211. package/dist/ui/metrics.d.ts.map +1 -0
  212. package/dist/ui/metrics.js +166 -0
  213. package/dist/ui/metrics.js.map +1 -0
  214. package/dist/ui/portfolio/PortfolioView.d.ts +26 -0
  215. package/dist/ui/portfolio/PortfolioView.d.ts.map +1 -0
  216. package/dist/ui/portfolio/PortfolioView.js +216 -0
  217. package/dist/ui/portfolio/PortfolioView.js.map +1 -0
  218. package/dist/ui/portfolio/SpendChart.d.ts +10 -0
  219. package/dist/ui/portfolio/SpendChart.d.ts.map +1 -0
  220. package/dist/ui/portfolio/SpendChart.js +196 -0
  221. package/dist/ui/portfolio/SpendChart.js.map +1 -0
  222. package/dist/ui/portfolio/alerts.d.ts +74 -0
  223. package/dist/ui/portfolio/alerts.d.ts.map +1 -0
  224. package/dist/ui/portfolio/alerts.js +291 -0
  225. package/dist/ui/portfolio/alerts.js.map +1 -0
  226. package/dist/ui/portfolio/figures.d.ts +79 -0
  227. package/dist/ui/portfolio/figures.d.ts.map +1 -0
  228. package/dist/ui/portfolio/figures.js +103 -0
  229. package/dist/ui/portfolio/figures.js.map +1 -0
  230. package/dist/ui/portfolio/format.d.ts +8 -0
  231. package/dist/ui/portfolio/format.d.ts.map +1 -0
  232. package/dist/ui/portfolio/format.js +28 -0
  233. package/dist/ui/portfolio/format.js.map +1 -0
  234. package/dist/ui/sample.d.ts +536 -0
  235. package/dist/ui/sample.d.ts.map +1 -0
  236. package/dist/ui/sample.js +574 -0
  237. package/dist/ui/sample.js.map +1 -0
  238. package/dist/ui/seed.d.ts +188 -0
  239. package/dist/ui/seed.d.ts.map +1 -0
  240. package/dist/ui/seed.js +563 -0
  241. package/dist/ui/seed.js.map +1 -0
  242. package/dist/ui/ui.css +3424 -0
  243. package/docs/federation.md +46 -1
  244. package/docs/meta-ads.md +795 -0
  245. package/docs/upgrading.md +116 -0
  246. package/llms.txt +3 -0
  247. package/package.json +15 -3
  248. package/src/component/_generated/api.ts +14 -0
  249. package/src/component/_generated/component.ts +324 -1
  250. package/src/component/_generated/server.ts +4 -0
  251. package/src/component/constants.ts +10 -0
  252. package/src/component/convex.config.ts +9 -0
  253. package/src/component/errors.ts +5 -1
  254. package/src/component/leads.ts +517 -17
  255. package/src/component/meta.ts +1525 -0
  256. package/src/component/metaCapi.ts +921 -0
  257. package/src/component/metaFake.ts +277 -0
  258. package/src/component/metaGraph.ts +722 -0
  259. package/src/component/metaSync.ts +1164 -0
  260. package/src/component/pipeline.ts +410 -0
  261. package/src/component/schema.ts +197 -1
  262. package/src/component/secrets.ts +98 -0
  263. package/src/component/validators.ts +376 -3
  264. package/src/tracker/generated.ts +1 -1
  265. package/src/ui/seed.ts +755 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntegrationsView.js","sourceRoot":"","sources":["../../../src/ui/integrations/IntegrationsView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type ReactNode, type RefObject } from "react";
2
+ /**
3
+ * A modal layer on a native `<dialog>`: `showModal()` puts it in the top
4
+ * layer, above a host whose ancestors transform or contain (where `position:
5
+ * fixed` would be trapped), and makes the page behind it inert. It stays in
6
+ * the DOM where it is rendered, so it inherits the host's `--rastro-*` theme.
7
+ */
8
+ export declare function Overlay({ role, labelledBy, describedBy, side, initialFocus, onClose, children, }: {
9
+ role?: "dialog" | "alertdialog";
10
+ labelledBy: string;
11
+ describedBy?: string;
12
+ /** A sheet on the right instead of a centered dialog. */
13
+ side?: boolean;
14
+ initialFocus?: RefObject<HTMLElement | null>;
15
+ onClose: () => void;
16
+ children: ReactNode;
17
+ }): import("react").JSX.Element;
18
+ //# sourceMappingURL=Overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Overlay.d.ts","sourceRoot":"","sources":["../../../src/ui/integrations/Overlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG1E;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EACtB,IAAe,EACf,UAAU,EACV,WAAW,EACX,IAAY,EACZ,YAAY,EACZ,OAAO,EACP,QAAQ,GACT,EAAE;IACD,IAAI,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAiCA"}
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useRef } from "react";
3
+ import { useModal } from "./modal.js";
4
+ /**
5
+ * A modal layer on a native `<dialog>`: `showModal()` puts it in the top
6
+ * layer, above a host whose ancestors transform or contain (where `position:
7
+ * fixed` would be trapped), and makes the page behind it inert. It stays in
8
+ * the DOM where it is rendered, so it inherits the host's `--rastro-*` theme.
9
+ */
10
+ export function Overlay({ role = "dialog", labelledBy, describedBy, side = false, initialFocus, onClose, children, }) {
11
+ const ref = useRef(null);
12
+ useEffect(() => {
13
+ const dialog = ref.current;
14
+ if (!dialog || dialog.open)
15
+ return;
16
+ // jsdom and old engines lack showModal: an open dialog still renders.
17
+ if (typeof dialog.showModal === "function")
18
+ dialog.showModal();
19
+ else
20
+ dialog.setAttribute("open", "");
21
+ // Closing first lifts the page's inertness, so the opener can take focus
22
+ // back (useModal's cleanup runs right after this one).
23
+ return () => {
24
+ if (typeof dialog.close === "function")
25
+ dialog.close();
26
+ };
27
+ }, []);
28
+ useModal(ref, onClose, initialFocus);
29
+ return (_jsx("dialog", { ref: ref, className: "rastro-integrations__scrim", "data-side": side ? "" : undefined, role: role === "alertdialog" ? "alertdialog" : undefined, "aria-modal": "true", "aria-labelledby": labelledBy, "aria-describedby": describedBy,
30
+ // Esc is handled by useModal so React state stays the source of truth.
31
+ onCancel: (event) => event.preventDefault(), onClick: (event) => {
32
+ if (event.target === event.currentTarget)
33
+ onClose();
34
+ }, children: children }));
35
+ }
36
+ //# sourceMappingURL=Overlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Overlay.js","sourceRoot":"","sources":["../../../src/ui/integrations/Overlay.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAkC,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,EACtB,IAAI,GAAG,QAAQ,EACf,UAAU,EACV,WAAW,EACX,IAAI,GAAG,KAAK,EACZ,YAAY,EACZ,OAAO,EACP,QAAQ,GAUT;IACC,MAAM,GAAG,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAC5C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI;YAAE,OAAO;QACnC,sEAAsE;QACtE,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU;YAAE,MAAM,CAAC,SAAS,EAAE,CAAC;;YAC1D,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrC,yEAAyE;QACzE,uDAAuD;QACvD,OAAO,GAAG,EAAE;YACV,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU;gBAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACzD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IACrC,OAAO,CACL,iBACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,4BAA4B,eAC3B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAChC,IAAI,EAAE,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,gBAC7C,MAAM,qBACA,UAAU,sBACT,WAAW;QAC7B,uEAAuE;QACvE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAC3C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa;gBAAE,OAAO,EAAE,CAAC;QACtD,CAAC,YAEA,QAAQ,GACF,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { ClientRow } from "./model.js";
2
+ import type { IntegrationsPartner } from "./types.js";
3
+ /**
4
+ * B2, top: the partner (an agency) who runs the company's Meta, what they
5
+ * linked, and the company's own lever: "Deixar Gio ver as campanhas".
6
+ */
7
+ export declare function PartnerCard({ partner, row, companyName, boardLabel, permitted, }: {
8
+ partner: IntegrationsPartner;
9
+ row: ClientRow | undefined;
10
+ companyName: string;
11
+ boardLabel: string;
12
+ permitted: boolean;
13
+ }): import("react").JSX.Element;
14
+ //# sourceMappingURL=Partner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Partner.d.ts","sourceRoot":"","sources":["../../../src/ui/integrations/Partner.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAYtD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,GAAG,EACH,WAAW,EACX,UAAU,EACV,SAAS,GACV,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,GAAG,EAAE,SAAS,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB,+BA0DA"}
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId } from "react";
3
+ import { Icon } from "./Icons.js";
4
+ /** "a conta de anúncio e o pixel", what the partner linked for the company. */
5
+ function linkedByPartner(row) {
6
+ const account = Boolean(row?.accountOwner);
7
+ const pixel = Boolean(row?.pixel?.owner);
8
+ if (account && pixel)
9
+ return "a conta de anúncio e o pixel";
10
+ if (account)
11
+ return "a conta de anúncio";
12
+ if (pixel)
13
+ return "o pixel";
14
+ return null;
15
+ }
16
+ /**
17
+ * B2, top: the partner (an agency) who runs the company's Meta, what they
18
+ * linked, and the company's own lever: "Deixar Gio ver as campanhas".
19
+ */
20
+ export function PartnerCard({ partner, row, companyName, boardLabel, permitted, }) {
21
+ const id = useId();
22
+ const { name } = partner;
23
+ // Unchecked, what the partner linked is on its way out: not "cuida".
24
+ const linked = partner.allowed ? linkedByPartner(row) : null;
25
+ const events = row?.pixel?.owner
26
+ ? ` e escolheu quais colunas do ${boardLabel} avisam a Meta`
27
+ : "";
28
+ return (_jsxs("section", { className: "rastro-integrations__card rastro-integrations__partner", "aria-labelledby": `${id}-title`, children: [_jsx("span", { className: "rastro-integrations__tile", "data-tone": "partner", children: _jsx(Icon, { name: "partner", size: 20 }) }), _jsxs("div", { className: "rastro-integrations__grow", children: [_jsx("p", { className: "rastro-integrations__eyebrow", children: "Parceiro" }), _jsx("h3", { id: `${id}-title`, className: "rastro-integrations__title", children: linked
29
+ ? `O parceiro ${name} cuida dos seus anúncios na Meta`
30
+ : `O parceiro ${name} pode cuidar dos seus anúncios na Meta` }), _jsx("p", { className: "rastro-integrations__desc", children: linked
31
+ ? `Ele ligou ${linked} da ${companyName}${events}. Você vê tudo aqui; mudar é com ele.`
32
+ : partner.allowed
33
+ ? `Ele pode ligar a conta de anúncio e o pixel da ${companyName} e escolher quais colunas do ${boardLabel} avisam a Meta.`
34
+ : `Com a caixinha marcada, ele vê o gasto e as vendas dos anúncios e liga a conta de anúncio e o pixel da ${companyName}.` })] }), partner.onAllowedChange && (_jsxs("label", { className: "rastro-integrations__consent", children: [_jsxs("span", { className: "rastro-integrations__check", children: [_jsx("input", { type: "checkbox", checked: partner.allowed, disabled: !permitted || partner.busy, "aria-label": `Deixar ${name} ver as campanhas`, "aria-describedby": `${id}-consent`, onChange: (event) => partner.onAllowedChange?.(event.target.checked) }), _jsx(Icon, { name: "check", size: 12 })] }), _jsxs("span", { className: "rastro-integrations__grow", children: [_jsxs("strong", { children: ["Deixar ", name, " ver as campanhas"] }), _jsx("span", { id: `${id}-consent`, className: "rastro-integrations__meta", children: partner.allowed
35
+ ? "Desmarcar tira a conta e o pixel que ele ligou."
36
+ : "Marcar deixa ele ver o gasto e as vendas e ligar a sua Meta." })] })] }))] }));
37
+ }
38
+ //# sourceMappingURL=Partner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Partner.js","sourceRoot":"","sources":["../../../src/ui/integrations/Partner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIlC,+EAA+E;AAC/E,SAAS,eAAe,CAAC,GAA0B;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,OAAO,IAAI,KAAK;QAAE,OAAO,8BAA8B,CAAC;IAC5D,IAAI,OAAO;QAAE,OAAO,oBAAoB,CAAC;IACzC,IAAI,KAAK;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,OAAO,EACP,GAAG,EACH,WAAW,EACX,UAAU,EACV,SAAS,GAOV;IACC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzB,qEAAqE;IACrE,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,MAAM,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK;QAC9B,CAAC,CAAC,gCAAgC,UAAU,gBAAgB;QAC5D,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,CACL,mBACE,SAAS,EAAC,wDAAwD,qBACjD,GAAG,EAAE,QAAQ,aAE9B,eAAM,SAAS,EAAC,2BAA2B,eAAW,SAAS,YAC7D,KAAC,IAAI,IAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAE,EAAE,GAAI,GAC5B,EACP,eAAK,SAAS,EAAC,2BAA2B,aACxC,YAAG,SAAS,EAAC,8BAA8B,yBAAa,EACxD,aAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAC,4BAA4B,YAC1D,MAAM;4BACL,CAAC,CAAC,cAAc,IAAI,kCAAkC;4BACtD,CAAC,CAAC,cAAc,IAAI,wCAAwC,GAC3D,EACL,YAAG,SAAS,EAAC,2BAA2B,YACrC,MAAM;4BACL,CAAC,CAAC,aAAa,MAAM,OAAO,WAAW,GAAG,MAAM,uCAAuC;4BACvF,CAAC,CAAC,OAAO,CAAC,OAAO;gCACf,CAAC,CAAC,kDAAkD,WAAW,gCAAgC,UAAU,iBAAiB;gCAC1H,CAAC,CAAC,0GAA0G,WAAW,GAAG,GAC5H,IACA,EACL,OAAO,CAAC,eAAe,IAAI,CAC1B,iBAAO,SAAS,EAAC,8BAA8B,aAC7C,gBAAM,SAAS,EAAC,4BAA4B,aAC1C,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,QAAQ,EAAE,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,gBACxB,UAAU,IAAI,mBAAmB,sBAC3B,GAAG,EAAE,UAAU,EACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,OAAO,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAEjD,EACF,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,IAC1B,EACP,gBAAM,SAAS,EAAC,2BAA2B,aACzC,wCAAgB,IAAI,yBAA2B,EAC/C,eAAM,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAC,2BAA2B,YAC7D,OAAO,CAAC,OAAO;oCACd,CAAC,CAAC,iDAAiD;oCACnD,CAAC,CAAC,8DAA8D,GAC7D,IACF,IACD,CACT,IACO,CACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type ReactNode } from "react";
2
+ export interface MenuItem {
3
+ label: string;
4
+ onSelect: () => void;
5
+ tone?: "danger";
6
+ disabled?: boolean;
7
+ }
8
+ /** The row's "⋯": the client's other actions, reachable by keyboard. */
9
+ export declare function RowMenu({ label, items, trigger: triggerContent, }: {
10
+ label: string;
11
+ items: readonly MenuItem[];
12
+ /** A visible trigger ("+ Ligar pixel"); the "⋯" icon without it. */
13
+ trigger?: ReactNode;
14
+ }): import("react").JSX.Element | null;
15
+ //# sourceMappingURL=RowMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RowMenu.d.ts","sourceRoot":"","sources":["../../../src/ui/integrations/RowMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wEAAwE;AACxE,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,KAAK,EACL,OAAO,EAAE,cAAc,GACxB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC3B,oEAAoE;IACpE,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,sCA+EA"}
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useId, useRef, useState, } from "react";
3
+ import { Icon } from "./Icons.js";
4
+ import { useDismiss } from "./modal.js";
5
+ /** The row's "⋯": the client's other actions, reachable by keyboard. */
6
+ export function RowMenu({ label, items, trigger: triggerContent, }) {
7
+ const id = useId();
8
+ const [open, setOpen] = useState(false);
9
+ const trigger = useRef(null);
10
+ const menu = useRef(null);
11
+ useDismiss(open, [trigger, menu], () => setOpen(false));
12
+ useEffect(() => {
13
+ if (open)
14
+ menu.current
15
+ ?.querySelector("button:not([disabled])")
16
+ ?.focus();
17
+ }, [open]);
18
+ const onKeyDown = (event) => {
19
+ const buttons = [
20
+ ...(menu.current?.querySelectorAll("button:not([disabled])") ?? []),
21
+ ];
22
+ const at = buttons.indexOf(document.activeElement);
23
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
24
+ event.preventDefault();
25
+ const step = event.key === "ArrowDown" ? 1 : -1;
26
+ buttons[(at + step + buttons.length) % buttons.length]?.focus();
27
+ }
28
+ else if (event.key === "Escape") {
29
+ setOpen(false);
30
+ trigger.current?.focus();
31
+ }
32
+ else if (event.key === "Tab") {
33
+ setOpen(false);
34
+ }
35
+ };
36
+ if (items.length === 0)
37
+ return null;
38
+ return (_jsxs("div", { className: "rastro-integrations__menu-wrap", children: [_jsx("button", { ref: trigger, type: "button", className: triggerContent
39
+ ? "rastro-integrations__link rastro-integrations__meta"
40
+ : "rastro-integrations__icon-btn", "aria-label": triggerContent ? undefined : label, "aria-haspopup": "menu", "aria-expanded": open, "aria-controls": open ? id : undefined, onClick: () => setOpen((value) => !value), children: triggerContent ?? _jsx(Icon, { name: "dots" }) }), open && (_jsx("div", { ref: menu, id: id, role: "menu", "aria-label": label, className: "rastro-integrations__card rastro-integrations__menu", onKeyDown: onKeyDown, children: items.map((item) => (_jsx("button", { type: "button", role: "menuitem", "data-tone": item.tone, disabled: item.disabled, onClick: () => {
41
+ setOpen(false);
42
+ // A dialog the item opens returns focus here when it closes.
43
+ trigger.current?.focus();
44
+ item.onSelect();
45
+ }, children: item.label }, item.label))) }))] }));
46
+ }
47
+ //# sourceMappingURL=RowMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RowMenu.js","sourceRoot":"","sources":["../../../src/ui/integrations/RowMenu.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ClientRow } from "./model.js";
2
+ import type { MetaConnection, UnlinkPreview } from "./types.js";
3
+ /**
4
+ * B6: unlinking erases the account's spend from the client, so the dialog
5
+ * says how much, offers a replacement, and asks for the client's name typed.
6
+ */
7
+ export declare function UnlinkDialog({ row, accounts, preview, permitted, busy, onRequestPreview, onConfirm, onClose, }: {
8
+ row: ClientRow;
9
+ accounts: MetaConnection["adAccounts"];
10
+ /** undefined while it loads, null when the host cannot say. */
11
+ preview: UnlinkPreview | null | undefined;
12
+ permitted: boolean;
13
+ busy: boolean;
14
+ onRequestPreview?: () => void;
15
+ onConfirm: (replaceWith?: string) => void;
16
+ onClose: () => void;
17
+ }): import("react").JSX.Element;
18
+ //# sourceMappingURL=UnlinkDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnlinkDialog.d.ts","sourceRoot":"","sources":["../../../src/ui/integrations/UnlinkDialog.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,GAAG,EACH,QAAQ,EACR,OAAO,EACP,SAAS,EACT,IAAI,EACJ,gBAAgB,EAChB,SAAS,EACT,OAAO,GACR,EAAE;IACD,GAAG,EAAE,SAAS,CAAC;IACf,QAAQ,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IACvC,+DAA+D;IAC/D,OAAO,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,+BAkJA"}
@@ -0,0 +1,29 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useId, useRef, useState } from "react";
3
+ import { formatMoney } from "../metrics.js";
4
+ import { Icon } from "./Icons.js";
5
+ import { Overlay } from "./Overlay.js";
6
+ /**
7
+ * B6: unlinking erases the account's spend from the client, so the dialog
8
+ * says how much, offers a replacement, and asks for the client's name typed.
9
+ */
10
+ export function UnlinkDialog({ row, accounts, preview, permitted, busy, onRequestPreview, onConfirm, onClose, }) {
11
+ const id = useId();
12
+ const [typed, setTyped] = useState("");
13
+ const [replaceWith, setReplaceWith] = useState("");
14
+ const request = useRef(onRequestPreview);
15
+ useEffect(() => {
16
+ request.current?.();
17
+ }, []);
18
+ const account = row.account;
19
+ const name = row.site.name;
20
+ const matches = typed.trim().toLocaleLowerCase("pt-BR") ===
21
+ name.trim().toLocaleLowerCase("pt-BR");
22
+ const free = accounts.filter((option) => option.linkedSiteId === null &&
23
+ !option.linkedOutsideScope &&
24
+ option.adAccountId !== account.adAccountId);
25
+ return (_jsx(Overlay, { role: "alertdialog", labelledBy: `${id}-title`, describedBy: `${id}-desc`, onClose: onClose, children: _jsxs("div", { className: "rastro-integrations__dialog", children: [_jsxs("div", { className: "rastro-integrations__dialog-head", children: [_jsx("span", { className: "rastro-integrations__danger-tile", children: _jsx(Icon, { name: "unlink", size: 20 }) }), _jsxs("div", { children: [_jsxs("h3", { id: `${id}-title`, className: "rastro-integrations__dialog-title", children: ["Desvincular a conta da ", name, "?"] }), _jsxs("p", { id: `${id}-desc`, className: "rastro-integrations__desc rastro-integrations__lede", children: [_jsx("b", { children: row.accountName }), " ", _jsx("span", { className: "rastro-integrations__mono", children: account.adAccountId }), " ", "deixa de alimentar a ", name, "."] })] })] }), _jsxs("div", { className: "rastro-integrations__callout", "data-tone": "bad", "data-stack": "", children: [_jsxs("strong", { className: "rastro-integrations__row-gap", "data-gap": "8", children: [_jsx(Icon, { name: "trash", size: 14 }), " O gasto desta conta \u00E9 apagado da", " ", name] }), _jsxs("ul", { className: "rastro-integrations__bullets", children: [_jsx("li", { children: preview ? (_jsxs(_Fragment, { children: [_jsxs("b", { children: [preview.partial ? "pelo menos " : "", formatMoney(preview.spendCents, preview.currency)] }), " ", "de gasto em ", preview.days, " dias e o custo por lead e o retorno que vinham dele"] })) : preview === null ? ("Todo o gasto lido desta conta e o custo por lead e o retorno que vinham dele") : (_jsx("span", { className: "rastro-skeleton rastro-integrations__line-skeleton" })) }), _jsxs("li", { children: ["As campanhas somem da tela Campanhas da ", name, "; leads e vendas ficam"] }), _jsx("li", { children: "Ligar de novo rel\u00EA os 90 dias desde o come\u00E7o (leva alguns minutos)" })] })] }), _jsxs("div", { className: "rastro-integrations__field", children: [_jsx("label", { htmlFor: `${id}-swap`, children: "Trocar por outra conta (opcional)" }), _jsxs("span", { className: "rastro-integrations__select", "data-tone": "none", children: [_jsxs("select", { id: `${id}-swap`, value: replaceWith, onChange: (event) => setReplaceWith(event.target.value), children: [_jsx("option", { value: "", children: "S\u00F3 desvincular, sem conta nova" }), free.map((option) => (_jsxs("option", { value: option.adAccountId, children: [option.name, " \u00B7 ", option.adAccountId] }, option.adAccountId)))] }), _jsx(Icon, { name: "chevronDown", size: 14 })] }), _jsxs("span", { className: "rastro-integrations__hint", children: ["O pixel e os eventos da ", name, " n\u00E3o mudam."] })] }), _jsxs("div", { className: "rastro-integrations__field", children: [_jsxs("label", { htmlFor: `${id}-confirm`, children: ["Para confirmar, digite ", _jsx("b", { children: name })] }), _jsx("input", { id: `${id}-confirm`, className: "rastro-integrations__input", autoComplete: "off", spellCheck: false, value: typed, onChange: (event) => setTyped(event.target.value) })] }), _jsxs("div", { className: "rastro-integrations__dialog-foot", children: [_jsx("button", { type: "button", className: "rastro-integrations__btn", "data-variant": "outline", onClick: onClose, children: "Cancelar" }), _jsxs("button", { type: "button", className: "rastro-integrations__btn", "data-variant": "danger", disabled: !matches || !permitted || busy, onClick: () => onConfirm(replaceWith || undefined), children: [_jsx(Icon, { name: "unlink", size: 14 }), replaceWith
26
+ ? "Trocar a conta e apagar o gasto"
27
+ : "Desvincular e apagar o gasto"] })] })] }) }));
28
+ }
29
+ //# sourceMappingURL=UnlinkDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnlinkDialog.js","sourceRoot":"","sources":["../../../src/ui/integrations/UnlinkDialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { IntegrationsAudience } from "./types.js";
2
+ /**
3
+ * Who the screen speaks to, for the parts deep in it (the table, the cards,
4
+ * the sheet, the dialogs) without threading a prop through each.
5
+ */
6
+ export declare const AudienceContext: import("react").Context<IntegrationsAudience>;
7
+ /** Who reads the spend and sends the sales: "Rastro", or the host's "uze". */
8
+ export declare const ProductContext: import("react").Context<string>;
9
+ /** The business copy: one company, its owner reading. */
10
+ export declare const useBusiness: () => boolean;
11
+ export declare const useProductName: () => string;
12
+ //# sourceMappingURL=audience.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audience.d.ts","sourceRoot":"","sources":["../../../src/ui/integrations/audience.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,eAAe,+CAAgD,CAAC;AAE7E,8EAA8E;AAC9E,eAAO,MAAM,cAAc,iCAA0B,CAAC;AAEtD,yDAAyD;AACzD,eAAO,MAAM,WAAW,eAAmD,CAAC;AAE5E,eAAO,MAAM,cAAc,cAAmC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { createContext, useContext } from "react";
2
+ /**
3
+ * Who the screen speaks to, for the parts deep in it (the table, the cards,
4
+ * the sheet, the dialogs) without threading a prop through each.
5
+ */
6
+ export const AudienceContext = createContext("agency");
7
+ /** Who reads the spend and sends the sales: "Rastro", or the host's "uze". */
8
+ export const ProductContext = createContext("Rastro");
9
+ /** The business copy: one company, its owner reading. */
10
+ export const useBusiness = () => useContext(AudienceContext) === "business";
11
+ export const useProductName = () => useContext(ProductContext);
12
+ //# sourceMappingURL=audience.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audience.js","sourceRoot":"","sources":["../../../src/ui/integrations/audience.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGlD;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAuB,QAAQ,CAAC,CAAC;AAE7E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;AAEtD,yDAAyD;AACzD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,UAAU,CAAC;AAE5E,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ /** Words and figures the Integrações screen writes, in pt-BR. */
2
+ /** "06:40", in Brasília time like the rest of the screens. */
3
+ export declare const clockLabel: (at: number) => string;
4
+ /** "08/10". */
5
+ export declare const dayLabel: (at: number) => string;
6
+ /** "hoje 06:40", "ontem 22:10", "08/10 06:40". */
7
+ export declare function whenLabel(at: number, now: number): string;
8
+ /** "há 12 min", "há 3 h 12 min", "há 2 d"; "agora" under a minute. */
9
+ export declare function agoLabel(at: number, now: number, { short }?: {
10
+ short?: boolean | undefined;
11
+ }): string;
12
+ /** "há 18 min", "há 1 h", "ontem": a sent event's age. */
13
+ export declare function sentAgo(at: number, now: number): string;
14
+ /** "1188 4402 9917 305": a pixel id read in groups of four. */
15
+ export declare const pixelDigits: (pixelId: string) => string;
16
+ /** "1188…305": a pixel id that fits a phone line. */
17
+ export declare const pixelShort: (pixelId: string) => string;
18
+ /** "R$" for BRL, "US$" for USD: the account currency's own sign. */
19
+ export declare function currencySign(currency: string): string;
20
+ /** "America/Sao_Paulo" → "São Paulo". */
21
+ export declare function zoneCity(timezone: string): string;
22
+ /** "act_4056102938" → "act_4056…" for a narrow picker. */
23
+ export declare const accountShort: (adAccountId: string) => string;
24
+ /** "1 venda", "3 vendas". */
25
+ export declare const plural: (count: number, one: string, many: string) => string;
26
+ /** Lower case, no accents, letters and digits only: names compare by this. */
27
+ export declare const nameKey: (name: string) => string;
28
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/ui/integrations/format.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAkBjE,8DAA8D;AAC9D,eAAO,MAAM,UAAU,OAAQ,MAAM,WAAqB,CAAC;AAC3D,eAAe;AACf,eAAO,MAAM,QAAQ,OAAQ,MAAM,WAAwB,CAAC;AAE5D,kDAAkD;AAClD,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAShD;AAED,sEAAsE;AACtE,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,KAAa,EAAE;;CAAK,UASvE;AAED,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAQ9C;AAED,+DAA+D;AAC/D,eAAO,MAAM,WAAW,YAAa,MAAM,WACkB,CAAC;AAE9D,qDAAqD;AACrD,eAAO,MAAM,UAAU,YAAa,MAAM,WACoC,CAAC;AAE/E,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,UAY5C;AAWD,yCAAyC;AACzC,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,UAGxC;AAED,0DAA0D;AAC1D,eAAO,MAAM,YAAY,gBAAiB,MAAM,WACsB,CAAC;AAEvE,6BAA6B;AAC7B,eAAO,MAAM,MAAM,UAAW,MAAM,OAAO,MAAM,QAAQ,MAAM,WACC,CAAC;AAEjE,8EAA8E;AAC9E,eAAO,MAAM,OAAO,SAAU,MAAM,WAMzB,CAAC"}
@@ -0,0 +1,101 @@
1
+ /** Words and figures the Integrações screen writes, in pt-BR. */
2
+ const MINUTE_MS = 60_000;
3
+ const HOUR_MS = 60 * MINUTE_MS;
4
+ const DAY_MS = 24 * HOUR_MS;
5
+ const ZONE = "America/Sao_Paulo";
6
+ const clock = new Intl.DateTimeFormat("pt-BR", {
7
+ hour: "2-digit",
8
+ minute: "2-digit",
9
+ timeZone: ZONE,
10
+ });
11
+ const dayMonth = new Intl.DateTimeFormat("pt-BR", {
12
+ day: "2-digit",
13
+ month: "2-digit",
14
+ timeZone: ZONE,
15
+ });
16
+ /** "06:40", in Brasília time like the rest of the screens. */
17
+ export const clockLabel = (at) => clock.format(at);
18
+ /** "08/10". */
19
+ export const dayLabel = (at) => dayMonth.format(at);
20
+ /** "hoje 06:40", "ontem 22:10", "08/10 06:40". */
21
+ export function whenLabel(at, now) {
22
+ const day = dayMonth.format(at);
23
+ const prefix = day === dayMonth.format(now)
24
+ ? "hoje"
25
+ : day === dayMonth.format(now - DAY_MS)
26
+ ? "ontem"
27
+ : day;
28
+ return `${prefix} ${clock.format(at)}`;
29
+ }
30
+ /** "há 12 min", "há 3 h 12 min", "há 2 d"; "agora" under a minute. */
31
+ export function agoLabel(at, now, { short = false } = {}) {
32
+ const minutes = Math.max(0, Math.floor((now - at) / MINUTE_MS));
33
+ if (minutes < 1)
34
+ return "agora";
35
+ if (minutes < 60)
36
+ return short ? `${minutes} min` : `há ${minutes} min`;
37
+ const hours = Math.floor(minutes / 60);
38
+ if (hours >= 24)
39
+ return `há ${Math.floor(hours / 24)} d`;
40
+ const rest = minutes % 60;
41
+ if (short || rest === 0)
42
+ return `há ${hours} h`;
43
+ return `há ${hours} h ${rest} min`;
44
+ }
45
+ /** "há 18 min", "há 1 h", "ontem": a sent event's age. */
46
+ export function sentAgo(at, now) {
47
+ const delta = Math.max(0, now - at);
48
+ if (delta < MINUTE_MS)
49
+ return "agora";
50
+ if (delta < HOUR_MS)
51
+ return `há ${Math.floor(delta / MINUTE_MS)} min`;
52
+ if (dayMonth.format(at) === dayMonth.format(now))
53
+ return `há ${Math.floor(delta / HOUR_MS)} h`;
54
+ if (dayMonth.format(at) === dayMonth.format(now - DAY_MS))
55
+ return "ontem";
56
+ return `há ${Math.floor(delta / DAY_MS)} d`;
57
+ }
58
+ /** "1188 4402 9917 305": a pixel id read in groups of four. */
59
+ export const pixelDigits = (pixelId) => pixelId.replace(/\D/g, "").replace(/(\d{4})(?=\d)/g, "$1 ");
60
+ /** "1188…305": a pixel id that fits a phone line. */
61
+ export const pixelShort = (pixelId) => pixelId.length > 8 ? `${pixelId.slice(0, 4)}…${pixelId.slice(-3)}` : pixelId;
62
+ /** "R$" for BRL, "US$" for USD: the account currency's own sign. */
63
+ export function currencySign(currency) {
64
+ try {
65
+ const part = new Intl.NumberFormat("pt-BR", {
66
+ style: "currency",
67
+ currency,
68
+ })
69
+ .formatToParts(0)
70
+ .find((piece) => piece.type === "currency");
71
+ return part?.value ?? currency;
72
+ }
73
+ catch {
74
+ return currency;
75
+ }
76
+ }
77
+ const CITY_NAMES = {
78
+ Sao_Paulo: "São Paulo",
79
+ Belem: "Belém",
80
+ Maceio: "Maceió",
81
+ Cuiaba: "Cuiabá",
82
+ Araguaina: "Araguaína",
83
+ Santarem: "Santarém",
84
+ };
85
+ /** "America/Sao_Paulo" → "São Paulo". */
86
+ export function zoneCity(timezone) {
87
+ const city = timezone.split("/").at(-1) ?? timezone;
88
+ return CITY_NAMES[city] ?? city.replace(/_/g, " ");
89
+ }
90
+ /** "act_4056102938" → "act_4056…" for a narrow picker. */
91
+ export const accountShort = (adAccountId) => adAccountId.length > 9 ? `${adAccountId.slice(0, 8)}…` : adAccountId;
92
+ /** "1 venda", "3 vendas". */
93
+ export const plural = (count, one, many) => `${count.toLocaleString("pt-BR")} ${count === 1 ? one : many}`;
94
+ /** Lower case, no accents, letters and digits only: names compare by this. */
95
+ export const nameKey = (name) => name
96
+ .normalize("NFD")
97
+ .replace(/\p{Diacritic}/gu, "")
98
+ .toLowerCase()
99
+ .replace(/[^a-z0-9]+/g, " ")
100
+ .trim();
101
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/ui/integrations/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { IntegrationsBadge, IntegrationsView } from "./IntegrationsView.js";
2
+ export { clientRows, eventMapCopyTargets, integrationsHeadline, suggestedAccount, } from "./model.js";
3
+ export type { ClientRow, ClientState } from "./model.js";
4
+ export type { EventMap, EventMapChoice, EventMapColumn, IntegrationConversion, IntegrationsAudience, IntegrationsBusy, IntegrationSite, IntegrationsPartner, IntegrationStatus, IntegrationsViewProps, MetaColumnEvent, MetaConnection, MetaConnectionAdAccount, MetaEventName, MetaPixel, MetaPixelSource, PixelChoice, SentCounts, SetEventMapInput, UnlinkPreview, } from "./types.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/integrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EACV,QAAQ,EACR,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,aAAa,EACb,SAAS,EACT,eAAe,EACf,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { IntegrationsBadge, IntegrationsView } from "./IntegrationsView.js";
2
+ export { clientRows, eventMapCopyTargets, integrationsHeadline, suggestedAccount, } from "./model.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/integrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type RefObject } from "react";
2
+ /**
3
+ * A modal's keyboard contract: focus moves in (to `initial` or the first
4
+ * control), Tab stays inside, Esc closes, and focus returns to whatever
5
+ * opened it.
6
+ */
7
+ export declare function useModal(ref: RefObject<HTMLElement | null>, onClose: () => void, initial?: RefObject<HTMLElement | null>): void;
8
+ /** A popover closes on Esc and on a click outside it and its trigger. */
9
+ export declare function useDismiss(open: boolean, refs: ReadonlyArray<RefObject<HTMLElement | null>>, onClose: () => void): void;
10
+ //# sourceMappingURL=modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/ui/integrations/modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKpE;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAClC,OAAO,EAAE,MAAM,IAAI,EACnB,OAAO,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,QA2CxC;AAED,yEAAyE;AACzE,wBAAgB,UAAU,CACxB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,EAClD,OAAO,EAAE,MAAM,IAAI,QAsBpB"}
@@ -0,0 +1,77 @@
1
+ import { useEffect, useRef, useState } from "react";
2
+ const FOCUSABLE = 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';
3
+ /**
4
+ * A modal's keyboard contract: focus moves in (to `initial` or the first
5
+ * control), Tab stays inside, Esc closes, and focus returns to whatever
6
+ * opened it.
7
+ */
8
+ export function useModal(ref, onClose, initial) {
9
+ const close = useRef(onClose);
10
+ close.current = onClose;
11
+ // Whatever had focus when the modal first rendered, before showModal()
12
+ // moves it inside: focus goes back there on close.
13
+ const [opener] = useState(() => typeof document !== "undefined" &&
14
+ document.activeElement instanceof HTMLElement
15
+ ? document.activeElement
16
+ : null);
17
+ useEffect(() => {
18
+ const root = ref.current;
19
+ const first = initial?.current ?? root?.querySelector(FOCUSABLE) ?? root;
20
+ first?.focus();
21
+ const onKey = (event) => {
22
+ if (event.key === "Escape") {
23
+ event.stopPropagation();
24
+ close.current();
25
+ return;
26
+ }
27
+ if (event.key !== "Tab" || !root)
28
+ return;
29
+ const items = [...root.querySelectorAll(FOCUSABLE)];
30
+ if (items.length === 0)
31
+ return;
32
+ const head = items[0];
33
+ const tail = items[items.length - 1];
34
+ if (event.shiftKey && document.activeElement === head) {
35
+ event.preventDefault();
36
+ tail.focus();
37
+ }
38
+ else if (!event.shiftKey && document.activeElement === tail) {
39
+ event.preventDefault();
40
+ head.focus();
41
+ }
42
+ };
43
+ root?.addEventListener("keydown", onKey);
44
+ return () => {
45
+ root?.removeEventListener("keydown", onKey);
46
+ opener?.focus();
47
+ };
48
+ // Mount and unmount only: the modal owns focus for its whole life.
49
+ }, []);
50
+ }
51
+ /** A popover closes on Esc and on a click outside it and its trigger. */
52
+ export function useDismiss(open, refs, onClose) {
53
+ const close = useRef(onClose);
54
+ close.current = onClose;
55
+ useEffect(() => {
56
+ if (!open)
57
+ return;
58
+ const onPointer = (event) => {
59
+ const target = event.target;
60
+ if (refs.some((ref) => ref.current?.contains(target)))
61
+ return;
62
+ close.current();
63
+ };
64
+ const onKey = (event) => {
65
+ if (event.key === "Escape")
66
+ close.current();
67
+ };
68
+ document.addEventListener("pointerdown", onPointer);
69
+ document.addEventListener("keydown", onKey);
70
+ return () => {
71
+ document.removeEventListener("pointerdown", onPointer);
72
+ document.removeEventListener("keydown", onKey);
73
+ };
74
+ // The refs are stable objects; only opening re-arms the listeners.
75
+ }, [open]);
76
+ }
77
+ //# sourceMappingURL=modal.js.map