@messenger-box/tailwind-ui-inbox 10.0.3-alpha.73 → 10.0.3-alpha.74
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/CHANGELOG.md +4 -0
- package/lib/components/AIAgent/AIAgent.d.ts +7 -0
- package/lib/components/AIAgent/AIAgent.d.ts.map +1 -1
- package/lib/components/AIAgent/AIAgent.js +362 -615
- package/lib/components/AIAgent/AIAgent.js.map +1 -1
- package/lib/components/InboxMessage/InputComponent.d.ts.map +1 -1
- package/lib/components/InboxMessage/InputComponent.js +143 -140
- package/lib/components/InboxMessage/InputComponent.js.map +1 -1
- package/lib/components/InboxMessage/RightSidebarAi.d.ts +23 -0
- package/lib/components/InboxMessage/RightSidebarAi.d.ts.map +1 -0
- package/lib/components/InboxMessage/RightSidebarAi.js +9 -0
- package/lib/components/InboxMessage/RightSidebarAi.js.map +1 -0
- package/lib/components/InboxMessage/index.d.ts +1 -0
- package/lib/components/InboxMessage/index.d.ts.map +1 -1
- package/lib/components/InboxMessage/message-widgets/ErrorFixCard.d.ts +11 -0
- package/lib/components/InboxMessage/message-widgets/ErrorFixCard.d.ts.map +1 -0
- package/lib/components/InboxMessage/message-widgets/ErrorFixCard.js +194 -0
- package/lib/components/InboxMessage/message-widgets/ErrorFixCard.js.map +1 -0
- package/lib/components/InboxMessage/message-widgets/ModernMessageGroup.d.ts +5 -1
- package/lib/components/InboxMessage/message-widgets/ModernMessageGroup.d.ts.map +1 -1
- package/lib/components/InboxMessage/message-widgets/ModernMessageGroup.js +308 -857
- package/lib/components/InboxMessage/message-widgets/ModernMessageGroup.js.map +1 -1
- package/lib/components/ModelConfigPanel.d.ts +12 -0
- package/lib/components/ModelConfigPanel.d.ts.map +1 -0
- package/lib/components/ModelConfigPanel.js +304 -0
- package/lib/components/ModelConfigPanel.js.map +1 -0
- package/lib/components/filler-components/RightSiderBar.d.ts +24 -0
- package/lib/components/filler-components/RightSiderBar.d.ts.map +1 -0
- package/lib/components/filler-components/RightSiderBar.js +335 -0
- package/lib/components/filler-components/RightSiderBar.js.map +1 -0
- package/lib/components/index.d.ts +4 -2
- package/lib/components/index.d.ts.map +1 -1
- package/lib/components/live-code-editor/hybrid-live-editor.d.ts +20 -0
- package/lib/components/live-code-editor/hybrid-live-editor.d.ts.map +1 -0
- package/lib/components/live-code-editor/hybrid-live-editor.js +68 -0
- package/lib/components/live-code-editor/hybrid-live-editor.js.map +1 -0
- package/lib/components/live-code-editor/index.d.ts +4 -0
- package/lib/components/live-code-editor/index.d.ts.map +1 -0
- package/lib/components/live-code-editor/live-code-editor.d.ts +14 -0
- package/lib/components/live-code-editor/live-code-editor.d.ts.map +1 -0
- package/lib/components/live-code-editor/live-code-editor.js +207 -0
- package/lib/components/live-code-editor/live-code-editor.js.map +1 -0
- package/lib/components/slot-fill/chat-message-filler.js +1 -1
- package/lib/components/slot-fill/chat-message-filler.js.map +1 -1
- package/lib/components/slot-fill/index.d.ts +1 -0
- package/lib/components/slot-fill/index.d.ts.map +1 -1
- package/lib/components/slot-fill/right-sidebar-filler.d.ts +4 -0
- package/lib/components/slot-fill/right-sidebar-filler.d.ts.map +1 -0
- package/lib/components/slot-fill/right-sidebar-filler.js +13 -0
- package/lib/components/slot-fill/right-sidebar-filler.js.map +1 -0
- package/lib/components/ui/button.d.ts +9 -0
- package/lib/components/ui/button.d.ts.map +1 -0
- package/lib/compute.js +1 -2
- package/lib/container/AiInbox.d.ts.map +1 -1
- package/lib/container/AiLandingInput.d.ts.map +1 -1
- package/lib/container/AiLandingInput.js +46 -119
- package/lib/container/AiLandingInput.js.map +1 -1
- package/lib/container/Inbox.js +1 -1
- package/lib/container/Inbox.js.map +1 -1
- package/lib/container/InboxAiMessagesLoader.d.ts +0 -21
- package/lib/container/InboxAiMessagesLoader.d.ts.map +1 -1
- package/lib/container/InboxAiMessagesLoader.js +18 -32
- package/lib/container/InboxAiMessagesLoader.js.map +1 -1
- package/lib/container/ServiceInbox.js +1 -1
- package/lib/container/ServiceInbox.js.map +1 -1
- package/lib/container/ThreadMessages.js +1 -1
- package/lib/container/ThreadMessages.js.map +1 -1
- package/lib/container/ThreadMessagesInbox.js +1 -1
- package/lib/container/ThreadMessagesInbox.js.map +1 -1
- package/lib/container/Threads.js +1 -1
- package/lib/container/Threads.js.map +1 -1
- package/lib/container/index.d.ts +2 -1
- package/lib/container/index.d.ts.map +1 -1
- package/lib/enums/messenger-slot-fill-name-enum.d.ts +2 -1
- package/lib/enums/messenger-slot-fill-name-enum.d.ts.map +1 -1
- package/lib/enums/messenger-slot-fill-name-enum.js +1 -0
- package/lib/enums/messenger-slot-fill-name-enum.js.map +1 -1
- package/lib/hooks/index.d.ts +3 -0
- package/lib/hooks/index.d.ts.map +1 -0
- package/lib/hooks/use-file-sync.d.ts +16 -0
- package/lib/hooks/use-file-sync.d.ts.map +1 -0
- package/lib/hooks/use-file-sync.js +63 -0
- package/lib/hooks/use-file-sync.js.map +1 -0
- package/lib/hooks/usePersistentModelConfig.d.ts +15 -0
- package/lib/hooks/usePersistentModelConfig.d.ts.map +1 -0
- package/lib/hooks/usePersistentModelConfig.js +46 -0
- package/lib/hooks/usePersistentModelConfig.js.map +1 -0
- package/lib/index.d.ts +4 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/machines/aiAgentMachine.d.ts.map +1 -1
- package/lib/machines/aiAgentMachine.js +64 -21
- package/lib/machines/aiAgentMachine.js.map +1 -1
- package/lib/machines/aiAgentMachine.simple.d.ts +3 -0
- package/lib/machines/aiAgentMachine.simple.d.ts.map +1 -0
- package/lib/machines/aiAgentMachine.simple.js +108 -0
- package/lib/machines/aiAgentMachine.simple.js.map +1 -0
- package/lib/machines/index.d.ts +3 -0
- package/lib/machines/index.d.ts.map +1 -0
- package/lib/module.d.ts +2 -1
- package/lib/module.d.ts.map +1 -1
- package/lib/module.js +11 -3
- package/lib/module.js.map +1 -1
- package/lib/routes.json +1 -2
- package/lib/templates/InboxWithAi.d.ts.map +1 -1
- package/lib/templates/InboxWithAi.js +129 -70
- package/lib/templates/InboxWithAi.js.map +1 -1
- package/lib/templates/InboxWithAi.tsx +151 -90
- package/lib/utils/utils.d.ts +2 -0
- package/lib/utils/utils.d.ts.map +1 -0
- package/lib/utils/utils.js +3 -0
- package/lib/utils/utils.js.map +1 -0
- package/package.json +8 -5
- package/src/components/AIAgent/AIAgent.tsx +469 -731
- package/src/components/AIAgent/AIAgent.tsx.bk +1365 -0
- package/src/components/InboxMessage/InputComponent.tsx +2 -1
- package/src/components/InboxMessage/RightSidebarAi.tsx +37 -0
- package/src/components/InboxMessage/index.ts +1 -0
- package/src/components/InboxMessage/message-widgets/ErrorFixCard.tsx +240 -0
- package/src/components/InboxMessage/message-widgets/ModernMessageGroup.tsx +337 -1116
- package/src/components/ModelConfigPanel.tsx +334 -0
- package/src/components/filler-components/RightSiderBar.tsx +408 -0
- package/src/components/index.ts +4 -1
- package/src/components/live-code-editor/hybrid-live-editor.tsx +105 -0
- package/src/components/live-code-editor/index.ts +3 -0
- package/src/components/live-code-editor/live-code-editor.tsx +257 -0
- package/src/components/slot-fill/index.ts +1 -0
- package/src/components/slot-fill/right-sidebar-filler.tsx +39 -0
- package/src/components/ui/button.tsx +32 -0
- package/src/container/AiInbox.tsx +26 -3
- package/src/container/AiLandingInput.tsx +48 -22
- package/src/container/InboxAiMessagesLoader.tsx +17 -31
- package/src/container/index.ts +2 -0
- package/src/enums/messenger-slot-fill-name-enum.ts +1 -0
- package/src/hooks/index.ts +2 -0
- package/src/hooks/use-file-sync.ts +91 -0
- package/src/hooks/usePersistentModelConfig.ts +63 -0
- package/src/index.ts +7 -0
- package/src/machines/aiAgentMachine.simple.ts +89 -0
- package/src/machines/aiAgentMachine.ts +67 -19
- package/src/machines/aiAgentMachine.ts.bk +1296 -0
- package/src/machines/index.ts +2 -0
- package/src/module.tsx +10 -1
- package/src/templates/InboxWithAi.tsx +151 -90
- package/src/utils/utils.ts +3 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import React__default,{createContext,useContext,useCallback,useMemo,useEffect}from'react';import {useParams,useLocation,Outlet}from'@remix-run/react';// Context for sharing tab state between header and sidebar
|
|
1
|
+
import React__default,{createContext,useContext,useState,useCallback,useMemo,useEffect}from'react';import {useParams,useLocation,Outlet}from'@remix-run/react';import {RightSidebarAi}from'../components/InboxMessage/RightSidebarAi.js';import {useRecreateSandboxMutation,useRegenerateAiCodeMutation}from'common/graphql';import {usePersistentModelConfig}from'../hooks/usePersistentModelConfig.js';// Context for sharing tab state between header and sidebar
|
|
2
2
|
const TabContext = createContext({
|
|
3
|
-
activeTab: '
|
|
3
|
+
activeTab: 'preview',
|
|
4
4
|
setActiveTab: () => {}
|
|
5
5
|
});
|
|
6
6
|
// Static utility hooks and components
|
|
@@ -48,7 +48,7 @@ const EmptyState = React__default.memo(() => React__default.createElement("div",
|
|
|
48
48
|
className: "text-sm sm:text-base text-gray-500 leading-relaxed"
|
|
49
49
|
}, "Select a conversation from the sidebar to start messaging"))));
|
|
50
50
|
const InboxWithAi = props => {
|
|
51
|
-
const [activeTab, setActiveTab] = React__default.useState('
|
|
51
|
+
const [activeTab, setActiveTab] = React__default.useState('preview');
|
|
52
52
|
return React__default.createElement(TabContext.Provider, {
|
|
53
53
|
value: {
|
|
54
54
|
activeTab,
|
|
@@ -70,12 +70,75 @@ const InboxWithAiInternal = props => {
|
|
|
70
70
|
activeTab,
|
|
71
71
|
setActiveTab
|
|
72
72
|
} = useContext(TabContext);
|
|
73
|
+
const [messages, setMessages] = useState([]);
|
|
74
|
+
const [selectedPost, setSelectedPost] = useState(null);
|
|
75
|
+
const [recreateSandbox] = useRecreateSandboxMutation();
|
|
76
|
+
const [regenerateAiCode] = useRegenerateAiCodeMutation();
|
|
77
|
+
const {
|
|
78
|
+
modelConfig,
|
|
79
|
+
getValidatedConfig,
|
|
80
|
+
hasApiKey
|
|
81
|
+
} = usePersistentModelConfig();
|
|
82
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
83
|
+
const [errorData, setError] = useState(null);
|
|
73
84
|
// Extract channelId from query parameters (priority) or path parameters (fallback)
|
|
74
85
|
const channelId = urlParams?.get('id') || pathChannelId;
|
|
86
|
+
const regenerateAiCodeForFragment = useCallback(async messageId => {
|
|
87
|
+
try {
|
|
88
|
+
setIsLoading(true);
|
|
89
|
+
setError(null);
|
|
90
|
+
const response = await regenerateAiCode({
|
|
91
|
+
variables: {
|
|
92
|
+
messageId: messageId,
|
|
93
|
+
modelConfig: modelConfig
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
if (response.data?.regenerateAiCode?.success) {
|
|
97
|
+
console.log('Sandbox recreation initiated successfully');
|
|
98
|
+
// The subscription will handle updating the UI with the new sandbox URL
|
|
99
|
+
} else {
|
|
100
|
+
const errorMsg = response.data?.regenerateAiCode?.message || 'Failed to regenerate AI code';
|
|
101
|
+
throw new Error(errorMsg);
|
|
102
|
+
}
|
|
103
|
+
} catch (err) {
|
|
104
|
+
console.error('Error recreating sandbox:', err);
|
|
105
|
+
setError(err instanceof Error ? err.message : 'Failed to recreate sandbox');
|
|
106
|
+
setIsLoading(false);
|
|
107
|
+
}
|
|
108
|
+
}, [regenerateAiCode, modelConfig]);
|
|
109
|
+
const recreateSandboxForFragment = useCallback(async messageId => {
|
|
110
|
+
if (!channelId) {
|
|
111
|
+
console.error('No project ID available for sandbox recreation');
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
setIsLoading(true);
|
|
116
|
+
setError(null);
|
|
117
|
+
const response = await recreateSandbox({
|
|
118
|
+
variables: {
|
|
119
|
+
projectId: channelId,
|
|
120
|
+
messageId
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
if (response.data?.recreateSandbox?.success) {
|
|
124
|
+
console.log('Sandbox recreation initiated successfully');
|
|
125
|
+
// The subscription will handle updating the UI with the new sandbox URL
|
|
126
|
+
} else {
|
|
127
|
+
const errorMsg = response.data?.recreateSandbox?.message || 'Failed to recreate sandbox';
|
|
128
|
+
throw new Error(errorMsg);
|
|
129
|
+
}
|
|
130
|
+
} catch (err) {
|
|
131
|
+
console.error('Error recreating sandbox:', err);
|
|
132
|
+
setError(err instanceof Error ? err.message : 'Failed to recreate sandbox');
|
|
133
|
+
setIsLoading(false);
|
|
134
|
+
}
|
|
135
|
+
}, [recreateSandbox, channelId]);
|
|
75
136
|
// Handle refresh sandbox
|
|
76
137
|
const handleRefreshSandbox = useCallback(() => {
|
|
77
|
-
|
|
78
|
-
|
|
138
|
+
if (selectedPost) {
|
|
139
|
+
recreateSandboxForFragment(selectedPost.id);
|
|
140
|
+
}
|
|
141
|
+
}, [activeTab, selectedPost, regenerateAiCodeForFragment]);
|
|
79
142
|
// Hooks - improved responsive breakpoints with better granularity
|
|
80
143
|
const {
|
|
81
144
|
width: windowWidth,
|
|
@@ -110,24 +173,8 @@ const InboxWithAiInternal = props => {
|
|
|
110
173
|
borderRadius: '10px'
|
|
111
174
|
}
|
|
112
175
|
}, React__default.createElement("button", {
|
|
113
|
-
onClick: () => setActiveTab('
|
|
114
|
-
className: `flex items-center space-x-2 px-4 py-2 text-xs font-medium transition-all duration-200 ${activeTab === '
|
|
115
|
-
style: {
|
|
116
|
-
borderRadius: '10px'
|
|
117
|
-
}
|
|
118
|
-
}, React__default.createElement("svg", {
|
|
119
|
-
className: "w-4 h-4",
|
|
120
|
-
fill: "none",
|
|
121
|
-
stroke: "currentColor",
|
|
122
|
-
viewBox: "0 0 24 24"
|
|
123
|
-
}, React__default.createElement("path", {
|
|
124
|
-
strokeLinecap: "round",
|
|
125
|
-
strokeLinejoin: "round",
|
|
126
|
-
strokeWidth: 2,
|
|
127
|
-
d: "M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
|
|
128
|
-
})), React__default.createElement("span", null, "Design")), React__default.createElement("button", {
|
|
129
|
-
onClick: () => setActiveTab('interact'),
|
|
130
|
-
className: `flex items-center space-x-2 px-4 py-2 text-xs font-medium transition-all duration-200 ${activeTab === 'interact' ? 'bg-blue-500 text-white shadow-sm' : 'text-gray-600 hover:text-gray-900'}`,
|
|
176
|
+
onClick: () => setActiveTab('preview'),
|
|
177
|
+
className: `flex items-center space-x-2 px-4 py-2 text-xs font-medium transition-all duration-200 ${activeTab === 'preview' ? 'bg-blue-500 text-white shadow-sm' : 'text-gray-600 hover:text-gray-900'}`,
|
|
131
178
|
style: {
|
|
132
179
|
borderRadius: '10px'
|
|
133
180
|
}
|
|
@@ -146,7 +193,7 @@ const InboxWithAiInternal = props => {
|
|
|
146
193
|
strokeLinejoin: "round",
|
|
147
194
|
strokeWidth: 2,
|
|
148
195
|
d: "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"
|
|
149
|
-
})), React__default.createElement("span", null, "
|
|
196
|
+
})), React__default.createElement("span", null, "Preview")), React__default.createElement("button", {
|
|
150
197
|
onClick: () => setActiveTab('code'),
|
|
151
198
|
className: `flex items-center space-x-2 px-4 py-2 text-xs font-medium transition-all duration-200 ${activeTab === 'code' ? 'bg-blue-500 text-white shadow-sm' : 'text-gray-600 hover:text-gray-900'}`,
|
|
152
199
|
style: {
|
|
@@ -163,7 +210,7 @@ const InboxWithAiInternal = props => {
|
|
|
163
210
|
strokeWidth: 2,
|
|
164
211
|
d: "M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"
|
|
165
212
|
})), React__default.createElement("span", null, "Code")))), isDesktopView && React__default.createElement("button", {
|
|
166
|
-
onClick: handleRefreshSandbox,
|
|
213
|
+
onClick: () => handleRefreshSandbox(),
|
|
167
214
|
className: "p-2 text-gray-600 hover:text-gray-900 hover:bg-gray-50 rounded-lg transition-colors",
|
|
168
215
|
title: "Refresh Sandbox"
|
|
169
216
|
}, React__default.createElement("svg", {
|
|
@@ -191,7 +238,14 @@ const InboxWithAiInternal = props => {
|
|
|
191
238
|
paddingTop: '15px'
|
|
192
239
|
}
|
|
193
240
|
}, channelId ? React__default.createElement(ContentComponent, {
|
|
194
|
-
channelId: channelId
|
|
241
|
+
channelId: channelId,
|
|
242
|
+
...props,
|
|
243
|
+
messages: messages,
|
|
244
|
+
setMessages: setMessages,
|
|
245
|
+
selectedPost: selectedPost,
|
|
246
|
+
setSelectedPost: setSelectedPost,
|
|
247
|
+
setIsLoading: setIsLoading,
|
|
248
|
+
isLoading: isLoading
|
|
195
249
|
}) : React__default.createElement(EmptyState, null)), channelId && isDesktopView && React__default.createElement("div", {
|
|
196
250
|
className: "overflow-hidden border",
|
|
197
251
|
style: {
|
|
@@ -202,12 +256,25 @@ const InboxWithAiInternal = props => {
|
|
|
202
256
|
}, React__default.createElement(RightSidebarContent, {
|
|
203
257
|
detailSidebarOptions: detailSidebarOptions,
|
|
204
258
|
windowWidth: windowWidth,
|
|
205
|
-
windowHeight: windowHeight
|
|
259
|
+
windowHeight: windowHeight,
|
|
260
|
+
activeTab: activeTab,
|
|
261
|
+
channelId: channelId,
|
|
262
|
+
messages: messages,
|
|
263
|
+
selectedPost: selectedPost,
|
|
264
|
+
setIsLoading: setIsLoading,
|
|
265
|
+
isLoading: isLoading,
|
|
266
|
+
...props
|
|
206
267
|
})))));
|
|
207
268
|
};
|
|
208
269
|
const ContentComponent = React__default.memo(props => {
|
|
209
270
|
const {
|
|
210
|
-
channelId
|
|
271
|
+
channelId,
|
|
272
|
+
messages,
|
|
273
|
+
setMessages,
|
|
274
|
+
selectedPost,
|
|
275
|
+
setSelectedPost,
|
|
276
|
+
setIsLoading,
|
|
277
|
+
isLoading
|
|
211
278
|
} = props;
|
|
212
279
|
return React__default.createElement("div", {
|
|
213
280
|
className: "flex overflow-hidden h-full"
|
|
@@ -216,7 +283,14 @@ const ContentComponent = React__default.memo(props => {
|
|
|
216
283
|
}, React__default.createElement("div", {
|
|
217
284
|
className: "flex-1 flex flex-col min-h-0 overflow-hidden"
|
|
218
285
|
}, channelId && React__default.createElement(React__default.Fragment, null, React__default.createElement(MessagesComponent, {
|
|
219
|
-
...props
|
|
286
|
+
...props,
|
|
287
|
+
channelId: channelId,
|
|
288
|
+
messages: messages,
|
|
289
|
+
setMessages: setMessages,
|
|
290
|
+
selectedPost: selectedPost,
|
|
291
|
+
setSelectedPost: setSelectedPost,
|
|
292
|
+
setIsLoading: setIsLoading,
|
|
293
|
+
isLoading: isLoading
|
|
220
294
|
})))));
|
|
221
295
|
});
|
|
222
296
|
const RightSidebarWrapper = React__default.memo(({
|
|
@@ -229,44 +303,12 @@ const RightSidebarWrapper = React__default.memo(({
|
|
|
229
303
|
className: "h-full flex flex-col overflow-hidden bg-white"
|
|
230
304
|
}, React__default.createElement("div", {
|
|
231
305
|
className: "flex-1 overflow-hidden"
|
|
232
|
-
}, activeTab === '
|
|
306
|
+
}, activeTab === 'preview' ? React__default.createElement("div", {
|
|
233
307
|
className: "h-full flex items-center justify-center bg-gray-50"
|
|
234
308
|
}, React__default.createElement("div", {
|
|
235
309
|
className: "text-center"
|
|
236
310
|
}, React__default.createElement("div", {
|
|
237
311
|
className: "mb-8"
|
|
238
|
-
}, React__default.createElement("svg", {
|
|
239
|
-
className: "w-32 h-16 mx-auto text-black",
|
|
240
|
-
viewBox: "0 0 394 80",
|
|
241
|
-
fill: "currentColor"
|
|
242
|
-
}, React__default.createElement("path", {
|
|
243
|
-
d: "M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.4zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.7h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"
|
|
244
|
-
}), React__default.createElement("path", {
|
|
245
|
-
d: "M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.2 3.4 1 1.4 1.5 3 1.5 5h-5.8z"
|
|
246
|
-
}))), React__default.createElement("div", {
|
|
247
|
-
className: "space-y-4 text-gray-600"
|
|
248
|
-
}, React__default.createElement("h3", {
|
|
249
|
-
className: "text-lg font-semibold text-gray-900"
|
|
250
|
-
}, "Design View"), React__default.createElement("p", {
|
|
251
|
-
className: "font-mono text-sm bg-gray-100 px-3 py-1 rounded"
|
|
252
|
-
}, "Design components and UI"), React__default.createElement("p", null, "Customize and preview your design changes.")), React__default.createElement("div", {
|
|
253
|
-
className: "mt-8 space-y-4"
|
|
254
|
-
}, React__default.createElement("button", {
|
|
255
|
-
className: "bg-black text-white px-6 py-3 rounded-full hover:bg-gray-800 transition-colors flex items-center space-x-2 mx-auto"
|
|
256
|
-
}, React__default.createElement("svg", {
|
|
257
|
-
className: "w-4 h-4",
|
|
258
|
-
fill: "currentColor",
|
|
259
|
-
viewBox: "0 0 24 24"
|
|
260
|
-
}, React__default.createElement("path", {
|
|
261
|
-
d: "M12 2L2 7v10c0 5.55 3.84 9.739 9 11 5.16-1.261 9-5.45 9-11V7l-10-5z"
|
|
262
|
-
})), React__default.createElement("span", null, "Design now")), React__default.createElement("p", {
|
|
263
|
-
className: "text-sm text-gray-500 underline cursor-pointer hover:text-gray-700"
|
|
264
|
-
}, "View design docs")))) : activeTab === 'interact' ? React__default.createElement("div", {
|
|
265
|
-
className: "h-full flex items-center justify-center bg-blue-50"
|
|
266
|
-
}, React__default.createElement("div", {
|
|
267
|
-
className: "text-center"
|
|
268
|
-
}, React__default.createElement("div", {
|
|
269
|
-
className: "mb-8"
|
|
270
312
|
}, React__default.createElement("svg", {
|
|
271
313
|
className: "w-32 h-32 mx-auto text-blue-500",
|
|
272
314
|
fill: "none",
|
|
@@ -286,9 +328,9 @@ const RightSidebarWrapper = React__default.memo(({
|
|
|
286
328
|
className: "space-y-4 text-gray-600"
|
|
287
329
|
}, React__default.createElement("h3", {
|
|
288
330
|
className: "text-lg font-semibold text-gray-900"
|
|
289
|
-
}, "
|
|
331
|
+
}, "Preview Mode"), React__default.createElement("p", {
|
|
290
332
|
className: "font-mono text-sm bg-blue-100 px-3 py-1 rounded"
|
|
291
|
-
}, "Live
|
|
333
|
+
}, "Live preview and testing"), React__default.createElement("p", null, "Preview and test your components in real-time.")), React__default.createElement("div", {
|
|
292
334
|
className: "mt-8 space-y-4"
|
|
293
335
|
}, React__default.createElement("button", {
|
|
294
336
|
className: "bg-blue-500 text-white px-6 py-3 rounded-full hover:bg-blue-600 transition-colors flex items-center space-x-2 mx-auto"
|
|
@@ -298,9 +340,9 @@ const RightSidebarWrapper = React__default.memo(({
|
|
|
298
340
|
viewBox: "0 0 24 24"
|
|
299
341
|
}, React__default.createElement("path", {
|
|
300
342
|
d: "M8 5v14l11-7z"
|
|
301
|
-
})), React__default.createElement("span", null, "Start
|
|
343
|
+
})), React__default.createElement("span", null, "Start Preview")), React__default.createElement("p", {
|
|
302
344
|
className: "text-sm text-gray-500 underline cursor-pointer hover:text-gray-700"
|
|
303
|
-
}, "Learn about
|
|
345
|
+
}, "Learn about preview mode")))) : React__default.createElement("div", {
|
|
304
346
|
className: "h-full bg-gray-900 text-gray-300 p-4 overflow-auto"
|
|
305
347
|
}, React__default.createElement("div", {
|
|
306
348
|
className: "font-mono text-sm"
|
|
@@ -377,8 +419,15 @@ const RightSidebarWrapper = React__default.memo(({
|
|
|
377
419
|
const RightSidebarContent = React__default.memo(({
|
|
378
420
|
detailSidebarOptions,
|
|
379
421
|
windowWidth,
|
|
380
|
-
windowHeight
|
|
422
|
+
windowHeight,
|
|
423
|
+
channelId,
|
|
424
|
+
setIsLoading,
|
|
425
|
+
isLoading,
|
|
426
|
+
...props
|
|
381
427
|
}) => {
|
|
428
|
+
const {
|
|
429
|
+
activeTab
|
|
430
|
+
} = useContext(TabContext);
|
|
382
431
|
return React__default.createElement("div", {
|
|
383
432
|
className: "border-l border-gray-200 bg-white flex-shrink-0 overflow-hidden",
|
|
384
433
|
style: {
|
|
@@ -386,13 +435,23 @@ const RightSidebarContent = React__default.memo(({
|
|
|
386
435
|
height: `${windowHeight}px`,
|
|
387
436
|
maxHeight: '100vh'
|
|
388
437
|
}
|
|
389
|
-
}, React__default.createElement(
|
|
390
|
-
detailSidebarOptions: detailSidebarOptions
|
|
438
|
+
}, React__default.createElement(RightSidebarAi, {
|
|
439
|
+
detailSidebarOptions: detailSidebarOptions,
|
|
440
|
+
windowWidth: windowWidth,
|
|
441
|
+
windowHeight: windowHeight,
|
|
442
|
+
activeTab: activeTab,
|
|
443
|
+
channelId: channelId,
|
|
444
|
+
setIsLoading: setIsLoading,
|
|
445
|
+
isLoading: isLoading,
|
|
446
|
+
...props
|
|
391
447
|
}));
|
|
392
448
|
});
|
|
393
449
|
const MessagesComponent = React__default.memo(props => {
|
|
394
450
|
return React__default.createElement(Outlet, {
|
|
395
|
-
context:
|
|
451
|
+
context: {
|
|
452
|
+
...props,
|
|
453
|
+
app: 'app'
|
|
454
|
+
}
|
|
396
455
|
});
|
|
397
456
|
});
|
|
398
457
|
// Display names for debugging
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InboxWithAi.js","sources":["../../src/templates/InboxWithAi.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"
|
|
1
|
+
{"version":3,"file":"InboxWithAi.js","sources":["../../src/templates/InboxWithAi.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
|