@djangocfg/layouts 2.1.3 → 2.1.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@djangocfg/layouts",
3
- "version": "2.1.3",
3
+ "version": "2.1.4",
4
4
  "description": "Simple, straightforward layout components for Next.js - import and use with props",
5
5
  "keywords": [
6
6
  "layouts",
@@ -92,9 +92,9 @@
92
92
  "check": "tsc --noEmit"
93
93
  },
94
94
  "peerDependencies": {
95
- "@djangocfg/api": "^2.1.3",
96
- "@djangocfg/centrifugo": "^2.1.3",
97
- "@djangocfg/ui-nextjs": "^2.1.3",
95
+ "@djangocfg/api": "^2.1.4",
96
+ "@djangocfg/centrifugo": "^2.1.4",
97
+ "@djangocfg/ui-nextjs": "^2.1.4",
98
98
  "@hookform/resolvers": "^5.2.0",
99
99
  "consola": "^3.4.2",
100
100
  "lucide-react": "^0.545.0",
@@ -114,7 +114,7 @@
114
114
  "uuid": "^11.1.0"
115
115
  },
116
116
  "devDependencies": {
117
- "@djangocfg/typescript-config": "^2.1.3",
117
+ "@djangocfg/typescript-config": "^2.1.4",
118
118
  "@types/node": "^24.7.2",
119
119
  "@types/react": "^19.1.0",
120
120
  "@types/react-dom": "^19.1.0",
@@ -66,7 +66,7 @@ export interface AIChatWidgetProps extends ChatWidgetConfig {
66
66
  * Internal AI chat widget that uses context
67
67
  */
68
68
  const AIChatWidgetInternal = React.memo<{ className?: string }>(({ className }) => {
69
- const { config, displayMode, openChat } = useAIChatContext();
69
+ const { config, displayMode, openChat, isMobile } = useAIChatContext();
70
70
 
71
71
  // Use layout hook for consistent positioning
72
72
  const { getFabStyles, getFloatingStyles } = useChatLayout();
@@ -165,7 +165,17 @@ const AIChatWidgetInternal = React.memo<{ className?: string }>(({ className })
165
165
  );
166
166
  }
167
167
 
168
- // Mode: floating - floating panel
168
+ // Mode: floating - fullscreen on mobile (via Portal), floating panel on desktop
169
+ if (isMobile) {
170
+ return (
171
+ <Portal>
172
+ <div className="fixed inset-0 z-[400] h-dvh w-screen overflow-hidden">
173
+ <ChatPanel />
174
+ </div>
175
+ </Portal>
176
+ );
177
+ }
178
+
169
179
  return (
170
180
  <Portal>
171
181
  <div style={floatingStyles} className={className || ''}>