@fayz-ai/admin 0.14.0 → 0.15.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/{ScheduleEditor-S3QI5MHO.js → ScheduleEditor-57AYL7B6.js} +4 -4
- package/dist/{ScheduleEditor-S3QI5MHO.js.map → ScheduleEditor-57AYL7B6.js.map} +1 -1
- package/dist/SubscriptionPage-FE2B5ZXF.js +7 -0
- package/dist/{SubscriptionPage-4KP7DKA2.js.map → SubscriptionPage-FE2B5ZXF.js.map} +1 -1
- package/dist/app/AdminShell.d.ts +11 -1
- package/dist/app/AdminShell.d.ts.map +1 -1
- package/dist/app/admin-app.d.ts.map +1 -1
- package/dist/app/config.d.ts +34 -3
- package/dist/app/config.d.ts.map +1 -1
- package/dist/app/core-entities.d.ts.map +1 -1
- package/dist/app/derive-contract.d.ts.map +1 -1
- package/dist/app/scaffold.d.ts.map +1 -1
- package/dist/{chunk-OI7RYSTM.js → chunk-45EZQW4M.js} +22 -7
- package/dist/chunk-45EZQW4M.js.map +1 -0
- package/dist/{chunk-B6NVEKAJ.js → chunk-IPWXA46H.js} +3 -3
- package/dist/{chunk-B6NVEKAJ.js.map → chunk-IPWXA46H.js.map} +1 -1
- package/dist/{chunk-PNAJODZM.js → chunk-OB7ZSTQD.js} +13 -3
- package/dist/chunk-OB7ZSTQD.js.map +1 -0
- package/dist/components/AskAI.d.ts +71 -0
- package/dist/components/AskAI.d.ts.map +1 -0
- package/dist/components/RightRail.d.ts +10 -2
- package/dist/components/RightRail.d.ts.map +1 -1
- package/dist/components/RightRailPage.d.ts +30 -0
- package/dist/components/RightRailPage.d.ts.map +1 -0
- package/dist/components/chat/AgentAvatar.d.ts +43 -0
- package/dist/components/chat/AgentAvatar.d.ts.map +1 -0
- package/dist/components/chat/AgentIntro.d.ts +25 -0
- package/dist/components/chat/AgentIntro.d.ts.map +1 -0
- package/dist/components/chat/AssistantActivityBar.d.ts +7 -2
- package/dist/components/chat/AssistantActivityBar.d.ts.map +1 -1
- package/dist/components/chat/AssistantRecordingView.d.ts +16 -0
- package/dist/components/chat/AssistantRecordingView.d.ts.map +1 -0
- package/dist/components/chat/ChatAttachments.d.ts +12 -1
- package/dist/components/chat/ChatAttachments.d.ts.map +1 -1
- package/dist/components/chat/ChatComposer.d.ts +1 -4
- package/dist/components/chat/ChatComposer.d.ts.map +1 -1
- package/dist/components/chat/ChatConversation.d.ts +1 -1
- package/dist/components/chat/ChatConversation.d.ts.map +1 -1
- package/dist/components/chat/ChatFab.d.ts.map +1 -1
- package/dist/components/chat/ChatHistory.d.ts.map +1 -1
- package/dist/components/chat/ChatMessages.d.ts +1 -1
- package/dist/components/chat/ChatMessages.d.ts.map +1 -1
- package/dist/components/chat/ChatSuggestions.d.ts.map +1 -1
- package/dist/components/chat/ConnectorSuggestionCard.d.ts +3 -0
- package/dist/components/chat/ConnectorSuggestionCard.d.ts.map +1 -1
- package/dist/components/chat/StaffHireView.d.ts +21 -0
- package/dist/components/chat/StaffHireView.d.ts.map +1 -0
- package/dist/components/chat/StaffPitchCard.d.ts +15 -0
- package/dist/components/chat/StaffPitchCard.d.ts.map +1 -0
- package/dist/components/chat/StaffSwitcher.d.ts +23 -0
- package/dist/components/chat/StaffSwitcher.d.ts.map +1 -0
- package/dist/components/chat/activity-icons.d.ts +16 -0
- package/dist/components/chat/activity-icons.d.ts.map +1 -0
- package/dist/components/chat/index.d.ts +2 -0
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/connect/ConnectConsentPage.d.ts.map +1 -1
- package/dist/components/connect/ConnectorDetail.d.ts.map +1 -1
- package/dist/components/connect/ConnectorRuns.d.ts.map +1 -1
- package/dist/components/connect/ConnectorsPanel.d.ts.map +1 -1
- package/dist/components/connect/ConnectorsTab.d.ts.map +1 -1
- package/dist/components/connect/connector-map.generated.d.ts.map +1 -1
- package/dist/components/connect/index.d.ts +3 -0
- package/dist/components/connect/index.d.ts.map +1 -1
- package/dist/components/connect/model.d.ts +55 -0
- package/dist/components/connect/model.d.ts.map +1 -1
- package/dist/components/organization/PermissionMatrixEditor.d.ts.map +1 -1
- package/dist/components/organization/PermissionProfilesTab.d.ts.map +1 -1
- package/dist/components/organization/TeamTab.d.ts.map +1 -1
- package/dist/components/organization/index.d.ts +0 -2
- package/dist/components/organization/index.d.ts.map +1 -1
- package/dist/components/plugins/PluginSettingsPanel.d.ts +1 -2
- package/dist/components/plugins/PluginSettingsPanel.d.ts.map +1 -1
- package/dist/components/plugins/SettingsTabs.d.ts +33 -0
- package/dist/components/plugins/SettingsTabs.d.ts.map +1 -0
- package/dist/components/rail-pages.d.ts +17 -0
- package/dist/components/rail-pages.d.ts.map +1 -0
- package/dist/components/right-rail.d.ts +95 -1
- package/dist/components/right-rail.d.ts.map +1 -1
- package/dist/components/settings/ConnectedCompanySettings.d.ts.map +1 -1
- package/dist/components/settings/ConnectedUserProfile.d.ts.map +1 -1
- package/dist/components/settings/LocationsCrudPage.d.ts.map +1 -1
- package/dist/components/settings/MyRecordPanel.d.ts +3 -0
- package/dist/components/settings/MyRecordPanel.d.ts.map +1 -0
- package/dist/components/settings/MyWorkspaceCard.d.ts +3 -0
- package/dist/components/settings/MyWorkspaceCard.d.ts.map +1 -0
- package/dist/components/shared/ContactPicker.d.ts +26 -12
- package/dist/components/shared/ContactPicker.d.ts.map +1 -1
- package/dist/crud/CrudAgentSurface.d.ts +12 -0
- package/dist/crud/CrudAgentSurface.d.ts.map +1 -0
- package/dist/crud/CrudDetailPage.d.ts +19 -1
- package/dist/crud/CrudDetailPage.d.ts.map +1 -1
- package/dist/crud/CrudFormPage.d.ts +23 -1
- package/dist/crud/CrudFormPage.d.ts.map +1 -1
- package/dist/crud/CrudListView.d.ts +19 -14
- package/dist/crud/CrudListView.d.ts.map +1 -1
- package/dist/crud/CrudPage.d.ts +17 -1
- package/dist/crud/CrudPage.d.ts.map +1 -1
- package/dist/crud/CrudRecordModal.d.ts +9 -3
- package/dist/crud/CrudRecordModal.d.ts.map +1 -1
- package/dist/crud/LookupCreateInline.d.ts +15 -0
- package/dist/crud/LookupCreateInline.d.ts.map +1 -0
- package/dist/crud/archetype-lookup.d.ts +19 -6
- package/dist/crud/archetype-lookup.d.ts.map +1 -1
- package/dist/crud/archetypes/AddressesTab.d.ts.map +1 -1
- package/dist/crud/archetypes/LocationDetailTabs.d.ts +3 -2
- package/dist/crud/archetypes/LocationDetailTabs.d.ts.map +1 -1
- package/dist/crud/archetypes/OrderDetailView.d.ts +4 -1
- package/dist/crud/archetypes/OrderDetailView.d.ts.map +1 -1
- package/dist/crud/archetypes/OrderFormView.d.ts +13 -2
- package/dist/crud/archetypes/OrderFormView.d.ts.map +1 -1
- package/dist/crud/archetypes/PersonDetailTabs.d.ts +2 -1
- package/dist/crud/archetypes/PersonDetailTabs.d.ts.map +1 -1
- package/dist/crud/archetypes/PersonPicker.d.ts.map +1 -1
- package/dist/crud/createCrudPage.d.ts +8 -0
- package/dist/crud/createCrudPage.d.ts.map +1 -1
- package/dist/crud/useLookupCreate.d.ts +30 -0
- package/dist/crud/useLookupCreate.d.ts.map +1 -0
- package/dist/data/client.d.ts.map +1 -1
- package/dist/hooks/useAITools.d.ts +1 -0
- package/dist/hooks/useAITools.d.ts.map +1 -1
- package/dist/hooks/useChat.d.ts.map +1 -1
- package/dist/index.d.ts +21 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15362 -8467
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-staff.d.ts +117 -0
- package/dist/lib/agent-staff.d.ts.map +1 -0
- package/dist/lib/agent-surface.d.ts +4 -0
- package/dist/lib/agent-surface.d.ts.map +1 -1
- package/dist/lib/agent-threads.d.ts +15 -0
- package/dist/lib/agent-threads.d.ts.map +1 -0
- package/dist/lib/ai-tool-handlers.d.ts.map +1 -1
- package/dist/lib/assistant-activity.d.ts +47 -4
- package/dist/lib/assistant-activity.d.ts.map +1 -1
- package/dist/lib/assistant-invite.d.ts +20 -1
- package/dist/lib/assistant-invite.d.ts.map +1 -1
- package/dist/lib/assistant-text.d.ts +9 -0
- package/dist/lib/assistant-text.d.ts.map +1 -0
- package/dist/lib/chat-upload.d.ts +12 -0
- package/dist/lib/chat-upload.d.ts.map +1 -0
- package/dist/lib/core-ai-tools.d.ts +17 -0
- package/dist/lib/core-ai-tools.d.ts.map +1 -1
- package/dist/lib/fayz-agent.d.ts +9 -0
- package/dist/lib/fayz-agent.d.ts.map +1 -1
- package/dist/lib/staff-cards.d.ts +11 -0
- package/dist/lib/staff-cards.d.ts.map +1 -0
- package/dist/lib/unit-ai-handlers.d.ts +2 -0
- package/dist/lib/unit-ai-handlers.d.ts.map +1 -0
- package/dist/lib/unit-ai-tools.d.ts +3 -0
- package/dist/lib/unit-ai-tools.d.ts.map +1 -0
- package/dist/onboarding/GettingStartedWidget.d.ts +13 -0
- package/dist/onboarding/GettingStartedWidget.d.ts.map +1 -0
- package/dist/onboarding/WorkspaceSetupFlow.d.ts +24 -0
- package/dist/onboarding/WorkspaceSetupFlow.d.ts.map +1 -0
- package/dist/onboarding/WorkspaceSetupGate.d.ts +25 -0
- package/dist/onboarding/WorkspaceSetupGate.d.ts.map +1 -0
- package/dist/onboarding/analyze-site.d.ts +23 -0
- package/dist/onboarding/analyze-site.d.ts.map +1 -0
- package/dist/onboarding/backend.d.ts +44 -0
- package/dist/onboarding/backend.d.ts.map +1 -0
- package/dist/onboarding/checklist.d.ts +55 -0
- package/dist/onboarding/checklist.d.ts.map +1 -0
- package/dist/onboarding/connector-options.d.ts +52 -0
- package/dist/onboarding/connector-options.d.ts.map +1 -0
- package/dist/onboarding/decide.d.ts +36 -0
- package/dist/onboarding/decide.d.ts.map +1 -0
- package/dist/onboarding/index.d.ts +19 -0
- package/dist/onboarding/index.d.ts.map +1 -0
- package/dist/onboarding/infer-vertical.d.ts +2 -0
- package/dist/onboarding/infer-vertical.d.ts.map +1 -0
- package/dist/onboarding/packs/beauty.d.ts +4 -0
- package/dist/onboarding/packs/beauty.d.ts.map +1 -0
- package/dist/onboarding/packs/food.d.ts +4 -0
- package/dist/onboarding/packs/food.d.ts.map +1 -0
- package/dist/onboarding/packs/index.d.ts +17 -0
- package/dist/onboarding/packs/index.d.ts.map +1 -0
- package/dist/onboarding/packs/retail.d.ts +8 -0
- package/dist/onboarding/packs/retail.d.ts.map +1 -0
- package/dist/onboarding/questions.d.ts +41 -0
- package/dist/onboarding/questions.d.ts.map +1 -0
- package/dist/onboarding/resolve.d.ts +12 -0
- package/dist/onboarding/resolve.d.ts.map +1 -0
- package/dist/onboarding/steps.d.ts +31 -0
- package/dist/onboarding/steps.d.ts.map +1 -0
- package/dist/onboarding/store.d.ts +17 -0
- package/dist/onboarding/store.d.ts.map +1 -0
- package/dist/onboarding/submit.d.ts +25 -0
- package/dist/onboarding/submit.d.ts.map +1 -0
- package/dist/onboarding/tasks.d.ts +28 -0
- package/dist/onboarding/tasks.d.ts.map +1 -0
- package/dist/onboarding/types.d.ts +39 -0
- package/dist/onboarding/types.d.ts.map +1 -0
- package/dist/onboarding/useWorkspaceSetupGate.d.ts +36 -0
- package/dist/onboarding/useWorkspaceSetupGate.d.ts.map +1 -0
- package/dist/org/context.d.ts +10 -0
- package/dist/org/context.d.ts.map +1 -1
- package/dist/org/index.js +2 -2
- package/dist/org/self.d.ts +50 -0
- package/dist/org/self.d.ts.map +1 -0
- package/dist/plugins/QuickActionsButton.d.ts.map +1 -1
- package/dist/stores/chat.store.d.ts +150 -2
- package/dist/stores/chat.store.d.ts.map +1 -1
- package/dist/tasks/TasksRailPanel.d.ts +4 -0
- package/dist/tasks/TasksRailPanel.d.ts.map +1 -0
- package/dist/tasks/components/TaskCard.d.ts +11 -0
- package/dist/tasks/components/TaskCard.d.ts.map +1 -0
- package/dist/tasks/components/TaskDetail.d.ts +5 -0
- package/dist/tasks/components/TaskDetail.d.ts.map +1 -0
- package/dist/tasks/components/TaskLabelBadge.d.ts +9 -0
- package/dist/tasks/components/TaskLabelBadge.d.ts.map +1 -0
- package/dist/tasks/components/TaskPriorityBadge.d.ts +7 -0
- package/dist/tasks/components/TaskPriorityBadge.d.ts.map +1 -0
- package/dist/tasks/components/TaskQuickAdd.d.ts +5 -0
- package/dist/tasks/components/TaskQuickAdd.d.ts.map +1 -0
- package/dist/tasks/components/TaskSourceBadge.d.ts +5 -0
- package/dist/tasks/components/TaskSourceBadge.d.ts.map +1 -0
- package/dist/tasks/components/TaskStatusGroup.d.ts +17 -0
- package/dist/tasks/components/TaskStatusGroup.d.ts.map +1 -0
- package/dist/tasks/components/TasksFilterBar.d.ts +3 -0
- package/dist/tasks/components/TasksFilterBar.d.ts.map +1 -0
- package/dist/tasks/components/TasksPanel.d.ts +14 -0
- package/dist/tasks/components/TasksPanel.d.ts.map +1 -0
- package/dist/tasks/data/mock.d.ts +3 -0
- package/dist/tasks/data/mock.d.ts.map +1 -0
- package/dist/tasks/data/supabase.d.ts +3 -0
- package/dist/tasks/data/supabase.d.ts.map +1 -0
- package/dist/tasks/entity.d.ts +11 -0
- package/dist/tasks/entity.d.ts.map +1 -0
- package/dist/tasks/index.d.ts +17 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/registry.d.ts +3 -0
- package/dist/tasks/registry.d.ts.map +1 -0
- package/dist/tasks/store.d.ts +34 -0
- package/dist/tasks/store.d.ts.map +1 -0
- package/dist/tasks/types.d.ts +89 -0
- package/dist/tasks/types.d.ts.map +1 -0
- package/dist/theme/index.d.ts +1 -1
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/utils.d.ts +14 -0
- package/dist/theme/utils.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/plugins.d.ts +3 -0
- package/dist/types/plugins.d.ts.map +1 -1
- package/dist/units/MemberAccessRailPage.d.ts +19 -0
- package/dist/units/MemberAccessRailPage.d.ts.map +1 -0
- package/dist/units/MemberUnitsCell.d.ts +11 -0
- package/dist/units/MemberUnitsCell.d.ts.map +1 -0
- package/dist/units/PersonUnitsTab.d.ts +5 -0
- package/dist/units/PersonUnitsTab.d.ts.map +1 -0
- package/dist/units/UnitMembersTab.d.ts +5 -0
- package/dist/units/UnitMembersTab.d.ts.map +1 -0
- package/dist/units/UnitMenuSection.d.ts +15 -0
- package/dist/units/UnitMenuSection.d.ts.map +1 -0
- package/dist/units/UnitModeCard.d.ts +3 -0
- package/dist/units/UnitModeCard.d.ts.map +1 -0
- package/dist/units/UnitRailPage.d.ts +10 -0
- package/dist/units/UnitRailPage.d.ts.map +1 -0
- package/dist/units/UnitSwitcher.d.ts +5 -0
- package/dist/units/UnitSwitcher.d.ts.map +1 -0
- package/dist/units/UnitsSettingsPage.d.ts +3 -0
- package/dist/units/UnitsSettingsPage.d.ts.map +1 -0
- package/dist/units/cache.d.ts +26 -0
- package/dist/units/cache.d.ts.map +1 -0
- package/dist/units/data.d.ts +111 -0
- package/dist/units/data.d.ts.map +1 -0
- package/dist/units/device.d.ts +26 -0
- package/dist/units/device.d.ts.map +1 -0
- package/dist/units/entry.d.ts +52 -0
- package/dist/units/entry.d.ts.map +1 -0
- package/dist/units/geo.d.ts +18 -0
- package/dist/units/geo.d.ts.map +1 -0
- package/dist/units/index.d.ts +18 -0
- package/dist/units/index.d.ts.map +1 -0
- package/dist/units/store.d.ts +32 -0
- package/dist/units/store.d.ts.map +1 -0
- package/dist/units/useUnitBootstrap.d.ts +10 -0
- package/dist/units/useUnitBootstrap.d.ts.map +1 -0
- package/package.json +7 -7
- package/dist/SubscriptionPage-4KP7DKA2.js +0 -7
- package/dist/chunk-OI7RYSTM.js.map +0 -1
- package/dist/chunk-PNAJODZM.js.map +0 -1
- package/dist/components/organization/OrgInitializer.d.ts +0 -7
- package/dist/components/organization/OrgInitializer.d.ts.map +0 -1
- package/dist/components/organization/OrgSwitcher.d.ts +0 -7
- package/dist/components/organization/OrgSwitcher.d.ts.map +0 -1
- package/dist/components/organization/TenantOnboarding.d.ts +0 -9
- package/dist/components/organization/TenantOnboarding.d.ts.map +0 -1
- package/dist/components/shared/create-person.d.ts +0 -20
- package/dist/components/shared/create-person.d.ts.map +0 -1
- package/dist/types/entity-lookup.d.ts +0 -27
- package/dist/types/entity-lookup.d.ts.map +0 -1
|
@@ -44,6 +44,33 @@ export interface ChatConnectorCard {
|
|
|
44
44
|
/** The screen a human finishes it on. Only ever set for a state that has one. */
|
|
45
45
|
route?: string;
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* A colleague the tenant has not hired, offered under the reply.
|
|
49
|
+
*
|
|
50
|
+
* The third sibling of {@link ChatRecordLink} and {@link ChatConnectorCard}, and
|
|
51
|
+
* the honest answer to a request whose tools are absent: the agent cannot do
|
|
52
|
+
* growth work without the growth toolset, so instead of improvising it names
|
|
53
|
+
* who does that job and what hiring them would buy.
|
|
54
|
+
*/
|
|
55
|
+
export interface ChatStaffCard {
|
|
56
|
+
kind: 'staff';
|
|
57
|
+
/** AgentRole of the colleague. Kept as a plain string — the store is shape,
|
|
58
|
+
* not vocabulary, and a resumed thread may carry a role since retired. */
|
|
59
|
+
role: string;
|
|
60
|
+
name: string;
|
|
61
|
+
title: string;
|
|
62
|
+
avatar?: string;
|
|
63
|
+
/** From the cast's `pitch`. Absent ⇒ the card shows the goal alone. */
|
|
64
|
+
headline?: string;
|
|
65
|
+
bullets?: string[];
|
|
66
|
+
goal?: string;
|
|
67
|
+
/** Entitlement to unlock — what the "Contratar" button asks the plan for. */
|
|
68
|
+
feature: string;
|
|
69
|
+
}
|
|
70
|
+
export type ChatCard = ChatConnectorCard | ChatStaffCard;
|
|
71
|
+
/** Identity for dedupe: a connector is its slug, a colleague their role. The
|
|
72
|
+
* kind prefix keeps the two id spaces from ever colliding. */
|
|
73
|
+
export declare function chatCardKey(card: ChatCard): string;
|
|
47
74
|
export interface ChatToolCall {
|
|
48
75
|
name: string;
|
|
49
76
|
/** Pretty-printed arguments (may be empty). */
|
|
@@ -67,13 +94,24 @@ export interface ChatMessage {
|
|
|
67
94
|
/** Records to offer as navigation buttons under the reply. */
|
|
68
95
|
links?: ChatRecordLink[];
|
|
69
96
|
/** Integrations the reply found, rendered as cards under it. */
|
|
70
|
-
cards?:
|
|
97
|
+
cards?: ChatCard[];
|
|
71
98
|
/** Files sent with this turn. Name and shape only — the bytes stayed here. */
|
|
72
99
|
attachments?: Array<{
|
|
73
100
|
name: string;
|
|
74
101
|
kind: AttachmentKind;
|
|
75
102
|
rowCount?: number;
|
|
76
103
|
}>;
|
|
104
|
+
/** Which colleague said it — the avatar and the name on the bubble. Absent on
|
|
105
|
+
* an app with no cast, and on every message written before it had one. */
|
|
106
|
+
agentKey?: string;
|
|
107
|
+
/** Renders as a divider instead of a bubble: the baton passing, in the open.
|
|
108
|
+
* A hand-off the user cannot see is a personality change out of nowhere. */
|
|
109
|
+
notice?: {
|
|
110
|
+
kind: 'handoff';
|
|
111
|
+
from?: string;
|
|
112
|
+
to: string;
|
|
113
|
+
topic?: string;
|
|
114
|
+
};
|
|
77
115
|
}
|
|
78
116
|
/**
|
|
79
117
|
* A write the agent wants to perform, parked until the human decides. The turn
|
|
@@ -148,9 +186,52 @@ export interface ChatAttachment {
|
|
|
148
186
|
kind: AttachmentKind;
|
|
149
187
|
status: 'parsing' | 'ready' | 'error';
|
|
150
188
|
digest?: AttachmentDigest;
|
|
189
|
+
/** Object URL for an image, so the chip shows the picture instead of a
|
|
190
|
+
* paperclip. Revoked when the chip goes. */
|
|
191
|
+
previewUrl?: string;
|
|
151
192
|
/** i18n suffix under `chat.attachments.error.*` — the chip says what failed. */
|
|
152
193
|
error?: string;
|
|
153
194
|
}
|
|
195
|
+
/** A stored file referenced by URL, not by bytes. */
|
|
196
|
+
export interface ComposerMedia {
|
|
197
|
+
url: string;
|
|
198
|
+
name: string;
|
|
199
|
+
mime?: string;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* A file the assistant asked for, and what to do with it.
|
|
203
|
+
*
|
|
204
|
+
* `onFiles` belongs to the tool that asked — the chat is the doorway, not the
|
|
205
|
+
* destination. That is what lets a photo be READ (menu import, receipt capture)
|
|
206
|
+
* instead of merely mentioned: the bytes go to the screen that knows what they
|
|
207
|
+
* are, never into the turn.
|
|
208
|
+
*/
|
|
209
|
+
export interface UploadRequest {
|
|
210
|
+
id: string;
|
|
211
|
+
/** The button's own words: "Subir foto do cardápio". */
|
|
212
|
+
label: string;
|
|
213
|
+
/** One line under it — what a good photo looks like. */
|
|
214
|
+
description?: string;
|
|
215
|
+
accept?: string;
|
|
216
|
+
multiple?: boolean;
|
|
217
|
+
/** 'environment' opens the rear camera on a phone; ignored on desktop. */
|
|
218
|
+
capture?: 'environment' | 'user';
|
|
219
|
+
onFiles: (files: File[]) => void | Promise<void>;
|
|
220
|
+
status?: 'waiting' | 'working';
|
|
221
|
+
/**
|
|
222
|
+
* What the user has handed over so far, held in the card.
|
|
223
|
+
*
|
|
224
|
+
* They accumulate instead of firing on the first pick: a menu is several
|
|
225
|
+
* pages, and reading page one while the user is still photographing page two
|
|
226
|
+
* would split one cardápio into two imports.
|
|
227
|
+
*/
|
|
228
|
+
files: StagedUpload[];
|
|
229
|
+
}
|
|
230
|
+
export interface StagedUpload {
|
|
231
|
+
file: File;
|
|
232
|
+
/** Object URL for the thumbnail. Revoked when the file leaves the card. */
|
|
233
|
+
previewUrl?: string;
|
|
234
|
+
}
|
|
154
235
|
/** What the card sends back: the decision, plus the values as edited. */
|
|
155
236
|
export interface PendingActionResult {
|
|
156
237
|
approved: boolean;
|
|
@@ -172,6 +253,21 @@ interface ChatState {
|
|
|
172
253
|
* so subsequent turns only send the new message plus this id.
|
|
173
254
|
*/
|
|
174
255
|
conversationId: string | null;
|
|
256
|
+
/**
|
|
257
|
+
* Whose thread is loaded right now, and the parked transcripts of everyone
|
|
258
|
+
* else. Each colleague keeps their own conversation — you don't ask the
|
|
259
|
+
* front desk something and find the growth specialist mid-sentence.
|
|
260
|
+
*
|
|
261
|
+
* Empty on an app with no cast: `threadRole` stays null and the store behaves
|
|
262
|
+
* exactly as it did with a single assistant.
|
|
263
|
+
*/
|
|
264
|
+
threadRole: string | null;
|
|
265
|
+
threads: Record<string, {
|
|
266
|
+
messages: ChatMessage[];
|
|
267
|
+
conversationId: string | null;
|
|
268
|
+
}>;
|
|
269
|
+
/** Park the open thread and load `role`'s, appending `seed` to it. */
|
|
270
|
+
switchThread: (role: string, seed?: ChatMessage) => void;
|
|
175
271
|
/** The write awaiting human confirmation (renders the ConfirmActionCard). */
|
|
176
272
|
pendingAction: PendingAgentAction | null;
|
|
177
273
|
/** Park an action + register its decision resolver. Resolves immediately
|
|
@@ -197,12 +293,64 @@ interface ChatState {
|
|
|
197
293
|
clearAttachments: () => void;
|
|
198
294
|
/** Hand the turn its digests and unstage everything (bytes included). */
|
|
199
295
|
consumePendingAttachments: () => AttachmentDigest[];
|
|
296
|
+
/**
|
|
297
|
+
* A file the user is already looking at, attached by ADDRESS.
|
|
298
|
+
*
|
|
299
|
+
* Distinct from `attachments`, which stage bytes the browser has to read and
|
|
300
|
+
* digest. This one is a photo the app itself stored and can serve: sending
|
|
301
|
+
* the URL lets the model fetch the original, at full resolution, instead of
|
|
302
|
+
* us inlining megabytes of base64 into the turn — and a picture that came
|
|
303
|
+
* from our own storage never needed to be re-uploaded to be talked about.
|
|
304
|
+
*/
|
|
305
|
+
composerMedia: ComposerMedia | null;
|
|
306
|
+
attachMedia: (media: ComposerMedia) => void;
|
|
307
|
+
clearComposerMedia: () => void;
|
|
308
|
+
/**
|
|
309
|
+
* The assistant asked for a file, and the composer offers it as one big
|
|
310
|
+
* button ("Subir foto do cardápio").
|
|
311
|
+
*
|
|
312
|
+
* This is not an attachment: the bytes never enter the conversation. The tool
|
|
313
|
+
* that asked hands in `onFiles`, and the files go straight there — which is
|
|
314
|
+
* the only way a photo reaches anything today, since a turn carries a digest
|
|
315
|
+
* of a file, never its pixels.
|
|
316
|
+
*/
|
|
317
|
+
uploadRequest: UploadRequest | null;
|
|
318
|
+
requestUpload: (request: Omit<UploadRequest, 'id' | 'status' | 'files'>) => string;
|
|
319
|
+
/** Stage files in the card — the user can still add more or drop one. */
|
|
320
|
+
addUploadFiles: (files: File[]) => void;
|
|
321
|
+
removeUploadFile: (index: number) => void;
|
|
322
|
+
/** Hands everything staged to whoever asked. */
|
|
323
|
+
submitUpload: () => Promise<void>;
|
|
324
|
+
clearUploadRequest: () => void;
|
|
325
|
+
/**
|
|
326
|
+
* The one door for files arriving from anywhere — the composer's `+`, a
|
|
327
|
+
* paste, a drop on the transcript.
|
|
328
|
+
*
|
|
329
|
+
* While a request is up, a matching file belongs to IT: staging a menu photo
|
|
330
|
+
* as a chat attachment would send the assistant a digest with no pixels in
|
|
331
|
+
* it, which is the one thing that cannot answer "manda a foto".
|
|
332
|
+
*/
|
|
333
|
+
receiveFiles: (files: File[]) => void;
|
|
200
334
|
/** Explicit delegation ("resolver com IA"): the user already said go, so the
|
|
201
335
|
* conversation sends this as soon as it can. Distinct from `draft`, which
|
|
202
336
|
* never sends on the user's behalf. */
|
|
203
337
|
queuedPrompt: string | null;
|
|
204
338
|
queuePrompt: (text: string) => void;
|
|
205
339
|
consumeQueuedPrompt: () => string | null;
|
|
340
|
+
/**
|
|
341
|
+
* O que o campo sugere quando uma tela delega um assunto ao assistente
|
|
342
|
+
* ("Ex.: receita por mesa no jantar"). Dica, não rascunho: a tela sabe do que
|
|
343
|
+
* se trata, o usuário ainda escreve o pedido. Some no primeiro envio — a
|
|
344
|
+
* partir daí a conversa tem assunto próprio.
|
|
345
|
+
*/
|
|
346
|
+
composerHint: string | null;
|
|
347
|
+
setComposerHint: (hint: string | null) => void;
|
|
348
|
+
/** O painel foi aberto por um handoff — o campo assume o cursor assim que
|
|
349
|
+
* existir. Quem clicou "Criar com IA" já está escrevendo o pedido; obrigar
|
|
350
|
+
* um segundo clique no campo é cobrar duas vezes pela mesma decisão. */
|
|
351
|
+
composerFocusRequested: boolean;
|
|
352
|
+
requestComposerFocus: () => void;
|
|
353
|
+
consumeComposerFocus: () => void;
|
|
206
354
|
/** Suggestions panel is pinned open by the user (works mid-conversation). */
|
|
207
355
|
suggestionsOpen: boolean;
|
|
208
356
|
setSuggestionsOpen: (open: boolean) => void;
|
|
@@ -219,7 +367,7 @@ interface ChatState {
|
|
|
219
367
|
/** Attach goto-record buttons to the reply (deduped by id, capped). */
|
|
220
368
|
appendLinksToLastAssistant: (links: ChatRecordLink[]) => void;
|
|
221
369
|
/** Attach connector cards to the reply (deduped by slug, capped). */
|
|
222
|
-
appendCardsToLastAssistant: (cards:
|
|
370
|
+
appendCardsToLastAssistant: (cards: ChatCard[]) => void;
|
|
223
371
|
/** The signed-in user's threads (history drawer). */
|
|
224
372
|
conversations: Array<{
|
|
225
373
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.store.d.ts","sourceRoot":"","sources":["../../src/stores/chat.store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat.store.d.ts","sourceRoot":"","sources":["../../src/stores/chat.store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TasksRailPanel.d.ts","sourceRoot":"","sources":["../../src/tasks/TasksRailPanel.tsx"],"names":[],"mappings":"AASA;iFACiF;AACjF,wBAAgB,cAAc,SAkC7B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Task } from '../types';
|
|
3
|
+
export declare function TaskCard({ task, subtaskCount, showSource, }: {
|
|
4
|
+
task: Task;
|
|
5
|
+
subtaskCount?: {
|
|
6
|
+
done: number;
|
|
7
|
+
total: number;
|
|
8
|
+
};
|
|
9
|
+
showSource?: boolean;
|
|
10
|
+
}): React.JSX.Element;
|
|
11
|
+
//# sourceMappingURL=TaskCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskCard.d.ts","sourceRoot":"","sources":["../../../src/tasks/components/TaskCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAiBpC,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,YAAY,EAGZ,UAAiB,GAClB,EAAE;IACD,IAAI,EAAE,IAAI,CAAA;IACV,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,qBA8EA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskDetail.d.ts","sourceRoot":"","sources":["../../../src/tasks/components/TaskDetail.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAA;AA2B/D,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,qBAoLxD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare function TaskLabelBadge({ labelId }: {
|
|
3
|
+
labelId: string;
|
|
4
|
+
}): React.JSX.Element | null;
|
|
5
|
+
export declare function TaskLabelBadges({ labelIds, max }: {
|
|
6
|
+
labelIds: string[];
|
|
7
|
+
max?: number;
|
|
8
|
+
}): React.JSX.Element | null;
|
|
9
|
+
//# sourceMappingURL=TaskLabelBadge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskLabelBadge.d.ts","sourceRoot":"","sources":["../../../src/tasks/components/TaskLabelBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,4BAe9D;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,GAAO,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,4BAiB1F"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { TaskPriority } from '../types';
|
|
3
|
+
export declare function TaskPriorityBadge({ priority, showLabel }: {
|
|
4
|
+
priority: TaskPriority;
|
|
5
|
+
showLabel?: boolean;
|
|
6
|
+
}): React.JSX.Element;
|
|
7
|
+
//# sourceMappingURL=TaskPriorityBadge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskPriorityBadge.d.ts","sourceRoot":"","sources":["../../../src/tasks/components/TaskPriorityBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAS5C,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,qBASzG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskQuickAdd.d.ts","sourceRoot":"","sources":["../../../src/tasks/components/TaskQuickAdd.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAKpD,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,qBAmCtE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskSourceBadge.d.ts","sourceRoot":"","sources":["../../../src/tasks/components/TaskSourceBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAiBzB,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,4BAmBpE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Task, TaskStatus } from '../types';
|
|
3
|
+
/** One collapsible section of the list. `dotClass`/`title` let the getting-started
|
|
4
|
+
* group reuse the exact shape without being a status. */
|
|
5
|
+
export declare function TaskGroup({ title, dotClass, tasks, defaultCollapsed, showSource, }: {
|
|
6
|
+
title: string;
|
|
7
|
+
dotClass: string;
|
|
8
|
+
tasks: Task[];
|
|
9
|
+
defaultCollapsed?: boolean;
|
|
10
|
+
/** Off when the header already names what the tag would say. */
|
|
11
|
+
showSource?: boolean;
|
|
12
|
+
}): React.JSX.Element | null;
|
|
13
|
+
export declare function TaskStatusGroup({ status, tasks }: {
|
|
14
|
+
status: TaskStatus;
|
|
15
|
+
tasks: Task[];
|
|
16
|
+
}): React.JSX.Element;
|
|
17
|
+
//# sourceMappingURL=TaskStatusGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskStatusGroup.d.ts","sourceRoot":"","sources":["../../../src/tasks/components/TaskStatusGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAShD;0DAC0D;AAC1D,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,KAAK,EACL,gBAAwB,EACxB,UAAiB,GAClB,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,IAAI,EAAE,CAAA;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,4BA8BA;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,qBAUvF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TasksFilterBar.d.ts","sourceRoot":"","sources":["../../../src/tasks/components/TasksFilterBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAiBzB,wBAAgB,cAAc,sBAwD7B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type Task } from '../types';
|
|
3
|
+
/** The setup checklist reads as one thing, not as five tasks scattered through
|
|
4
|
+
* the board — so it is lifted out before the status grouping runs. */
|
|
5
|
+
export declare function splitOnboardingTasks(tasks: Task[]): {
|
|
6
|
+
onboarding: Task[];
|
|
7
|
+
rest: Task[];
|
|
8
|
+
};
|
|
9
|
+
/** The task list with no box around it — shared by the sheet and the shell's
|
|
10
|
+
* right-rail tab. */
|
|
11
|
+
export declare function TasksPanel(): React.JSX.Element;
|
|
12
|
+
/** One-line summary of what needs attention ("3 atrasadas · 2 para hoje"). */
|
|
13
|
+
export declare function useTasksSummaryLine(): string;
|
|
14
|
+
//# sourceMappingURL=TasksPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TasksPanel.d.ts","sourceRoot":"","sources":["../../../src/tasks/components/TasksPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,OAAO,EAA0B,KAAK,IAAI,EAAmB,MAAM,UAAU,CAAA;AAI7E;uEACuE;AACvE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG;IAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAAC,IAAI,EAAE,IAAI,EAAE,CAAA;CAAE,CAQxF;AAED;sBACsB;AACtB,wBAAgB,UAAU,sBAqEzB;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,IAAI,MAAM,CAU5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../src/tasks/data/mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEC,iBAAiB,EAC7B,MAAM,UAAU,CAAA;AA+DjB,wBAAgB,uBAAuB,IAAI,iBAAiB,CAqF3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../../src/tasks/data/supabase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,iBAAiB,EAAE,MAAM,UAAU,CAAA;AA4BlE,wBAAgB,2BAA2B,IAAI,iBAAiB,CAyK/D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EntityDef } from '@fayz-ai/core';
|
|
2
|
+
/**
|
|
3
|
+
* public.tasks — @fayz-ai/db spine migration 047_tasks.
|
|
4
|
+
*
|
|
5
|
+
* Declared as an EntityDef so the agent can read and close tasks in every app,
|
|
6
|
+
* even though the surface is a rail tab rather than a CRUD page. Unit narrowing
|
|
7
|
+
* is not declared here on purpose: resolveDataProvider turns it on from the
|
|
8
|
+
* `scoped_resources` registry the shell loads at boot.
|
|
9
|
+
*/
|
|
10
|
+
export declare const taskEntityDef: EntityDef;
|
|
11
|
+
//# sourceMappingURL=entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/tasks/entity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,SA2C3B,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { TASK_STATUSES, TASK_PRIORITIES, ONBOARDING_TASK_SOURCE, type Task, type TaskLabel, type TaskStatus, type TaskPriority, type TasksSummary, type CreateTaskInput, type UpdateTaskInput, type TaskQuery, type TasksDataProvider, } from './types';
|
|
2
|
+
export { useTasksStore, getTasksProvider, setTasksProvider, type TasksUIState } from './store';
|
|
3
|
+
export { createSupabaseTasksProvider } from './data/supabase';
|
|
4
|
+
export { createMockTasksProvider } from './data/mock';
|
|
5
|
+
export { TasksPanel, useTasksSummaryLine, splitOnboardingTasks } from './components/TasksPanel';
|
|
6
|
+
export { TaskCard } from './components/TaskCard';
|
|
7
|
+
export { TaskDetail } from './components/TaskDetail';
|
|
8
|
+
export { TaskGroup, TaskStatusGroup } from './components/TaskStatusGroup';
|
|
9
|
+
export { TaskQuickAdd } from './components/TaskQuickAdd';
|
|
10
|
+
export { TasksFilterBar } from './components/TasksFilterBar';
|
|
11
|
+
export { TaskLabelBadge, TaskLabelBadges } from './components/TaskLabelBadge';
|
|
12
|
+
export { TaskPriorityBadge } from './components/TaskPriorityBadge';
|
|
13
|
+
export { TaskSourceBadge } from './components/TaskSourceBadge';
|
|
14
|
+
export { TasksRailPanel } from './TasksRailPanel';
|
|
15
|
+
export { claimTasksSurface, tasksSurfaceOwner } from './registry';
|
|
16
|
+
export { taskEntityDef } from './entity';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAAE,eAAe,EAAE,sBAAsB,EACtD,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAC7D,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAC7D,KAAK,SAAS,EAAE,KAAK,iBAAiB,GACvC,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAA;AAC9F,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC/F,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tasks/registry.ts"],"names":[],"mappings":"AASA,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAEhE;AAED,wBAAgB,iBAAiB,IAAI,OAAO,GAAG,QAAQ,CAEtD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Task, TaskLabel, TasksSummary, TaskQuery, TasksDataProvider, CreateTaskInput, UpdateTaskInput, TaskStatus } from './types';
|
|
2
|
+
/** Escape hatch for tests and for an app that brings its own backend. */
|
|
3
|
+
export declare function setTasksProvider(next: TasksDataProvider | null): void;
|
|
4
|
+
export interface TasksUIState {
|
|
5
|
+
tasks: Task[];
|
|
6
|
+
tasksLoading: boolean;
|
|
7
|
+
labels: TaskLabel[];
|
|
8
|
+
summary: TasksSummary | null;
|
|
9
|
+
summaryLoading: boolean;
|
|
10
|
+
drawerOpen: boolean;
|
|
11
|
+
selectedTaskId: string | null;
|
|
12
|
+
activeFilter: TaskStatus | 'all';
|
|
13
|
+
/** Opt-in "assigned to me". Off by default — the tab is the workspace's. */
|
|
14
|
+
mine: boolean;
|
|
15
|
+
currentUserId: string | null;
|
|
16
|
+
fetchTasks(query?: TaskQuery): Promise<void>;
|
|
17
|
+
fetchLabels(): Promise<void>;
|
|
18
|
+
fetchSummary(): Promise<void>;
|
|
19
|
+
createTask(input: CreateTaskInput): Promise<Task>;
|
|
20
|
+
updateTask(id: string, input: UpdateTaskInput): Promise<Task>;
|
|
21
|
+
deleteTask(id: string): Promise<void>;
|
|
22
|
+
reorderTask(id: string, newPosition: number, status: TaskStatus): Promise<void>;
|
|
23
|
+
openDrawer(): void;
|
|
24
|
+
closeDrawer(): void;
|
|
25
|
+
toggleDrawer(): void;
|
|
26
|
+
selectTask(id: string | null): void;
|
|
27
|
+
setFilter(filter: TaskStatus | 'all'): void;
|
|
28
|
+
setMine(mine: boolean): void;
|
|
29
|
+
setCurrentUserId(id: string | null): void;
|
|
30
|
+
}
|
|
31
|
+
export declare const useTasksStore: import("zustand").UseBoundStore<import("zustand").StoreApi<TasksUIState>>;
|
|
32
|
+
/** Non-React readers (the plugin's adapters, the onboarding seam). */
|
|
33
|
+
export declare function getTasksProvider(): TasksDataProvider;
|
|
34
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/tasks/store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAC3D,eAAe,EAAE,eAAe,EAAE,UAAU,EAC7C,MAAM,SAAS,CAAA;AAkBhB,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAErE;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,IAAI,EAAE,CAAA;IACb,YAAY,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,SAAS,EAAE,CAAA;IACnB,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;IAC5B,cAAc,EAAE,OAAO,CAAA;IAEvB,UAAU,EAAE,OAAO,CAAA;IACnB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,UAAU,GAAG,KAAK,CAAA;IAChC,4EAA4E;IAC5E,IAAI,EAAE,OAAO,CAAA;IACb,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAE5B,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/E,UAAU,IAAI,IAAI,CAAA;IAClB,WAAW,IAAI,IAAI,CAAA;IACnB,YAAY,IAAI,IAAI,CAAA;IACpB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IACnC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,GAAG,IAAI,CAAA;IAC3C,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;CAC1C;AAED,eAAO,MAAM,aAAa,2EAkHvB,CAAA;AAEH,sEAAsE;AACtE,wBAAgB,gBAAgB,IAAI,iBAAiB,CAEpD"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
export type TaskStatus = 'todo' | 'in_progress' | 'done' | 'cancelled';
|
|
2
|
+
export type TaskPriority = 'low' | 'medium' | 'high' | 'urgent';
|
|
3
|
+
export declare const TASK_STATUSES: TaskStatus[];
|
|
4
|
+
export declare const TASK_PRIORITIES: TaskPriority[];
|
|
5
|
+
/** Tasks the setup wizard seeded. Paired with a `sourceKey` from the catalog. */
|
|
6
|
+
export declare const ONBOARDING_TASK_SOURCE = "onboarding";
|
|
7
|
+
export interface Task {
|
|
8
|
+
id: string;
|
|
9
|
+
title: string;
|
|
10
|
+
description: string | null;
|
|
11
|
+
status: TaskStatus;
|
|
12
|
+
priority: TaskPriority;
|
|
13
|
+
dueDate: string | null;
|
|
14
|
+
completedAt: string | null;
|
|
15
|
+
assignedToId: string | null;
|
|
16
|
+
assignedToName: string | null;
|
|
17
|
+
parentId: string | null;
|
|
18
|
+
labels: string[];
|
|
19
|
+
position: number;
|
|
20
|
+
/** Which feature created this row ('onboarding', 'agent'), null when a person did. */
|
|
21
|
+
source: string | null;
|
|
22
|
+
/** Stable key within that source — what makes re-seeding idempotent. */
|
|
23
|
+
sourceKey: string | null;
|
|
24
|
+
createdBy: string | null;
|
|
25
|
+
createdByName: string | null;
|
|
26
|
+
tenantId: string;
|
|
27
|
+
createdAt: string;
|
|
28
|
+
updatedAt: string;
|
|
29
|
+
}
|
|
30
|
+
export interface TaskLabel {
|
|
31
|
+
id: string;
|
|
32
|
+
name: string;
|
|
33
|
+
color: string;
|
|
34
|
+
isActive: boolean;
|
|
35
|
+
tenantId: string;
|
|
36
|
+
createdAt: string;
|
|
37
|
+
}
|
|
38
|
+
export interface CreateTaskInput {
|
|
39
|
+
title: string;
|
|
40
|
+
description?: string;
|
|
41
|
+
status?: TaskStatus;
|
|
42
|
+
priority?: TaskPriority;
|
|
43
|
+
dueDate?: string | null;
|
|
44
|
+
assignedToId?: string | null;
|
|
45
|
+
assignedToName?: string | null;
|
|
46
|
+
parentId?: string | null;
|
|
47
|
+
labels?: string[];
|
|
48
|
+
source?: string | null;
|
|
49
|
+
sourceKey?: string | null;
|
|
50
|
+
}
|
|
51
|
+
export interface UpdateTaskInput {
|
|
52
|
+
title?: string;
|
|
53
|
+
description?: string | null;
|
|
54
|
+
status?: TaskStatus;
|
|
55
|
+
priority?: TaskPriority;
|
|
56
|
+
dueDate?: string | null;
|
|
57
|
+
assignedToId?: string | null;
|
|
58
|
+
labels?: string[];
|
|
59
|
+
position?: number;
|
|
60
|
+
}
|
|
61
|
+
export interface TaskQuery {
|
|
62
|
+
status?: TaskStatus | TaskStatus[];
|
|
63
|
+
priority?: TaskPriority | TaskPriority[];
|
|
64
|
+
assignedToId?: string;
|
|
65
|
+
parentId?: string | null;
|
|
66
|
+
search?: string;
|
|
67
|
+
overdue?: boolean;
|
|
68
|
+
}
|
|
69
|
+
export interface TasksSummary {
|
|
70
|
+
total: number;
|
|
71
|
+
todo: number;
|
|
72
|
+
inProgress: number;
|
|
73
|
+
done: number;
|
|
74
|
+
overdue: number;
|
|
75
|
+
dueToday: number;
|
|
76
|
+
highPriority: number;
|
|
77
|
+
}
|
|
78
|
+
export interface TasksDataProvider {
|
|
79
|
+
getTasks(query: TaskQuery): Promise<Task[]>;
|
|
80
|
+
getTaskById(id: string): Promise<Task | null>;
|
|
81
|
+
getSubtasks(parentId: string): Promise<Task[]>;
|
|
82
|
+
createTask(input: CreateTaskInput): Promise<Task>;
|
|
83
|
+
updateTask(id: string, input: UpdateTaskInput): Promise<Task>;
|
|
84
|
+
deleteTask(id: string): Promise<void>;
|
|
85
|
+
reorderTask(id: string, newPosition: number, status: TaskStatus): Promise<void>;
|
|
86
|
+
getLabels(): Promise<TaskLabel[]>;
|
|
87
|
+
getSummary(): Promise<TasksSummary>;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tasks/types.ts"],"names":[],"mappings":"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"}
|
package/dist/theme/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { ThemeTokens, SemanticColors, UIPerceptionTokens, SaasTheme, ThemeRadius, ThemeDensity, ThemeShadow, ThemeFont } from './tokens';
|
|
2
2
|
export { lightTheme } from './light';
|
|
3
3
|
export { darkTheme } from './dark';
|
|
4
|
-
export { createTheme, applyTheme, getSystemPreference, resolveTheme } from './utils';
|
|
4
|
+
export { createTheme, applyTheme, getSystemPreference, resolveTheme, hexToHslTriplet } from './utils';
|
|
5
5
|
export type { CreateThemeOptions } from './utils';
|
|
6
6
|
export { default as saasPreset } from './tailwind-preset';
|
|
7
7
|
export { default as saasCoreTailwindPreset } from './tailwind-preset';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC7I,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC7I,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACrG,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAGjD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/theme/utils.d.ts
CHANGED
|
@@ -28,4 +28,18 @@ export declare function resolveTheme(theme: SaasTheme): CreateThemeOptions;
|
|
|
28
28
|
export declare function createTheme(overrides: CreateThemeOptions): ThemeTokens;
|
|
29
29
|
export declare function applyTheme(theme: ThemeTokens, element?: HTMLElement): void;
|
|
30
30
|
export declare function getSystemPreference(): 'light' | 'dark';
|
|
31
|
+
/**
|
|
32
|
+
* `#1f7a3d` → `148 60% 30%`, the space-separated HSL triplet every token here
|
|
33
|
+
* is written in.
|
|
34
|
+
*
|
|
35
|
+
* The bridge between the two halves of "brand colour" in this codebase: a tenant
|
|
36
|
+
* stores hex, because that is what a colour input and a website both give you,
|
|
37
|
+
* while `CreateThemeOptions.brand` takes HSL so it can shift lightness to derive
|
|
38
|
+
* the ring and the sidebar. Without this the tenant's colour had nowhere to go,
|
|
39
|
+
* which is why `settings.branding.primaryColor` was written and never read.
|
|
40
|
+
*
|
|
41
|
+
* Returns null for anything that is not a 3- or 6-digit hex, so a bad value
|
|
42
|
+
* leaves the theme alone instead of painting the shell `NaN`.
|
|
43
|
+
*/
|
|
44
|
+
export declare function hexToHslTriplet(hex: string): string | null;
|
|
31
45
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/theme/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,SAAS,EAIV,MAAM,UAAU,CAAA;AAqCjB,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAChC,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACxC,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,kBAAkB,GAAG,KAAK,IAAI,SAAS,CAGrF;AA+BD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,kBAAkB,CA8FjE;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,kBAAkB,GAAG,WAAW,CA2BtE;AAkGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAoB1E;AAED,wBAAgB,mBAAmB,IAAI,OAAO,GAAG,MAAM,CAGtD"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/theme/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,SAAS,EAIV,MAAM,UAAU,CAAA;AAqCjB,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAChC,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACxC,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,kBAAkB,GAAG,KAAK,IAAI,SAAS,CAGrF;AA+BD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,kBAAkB,CA8FjE;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,kBAAkB,GAAG,WAAW,CA2BtE;AAkGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAoB1E;AAED,wBAAgB,mBAAmB,IAAI,OAAO,GAAG,MAAM,CAGtD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4B1D"}
|