@fayz-ai/admin 0.27.0 → 0.29.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.
- package/dist/{CommandPalette-ANZWU27U.js → CommandPalette-B5PMQFDG.js} +28 -4
- package/dist/CommandPalette-B5PMQFDG.js.map +1 -0
- package/dist/SubscriptionPage-2JPALG53.js +9 -0
- package/dist/{SubscriptionPage-4EJCCS4I.js.map → SubscriptionPage-2JPALG53.js.map} +1 -1
- package/dist/billing/index.js +2 -1
- package/dist/chunk-OD7P4L3D.js +74 -0
- package/dist/chunk-OD7P4L3D.js.map +1 -0
- package/dist/{chunk-LB5SV4ZZ.js → chunk-OVVTLRDD.js} +3 -3
- package/dist/{chunk-LB5SV4ZZ.js.map → chunk-OVVTLRDD.js.map} +1 -1
- package/dist/chunk-P5UIGQFY.js +57 -0
- package/dist/chunk-P5UIGQFY.js.map +1 -0
- package/dist/chunk-VX3WJLKK.js +54 -0
- package/dist/chunk-VX3WJLKK.js.map +1 -0
- package/dist/{chunk-U3VX52SE.js → chunk-ZOUIXHKI.js} +5 -50
- package/dist/chunk-ZOUIXHKI.js.map +1 -0
- package/dist/components/layout/CommandPalette.d.ts.map +1 -1
- package/dist/crud/archetype-lookup.d.ts +10 -0
- package/dist/crud/archetype-lookup.d.ts.map +1 -1
- package/dist/entity-routes-LXOBW5IB.js +4 -0
- package/dist/entity-routes-LXOBW5IB.js.map +1 -0
- package/dist/hooks/useListMemory.d.ts +39 -0
- package/dist/hooks/useListMemory.d.ts.map +1 -0
- package/dist/hooks/useRecentRecords.d.ts +16 -0
- package/dist/hooks/useRecentRecords.d.ts.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +114 -81
- package/dist/index.js.map +1 -1
- package/dist/lib/recent-records.d.ts +53 -0
- package/dist/lib/recent-records.d.ts.map +1 -0
- package/package.json +6 -6
- package/dist/CommandPalette-ANZWU27U.js.map +0 -1
- package/dist/SubscriptionPage-4EJCCS4I.js +0 -8
- package/dist/chunk-U3VX52SE.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
|
+
import { useLimitGuard, invalidateLimit, useAccessOptional, useUpgradeModalStore, guardLimit, useLimit, checkAccess, featureDisplayName, PlanFeatureItem, AccessProvider, CORE_LIMIT_DECLARATIONS, entityDerivedLimitDeclarations, getPlanEntitlements, resolvePlanCurrency } from './chunk-OVVTLRDD.js';
|
|
2
|
+
export { AccessProvider, UPGRADE_URL, agentDenial, checkAccess, getAccessSnapshot, guardLimit, invalidateLimit, isEntitledByPlan, resolveAccess, useAccess, useAccessOptional, useLimit, useLimitGuard, useModuleNavAccess, useUpgradeModalStore } from './chunk-OVVTLRDD.js';
|
|
3
|
+
export { clearRecentRecords, listRecentRecords, rememberVisit, subscribeRecentRecords, useOpenRecent, useRecentRecords, useRecordVisit } from './chunk-OD7P4L3D.js';
|
|
4
|
+
import { useTranslation as useTranslation$1 } from './chunk-YUHCC7JY.js';
|
|
5
|
+
import { useBillingStore, resolvePlanBadge, TrialWidget } from './chunk-ZOUIXHKI.js';
|
|
6
|
+
export { useBillingStore } from './chunk-ZOUIXHKI.js';
|
|
7
|
+
import { resolveEntityRoute, openEntity, resolveEntityAnchor, setEntityRouteMap, entityRouteHasDetail } from './chunk-P5UIGQFY.js';
|
|
8
|
+
export { openEntity, resolveEntityAnchor, resolveEntityHref, resolveEntityRoute } from './chunk-P5UIGQFY.js';
|
|
9
|
+
import { useAdminPath, navigateTo, normalizeAdminPath, routeScore, matchRoute } from './chunk-VX3WJLKK.js';
|
|
10
|
+
export { navigateTo as adminNavigateTo, useAdminPath } from './chunk-VX3WJLKK.js';
|
|
1
11
|
export { ImportWizard } from './chunk-UMRN6427.js';
|
|
2
12
|
export { ScheduleEditor, deleteSchedule, getScheduleBlockConfig, getSchedules, mergeBlockSettings, parseBlockSettings, replaceWeeklySchedules, saveSchedule, setScheduleBlockConfig, subscribeScheduleBlockConfig } from './chunk-NXFFJY2X.js';
|
|
3
13
|
import { getFayzSupabaseClientOptional, getSupabaseClientOptional as getSupabaseClientOptional$1, getFayzSupabaseClient, useAppConfigStore, activePluginIds, hasPlugin, WorkspaceChooserGate, WorkspaceSwitchingHost, createFayzSupabaseClient, resolveAppId, createSupabaseOrgAdapter, createMockOrgAdapter, useWorkspaceSwitchingStore, searchWorkspaces, OrgMark } from './chunk-XJB76FHA.js';
|
|
4
14
|
export { OrgMark, activePluginIds, createFayzSupabaseClient, createMockOrgAdapter, createSupabaseOrgAdapter, getFayzSupabaseClient, getFayzSupabaseClientOptional, hasPlugin, orgInitials, useAppConfigStore } from './chunk-XJB76FHA.js';
|
|
5
|
-
import { useLimitGuard, invalidateLimit, useAccessOptional, useUpgradeModalStore, guardLimit, useLimit, checkAccess, featureDisplayName, PlanFeatureItem, AccessProvider, CORE_LIMIT_DECLARATIONS, entityDerivedLimitDeclarations, getPlanEntitlements, resolvePlanCurrency } from './chunk-LB5SV4ZZ.js';
|
|
6
|
-
export { AccessProvider, UPGRADE_URL, agentDenial, checkAccess, getAccessSnapshot, guardLimit, invalidateLimit, isEntitledByPlan, resolveAccess, useAccess, useAccessOptional, useLimit, useLimitGuard, useModuleNavAccess, useUpgradeModalStore } from './chunk-LB5SV4ZZ.js';
|
|
7
|
-
import { useTranslation as useTranslation$1 } from './chunk-YUHCC7JY.js';
|
|
8
|
-
import { useAdminPath, navigateTo, useBillingStore, normalizeAdminPath, resolvePlanBadge, routeScore, matchRoute, TrialWidget } from './chunk-U3VX52SE.js';
|
|
9
|
-
export { navigateTo as adminNavigateTo, useAdminPath, useBillingStore } from './chunk-U3VX52SE.js';
|
|
10
15
|
import { readOrgSnapshot, useTenantOptional, useOrgAdapter, useTenant, OrgProvider, useOrgAdapterOptional } from './chunk-R4HQ2HS2.js';
|
|
11
16
|
export { ORG_CACHE_TTL_MS, OrgProvider, clearOrgSnapshot, readOrgSnapshot, useOrgAdapter, useOrgAdapterOptional, useTenant, useTenantOptional } from './chunk-R4HQ2HS2.js';
|
|
12
17
|
import { usePermissionOptional, usePermissionsStore, PermissionsProvider } from './chunk-UQ2NTFQC.js';
|
|
@@ -2727,58 +2732,6 @@ function getActiveSurfaceContext() {
|
|
|
2727
2732
|
return { snapshot, instructions };
|
|
2728
2733
|
}
|
|
2729
2734
|
|
|
2730
|
-
// src/lib/entity-routes.ts
|
|
2731
|
-
var routeMap = /* @__PURE__ */ new Map();
|
|
2732
|
-
function setEntityRouteMap(map) {
|
|
2733
|
-
const next = /* @__PURE__ */ new Map();
|
|
2734
|
-
for (const [key, value] of map) {
|
|
2735
|
-
next.set(key, typeof value === "string" ? { path: value, detail: true } : value);
|
|
2736
|
-
}
|
|
2737
|
-
routeMap = next;
|
|
2738
|
-
}
|
|
2739
|
-
function lookup(archetype, kind, entityKey) {
|
|
2740
|
-
if (archetype && kind) {
|
|
2741
|
-
const specific = routeMap.get(`${archetype}:${kind}`);
|
|
2742
|
-
if (specific) return specific;
|
|
2743
|
-
}
|
|
2744
|
-
if (archetype) {
|
|
2745
|
-
const general = routeMap.get(archetype);
|
|
2746
|
-
if (general) return general;
|
|
2747
|
-
}
|
|
2748
|
-
if (entityKey) {
|
|
2749
|
-
const byKey = routeMap.get(entityKey);
|
|
2750
|
-
if (byKey) return byKey;
|
|
2751
|
-
}
|
|
2752
|
-
return null;
|
|
2753
|
-
}
|
|
2754
|
-
function resolveEntityRoute(archetype, kind, entityKey) {
|
|
2755
|
-
return lookup(archetype, kind, entityKey)?.path ?? null;
|
|
2756
|
-
}
|
|
2757
|
-
function entityRouteHasDetail(archetype, kind, entityKey) {
|
|
2758
|
-
return lookup(archetype, kind, entityKey)?.detail ?? false;
|
|
2759
|
-
}
|
|
2760
|
-
function resolveEntityHref(id, archetype, kind, tab, entityKey) {
|
|
2761
|
-
const entry = lookup(archetype, kind, entityKey);
|
|
2762
|
-
if (entry && !entry.detail) return entry.path;
|
|
2763
|
-
let href;
|
|
2764
|
-
if (entry) {
|
|
2765
|
-
href = `${entry.path}/${id}`;
|
|
2766
|
-
} else if (kind) {
|
|
2767
|
-
const plural = kind.endsWith("s") ? kind : kind + "s";
|
|
2768
|
-
href = `/${plural}/${id}`;
|
|
2769
|
-
} else {
|
|
2770
|
-
href = `/${id}`;
|
|
2771
|
-
}
|
|
2772
|
-
if (tab) href += `/${tab}`;
|
|
2773
|
-
return href;
|
|
2774
|
-
}
|
|
2775
|
-
function resolveEntityAnchor(id, archetype, kind, tab, entityKey) {
|
|
2776
|
-
return `#${resolveEntityHref(id, archetype, kind, tab, entityKey)}`;
|
|
2777
|
-
}
|
|
2778
|
-
function openEntity(id, archetype, kind, tab, entityKey) {
|
|
2779
|
-
navigateTo(resolveEntityHref(id, archetype, kind, tab, entityKey));
|
|
2780
|
-
}
|
|
2781
|
-
|
|
2782
2735
|
// src/lib/reveal-page.ts
|
|
2783
2736
|
function revealPage(delayMs = 1200) {
|
|
2784
2737
|
if (typeof window === "undefined" || window.matchMedia("(min-width: 768px)").matches) return;
|
|
@@ -30428,10 +30381,10 @@ function SoftLimitProbes({ keys }) {
|
|
|
30428
30381
|
return /* @__PURE__ */ jsx(Fragment, { children: monitored.map((k) => /* @__PURE__ */ jsx(LimitProbe, { limitKey: k }, k)) });
|
|
30429
30382
|
}
|
|
30430
30383
|
var CommandPalette = React118.lazy(
|
|
30431
|
-
() => import('./CommandPalette-
|
|
30384
|
+
() => import('./CommandPalette-B5PMQFDG.js').then((m) => ({ default: m.CommandPalette }))
|
|
30432
30385
|
);
|
|
30433
30386
|
var SubscriptionPage = React118.lazy(
|
|
30434
|
-
() => import('./SubscriptionPage-
|
|
30387
|
+
() => import('./SubscriptionPage-2JPALG53.js').then((m) => ({ default: m.SubscriptionPage }))
|
|
30435
30388
|
);
|
|
30436
30389
|
function WorkspaceSwitcher({
|
|
30437
30390
|
variant = "sidebar",
|
|
@@ -33037,17 +32990,17 @@ function LookupCreateInline({
|
|
|
33037
32990
|
}
|
|
33038
32991
|
);
|
|
33039
32992
|
}
|
|
33040
|
-
function useLookupCreate(
|
|
32993
|
+
function useLookupCreate(lookup, onCreated, options = {}) {
|
|
33041
32994
|
const [draftName, setDraftName] = React118.useState(null);
|
|
33042
32995
|
const can = usePermissionOptional();
|
|
33043
|
-
const entityDef =
|
|
32996
|
+
const entityDef = lookup?.entityDef;
|
|
33044
32997
|
const feature = entityDef?.permission?.feature;
|
|
33045
32998
|
const allowed = !feature || can(feature, "create");
|
|
33046
|
-
const canCreate = !!
|
|
32999
|
+
const canCreate = !!lookup?.create && allowed;
|
|
33047
33000
|
const createByName = React118.useCallback(async (name) => {
|
|
33048
|
-
if (!
|
|
33049
|
-
onCreated(await
|
|
33050
|
-
}, [
|
|
33001
|
+
if (!lookup?.create) return;
|
|
33002
|
+
onCreated(await lookup.create({ name }));
|
|
33003
|
+
}, [lookup, onCreated]);
|
|
33051
33004
|
const onCreate = React118.useMemo(() => {
|
|
33052
33005
|
if (!canCreate) return void 0;
|
|
33053
33006
|
if (!entityDef) return (name) => {
|
|
@@ -33058,7 +33011,7 @@ function useLookupCreate(lookup2, onCreated, options = {}) {
|
|
|
33058
33011
|
const displayField = entityDef?.displayField ?? entityDef?.fields[0]?.key ?? "name";
|
|
33059
33012
|
const open = !!entityDef && draftName !== null;
|
|
33060
33013
|
const save = async (data) => {
|
|
33061
|
-
const created = await
|
|
33014
|
+
const created = await lookup.create({ ...data, name: String(data[displayField] ?? draftName) });
|
|
33062
33015
|
onCreated(created);
|
|
33063
33016
|
setDraftName(null);
|
|
33064
33017
|
return created;
|
|
@@ -33140,8 +33093,8 @@ function OrderFormItemRow({
|
|
|
33140
33093
|
const [openExtras, setOpenExtras] = React118.useState(
|
|
33141
33094
|
() => (extraFieldGroups ?? []).filter((g) => g.filled).map((g) => g.id)
|
|
33142
33095
|
);
|
|
33143
|
-
const
|
|
33144
|
-
const itemCreate = useLookupCreate(
|
|
33096
|
+
const lookup = entityLookups[itemKind];
|
|
33097
|
+
const itemCreate = useLookupCreate(lookup, (created) => {
|
|
33145
33098
|
onChange({
|
|
33146
33099
|
referenceId: created.id,
|
|
33147
33100
|
description: created.label,
|
|
@@ -33203,7 +33156,7 @@ function OrderFormItemRow({
|
|
|
33203
33156
|
tp.value
|
|
33204
33157
|
)) }),
|
|
33205
33158
|
/* @__PURE__ */ jsxs("div", { className: "fz-fields fz-fields-2", children: [
|
|
33206
|
-
/* @__PURE__ */ jsx("div", { className: "min-w-0", children:
|
|
33159
|
+
/* @__PURE__ */ jsx("div", { className: "min-w-0", children: lookup ? /* @__PURE__ */ jsx(
|
|
33207
33160
|
SearchSelect,
|
|
33208
33161
|
{
|
|
33209
33162
|
label: l.item,
|
|
@@ -33219,7 +33172,7 @@ function OrderFormItemRow({
|
|
|
33219
33172
|
});
|
|
33220
33173
|
},
|
|
33221
33174
|
onSearch: async (q) => {
|
|
33222
|
-
const results = await
|
|
33175
|
+
const results = await lookup.search(q);
|
|
33223
33176
|
return results.map((r) => ({ id: r.id, label: r.label, subtitle: r.subtitle, group: r.group, data: r }));
|
|
33224
33177
|
},
|
|
33225
33178
|
createLabel: l.create,
|
|
@@ -35417,8 +35370,8 @@ function createClientOrdersProvider() {
|
|
|
35417
35370
|
};
|
|
35418
35371
|
}
|
|
35419
35372
|
var PERSON_LOOKUPS = {};
|
|
35420
|
-
function registerPersonLookup(kind,
|
|
35421
|
-
PERSON_LOOKUPS[kind] =
|
|
35373
|
+
function registerPersonLookup(kind, lookup) {
|
|
35374
|
+
PERSON_LOOKUPS[kind] = lookup;
|
|
35422
35375
|
}
|
|
35423
35376
|
function getPersonLookup(kind) {
|
|
35424
35377
|
return PERSON_LOOKUPS[kind] ?? null;
|
|
@@ -35499,7 +35452,11 @@ function toResult(row, display, kindLabels) {
|
|
|
35499
35452
|
}
|
|
35500
35453
|
function createArchetypeLookup(config) {
|
|
35501
35454
|
const baseDisplay = ARCHETYPE_DISPLAY[config.archetype];
|
|
35502
|
-
const display =
|
|
35455
|
+
const display = {
|
|
35456
|
+
...baseDisplay,
|
|
35457
|
+
...config.subtitleFields ? { subtitleFields: config.subtitleFields } : {},
|
|
35458
|
+
...config.table ? { table: config.table } : {}
|
|
35459
|
+
};
|
|
35503
35460
|
const limit = config.limit ?? 20;
|
|
35504
35461
|
const kinds = config.kind ? Array.isArray(config.kind) ? config.kind : [config.kind] : void 0;
|
|
35505
35462
|
function applyKindFilter(qb) {
|
|
@@ -35530,7 +35487,15 @@ function createArchetypeLookup(config) {
|
|
|
35530
35487
|
if (!supabase) return [];
|
|
35531
35488
|
let qb = supabase.from(display.table).select("*").order(display.labelField, { ascending: true }).limit(limit);
|
|
35532
35489
|
qb = config.archetype === "service" ? qb.or("is_active.eq.true,is_active.is.null") : qb.eq("is_active", true);
|
|
35533
|
-
if (query)
|
|
35490
|
+
if (query) {
|
|
35491
|
+
const campos = config.searchFields?.length ? config.searchFields : [display.labelField];
|
|
35492
|
+
if (campos.length === 1) {
|
|
35493
|
+
qb = qb.ilike(campos[0], `%${query}%`);
|
|
35494
|
+
} else {
|
|
35495
|
+
const limpo = query.replace(/[(),"]/g, " ").trim();
|
|
35496
|
+
if (limpo) qb = qb.or(campos.map((c) => `${c}.ilike.%${limpo}%`).join(","));
|
|
35497
|
+
}
|
|
35498
|
+
}
|
|
35534
35499
|
qb = applyKindFilter(qb);
|
|
35535
35500
|
const { data } = await qb;
|
|
35536
35501
|
return (data ?? []).map(
|
|
@@ -36171,7 +36136,7 @@ function formatAge(dob) {
|
|
|
36171
36136
|
return null;
|
|
36172
36137
|
}
|
|
36173
36138
|
}
|
|
36174
|
-
function PersonLink2({ personId, name, lookup
|
|
36139
|
+
function PersonLink2({ personId, name, lookup, kind, profileHref, tab, size = "default", className }) {
|
|
36175
36140
|
const [person, setPerson] = useState(null);
|
|
36176
36141
|
const [loading, setLoading] = useState(false);
|
|
36177
36142
|
const [fetched, setFetched] = useState(false);
|
|
@@ -36180,7 +36145,7 @@ function PersonLink2({ personId, name, lookup: lookup2, kind, profileHref, tab,
|
|
|
36180
36145
|
const fetchPerson = useCallback(() => {
|
|
36181
36146
|
if (!fetched && personId) {
|
|
36182
36147
|
setLoading(true);
|
|
36183
|
-
(
|
|
36148
|
+
(lookup ?? (kind ? getPersonLookup(kind) : null) ?? personLookup).getById(personId).then((result) => {
|
|
36184
36149
|
setPerson(result);
|
|
36185
36150
|
setFetched(true);
|
|
36186
36151
|
setLoading(false);
|
|
@@ -36189,7 +36154,7 @@ function PersonLink2({ personId, name, lookup: lookup2, kind, profileHref, tab,
|
|
|
36189
36154
|
setLoading(false);
|
|
36190
36155
|
});
|
|
36191
36156
|
}
|
|
36192
|
-
}, [personId, fetched,
|
|
36157
|
+
}, [personId, fetched, lookup, kind]);
|
|
36193
36158
|
const handleOpenChange = useCallback((v) => {
|
|
36194
36159
|
setOpen(v);
|
|
36195
36160
|
if (v) fetchPerson();
|
|
@@ -36314,7 +36279,7 @@ function ContactPicker({
|
|
|
36314
36279
|
value,
|
|
36315
36280
|
onChange,
|
|
36316
36281
|
kind,
|
|
36317
|
-
lookup
|
|
36282
|
+
lookup,
|
|
36318
36283
|
allowFreeText = false,
|
|
36319
36284
|
clearable = true,
|
|
36320
36285
|
disabled,
|
|
@@ -36336,8 +36301,8 @@ function ContactPicker({
|
|
|
36336
36301
|
const can = usePermissionOptional();
|
|
36337
36302
|
const activeTenantId = useActiveTenantId();
|
|
36338
36303
|
const resolvedLookup = useMemo(
|
|
36339
|
-
() =>
|
|
36340
|
-
[
|
|
36304
|
+
() => lookup ?? createArchetypeLookup({ archetype: "person", kind }),
|
|
36305
|
+
[lookup, kind]
|
|
36341
36306
|
);
|
|
36342
36307
|
const create30 = useMemo(() => {
|
|
36343
36308
|
if (createEntityDef?.data?.table) {
|
|
@@ -36542,6 +36507,74 @@ function ContactPicker({
|
|
|
36542
36507
|
] })
|
|
36543
36508
|
);
|
|
36544
36509
|
}
|
|
36510
|
+
function usePersistedState(chave, inicial) {
|
|
36511
|
+
const completa = `fayz.list.${chave}`;
|
|
36512
|
+
const [estado, setEstado] = useState(() => {
|
|
36513
|
+
try {
|
|
36514
|
+
const cru = sessionStorage.getItem(completa);
|
|
36515
|
+
return cru === null ? inicial : JSON.parse(cru);
|
|
36516
|
+
} catch {
|
|
36517
|
+
return inicial;
|
|
36518
|
+
}
|
|
36519
|
+
});
|
|
36520
|
+
const guardar = useCallback((valor) => {
|
|
36521
|
+
setEstado((anterior) => {
|
|
36522
|
+
const proximo = typeof valor === "function" ? valor(anterior) : valor;
|
|
36523
|
+
try {
|
|
36524
|
+
sessionStorage.setItem(completa, JSON.stringify(proximo));
|
|
36525
|
+
} catch {
|
|
36526
|
+
}
|
|
36527
|
+
return proximo;
|
|
36528
|
+
});
|
|
36529
|
+
}, [completa]);
|
|
36530
|
+
return [estado, guardar];
|
|
36531
|
+
}
|
|
36532
|
+
function useScrollMemory(chave) {
|
|
36533
|
+
const completa = `fayz.list.scroll.${chave}`;
|
|
36534
|
+
const ancora = useRef(null);
|
|
36535
|
+
const rolante = useCallback(() => {
|
|
36536
|
+
const el = ancora.current;
|
|
36537
|
+
if (!el) return null;
|
|
36538
|
+
return el.closest("main") ?? el.closest("[data-scroll-container]");
|
|
36539
|
+
}, []);
|
|
36540
|
+
useEffect(() => {
|
|
36541
|
+
let y = 0;
|
|
36542
|
+
try {
|
|
36543
|
+
y = Number(sessionStorage.getItem(completa) ?? 0);
|
|
36544
|
+
} catch {
|
|
36545
|
+
}
|
|
36546
|
+
if (!y) return;
|
|
36547
|
+
let vivo = true;
|
|
36548
|
+
let quadros = 0;
|
|
36549
|
+
const tentar = () => {
|
|
36550
|
+
if (!vivo) return;
|
|
36551
|
+
const alvo = rolante();
|
|
36552
|
+
if (alvo && alvo.scrollHeight - alvo.clientHeight >= y) {
|
|
36553
|
+
alvo.scrollTop = y;
|
|
36554
|
+
return;
|
|
36555
|
+
}
|
|
36556
|
+
if (++quadros > 180) return;
|
|
36557
|
+
requestAnimationFrame(tentar);
|
|
36558
|
+
};
|
|
36559
|
+
requestAnimationFrame(tentar);
|
|
36560
|
+
return () => {
|
|
36561
|
+
vivo = false;
|
|
36562
|
+
};
|
|
36563
|
+
}, []);
|
|
36564
|
+
useEffect(() => {
|
|
36565
|
+
const alvo = rolante();
|
|
36566
|
+
if (!alvo) return;
|
|
36567
|
+
const anotar = () => {
|
|
36568
|
+
try {
|
|
36569
|
+
sessionStorage.setItem(completa, String(alvo.scrollTop));
|
|
36570
|
+
} catch {
|
|
36571
|
+
}
|
|
36572
|
+
};
|
|
36573
|
+
alvo.addEventListener("scroll", anotar, { passive: true });
|
|
36574
|
+
return () => alvo.removeEventListener("scroll", anotar);
|
|
36575
|
+
}, [completa, rolante]);
|
|
36576
|
+
return ancora;
|
|
36577
|
+
}
|
|
36545
36578
|
var STORAGE_PREFIX2 = "saas:prefs:";
|
|
36546
36579
|
function readStore(pluginId, defaults) {
|
|
36547
36580
|
try {
|
|
@@ -37263,6 +37296,6 @@ var renderApp = (...args) => {
|
|
|
37263
37296
|
return renderApp$1(...args);
|
|
37264
37297
|
};
|
|
37265
37298
|
|
|
37266
|
-
export { ALWAYS_ON_TOOLS, ActivationChecklistCard, ActivationProvider, AddConnectorButton, AddConnectorPanel, AdminProviders, AdminScaffold, AdminShell, AskAIButton, AskAIMenuItem, AssistantInvite, BoardFrame, ChatConversation, ClientOrdersTab, ConnectConsentPage, ConnectorDeliveries, ConnectorDetail, ConnectorMark, ConnectorRow, ConnectorSyncActions, ConnectorsHub, ConnectorsTab, ContactPicker, CredentialSinkMissingError, CrudCardGrid, CrudDetailPage, CrudDetailSkeleton, CrudFormPage, CrudFormSkeleton, CrudListView, CrudPage, CrudRecordModal, DeleteConfirmDialog, DetailTabHeader, EntitlementGate, EntityLink, GetStarted, GettingStartedWidget, NotebookPanel as HandbookPanel, HandbookProvider, NotebookRailPanel as HandbookRailPanel, KanbanBoard, LimitGate, LookupCreateInline, MemberAccessRailPage, ModuleActionBar, MultiSelectRow, NOTE_LABEL_PREFIX, NotebookPanel, NotebookRailPanel, ONBOARDING_TASK_SOURCE, ORDER_CHANNEL_LABELS, ORDER_KIND_LABELS, OTHER_CONNECTOR, OrderAmount, OrderBoardView, OrderCreateScreen, OrderDetailBlock, OrderDetailPage, OrderDetailRail, OrderDetailRow, OrderDetailSkeleton, OrderDetailView, OrderFormAddItemStep, OrderDetailBlock as OrderFormBlock, OrderFormItemRow, OrderFormItemsCard, OrderFormSkeleton, OrderFormView, OrderListView, OrderPaymentChip, PAYMENT_STATUS_CONFIG, PAYMENT_STATUS_LABEL, PageActions, PaymentStatusBadge, PermissionGate, PersonLink2 as PersonLink, PersonTimeline, PlatformError, PluginRegistryManager, PluginSettingsPanel, ProjectsSettings, QUESTION_PACKS, QuickActionsButton, RECEIVABLE_LABEL, RecordPickerModal, RegistryCrudView2 as RegistryCrudView, RightRailActions, RightRailLeading, RightRailPage, RouteErrorBoundary, RouteErrorScreen, SelectRow, SettingsGroup, SettingsTabs, SetupAgentSurface, SetupMeLink, SeuSiteWidget, StateChip, TASK_PRIORITIES, TASK_STATUSES, TaskCard, TaskDetail, TaskGroup, TaskLabelBadge, TaskLabelBadges, TaskPriorityBadge, TaskQuickAdd, TaskSourceBadge, TaskStatusGroup, TasksFilterBar, TasksPanel, TasksRailPanel, TeachMeLink, TextRow, ToggleRow, UnitSwitcher, UnitsSettingsPage, UpgradePrompt, WORKSPACE_SETUP_FLOW_ID, WORKSPACE_SETUP_FLOW_VERSION, WORKSPACE_SETUP_ROUTE, WidgetSlot, WorkspaceSetupFlow, WorkspaceSetupGate, appendHandbookPage, askAI, beautyPack, brandMark, buildBusinessProfile, buildHandbookTree, buildWorkspaceSetupSteps, businessProfileBlock, categoryLabel, checkSlugAvailable, claimTasksSurface, connectorOptions, connectorRoute, connectorRows, createArchetypeLookup, createClientOrdersProvider, createCrudPage, createFayzApp, createFayzProject, createLogoUploader, createMockTasksProvider, createCrudPage as createNativeCrudPage, createPlaceholder, createPlatformProject, createPluginContext, createSupabaseTasksProvider, createViewRouter, currentBusinessProfileBlock, dedup, defaultProjectOf, defineSaas, deleteFayzProject, deriveAgentContract, duplicateWrite, ensureChecklist, exportToCSV, filterConnectors, foodPack, formatActivityElapsed, formatCurrency4 as formatCurrency, formatSetupGuide, getActiveAgent, getAgent, getDefaultFayzProject, getFayzAgentClient, getGenerationStatus, getHost, getPersonBookable, getPersonLookup, getPersonPath, getPreview, getQuestionPack, getRailPage, getSetupGuide, getSetupGuideForStep, getTasksProvider, getTimelineSources, helpWith, humanizeWriteError, inferVerticalId, invalidateOrderReceivable, invalidateOrdersPaymentStatus, invalidateRelationOptions, isPlatformConnected, listFayzProjects, listHandbook, listPlatformProjects, listSetupGuides, loadArea, loadTools, loadedToolNames, mergeLines, needsCredentialSink, normalizePath, openAssistant, openAssistantAs, openConnectorsPanel,
|
|
37299
|
+
export { ALWAYS_ON_TOOLS, ActivationChecklistCard, ActivationProvider, AddConnectorButton, AddConnectorPanel, AdminProviders, AdminScaffold, AdminShell, AskAIButton, AskAIMenuItem, AssistantInvite, BoardFrame, ChatConversation, ClientOrdersTab, ConnectConsentPage, ConnectorDeliveries, ConnectorDetail, ConnectorMark, ConnectorRow, ConnectorSyncActions, ConnectorsHub, ConnectorsTab, ContactPicker, CredentialSinkMissingError, CrudCardGrid, CrudDetailPage, CrudDetailSkeleton, CrudFormPage, CrudFormSkeleton, CrudListView, CrudPage, CrudRecordModal, DeleteConfirmDialog, DetailTabHeader, EntitlementGate, EntityLink, GetStarted, GettingStartedWidget, NotebookPanel as HandbookPanel, HandbookProvider, NotebookRailPanel as HandbookRailPanel, KanbanBoard, LimitGate, LookupCreateInline, MemberAccessRailPage, ModuleActionBar, MultiSelectRow, NOTE_LABEL_PREFIX, NotebookPanel, NotebookRailPanel, ONBOARDING_TASK_SOURCE, ORDER_CHANNEL_LABELS, ORDER_KIND_LABELS, OTHER_CONNECTOR, OrderAmount, OrderBoardView, OrderCreateScreen, OrderDetailBlock, OrderDetailPage, OrderDetailRail, OrderDetailRow, OrderDetailSkeleton, OrderDetailView, OrderFormAddItemStep, OrderDetailBlock as OrderFormBlock, OrderFormItemRow, OrderFormItemsCard, OrderFormSkeleton, OrderFormView, OrderListView, OrderPaymentChip, PAYMENT_STATUS_CONFIG, PAYMENT_STATUS_LABEL, PageActions, PaymentStatusBadge, PermissionGate, PersonLink2 as PersonLink, PersonTimeline, PlatformError, PluginRegistryManager, PluginSettingsPanel, ProjectsSettings, QUESTION_PACKS, QuickActionsButton, RECEIVABLE_LABEL, RecordPickerModal, RegistryCrudView2 as RegistryCrudView, RightRailActions, RightRailLeading, RightRailPage, RouteErrorBoundary, RouteErrorScreen, SelectRow, SettingsGroup, SettingsTabs, SetupAgentSurface, SetupMeLink, SeuSiteWidget, StateChip, TASK_PRIORITIES, TASK_STATUSES, TaskCard, TaskDetail, TaskGroup, TaskLabelBadge, TaskLabelBadges, TaskPriorityBadge, TaskQuickAdd, TaskSourceBadge, TaskStatusGroup, TasksFilterBar, TasksPanel, TasksRailPanel, TeachMeLink, TextRow, ToggleRow, UnitSwitcher, UnitsSettingsPage, UpgradePrompt, WORKSPACE_SETUP_FLOW_ID, WORKSPACE_SETUP_FLOW_VERSION, WORKSPACE_SETUP_ROUTE, WidgetSlot, WorkspaceSetupFlow, WorkspaceSetupGate, appendHandbookPage, askAI, beautyPack, brandMark, buildBusinessProfile, buildHandbookTree, buildWorkspaceSetupSteps, businessProfileBlock, categoryLabel, checkSlugAvailable, claimTasksSurface, connectorOptions, connectorRoute, connectorRows, createArchetypeLookup, createClientOrdersProvider, createCrudPage, createFayzApp, createFayzProject, createLogoUploader, createMockTasksProvider, createCrudPage as createNativeCrudPage, createPlaceholder, createPlatformProject, createPluginContext, createSupabaseTasksProvider, createViewRouter, currentBusinessProfileBlock, dedup, defaultProjectOf, defineSaas, deleteFayzProject, deriveAgentContract, duplicateWrite, ensureChecklist, exportToCSV, filterConnectors, foodPack, formatActivityElapsed, formatCurrency4 as formatCurrency, formatSetupGuide, getActiveAgent, getAgent, getDefaultFayzProject, getFayzAgentClient, getGenerationStatus, getHost, getPersonBookable, getPersonLookup, getPersonPath, getPreview, getQuestionPack, getRailPage, getSetupGuide, getSetupGuideForStep, getTasksProvider, getTimelineSources, helpWith, humanizeWriteError, inferVerticalId, invalidateOrderReceivable, invalidateOrdersPaymentStatus, invalidateRelationOptions, isPlatformConnected, listFayzProjects, listHandbook, listPlatformProjects, listSetupGuides, loadArea, loadTools, loadedToolNames, mergeLines, needsCredentialSink, normalizePath, openAssistant, openAssistantAs, openConnectorsPanel, orderChannelColumn, orderIsEditable, orderKindColumn, orientationTour, parseViewId, publishAssistantActivity, readAttachmentBytes, readHandbookPage, readSetupAnswers, receivableTone, recordOnboardingResponse, registerAdminScaffold, registerAssistantLauncher, registerEntityPath, registerNotesTasksAdapter, registerPersonLookup, registerRailPage, registerSetupGuides, registerTimelineSource, renderApp, renderHandbookOutline, requestChatUpload, requestProjectChange, resetLoadedTools, resolveFayzAgentConnection, resolveSetupMode, resolveVerticalId, retailPack, revealPage, runWelcome, searchHandbook, searchSetupGuides, setPersonBookable, setTasksProvider, setUpWithMe, slugify, soleAgent, splitConnectorValues, splitOnboardingTasks, startGuidedRun, startPreview, stopPreview, submitConnection, submitWorkspaceSetup, summariseSetupGuides, taskEntityDef, tasksSurfaceOwner, teachMe, toInlineFile, toOrderDetailReceivable, unregisterAssistantLauncher, unregisterTimelineSource, updateFayzProject, useActivationStore, useActiveAgent, useAgent, useAgentStore, useAgentSurface, useAppConfig, useAssistantActivity, useAssistantInviteStore, useAssistantLaunchers, useBusinessProfileStore, useChatStore, useConnectors, useConnectorsPanelAvailable, useContextualNav, useContextualNavStore, useDelegateToAssistant, useFayzProjectsStore, useFeatureHelp, useFieldRules, useHandbookStore, useHasRightRail, useHeaderAction, useHeaderActions, useLaunchersForRole, useLookupCreate, useMemberAccessPanel, useModuleNavigation, useNavContribution, useNavContributionsStore, useNotesTasksBridge, useOrderDetail, useOrderEditor, useOrderReceivable, useOrdersPaymentStatus, usePersistedState, usePersonTimeline, usePluginPrefs, usePublishAssistantActivity, useRegisterAssistantLauncher, useRightRailDrill, useRightRailHosted, useRightRailPanel, useRightRailStore, useScrollMemory, useSettingsTabsStore, useShellRailAvailable, useTasksStore, useTasksSummaryLine, useTeachMe, useTenantPluginSettings, useUnitBootstrap, useUnitStore, useWidgetSurface, useWorkspaceSetupBusy, useWorkspaceSetupGate, useWorkspaceSetupStore, validateSetupGuides, withdrawAssistantActivity, writeHandbookPage };
|
|
37267
37300
|
//# sourceMappingURL=index.js.map
|
|
37268
37301
|
//# sourceMappingURL=index.js.map
|