@fayz-ai/admin 0.61.0 → 0.63.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 (172) hide show
  1. package/dist/{CommandPalette-B5PMQFDG.js → CommandPalette-XDJJ5E3O.js} +3 -3
  2. package/dist/{CommandPalette-B5PMQFDG.js.map → CommandPalette-XDJJ5E3O.js.map} +1 -1
  3. package/dist/ConnectedBrandingSettings-43ZM3HCI.js +680 -0
  4. package/dist/ConnectedBrandingSettings-43ZM3HCI.js.map +1 -0
  5. package/dist/ConnectedCompanySettings-I4MALI2Q.js +197 -0
  6. package/dist/ConnectedCompanySettings-I4MALI2Q.js.map +1 -0
  7. package/dist/ConnectedModulesSettings-A2VJ5BMJ.js +563 -0
  8. package/dist/ConnectedModulesSettings-A2VJ5BMJ.js.map +1 -0
  9. package/dist/ConnectedSecuritySettings-25AHA4HJ.js +189 -0
  10. package/dist/ConnectedSecuritySettings-25AHA4HJ.js.map +1 -0
  11. package/dist/ConnectedUserProfile-E7USJRUE.js +424 -0
  12. package/dist/ConnectedUserProfile-E7USJRUE.js.map +1 -0
  13. package/dist/FieldRulesEditor-YGIPKI5T.js +129 -0
  14. package/dist/FieldRulesEditor-YGIPKI5T.js.map +1 -0
  15. package/dist/GettingStartedWidget-HMIJ3Y24.js +12 -0
  16. package/dist/GettingStartedWidget-HMIJ3Y24.js.map +1 -0
  17. package/dist/PermissionProfilesTab-3ZPRCHMZ.js +548 -0
  18. package/dist/PermissionProfilesTab-3ZPRCHMZ.js.map +1 -0
  19. package/dist/PersonTimeline-HQZT527S.js +3 -0
  20. package/dist/{PersonTimeline-X7JTPUWJ.js.map → PersonTimeline-HQZT527S.js.map} +1 -1
  21. package/dist/ProjectsSettings-7O2F27MD.js +5 -0
  22. package/dist/ProjectsSettings-7O2F27MD.js.map +1 -0
  23. package/dist/ScheduleEditor-54ELWR45.js +8 -0
  24. package/dist/{ScheduleEditor-L2UJXKMY.js.map → ScheduleEditor-54ELWR45.js.map} +1 -1
  25. package/dist/SeuSiteWidget-QLSUVC63.js +6 -0
  26. package/dist/SeuSiteWidget-QLSUVC63.js.map +1 -0
  27. package/dist/SubscriptionPage-5GE5HFJK.js +17 -0
  28. package/dist/{SubscriptionPage-IDVEFLZ5.js.map → SubscriptionPage-5GE5HFJK.js.map} +1 -1
  29. package/dist/TeamTab-6RAULFLW.js +502 -0
  30. package/dist/TeamTab-6RAULFLW.js.map +1 -0
  31. package/dist/TrialWidget-Z6CLUCU3.js +7 -0
  32. package/dist/TrialWidget-Z6CLUCU3.js.map +1 -0
  33. package/dist/app/AdminShell.d.ts.map +1 -1
  34. package/dist/app/admin-app.d.ts.map +1 -1
  35. package/dist/app/config.d.ts +14 -0
  36. package/dist/app/config.d.ts.map +1 -1
  37. package/dist/app/routing.d.ts +6 -0
  38. package/dist/app/routing.d.ts.map +1 -1
  39. package/dist/app/scaffold.d.ts.map +1 -1
  40. package/dist/billing/index.js +9 -4
  41. package/dist/chunk-2H46WDG5.js +53 -0
  42. package/dist/chunk-2H46WDG5.js.map +1 -0
  43. package/dist/chunk-3HLX7YB2.js +94 -0
  44. package/dist/chunk-3HLX7YB2.js.map +1 -0
  45. package/dist/chunk-3OUD4XBK.js +3 -0
  46. package/dist/chunk-3OUD4XBK.js.map +1 -0
  47. package/dist/{chunk-IXSY4GPK.js → chunk-5D5QLMOQ.js} +5 -3
  48. package/dist/chunk-5D5QLMOQ.js.map +1 -0
  49. package/dist/chunk-5WR62X2R.js +1081 -0
  50. package/dist/chunk-5WR62X2R.js.map +1 -0
  51. package/dist/{chunk-KPYRTOCK.js → chunk-6CQFGMEO.js} +4 -140
  52. package/dist/chunk-6CQFGMEO.js.map +1 -0
  53. package/dist/chunk-6MMSYC2I.js +116 -0
  54. package/dist/chunk-6MMSYC2I.js.map +1 -0
  55. package/dist/chunk-6QFOE3UD.js +1466 -0
  56. package/dist/chunk-6QFOE3UD.js.map +1 -0
  57. package/dist/chunk-6UUFVQ2E.js +283 -0
  58. package/dist/chunk-6UUFVQ2E.js.map +1 -0
  59. package/dist/chunk-7WNLL3F6.js +7889 -0
  60. package/dist/chunk-7WNLL3F6.js.map +1 -0
  61. package/dist/chunk-A74IHAQE.js +439 -0
  62. package/dist/chunk-A74IHAQE.js.map +1 -0
  63. package/dist/{chunk-JOBRLBIQ.js → chunk-AFA6IO23.js} +4 -3
  64. package/dist/chunk-AFA6IO23.js.map +1 -0
  65. package/dist/{chunk-P5UIGQFY.js → chunk-ALCSIN3Z.js} +5 -5
  66. package/dist/chunk-ALCSIN3Z.js.map +1 -0
  67. package/dist/chunk-AWM4AMBS.js +39 -0
  68. package/dist/chunk-AWM4AMBS.js.map +1 -0
  69. package/dist/{chunk-OQARLKZN.js → chunk-BG5Z6KLN.js} +6 -18
  70. package/dist/chunk-BG5Z6KLN.js.map +1 -0
  71. package/dist/chunk-DPNFZONC.js +19 -0
  72. package/dist/chunk-DPNFZONC.js.map +1 -0
  73. package/dist/chunk-DRCV643L.js +193 -0
  74. package/dist/chunk-DRCV643L.js.map +1 -0
  75. package/dist/chunk-E6DF3VR6.js +206 -0
  76. package/dist/chunk-E6DF3VR6.js.map +1 -0
  77. package/dist/chunk-ENHCVGXZ.js +120 -0
  78. package/dist/chunk-ENHCVGXZ.js.map +1 -0
  79. package/dist/chunk-FK6RHGI7.js +56 -0
  80. package/dist/chunk-FK6RHGI7.js.map +1 -0
  81. package/dist/chunk-G5HNA5QK.js +233 -0
  82. package/dist/chunk-G5HNA5QK.js.map +1 -0
  83. package/dist/chunk-HCFO4Z6A.js +53 -0
  84. package/dist/chunk-HCFO4Z6A.js.map +1 -0
  85. package/dist/chunk-JFIU6NQP.js +51 -0
  86. package/dist/chunk-JFIU6NQP.js.map +1 -0
  87. package/dist/chunk-JRZJBMOY.js +3 -0
  88. package/dist/chunk-JRZJBMOY.js.map +1 -0
  89. package/dist/{chunk-3YP7KW47.js → chunk-JVVOL4BB.js} +41 -512
  90. package/dist/chunk-JVVOL4BB.js.map +1 -0
  91. package/dist/chunk-KAQ3UIAA.js +415 -0
  92. package/dist/chunk-KAQ3UIAA.js.map +1 -0
  93. package/dist/{chunk-P6XUDT2P.js → chunk-KJELMULA.js} +4 -51
  94. package/dist/chunk-KJELMULA.js.map +1 -0
  95. package/dist/chunk-KLO7DKXX.js +1651 -0
  96. package/dist/chunk-KLO7DKXX.js.map +1 -0
  97. package/dist/chunk-M2CMDWUI.js +75 -0
  98. package/dist/chunk-M2CMDWUI.js.map +1 -0
  99. package/dist/chunk-PQ47MLTH.js +255 -0
  100. package/dist/chunk-PQ47MLTH.js.map +1 -0
  101. package/dist/{chunk-VX3WJLKK.js → chunk-QD7BMUDF.js} +17 -8
  102. package/dist/chunk-QD7BMUDF.js.map +1 -0
  103. package/dist/{chunk-E4MESMNR.js → chunk-QTSKCPSW.js} +7 -10
  104. package/dist/chunk-QTSKCPSW.js.map +1 -0
  105. package/dist/chunk-S56FQKPL.js +186 -0
  106. package/dist/chunk-S56FQKPL.js.map +1 -0
  107. package/dist/chunk-SGAFPNMA.js +75 -0
  108. package/dist/chunk-SGAFPNMA.js.map +1 -0
  109. package/dist/{chunk-OD7P4L3D.js → chunk-SOKCLVM4.js} +3 -3
  110. package/dist/{chunk-OD7P4L3D.js.map → chunk-SOKCLVM4.js.map} +1 -1
  111. package/dist/chunk-TL42NKTH.js +3 -0
  112. package/dist/chunk-TL42NKTH.js.map +1 -0
  113. package/dist/chunk-U6ZCO2PS.js +2964 -0
  114. package/dist/chunk-U6ZCO2PS.js.map +1 -0
  115. package/dist/chunk-VSXNROYH.js +16 -0
  116. package/dist/chunk-VSXNROYH.js.map +1 -0
  117. package/dist/chunk-WPFZCYZL.js +619 -0
  118. package/dist/chunk-WPFZCYZL.js.map +1 -0
  119. package/dist/chunk-XFTNIBDW.js +23 -0
  120. package/dist/chunk-XFTNIBDW.js.map +1 -0
  121. package/dist/chunk-Y66JDL6I.js +1020 -0
  122. package/dist/chunk-Y66JDL6I.js.map +1 -0
  123. package/dist/chunk-YEHIBPIX.js +137 -0
  124. package/dist/chunk-YEHIBPIX.js.map +1 -0
  125. package/dist/chunk-YKPPCV2Z.js +53 -0
  126. package/dist/chunk-YKPPCV2Z.js.map +1 -0
  127. package/dist/components/chat/markdown.d.ts.map +1 -1
  128. package/dist/components/plugins/PluginSettingsPanel.d.ts.map +1 -1
  129. package/dist/components/settings/SettingsPage.d.ts.map +1 -1
  130. package/dist/components/shared/ConnectionIndicator.d.ts.map +1 -1
  131. package/dist/connect-XKQJOWR7.js +18 -0
  132. package/dist/connect-XKQJOWR7.js.map +1 -0
  133. package/dist/crud/CrudDetailPage.d.ts.map +1 -1
  134. package/dist/crud/CrudListView.d.ts.map +1 -1
  135. package/dist/crud/CrudPage.d.ts.map +1 -1
  136. package/dist/crud/RelatedListTab.d.ts.map +1 -1
  137. package/dist/crud/archetypes/EntityLink.d.ts +1 -1
  138. package/dist/crud/archetypes/EntityLink.d.ts.map +1 -1
  139. package/dist/crud/record-chrome.d.ts.map +1 -1
  140. package/dist/entity-routes-PGU7EHAD.js +4 -0
  141. package/dist/{entity-routes-LXOBW5IB.js.map → entity-routes-PGU7EHAD.js.map} +1 -1
  142. package/dist/hooks/useModuleNavigation.d.ts.map +1 -1
  143. package/dist/impersonation/ImpersonateDialog.d.ts.map +1 -1
  144. package/dist/impersonation/session.d.ts.map +1 -1
  145. package/dist/index.d.ts +2 -2
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.js +11922 -33564
  148. package/dist/index.js.map +1 -1
  149. package/dist/lib/connection.d.ts +14 -0
  150. package/dist/lib/connection.d.ts.map +1 -1
  151. package/dist/lib/entity-routes.d.ts.map +1 -1
  152. package/dist/org/index.js +4 -2
  153. package/dist/plugins/PluginRegistryManager.d.ts.map +1 -1
  154. package/dist/settings/MessageTemplateRow.d.ts.map +1 -1
  155. package/dist/timeline/PersonTimeline.d.ts.map +1 -1
  156. package/dist/timeline/TimelineList.d.ts.map +1 -1
  157. package/dist/units/UnitRailPage.d.ts.map +1 -1
  158. package/dist/units/useUnitFilter.d.ts.map +1 -1
  159. package/package.json +5 -5
  160. package/dist/PersonTimeline-X7JTPUWJ.js +0 -3
  161. package/dist/ScheduleEditor-L2UJXKMY.js +0 -6
  162. package/dist/SubscriptionPage-IDVEFLZ5.js +0 -8
  163. package/dist/chunk-3YP7KW47.js.map +0 -1
  164. package/dist/chunk-E4MESMNR.js.map +0 -1
  165. package/dist/chunk-IXSY4GPK.js.map +0 -1
  166. package/dist/chunk-JOBRLBIQ.js.map +0 -1
  167. package/dist/chunk-KPYRTOCK.js.map +0 -1
  168. package/dist/chunk-OQARLKZN.js.map +0 -1
  169. package/dist/chunk-P5UIGQFY.js.map +0 -1
  170. package/dist/chunk-P6XUDT2P.js.map +0 -1
  171. package/dist/chunk-VX3WJLKK.js.map +0 -1
  172. package/dist/entity-routes-LXOBW5IB.js +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"AdminShell.d.ts","sourceRoot":"","sources":["../../src/app/AdminShell.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AdminShell.d.ts","sourceRoot":"","sources":["../../src/app/AdminShell.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin-app.d.ts","sourceRoot":"","sources":["../../src/app/admin-app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAgB9B,OAAO,KAAK,EACV,UAAU,EAGV,eAAe,EAChB,MAAM,kCAAkC,CAAA;AA2CzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAiD7C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,WAAW,CAAC,EAAE,UAAU,CAAA;IACxB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAA;IACpC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,eAAe,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,CAAA;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC,OAAO,eAAe,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,CAAA;CAC3E,CA4BA;AA4eD,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAiMxG;yBAjMe,cAAc;;;AA4N9B,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,KAAK,CAAC,aAAa,CAexE"}
1
+ {"version":3,"file":"admin-app.d.ts","sourceRoot":"","sources":["../../src/app/admin-app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiB9B,OAAO,KAAK,EACV,UAAU,EAGV,eAAe,EAChB,MAAM,kCAAkC,CAAA;AA2CzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAiD7C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,WAAW,CAAC,EAAE,UAAU,CAAA;IACxB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAA;IACpC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,eAAe,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,CAAA;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC,OAAO,eAAe,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,CAAA;CAC3E,CA4BA;AA4eD,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAiMxG;yBAjMe,cAAc;;;AA4N9B,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,KAAK,CAAC,aAAa,CAkBxE"}
@@ -265,6 +265,20 @@ export interface FayzAppConfig {
265
265
  * it, those contexts fall back to the app's initial.
266
266
  */
267
267
  markLogo?: ReactNode;
268
+ /**
269
+ * How screens are addressed. `'hash'` (the default) keeps fragment URLs —
270
+ * `example.com/#/agenda` — which work on any static host. `'history'` uses
271
+ * real ones — `example.com/agenda` — and needs the host to serve the app
272
+ * for unknown paths (SPA fallback). Old fragment links keep working: they
273
+ * are rewritten on arrival.
274
+ */
275
+ routing?: 'hash' | 'history';
276
+ /**
277
+ * Under `routing: 'history'`, same-origin paths that are separate documents
278
+ * rather than screens of this app (a second entry such as `/landing/`).
279
+ * Links into them are left to the browser.
280
+ */
281
+ documentPaths?: string[];
268
282
  supabaseUrl?: string;
269
283
  supabaseAnonKey?: string;
270
284
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/app/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/app/config.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  export declare function normalizeAdminPath(path: string): string;
2
2
  export declare function navigateTo(to: string): void;
3
+ /** Change the address without a new history entry (a tab, a filter). */
4
+ export declare function replaceTo(to: string): void;
5
+ /** The `href` an anchor to an admin path carries, in the app's scheme. */
6
+ export declare function adminHref(to: string): string;
7
+ /** The current admin path, query included, outside React. */
8
+ export declare function currentAdminPath(): string;
3
9
  export declare function useAdminPath(): string;
4
10
  /** Match '/courses/:id' against '/courses/abc' → { id: 'abc' }; supports a
5
11
  * trailing '/*' wildcard (matches the base and any deeper path). */
@@ -1 +1 @@
1
- {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/app/routing.tsx"],"names":[],"mappings":"AAYA,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,wBAAgB,YAAY,IAAI,MAAM,CASrC;AAED;qEACqE;AACrE,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAkBvF;AAED;2EAC2E;AAC3E,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQlD"}
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/app/routing.tsx"],"names":[],"mappings":"AAcA,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAUrC;AAED;qEACqE;AACrE,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAkBvF;AAED;2EAC2E;AAC3E,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQlD"}
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/app/scaffold.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,OAAO,KAAK,EACV,WAAW,EAKZ,MAAM,eAAe,CAAA;AAQtB,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,UAAU,CAAA;AA2BzD;;;iFAGiF;AACjF,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,CAmC7D;AA6DD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,qBAW9F;yBAXe,aAAa;;;AAoF7B,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C"}
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/app/scaffold.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,OAAO,KAAK,EACV,WAAW,EAKZ,MAAM,eAAe,CAAA;AAQtB,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,UAAU,CAAA;AA2BzD;;;iFAGiF;AACjF,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,CAuC7D;AA6DD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,qBAW9F;yBAXe,aAAa;;;AAoF7B,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C"}
@@ -1,6 +1,11 @@
1
- export { TrialWidget, resolvePlanBadge } from '../chunk-OQARLKZN.js';
2
- export { EXTRA_SEAT_PRICE, NO_TRIAL, PRICE_BOOK, PRICING_PLANS, UNIT_TIERS, activeModuleKeys, billableModules, currentPeriod, effectivePlan, paidPlanIds, quote, quoteAll, resolveTrial, summarizeAiUsage, unitFactor, useAiUsage, useBillingStore, useTrial } from '../chunk-KPYRTOCK.js';
3
- import '../chunk-VX3WJLKK.js';
4
- import '../chunk-P6XUDT2P.js';
1
+ export { resolvePlanBadge } from '../chunk-VSXNROYH.js';
2
+ export { currentPeriod, summarizeAiUsage, useAiUsage } from '../chunk-M2CMDWUI.js';
3
+ export { EXTRA_SEAT_PRICE, PRICE_BOOK, PRICING_PLANS, UNIT_TIERS, activeModuleKeys, billableModules, quote, quoteAll, unitFactor } from '../chunk-6CQFGMEO.js';
4
+ export { TrialWidget } from '../chunk-BG5Z6KLN.js';
5
+ export { NO_TRIAL, effectivePlan, paidPlanIds, resolveTrial, useBillingStore, useTrial } from '../chunk-SGAFPNMA.js';
6
+ import '../chunk-KJELMULA.js';
7
+ import '../chunk-JRZJBMOY.js';
8
+ import '../chunk-YKPPCV2Z.js';
9
+ import '../chunk-QD7BMUDF.js';
5
10
  //# sourceMappingURL=index.js.map
6
11
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,53 @@
1
+ import { useUnitStore } from './chunk-5D5QLMOQ.js';
2
+ import * as React from 'react';
3
+ import { Building2 } from 'lucide-react';
4
+ import { tl } from '@fayz-ai/core';
5
+ import { useIsWide, ChoiceSelect, PageHeaderActions } from '@fayz-ai/ui';
6
+ import { jsx } from 'react/jsx-runtime';
7
+
8
+ var scope = null;
9
+ var listeners = /* @__PURE__ */ new Set();
10
+ function setSettingsUnitScope(unitId) {
11
+ scope = unitId;
12
+ for (const l of listeners) l();
13
+ }
14
+ function useSettingsUnitScope() {
15
+ const current = React.useSyncExternalStore(
16
+ (l) => {
17
+ listeners.add(l);
18
+ return () => {
19
+ listeners.delete(l);
20
+ };
21
+ },
22
+ () => scope,
23
+ () => null
24
+ );
25
+ const units = useUnitStore((s) => s.units);
26
+ const unitMode = useUnitStore((s) => s.unitMode);
27
+ const available = unitMode && units.length > 1;
28
+ const unitId = available && current && units.some((u) => u.id === current) ? current : null;
29
+ return { unitId, available, set: setSettingsUnitScope };
30
+ }
31
+ function UnitScopePicker({ inline = false }) {
32
+ const units = useUnitStore((s) => s.units);
33
+ const { unitId, available, set } = useSettingsUnitScope();
34
+ const wide = useIsWide();
35
+ if (!available) return null;
36
+ const picker = /* @__PURE__ */ jsx(
37
+ ChoiceSelect,
38
+ {
39
+ "aria-label": tl("Settings for", "Configurar para"),
40
+ icon: Building2,
41
+ className: wide && !inline ? "w-56" : "h-11 w-full",
42
+ allLabel: tl("Whole network (default)", "Toda a rede (padr\xE3o)"),
43
+ value: unitId ?? void 0,
44
+ onChange: (v) => set(v ?? null),
45
+ options: units.map((u) => ({ value: u.id, label: u.name }))
46
+ }
47
+ );
48
+ return inline || !wide ? picker : /* @__PURE__ */ jsx(PageHeaderActions, { children: picker });
49
+ }
50
+
51
+ export { UnitScopePicker, setSettingsUnitScope, useSettingsUnitScope };
52
+ //# sourceMappingURL=chunk-2H46WDG5.js.map
53
+ //# sourceMappingURL=chunk-2H46WDG5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/settings/UnitScopePicker.tsx"],"names":[],"mappings":";;;;;;;AAQA,IAAI,KAAA,GAAuB,IAAA;AAC3B,IAAM,SAAA,uBAAgB,GAAA,EAAgB;AAE/B,SAAS,qBAAqB,MAAA,EAA6B;AAChE,EAAA,KAAA,GAAQ,MAAA;AACR,EAAA,KAAA,MAAW,CAAA,IAAK,WAAW,CAAA,EAAE;AAC/B;AAQO,SAAS,oBAAA,GAA4G;AAC1H,EAAA,MAAM,OAAA,GAAgB,KAAA,CAAA,oBAAA;AAAA,IACpB,CAAC,CAAA,KAAM;AAAE,MAAA,SAAA,CAAU,IAAI,CAAC,CAAA;AAAG,MAAA,OAAO,MAAM;AAAE,QAAA,SAAA,CAAU,OAAO,CAAC,CAAA;AAAA,MAAE,CAAA;AAAA,IAAE,CAAA;AAAA,IAChE,MAAM,KAAA;AAAA,IACN,MAAM;AAAA,GACR;AACA,EAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,CAAC,CAAA,KAAM,EAAE,KAAK,CAAA;AACzC,EAAA,MAAM,QAAA,GAAW,YAAA,CAAa,CAAC,CAAA,KAAM,EAAE,QAAQ,CAAA;AAC/C,EAAA,MAAM,SAAA,GAAY,QAAA,IAAY,KAAA,CAAM,MAAA,GAAS,CAAA;AAC7C,EAAA,MAAM,MAAA,GAAS,SAAA,IAAa,OAAA,IAAW,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,OAAO,CAAA,GAAI,OAAA,GAAU,IAAA;AACvF,EAAA,OAAO,EAAE,MAAA,EAAQ,SAAA,EAAW,GAAA,EAAK,oBAAA,EAAqB;AACxD;AAOO,SAAS,eAAA,CAAgB,EAAE,MAAA,GAAS,KAAA,EAAM,EAAyB;AACxE,EAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,CAAC,CAAA,KAAM,EAAE,KAAK,CAAA;AACzC,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAW,GAAA,KAAQ,oBAAA,EAAqB;AAExD,EAAA,MAAM,OAAO,SAAA,EAAU;AACvB,EAAA,IAAI,CAAC,WAAW,OAAO,IAAA;AACvB,EAAA,MAAM,MAAA,mBACJ,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,EAAA,CAAG,cAAA,EAAgB,iBAAiB,CAAA;AAAA,MAChD,IAAA,EAAM,SAAA;AAAA,MACN,SAAA,EAAW,IAAA,IAAQ,CAAC,MAAA,GAAS,MAAA,GAAS,aAAA;AAAA,MACtC,QAAA,EAAU,EAAA,CAAG,yBAAA,EAA2B,yBAAsB,CAAA;AAAA,MAC9D,OAAO,MAAA,IAAU,MAAA;AAAA,MACjB,QAAA,EAAU,CAAC,CAAA,KAAM,GAAA,CAAI,KAAK,IAAI,CAAA;AAAA,MAC9B,OAAA,EAAS,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,MAAO,EAAE,KAAA,EAAO,CAAA,CAAE,EAAA,EAAI,KAAA,EAAO,CAAA,CAAE,IAAA,EAAK,CAAE;AAAA;AAAA,GAC5D;AAEF,EAAA,OAAO,UAAU,CAAC,IAAA,GAAO,MAAA,mBAAS,GAAA,CAAC,qBAAmB,QAAA,EAAA,MAAA,EAAO,CAAA;AAC/D","file":"chunk-2H46WDG5.js","sourcesContent":["import * as React from 'react'\nimport { Building2 } from 'lucide-react'\nimport { tl } from '@fayz-ai/core'\nimport { ChoiceSelect, PageHeaderActions, useIsWide } from '@fayz-ai/ui'\nimport { useUnitStore } from '../units/store'\n\n// One choice for every settings screen: picking \"Centro\" on Totens keeps\n// \"Centro\" when the person moves on to Impressoras.\nlet scope: string | null = null\nconst listeners = new Set<() => void>()\n\nexport function setSettingsUnitScope(unitId: string | null): void {\n scope = unitId\n for (const l of listeners) l()\n}\n\n/**\n * Which unit the settings screens are editing: `null` is the whole network\n * (the house default every unit inherits). Resolves to `null` when the account\n * has no unit mode or a single unit, so callers never write to a unit that the\n * picker is not showing.\n */\nexport function useSettingsUnitScope(): { unitId: string | null; available: boolean; set: (unitId: string | null) => void } {\n const current = React.useSyncExternalStore(\n (l) => { listeners.add(l); return () => { listeners.delete(l) } },\n () => scope,\n () => null,\n )\n const units = useUnitStore((s) => s.units)\n const unitMode = useUnitStore((s) => s.unitMode)\n const available = unitMode && units.length > 1\n const unitId = available && current && units.some((u) => u.id === current) ? current : null\n return { unitId, available, set: setSettingsUnitScope }\n}\n\n/**\n * The standard \"Configurar para\" picker, drawn in the page bar next to the\n * screen's title. Render it on any screen that holds per-unit values; it draws\n * nothing for an account without units.\n */\nexport function UnitScopePicker({ inline = false }: { inline?: boolean }) {\n const units = useUnitStore((s) => s.units)\n const { unitId, available, set } = useSettingsUnitScope()\n // A phone's bar centres the title; a picker beside it lands on top of it.\n const wide = useIsWide()\n if (!available) return null\n const picker = (\n <ChoiceSelect\n aria-label={tl('Settings for', 'Configurar para')}\n icon={Building2}\n className={wide && !inline ? 'w-56' : 'h-11 w-full'}\n allLabel={tl('Whole network (default)', 'Toda a rede (padrão)')}\n value={unitId ?? undefined}\n onChange={(v) => set(v ?? null)}\n options={units.map((u) => ({ value: u.id, label: u.name }))}\n />\n )\n return inline || !wide ? picker : <PageHeaderActions>{picker}</PageHeaderActions>\n}\n"]}
@@ -0,0 +1,94 @@
1
+ import { UpgradePrompt } from './chunk-E6DF3VR6.js';
2
+ import { cn } from './chunk-JRZJBMOY.js';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
+
5
+ // src/lib/brand.ts
6
+ var EMPTY_BRAND = { identity: {}, tokens: {}, voice: {} };
7
+ var str = (v) => {
8
+ const s = typeof v === "string" ? v.trim() : "";
9
+ return s === "" ? void 0 : s;
10
+ };
11
+ var arr = (v) => Array.isArray(v) ? v.map(String).map((x) => x.trim()).filter(Boolean) : void 0;
12
+ function normalizeBrand(branding, fallback) {
13
+ const b = branding ?? {};
14
+ const layer = (name) => b[name] ?? {};
15
+ const pick = (path, snake, camel) => str(path) ?? str(snake) ?? str(camel);
16
+ return {
17
+ identity: {
18
+ name: pick(layer("identity").name, b.app_name, b.appName) ?? str(fallback?.name),
19
+ tagline: pick(layer("identity").tagline, b.tagline, b.tagline),
20
+ mission: pick(layer("identity").mission, b.mission, b.mission),
21
+ logoUrl: pick(layer("identity").logoUrl, b.logo_url, b.logoUrl) ?? str(fallback?.logoUrl),
22
+ logoDarkUrl: pick(layer("identity").logoDarkUrl, b.logo_dark_url, b.logoDarkUrl),
23
+ markUrl: pick(layer("identity").markUrl, b.mark_url, b.markUrl),
24
+ faviconUrl: pick(layer("identity").faviconUrl, b.favicon_url, b.faviconUrl),
25
+ customDomain: pick(layer("identity").customDomain, b.custom_domain, b.customDomain)
26
+ },
27
+ tokens: {
28
+ color: {
29
+ primary: pick(layer("tokens").color?.primary, b.primary_color, b.primaryColor),
30
+ accent: pick(layer("tokens").color?.accent, b.accent_color, b.accentColor)
31
+ },
32
+ font: {
33
+ heading: pick(layer("tokens").font?.heading, b.heading_font, b.headingFont),
34
+ body: pick(layer("tokens").font?.body, b.body_font, b.bodyFont)
35
+ },
36
+ surface: {
37
+ background: str(layer("tokens").surface?.background),
38
+ card: str(layer("tokens").surface?.card),
39
+ foreground: str(layer("tokens").surface?.foreground)
40
+ },
41
+ rail: {
42
+ background: str(layer("tokens").rail?.background),
43
+ foreground: str(layer("tokens").rail?.foreground),
44
+ border: str(layer("tokens").rail?.border),
45
+ accent: str(layer("tokens").rail?.accent),
46
+ accentForeground: str(layer("tokens").rail?.accentForeground),
47
+ muted: str(layer("tokens").rail?.muted)
48
+ },
49
+ radius: str(layer("tokens").radius)
50
+ },
51
+ voice: {
52
+ tone: pick(layer("voice").tone, b.tone_of_voice, b.toneOfVoice),
53
+ lexicon: arr(layer("voice").lexicon) ?? [],
54
+ avoid: arr(layer("voice").avoid) ?? [],
55
+ ctas: arr(layer("voice").ctas) ?? [],
56
+ hashtags: arr(layer("voice").hashtags) ?? []
57
+ }
58
+ };
59
+ }
60
+ function brandInstructions(brand) {
61
+ if (!brand) return void 0;
62
+ const v = brand.voice;
63
+ const lines = [];
64
+ if (brand.identity.name) lines.push(`A marca desta casa \xE9 "${brand.identity.name}".`);
65
+ if (brand.identity.tagline) lines.push(`Assinatura: "${brand.identity.tagline}".`);
66
+ if (brand.identity.mission) lines.push(`Posicionamento: ${brand.identity.mission}`);
67
+ if (v.tone) lines.push(`Tom de voz, e siga-o em qualquer texto que escrever: ${v.tone}`);
68
+ if (v.lexicon?.length) lines.push(`Palavras que a casa usa: ${v.lexicon.join(", ")}.`);
69
+ if (v.ctas?.length) lines.push(`Chamadas padr\xE3o, reaproveite-as em vez de inventar outras: ${v.ctas.join(" \xB7 ")}.`);
70
+ if (v.hashtags?.length) lines.push(`Hashtags da casa: ${v.hashtags.join(" ")}.`);
71
+ if (v.avoid?.length) {
72
+ lines.push(
73
+ `NUNCA use estas palavras ou express\xF5es, em nenhum texto, nem em varia\xE7\xE3o: ${v.avoid.join(", ")}. Se precisar dizer a mesma coisa, reescreva com outras palavras.`
74
+ );
75
+ }
76
+ return lines.length > 0 ? lines.join(" ") : void 0;
77
+ }
78
+ function UpgradeOverlay({ feature, children, className, overlayClassName, promptClassName }) {
79
+ return /* @__PURE__ */ jsxs("div", { className: cn("relative", className), children: [
80
+ /* @__PURE__ */ jsx(
81
+ "div",
82
+ {
83
+ "aria-hidden": "true",
84
+ className: "pointer-events-none absolute inset-0 select-none overflow-hidden blur-[5px] opacity-40",
85
+ children
86
+ }
87
+ ),
88
+ /* @__PURE__ */ jsx("div", { className: cn("relative flex min-h-[70vh] items-center justify-center", overlayClassName), children: /* @__PURE__ */ jsx(UpgradePrompt, { feature, className: cn("py-8 sm:py-10", promptClassName) }) })
89
+ ] });
90
+ }
91
+
92
+ export { EMPTY_BRAND, UpgradeOverlay, brandInstructions, normalizeBrand };
93
+ //# sourceMappingURL=chunk-3HLX7YB2.js.map
94
+ //# sourceMappingURL=chunk-3HLX7YB2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/brand.ts","../src/components/billing/UpgradeOverlay.tsx"],"names":[],"mappings":"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","file":"chunk-3HLX7YB2.js","sourcesContent":["// ---------------------------------------------------------------------------\n// A marca do tenant — um conjunto de tokens, não uma tela de cores.\n//\n// Antes desta unificação a marca vivia em dois lugares e três grafias:\n//\n// a tela de Configurações GRAVAVA settings.branding.primaryColor (camelo)\n// o tema da shell LIA settings.branding.primaryColor (camelo)\n// app.branding_of() LIA settings.branding.primary_color (cobra)\n//\n// e, em paralelo, um plugin guardava nome, tom de voz e palavras proibidas numa\n// tabela própria. Medido no cluster: NENHUM tenant tinha a chave em camelo. A\n// cor escolhida pelo lojista nunca chegou ao switcher nem à loja pública.\n//\n// ── AS TRÊS CAMADAS ────────────────────────────────────────────────────────\n//\n// identity quem a marca é nome, assinatura, posicionamento, logo\n// tokens como ela se parece cor e tipografia\n// voice como ela FALA tom, léxico, chamadas, palavras proibidas\n//\n// A terceira é a que costuma ficar de fora, e é o ponto: um sistema de design\n// que descreve a cor do botão e não descreve o que o produto pode DIZER\n// descreve metade da marca. Num produto onde parte do texto é escrita por um\n// agente, a metade verbal é tão token quanto a cor.\n//\n// Consumidores: o tema da shell lê `tokens.color`; o switcher e as páginas\n// públicas leem `identity` + `tokens.color`; o agente lê `voice`.\n// ---------------------------------------------------------------------------\n\nexport interface BrandIdentity {\n name?: string\n tagline?: string\n mission?: string\n /** O wordmark para fundo CLARO. */\n logoUrl?: string\n /**\n * O wordmark para fundo ESCURO.\n *\n * Não é luxo: a logo do Espaço Facial no V1 é um SVG branco, que some sobre\n * papel e só existe porque o rail é preto. Uma marca séria tem as duas artes,\n * e um contrato com um campo só obriga a escolher qual dos dois fundos vai\n * ficar errado.\n */\n logoDarkUrl?: string\n /**\n * O ícone quadrado, numa versão só: a arte CLARA.\n *\n * O ladrilho que a desenha leva o próprio fundo escuro para qualquer\n * superfície, então ela lê no rail, no popover e no seletor pós-login. Duas\n * versões significariam a casa entregar dois arquivos, e um deles envelhecer.\n */\n markUrl?: string\n faviconUrl?: string\n customDomain?: string\n}\n\nexport interface BrandTokens {\n color?: { primary?: string; accent?: string }\n font?: { heading?: string; body?: string }\n /** O papel: fundo da aplicação, cartão, e a tinta sobre eles. */\n surface?: { background?: string; card?: string; foreground?: string }\n /**\n * O rail — a decisão que a cor primária sozinha não expressa.\n *\n * O V1 guarda um tema inteiro por tenant (`software_profiles.theme`, com\n * `rail` / `surface` / `emphasis`), e o Espaço Facial é preto no rail com\n * bege no item ativo. Com só `color.primary` atravessando, o V2 pintava o\n * bege e herdava o rail do aplicativo — a marca chegava pela metade.\n *\n * Mesmo vocabulário do `SaasTheme.sidebar`, de propósito: o que o banco\n * grava é o que a casca já sabe consumir.\n */\n rail?: {\n background?: string\n foreground?: string\n border?: string\n accent?: string\n accentForeground?: string\n muted?: string\n }\n /** O raio das quinas, em CSS (`0.75rem`). */\n radius?: string\n}\n\nexport interface BrandVoice {\n tone?: string\n /** As palavras que a casa usa. */\n lexicon?: string[]\n /** As que ela NÃO usa. Array e não texto livre porque o agente compara termo\n * a termo — \"evite gírias\" não é comparável. */\n avoid?: string[]\n ctas?: string[]\n hashtags?: string[]\n}\n\nexport interface TenantBrand {\n identity: BrandIdentity\n tokens: BrandTokens\n voice: BrandVoice\n}\n\nexport const EMPTY_BRAND: TenantBrand = { identity: {}, tokens: {}, voice: {} }\n\nconst str = (v: unknown): string | undefined => {\n const s = typeof v === 'string' ? v.trim() : ''\n return s === '' ? undefined : s\n}\nconst arr = (v: unknown): string[] | undefined =>\n Array.isArray(v) ? v.map(String).map((x) => x.trim()).filter(Boolean) : undefined\n\n/**\n * Lê a marca aceitando as TRÊS grafias que existiram.\n *\n * A ordem é deliberada: o formato em camadas primeiro, porque é para onde tudo\n * caminha; depois cobra, que é o que o resolvedor do banco sempre leu; por\n * último camelo, que é o que a tela sempre gravou. Espelha `app.brand_token`\n * do lado do servidor — as duas leituras têm de concordar, senão a tela mostra\n * uma cor e a loja pública pinta outra.\n */\nexport function normalizeBrand(branding: unknown, fallback?: { name?: string; logoUrl?: string }): TenantBrand {\n const b = (branding ?? {}) as Record<string, any>\n const layer = (name: string) => (b[name] ?? {}) as Record<string, any>\n const pick = (path: unknown, snake: unknown, camel: unknown) =>\n str(path) ?? str(snake) ?? str(camel)\n\n return {\n identity: {\n name: pick(layer('identity').name, b.app_name, b.appName) ?? str(fallback?.name),\n tagline: pick(layer('identity').tagline, b.tagline, b.tagline),\n mission: pick(layer('identity').mission, b.mission, b.mission),\n logoUrl: pick(layer('identity').logoUrl, b.logo_url, b.logoUrl) ?? str(fallback?.logoUrl),\n logoDarkUrl: pick(layer('identity').logoDarkUrl, b.logo_dark_url, b.logoDarkUrl),\n markUrl: pick(layer('identity').markUrl, b.mark_url, b.markUrl),\n faviconUrl: pick(layer('identity').faviconUrl, b.favicon_url, b.faviconUrl),\n customDomain: pick(layer('identity').customDomain, b.custom_domain, b.customDomain),\n },\n tokens: {\n color: {\n primary: pick(layer('tokens').color?.primary, b.primary_color, b.primaryColor),\n accent: pick(layer('tokens').color?.accent, b.accent_color, b.accentColor),\n },\n font: {\n heading: pick(layer('tokens').font?.heading, b.heading_font, b.headingFont),\n body: pick(layer('tokens').font?.body, b.body_font, b.bodyFont),\n },\n surface: {\n background: str(layer('tokens').surface?.background),\n card: str(layer('tokens').surface?.card),\n foreground: str(layer('tokens').surface?.foreground),\n },\n rail: {\n background: str(layer('tokens').rail?.background),\n foreground: str(layer('tokens').rail?.foreground),\n border: str(layer('tokens').rail?.border),\n accent: str(layer('tokens').rail?.accent),\n accentForeground: str(layer('tokens').rail?.accentForeground),\n muted: str(layer('tokens').rail?.muted),\n },\n radius: str(layer('tokens').radius),\n },\n voice: {\n tone: pick(layer('voice').tone, b.tone_of_voice, b.toneOfVoice),\n lexicon: arr(layer('voice').lexicon) ?? [],\n avoid: arr(layer('voice').avoid) ?? [],\n ctas: arr(layer('voice').ctas) ?? [],\n hashtags: arr(layer('voice').hashtags) ?? [],\n },\n }\n}\n\n/**\n * A marca vira instrução de agente.\n *\n * É aqui que o conjunto de tokens deixa de ser cadastro. Num produto onde parte\n * do texto é escrita por um agente, publicar a voz junto de cada pergunta é o\n * equivalente verbal de aplicar a cor primária no botão.\n *\n * A ORDEM DAS FRASES É DELIBERADA: as palavras proibidas vêm por último e como\n * proibição explícita. Instrução longa dilui, e o guard-rail é a única parte\n * cujo descumprimento passa despercebido — ninguém revisa um texto procurando a\n * palavra que a casa pediu para não usar.\n */\nexport function brandInstructions(brand: TenantBrand | null): string | undefined {\n if (!brand) return undefined\n const v = brand.voice\n const lines: string[] = []\n\n if (brand.identity.name) lines.push(`A marca desta casa é \"${brand.identity.name}\".`)\n if (brand.identity.tagline) lines.push(`Assinatura: \"${brand.identity.tagline}\".`)\n if (brand.identity.mission) lines.push(`Posicionamento: ${brand.identity.mission}`)\n if (v.tone) lines.push(`Tom de voz, e siga-o em qualquer texto que escrever: ${v.tone}`)\n if (v.lexicon?.length) lines.push(`Palavras que a casa usa: ${v.lexicon.join(', ')}.`)\n if (v.ctas?.length) lines.push(`Chamadas padrão, reaproveite-as em vez de inventar outras: ${v.ctas.join(' · ')}.`)\n if (v.hashtags?.length) lines.push(`Hashtags da casa: ${v.hashtags.join(' ')}.`)\n if (v.avoid?.length) {\n lines.push(\n `NUNCA use estas palavras ou expressões, em nenhum texto, nem em variação: ${v.avoid.join(', ')}. ` +\n 'Se precisar dizer a mesma coisa, reescreva com outras palavras.',\n )\n }\n\n // Marca em que ninguém preencheu nada não vira instrução: mandar \"a marca não\n // tem tom de voz definido\" gastaria contexto para não dizer nada.\n return lines.length > 0 ? lines.join(' ') : undefined\n}\n\n/**\n * A marca ORIENTA o agente, ou só o nomeia?\n *\n * Olha a VOZ, e não `brandInstructions`. O nome vem por recuo do nome do tenant\n * e portanto está sempre preenchido: usar as instruções aqui faria a tela dizer\n * \"o assistente está recebendo estes padrões\" para uma marca em que ninguém\n * escreveu nada. Um aviso que está sempre ligado não avisa nada.\n */\nexport function brandGuidesTheAgent(brand: TenantBrand | null): boolean {\n const v = brand?.voice\n if (!v) return false\n return Boolean(v.tone) || (v.lexicon?.length ?? 0) > 0\n || (v.avoid?.length ?? 0) > 0 || (v.ctas?.length ?? 0) > 0\n}\n","import * as React from 'react'\nimport { cn } from '../../lib/cn'\nimport { UpgradePrompt } from './UpgradePrompt'\n\n// ---------------------------------------------------------------------------\n// UpgradeOverlay — the plan-gate paywall that keeps the real page visible.\n// The gated page renders behind (blurred, inert) as a teaser of what the\n// upgrade unlocks; the UpgradePrompt floats above it.\n// Used by the AdminShell route guard for reason: 'plan' denials.\n// ---------------------------------------------------------------------------\n\nexport interface UpgradeOverlayProps {\n /** Feature id (same id space as RBAC/nav) the paywall is about. */\n feature?: string\n /** The gated page — rendered behind the paywall as a blurred teaser. */\n children: React.ReactNode\n className?: string\n /** Paywall layer classes — override the default full-viewport centering\n * (e.g. `min-h-full` inside a narrow drawer). */\n overlayClassName?: string\n /** Forwarded to the UpgradePrompt (spacing overrides for tight surfaces). */\n promptClassName?: string\n}\n\nexport function UpgradeOverlay({ feature, children, className, overlayClassName, promptClassName }: UpgradeOverlayProps) {\n return (\n <div className={cn('relative', className)}>\n {/* Teaser layer: the live page, blurred + faded in place and made inert —\n visual only, never interactive or read by AT. The blur lives on the\n content itself (not a backdrop) so it covers exactly the page, with\n no frosted rectangle or margins. */}\n <div\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute inset-0 select-none overflow-hidden blur-[5px] opacity-40\"\n >\n {children}\n </div>\n {/* Paywall layer: transparent, centered over the teaser. */}\n <div className={cn('relative flex min-h-[70vh] items-center justify-center', overlayClassName)}>\n <UpgradePrompt feature={feature} className={cn('py-8 sm:py-10', promptClassName)} />\n </div>\n </div>\n )\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export { ToastProvider, toast } from '@fayz-ai/ui';
2
+ //# sourceMappingURL=chunk-3OUD4XBK.js.map
3
+ //# sourceMappingURL=chunk-3OUD4XBK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-3OUD4XBK.js","sourcesContent":[]}
@@ -1,5 +1,7 @@
1
1
  import { usePermissionsStore } from './chunk-UQ2NTFQC.js';
2
- import { persistOrgId, cn, useOrganizationStore, getPersistedOrgId, getFayzSupabaseClient, getSupabaseClientOptional as getSupabaseClientOptional$1 } from './chunk-P6XUDT2P.js';
2
+ import { getFayzSupabaseClient, getSupabaseClientOptional as getSupabaseClientOptional$1 } from './chunk-KJELMULA.js';
3
+ import { cn } from './chunk-JRZJBMOY.js';
4
+ import { persistOrgId, useOrganizationStore, getPersistedOrgId } from './chunk-YKPPCV2Z.js';
3
5
  import * as React3 from 'react';
4
6
  import { useState, useEffect } from 'react';
5
7
  import { Building2, Check, ShieldCheck } from 'lucide-react';
@@ -2271,5 +2273,5 @@ function WorkspaceSwitchingHost() {
2271
2273
  }
2272
2274
 
2273
2275
  export { ORG_CACHE_TTL_MS, OrgMark, OrgProvider, UNIT_ACCESS_CHANGED, WorkspaceChooser, WorkspaceChooserGate, WorkspaceSwitching, WorkspaceSwitchingHost, activePluginIds, bindAllMembersTo, bindUserToUnit, clearOrgSnapshot, countUnboundMembers, createMockOrgAdapter, createSupabaseOrgAdapter, decideWorkspaceChoice, dedup2 as dedup, fetchMemberActivity, fetchMemberUnits, fetchUnitMembers, fetchUserIdForPerson, getAutoPick, hasPlugin, markWorkspaceSwitch, orgInitials, readOrgSnapshot, resolveAppId, searchWorkspaces, setAutoPick, setUnitModeRemote, takeWorkspaceSwitch, unbindUserFromUnit, useAppConfigStore, useOrgAdapter, useOrgAdapterOptional, useTenant, useTenantOptional, useUnitStore, useWorkspaceSwitchingStore };
2274
- //# sourceMappingURL=chunk-IXSY4GPK.js.map
2275
- //# sourceMappingURL=chunk-IXSY4GPK.js.map
2276
+ //# sourceMappingURL=chunk-5D5QLMOQ.js.map
2277
+ //# sourceMappingURL=chunk-5D5QLMOQ.js.map