@floegence/floe-webapp-core 0.70.0 → 0.72.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/components/layout/AppViewport.d.ts +9 -0
- package/dist/components/layout/AppViewport.js +31 -0
- package/dist/components/layout/BottomBarCompanion.js +168 -154
- package/dist/components/layout/MobileTabBar.d.ts +1 -0
- package/dist/components/layout/MobileTabBar.js +42 -41
- package/dist/components/layout/Shell.d.ts +6 -0
- package/dist/components/layout/Shell.js +158 -141
- package/dist/components/layout/index.d.ts +1 -0
- package/dist/components/ui/SurfaceFloatingLayer.js +35 -26
- package/dist/components/ui/surfaceFloatingBoundary.js +31 -40
- package/dist/floe.css +6 -4
- package/dist/full.js +598 -596
- package/dist/layout.js +36 -34
- package/dist/remote-input.css +22 -0
- package/dist/remote-input.d.ts +38 -0
- package/dist/remote-input.js +145 -0
- package/dist/styles.css +1 -1
- package/dist/viewport.d.ts +54 -0
- package/dist/viewport.js +90 -0
- package/package.json +10 -1
|
@@ -1,119 +1,124 @@
|
|
|
1
|
-
import { createComponent as a, Dynamic as L, insert as
|
|
2
|
-
import { createSignal as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { createComponent as a, Dynamic as L, insert as d, memo as x, effect as $, className as y, setAttribute as z, setStyleProperty as U, template as M, use as ce, delegateEvents as be } from "solid-js/web";
|
|
2
|
+
import { createSignal as F, onMount as ue, onCleanup as me, batch as fe, createEffect as w, createMemo as I, For as H, Show as g } from "solid-js";
|
|
3
|
+
import { observeViewport as ve } from "../../viewport.js";
|
|
4
|
+
import { useLayout as he } from "../../context/LayoutContext.js";
|
|
5
|
+
import { useResolvedFloeConfig as ge } from "../../context/FloeConfigContext.js";
|
|
6
|
+
import { useMediaQuery as Se } from "../../hooks/useMediaQuery.js";
|
|
7
|
+
import { useOverlayMask as ye } from "../../hooks/useOverlayMask.js";
|
|
7
8
|
import { cn as C } from "../../utils/cn.js";
|
|
8
|
-
import { deferAfterPaint as
|
|
9
|
-
import { useComponentRegistry as
|
|
10
|
-
import { Sidebar as
|
|
11
|
-
import { TopBar as
|
|
12
|
-
import { TopBarIconButton as
|
|
13
|
-
import { BottomBar as
|
|
14
|
-
import { MobileTabBar as
|
|
15
|
-
import { ActivityBar as
|
|
16
|
-
import { ResizeHandle as
|
|
17
|
-
import { resolveMobileTabActiveId as
|
|
18
|
-
import { KeepAliveStack as
|
|
19
|
-
import { resolveShellSidebarActiveTabChange as
|
|
20
|
-
import { createUIFirstSelection as
|
|
21
|
-
var
|
|
22
|
-
function
|
|
23
|
-
const
|
|
24
|
-
|
|
9
|
+
import { deferAfterPaint as Ce, deferNonBlocking as we } from "../../utils/defer.js";
|
|
10
|
+
import { useComponentRegistry as Ie } from "../../context/ComponentRegistry.js";
|
|
11
|
+
import { Sidebar as Me } from "./Sidebar.js";
|
|
12
|
+
import { TopBar as Ae } from "./TopBar.js";
|
|
13
|
+
import { TopBarIconButton as Be } from "./TopBarIconButton.js";
|
|
14
|
+
import { BottomBar as ke } from "./BottomBar.js";
|
|
15
|
+
import { MobileTabBar as xe } from "./MobileTabBar.js";
|
|
16
|
+
import { ActivityBar as Te } from "./ActivityBar.js";
|
|
17
|
+
import { ResizeHandle as j } from "./ResizeHandle.js";
|
|
18
|
+
import { resolveMobileTabActiveId as Oe, resolveMobileTabSelect as Ne } from "./mobileTabs.js";
|
|
19
|
+
import { KeepAliveStack as pe } from "./KeepAliveStack.js";
|
|
20
|
+
import { resolveShellSidebarActiveTabChange as Le } from "./sidebarVisibilityMotion.js";
|
|
21
|
+
import { createUIFirstSelection as $e } from "../../utils/uiFirstSelection.js";
|
|
22
|
+
var G = /* @__PURE__ */ M('<div class="flex items-center gap-2">'), ze = /* @__PURE__ */ M("<div data-floe-shell-slot=mobile-sidebar-backdrop>"), Pe = /* @__PURE__ */ M('<div data-floe-shell-slot=mobile-sidebar-drawer tabindex=-1 role=dialog aria-modal=true><div class="h-full overflow-auto overscroll-contain">'), Re = /* @__PURE__ */ M("<div data-floe-shell-slot=terminal-panel style=border-top-color:var(--terminal-panel-border)>"), We = /* @__PURE__ */ M('<div data-floe-shell-slot=mobile-accessory class="relative shrink-0">'), Fe = /* @__PURE__ */ M('<div data-floe-shell><a></a><div data-floe-shell-slot=main-layout class="flex-1 min-h-0 flex overflow-hidden relative"><div data-floe-shell-slot=content-area><main data-floe-shell-slot=main tabindex=-1>');
|
|
23
|
+
function at(r) {
|
|
24
|
+
const [J, X] = F(!1);
|
|
25
|
+
ue(() => {
|
|
26
|
+
me(ve(window, (e) => X(e.keyboardOpen)));
|
|
27
|
+
});
|
|
28
|
+
const i = he(), V = ge(), c = Se(V.config.layout.mobileQuery), [T, S] = F(!1), [E, P] = F(null);
|
|
29
|
+
let R;
|
|
25
30
|
const b = () => r.sidebarMode === "hidden", s = (() => {
|
|
26
31
|
try {
|
|
27
|
-
return
|
|
32
|
+
return Ie();
|
|
28
33
|
} catch {
|
|
29
34
|
return null;
|
|
30
35
|
}
|
|
31
|
-
})(),
|
|
36
|
+
})(), O = (e, o) => {
|
|
32
37
|
const l = s?.getComponent(e)?.sidebar?.fullScreen ?? !1, {
|
|
33
38
|
openSidebar: n,
|
|
34
39
|
visibilityMotion: u
|
|
35
|
-
} =
|
|
40
|
+
} = Le({
|
|
36
41
|
currentActiveId: i.sidebarActiveTab(),
|
|
37
42
|
nextActiveId: e,
|
|
38
43
|
requestedOpenSidebar: o?.openSidebar,
|
|
39
44
|
sidebarHidden: b(),
|
|
40
45
|
nextActiveFullScreen: l,
|
|
41
|
-
isMobile:
|
|
46
|
+
isMobile: c(),
|
|
42
47
|
resolveSidebarVisibilityMotion: r.resolveSidebarVisibilityMotion
|
|
43
48
|
});
|
|
44
49
|
i.setSidebarActiveTab(e, {
|
|
45
50
|
openSidebar: n,
|
|
46
51
|
visibilityMotion: u
|
|
47
52
|
});
|
|
48
|
-
},
|
|
53
|
+
}, N = $e({
|
|
49
54
|
committed: i.sidebarActiveTab,
|
|
50
55
|
commit: (e, o) => {
|
|
51
|
-
|
|
52
|
-
|
|
56
|
+
fe(() => {
|
|
57
|
+
O(e, o?.opts), typeof o?.mobileSidebarOpen == "boolean" && S(o.mobileSidebarOpen);
|
|
53
58
|
});
|
|
54
59
|
},
|
|
55
60
|
onEvent: (e) => r.onActivitySelectionEvent?.(e)
|
|
56
|
-
}),
|
|
61
|
+
}), p = () => r.activitySelectionMode === "ui-first" ? N.visual() : i.sidebarActiveTab(), Y = (e, o) => {
|
|
57
62
|
if (r.activitySelectionMode === "ui-first") {
|
|
58
|
-
|
|
63
|
+
N.request(e, {
|
|
59
64
|
source: "activity-bar",
|
|
60
65
|
opts: o
|
|
61
66
|
});
|
|
62
67
|
return;
|
|
63
68
|
}
|
|
64
|
-
|
|
69
|
+
O(e, o);
|
|
65
70
|
};
|
|
66
|
-
|
|
67
|
-
b() &&
|
|
68
|
-
}),
|
|
69
|
-
const e =
|
|
71
|
+
w(() => {
|
|
72
|
+
b() && S(!1);
|
|
73
|
+
}), w(() => {
|
|
74
|
+
const e = c();
|
|
70
75
|
i.isMobile() !== e && i.setIsMobile(e);
|
|
71
|
-
}),
|
|
72
|
-
|
|
73
|
-
}),
|
|
76
|
+
}), w(() => {
|
|
77
|
+
c() || S(!1);
|
|
78
|
+
}), w(() => {
|
|
74
79
|
const e = i.sidebarVisibilityMotion(), o = i.sidebarVisibilityMotionRevision();
|
|
75
|
-
e === "instant" &&
|
|
80
|
+
e === "instant" && Ce(() => i.clearSidebarVisibilityMotion(o));
|
|
76
81
|
});
|
|
77
|
-
const
|
|
82
|
+
const A = I(() => r.activityItems ? r.activityItems : s ? s.sidebarItems().filter((e) => !!e.icon).filter((e) => !(c() && e.sidebar?.hiddenOnMobile)).map((e) => ({
|
|
78
83
|
id: e.id,
|
|
79
84
|
icon: e.icon,
|
|
80
85
|
label: e.name,
|
|
81
86
|
badge: e.sidebar?.badge,
|
|
82
87
|
collapseBehavior: e.sidebar?.collapseBehavior ?? (e.sidebar?.fullScreen ? "preserve" : "toggle")
|
|
83
|
-
})) : []),
|
|
88
|
+
})) : []), Z = I(() => b() ? [] : r.sidebarContent ? [] : s ? s.sidebarItems().filter((e) => !(c() && e.sidebar?.hiddenOnMobile)).filter((e) => e.sidebar?.fullScreen !== !0 && e.sidebar?.renderIn !== "main").map((e) => ({
|
|
84
89
|
id: e.id,
|
|
85
90
|
render: () => a(L, {
|
|
86
91
|
get component() {
|
|
87
92
|
return e.component;
|
|
88
93
|
}
|
|
89
94
|
})
|
|
90
|
-
})) : []),
|
|
95
|
+
})) : []), _ = (e) => {
|
|
91
96
|
if (!b()) {
|
|
92
97
|
if (r.sidebarContent) return r.sidebarContent(e);
|
|
93
98
|
if (s)
|
|
94
|
-
return a(
|
|
99
|
+
return a(pe, {
|
|
95
100
|
get views() {
|
|
96
|
-
return
|
|
101
|
+
return Z();
|
|
97
102
|
},
|
|
98
103
|
activeId: e
|
|
99
104
|
});
|
|
100
105
|
}
|
|
101
|
-
},
|
|
106
|
+
}, W = I(() => b() ? !0 : s ? s.getComponent(i.sidebarActiveTab())?.sidebar?.fullScreen ?? !1 : !1), ee = I(() => {
|
|
102
107
|
if (b()) return !0;
|
|
103
108
|
if (!s) return !1;
|
|
104
109
|
const e = s.getComponent(i.sidebarActiveTab());
|
|
105
110
|
return e?.sidebar ? e.sidebar.fullScreen === !0 || e.sidebar.renderIn === "main" : !1;
|
|
106
111
|
});
|
|
107
|
-
|
|
108
|
-
|
|
112
|
+
w(() => {
|
|
113
|
+
c() && W() && S(!1);
|
|
109
114
|
});
|
|
110
|
-
const
|
|
115
|
+
const te = I(() => {
|
|
111
116
|
if (r.bottomBarItems) return r.bottomBarItems;
|
|
112
117
|
if (!s) return;
|
|
113
118
|
const e = [...s.statusBarItems()].sort((n, u) => (n.order ?? 100) - (u.order ?? 100)), o = e.filter((n) => n.position === "left"), l = e.filter((n) => n.position === "right");
|
|
114
119
|
return [(() => {
|
|
115
|
-
var n =
|
|
116
|
-
return
|
|
120
|
+
var n = G();
|
|
121
|
+
return d(n, a(H, {
|
|
117
122
|
each: o,
|
|
118
123
|
children: (u) => a(L, {
|
|
119
124
|
get component() {
|
|
@@ -122,8 +127,8 @@ function Ye(r) {
|
|
|
122
127
|
})
|
|
123
128
|
})), n;
|
|
124
129
|
})(), (() => {
|
|
125
|
-
var n =
|
|
126
|
-
return
|
|
130
|
+
var n = G();
|
|
131
|
+
return d(n, a(H, {
|
|
127
132
|
each: l,
|
|
128
133
|
children: (u) => a(L, {
|
|
129
134
|
get component() {
|
|
@@ -133,53 +138,53 @@ function Ye(r) {
|
|
|
133
138
|
})), n;
|
|
134
139
|
})()];
|
|
135
140
|
});
|
|
136
|
-
|
|
137
|
-
const e =
|
|
141
|
+
w(() => {
|
|
142
|
+
const e = A();
|
|
138
143
|
if (!e.length) return;
|
|
139
144
|
if (!i.sidebarActiveTab()) {
|
|
140
145
|
const l = e.find((n) => !n.onClick);
|
|
141
146
|
if (!l) return;
|
|
142
|
-
|
|
147
|
+
O(l.id);
|
|
143
148
|
}
|
|
144
149
|
});
|
|
145
|
-
const
|
|
150
|
+
const q = (e) => {
|
|
146
151
|
const o = b() ? !0 : s?.getComponent(e)?.sidebar?.fullScreen ?? !1, {
|
|
147
152
|
nextActiveId: l,
|
|
148
153
|
nextMobileSidebarOpen: n
|
|
149
|
-
} =
|
|
154
|
+
} = Ne({
|
|
150
155
|
clickedId: e,
|
|
151
156
|
activeId: i.sidebarActiveTab(),
|
|
152
|
-
mobileSidebarOpen:
|
|
157
|
+
mobileSidebarOpen: T(),
|
|
153
158
|
clickedIsFullScreen: o
|
|
154
159
|
});
|
|
155
160
|
if (i.sidebarActiveTab() !== l) {
|
|
156
161
|
if (r.activitySelectionMode === "ui-first") {
|
|
157
|
-
|
|
162
|
+
N.request(l, {
|
|
158
163
|
source: "mobile-tab-bar",
|
|
159
164
|
mobileSidebarOpen: n
|
|
160
165
|
});
|
|
161
166
|
return;
|
|
162
167
|
}
|
|
163
|
-
|
|
168
|
+
O(l);
|
|
164
169
|
}
|
|
165
|
-
|
|
166
|
-
},
|
|
170
|
+
S(n);
|
|
171
|
+
}, re = (e) => {
|
|
167
172
|
if (e.onClick) {
|
|
168
|
-
|
|
173
|
+
we(() => e.onClick());
|
|
169
174
|
return;
|
|
170
175
|
}
|
|
171
|
-
|
|
172
|
-
},
|
|
176
|
+
q(e.id);
|
|
177
|
+
}, ie = I(() => {
|
|
173
178
|
const e = r.topBarActions;
|
|
174
|
-
if (!
|
|
179
|
+
if (!c() || (r.activityBottomItemsMobileMode ?? "hidden") !== "topBar") return e;
|
|
175
180
|
const l = r.activityBottomItems ?? [];
|
|
176
|
-
return l.length ? [a(
|
|
181
|
+
return l.length ? [a(H, {
|
|
177
182
|
each: l,
|
|
178
|
-
children: (n) => a(
|
|
183
|
+
children: (n) => a(Be, {
|
|
179
184
|
get label() {
|
|
180
185
|
return n.label;
|
|
181
186
|
},
|
|
182
|
-
onClick: () =>
|
|
187
|
+
onClick: () => re(n),
|
|
183
188
|
get children() {
|
|
184
189
|
return a(L, {
|
|
185
190
|
get component() {
|
|
@@ -190,18 +195,18 @@ function Ye(r) {
|
|
|
190
195
|
}
|
|
191
196
|
})
|
|
192
197
|
}), e] : e;
|
|
193
|
-
}),
|
|
194
|
-
|
|
195
|
-
},
|
|
196
|
-
|
|
197
|
-
},
|
|
198
|
+
}), ne = () => b() ? !0 : i.sidebarCollapsed(), oe = () => E() ?? i.sidebarWidth(), v = () => V.config.accessibility, ae = () => {
|
|
199
|
+
P(i.sidebarWidth());
|
|
200
|
+
}, le = (e) => {
|
|
201
|
+
P((o) => i.clampSidebarWidth((o ?? i.sidebarWidth()) + e));
|
|
202
|
+
}, se = () => {
|
|
198
203
|
const e = E();
|
|
199
|
-
e !== null && (i.setSidebarWidth(e),
|
|
204
|
+
e !== null && (i.setSidebarWidth(e), P(null));
|
|
200
205
|
};
|
|
201
|
-
|
|
202
|
-
open: () =>
|
|
203
|
-
root: () =>
|
|
204
|
-
onClose: () =>
|
|
206
|
+
ye({
|
|
207
|
+
open: () => c() && T() && !b(),
|
|
208
|
+
root: () => R,
|
|
209
|
+
onClose: () => S(!1),
|
|
205
210
|
lockBodyScroll: !0,
|
|
206
211
|
trapFocus: !0,
|
|
207
212
|
closeOnEscape: !0,
|
|
@@ -211,7 +216,7 @@ function Ye(r) {
|
|
|
211
216
|
autoFocus: !1,
|
|
212
217
|
restoreFocus: !0
|
|
213
218
|
});
|
|
214
|
-
const
|
|
219
|
+
const de = () => {
|
|
215
220
|
if (typeof document > "u") return;
|
|
216
221
|
const e = document.getElementById(v().mainContentId);
|
|
217
222
|
if (!(!e || !(e instanceof HTMLElement)))
|
|
@@ -221,13 +226,13 @@ function Ye(r) {
|
|
|
221
226
|
}
|
|
222
227
|
};
|
|
223
228
|
return (() => {
|
|
224
|
-
var e =
|
|
225
|
-
return o.$$click = () =>
|
|
229
|
+
var e = Fe(), o = e.firstChild, l = o.nextSibling, n = l.firstChild, u = n.firstChild;
|
|
230
|
+
return o.$$click = () => de(), d(o, () => v().skipLinkLabel), d(e, a(Ae, {
|
|
226
231
|
get logo() {
|
|
227
232
|
return r.logo;
|
|
228
233
|
},
|
|
229
234
|
get actions() {
|
|
230
|
-
return
|
|
235
|
+
return ie();
|
|
231
236
|
},
|
|
232
237
|
get ariaLabel() {
|
|
233
238
|
return v().topBarLabel;
|
|
@@ -235,32 +240,32 @@ function Ye(r) {
|
|
|
235
240
|
get class() {
|
|
236
241
|
return r.slotClassNames?.topBar;
|
|
237
242
|
}
|
|
238
|
-
}), l),
|
|
243
|
+
}), l), d(l, a(g, {
|
|
239
244
|
get when() {
|
|
240
|
-
return !
|
|
245
|
+
return !c();
|
|
241
246
|
},
|
|
242
247
|
get children() {
|
|
243
|
-
return [a(
|
|
248
|
+
return [a(g, {
|
|
244
249
|
get when() {
|
|
245
|
-
return
|
|
250
|
+
return A().length > 0;
|
|
246
251
|
},
|
|
247
252
|
get children() {
|
|
248
|
-
return a(
|
|
253
|
+
return a(Te, {
|
|
249
254
|
get items() {
|
|
250
|
-
return
|
|
255
|
+
return A();
|
|
251
256
|
},
|
|
252
257
|
get bottomItems() {
|
|
253
258
|
return r.activityBottomItems;
|
|
254
259
|
},
|
|
255
260
|
get activeId() {
|
|
256
|
-
return
|
|
261
|
+
return p();
|
|
257
262
|
},
|
|
258
|
-
onActiveChange:
|
|
263
|
+
onActiveChange: Y,
|
|
259
264
|
get collapsed() {
|
|
260
|
-
return
|
|
265
|
+
return ne();
|
|
261
266
|
},
|
|
262
267
|
get onCollapsedChange() {
|
|
263
|
-
return
|
|
268
|
+
return x(() => !!b())() ? void 0 : i.setSidebarCollapsed;
|
|
264
269
|
},
|
|
265
270
|
get ariaLabel() {
|
|
266
271
|
return v().primaryNavigationLabel;
|
|
@@ -270,17 +275,17 @@ function Ye(r) {
|
|
|
270
275
|
}
|
|
271
276
|
});
|
|
272
277
|
}
|
|
273
|
-
}), a(
|
|
278
|
+
}), a(g, {
|
|
274
279
|
get when() {
|
|
275
280
|
return !b();
|
|
276
281
|
},
|
|
277
282
|
get children() {
|
|
278
|
-
return a(
|
|
283
|
+
return a(Me, {
|
|
279
284
|
get width() {
|
|
280
|
-
return
|
|
285
|
+
return oe();
|
|
281
286
|
},
|
|
282
287
|
get collapsed() {
|
|
283
|
-
return i.sidebarCollapsed() ||
|
|
288
|
+
return i.sidebarCollapsed() || W();
|
|
284
289
|
},
|
|
285
290
|
get visibilityMotion() {
|
|
286
291
|
return i.sidebarVisibilityMotion();
|
|
@@ -289,65 +294,73 @@ function Ye(r) {
|
|
|
289
294
|
return v().sidebarLabel;
|
|
290
295
|
},
|
|
291
296
|
get resizer() {
|
|
292
|
-
return a(
|
|
297
|
+
return a(j, {
|
|
293
298
|
direction: "horizontal",
|
|
294
|
-
onResize:
|
|
295
|
-
onResizeStart:
|
|
296
|
-
onResizeEnd:
|
|
299
|
+
onResize: le,
|
|
300
|
+
onResizeStart: ae,
|
|
301
|
+
onResizeEnd: se
|
|
297
302
|
});
|
|
298
303
|
},
|
|
299
304
|
get class() {
|
|
300
305
|
return r.slotClassNames?.sidebar;
|
|
301
306
|
},
|
|
302
307
|
get children() {
|
|
303
|
-
return
|
|
308
|
+
return _(i.sidebarActiveTab());
|
|
304
309
|
}
|
|
305
310
|
});
|
|
306
311
|
}
|
|
307
312
|
})];
|
|
308
313
|
}
|
|
309
|
-
}), n),
|
|
314
|
+
}), n), d(l, a(g, {
|
|
310
315
|
get when() {
|
|
311
|
-
return
|
|
316
|
+
return x(() => !!(c() && T()))() && !b();
|
|
312
317
|
},
|
|
313
318
|
get children() {
|
|
314
319
|
return [(() => {
|
|
315
|
-
var t =
|
|
316
|
-
return t.$$click = () =>
|
|
320
|
+
var t = ze();
|
|
321
|
+
return t.$$click = () => S(!1), $(() => y(t, C("absolute inset-0 z-40 bg-black/30 cursor-pointer", r.slotClassNames?.mobileSidebarBackdrop))), t;
|
|
317
322
|
})(), (() => {
|
|
318
|
-
var t =
|
|
319
|
-
return typeof
|
|
320
|
-
var B = C("absolute left-0 top-0 bottom-0 z-50", "w-72 max-w-[80vw]", "bg-sidebar border-r border-sidebar-border", "shadow-xl", "animate-in slide-in-from-left duration-200", r.slotClassNames?.mobileSidebarDrawer),
|
|
321
|
-
return B !== f.e &&
|
|
323
|
+
var t = Pe(), m = t.firstChild, h = R;
|
|
324
|
+
return typeof h == "function" ? ce(h, t) : R = t, d(m, () => _(i.sidebarActiveTab())), $((f) => {
|
|
325
|
+
var B = C("absolute left-0 top-0 bottom-0 z-50", "w-72 max-w-[80vw]", "bg-sidebar border-r border-sidebar-border", "shadow-xl", "animate-in slide-in-from-left duration-200", r.slotClassNames?.mobileSidebarDrawer), k = v().sidebarLabel;
|
|
326
|
+
return B !== f.e && y(t, f.e = B), k !== f.t && z(t, "aria-label", f.t = k), f;
|
|
322
327
|
}, {
|
|
323
328
|
e: void 0,
|
|
324
329
|
t: void 0
|
|
325
330
|
}), t;
|
|
326
331
|
})()];
|
|
327
332
|
}
|
|
328
|
-
}), n),
|
|
333
|
+
}), n), d(u, () => r.children), d(n, a(g, {
|
|
329
334
|
get when() {
|
|
330
|
-
return
|
|
335
|
+
return x(() => !!(!c() && i.terminalOpened()))() && r.terminalPanel;
|
|
331
336
|
},
|
|
332
337
|
get children() {
|
|
333
|
-
var t =
|
|
334
|
-
return
|
|
338
|
+
var t = Re();
|
|
339
|
+
return d(t, a(j, {
|
|
335
340
|
direction: "vertical",
|
|
336
341
|
onResize: (m) => i.setTerminalHeight(i.terminalHeight() - m)
|
|
337
|
-
}), null),
|
|
338
|
-
var
|
|
339
|
-
return
|
|
342
|
+
}), null), d(t, () => r.terminalPanel, null), $((m) => {
|
|
343
|
+
var h = C("relative shrink-0 border-t border-border bg-terminal-background overflow-hidden", r.slotClassNames?.terminalPanel), f = `${i.terminalHeight()}px`;
|
|
344
|
+
return h !== m.e && y(t, m.e = h), f !== m.t && U(t, "height", m.t = f), m;
|
|
340
345
|
}, {
|
|
341
346
|
e: void 0,
|
|
342
347
|
t: void 0
|
|
343
348
|
}), t;
|
|
344
349
|
}
|
|
345
|
-
}), null),
|
|
350
|
+
}), null), d(e, a(g, {
|
|
351
|
+
get when() {
|
|
352
|
+
return x(() => !!c())() && r.mobileAccessory;
|
|
353
|
+
},
|
|
354
|
+
get children() {
|
|
355
|
+
var t = We();
|
|
356
|
+
return d(t, () => r.mobileAccessory), t;
|
|
357
|
+
}
|
|
358
|
+
}), null), d(e, a(g, {
|
|
346
359
|
get when() {
|
|
347
|
-
return !
|
|
360
|
+
return !c();
|
|
348
361
|
},
|
|
349
362
|
get children() {
|
|
350
|
-
return a(
|
|
363
|
+
return a(ke, {
|
|
351
364
|
get class() {
|
|
352
365
|
return r.slotClassNames?.bottomBar;
|
|
353
366
|
},
|
|
@@ -355,31 +368,34 @@ function Ye(r) {
|
|
|
355
368
|
return r.slotClassNames?.bottomBarHeight;
|
|
356
369
|
},
|
|
357
370
|
get children() {
|
|
358
|
-
return
|
|
371
|
+
return te();
|
|
359
372
|
}
|
|
360
373
|
});
|
|
361
374
|
}
|
|
362
|
-
}), null),
|
|
375
|
+
}), null), d(e, a(g, {
|
|
363
376
|
get when() {
|
|
364
|
-
return
|
|
377
|
+
return x(() => !!c())() && A().length > 0;
|
|
365
378
|
},
|
|
366
379
|
get children() {
|
|
367
|
-
return a(
|
|
380
|
+
return a(xe, {
|
|
381
|
+
get hidden() {
|
|
382
|
+
return !!(r.hideMobileNavigationWhenKeyboardOpen && J());
|
|
383
|
+
},
|
|
368
384
|
get items() {
|
|
369
|
-
return
|
|
385
|
+
return A();
|
|
370
386
|
},
|
|
371
387
|
get activeId() {
|
|
372
|
-
return
|
|
373
|
-
activeId:
|
|
374
|
-
mobileSidebarOpen:
|
|
375
|
-
activeIsFullScreen: s?.getComponent(
|
|
388
|
+
return Oe({
|
|
389
|
+
activeId: p(),
|
|
390
|
+
mobileSidebarOpen: N.pending() ? !0 : T(),
|
|
391
|
+
activeIsFullScreen: s?.getComponent(p())?.sidebar?.fullScreen ?? W(),
|
|
376
392
|
activeIsPage: (() => {
|
|
377
|
-
const t = s?.getComponent(
|
|
378
|
-
return t ? t.fullScreen === !0 || t.renderIn === "main" :
|
|
393
|
+
const t = s?.getComponent(p())?.sidebar;
|
|
394
|
+
return t ? t.fullScreen === !0 || t.renderIn === "main" : ee();
|
|
379
395
|
})()
|
|
380
396
|
});
|
|
381
397
|
},
|
|
382
|
-
onSelect:
|
|
398
|
+
onSelect: q,
|
|
383
399
|
get ariaLabel() {
|
|
384
400
|
return v().mobileNavigationLabel;
|
|
385
401
|
},
|
|
@@ -388,8 +404,8 @@ function Ye(r) {
|
|
|
388
404
|
}
|
|
389
405
|
});
|
|
390
406
|
}
|
|
391
|
-
}), null),
|
|
392
|
-
var m = C(
|
|
407
|
+
}), null), $((t) => {
|
|
408
|
+
var m = r.fillParent ? "100%" : void 0, h = C(
|
|
393
409
|
// Use dvh when supported to avoid mobile browser UI causing layout jumps.
|
|
394
410
|
"h-screen h-[100dvh] w-full flex flex-col overflow-hidden",
|
|
395
411
|
"bg-background text-foreground",
|
|
@@ -397,8 +413,8 @@ function Ye(r) {
|
|
|
397
413
|
"overscroll-none",
|
|
398
414
|
r.slotClassNames?.root,
|
|
399
415
|
r.class
|
|
400
|
-
),
|
|
401
|
-
return m !== t.e &&
|
|
416
|
+
), f = `#${v().mainContentId}`, B = C("fixed left-3 top-3 z-[120] rounded-md bg-primary px-3 py-2 text-xs font-medium text-primary-foreground shadow-md", "transition-transform duration-150 motion-reduce:transition-none", "-translate-y-[200%] focus:translate-y-0"), k = C("flex-1 min-w-0 flex flex-col overflow-hidden", r.slotClassNames?.contentArea), D = C("flex-1 min-h-0 overflow-auto overscroll-contain", r.slotClassNames?.main), K = v().mainContentId, Q = v().mainLabel;
|
|
417
|
+
return m !== t.e && U(e, "height", t.e = m), h !== t.t && y(e, t.t = h), f !== t.a && z(o, "href", t.a = f), B !== t.o && y(o, t.o = B), k !== t.i && y(n, t.i = k), D !== t.n && y(u, t.n = D), K !== t.s && z(u, "id", t.s = K), Q !== t.h && z(u, "aria-label", t.h = Q), t;
|
|
402
418
|
}, {
|
|
403
419
|
e: void 0,
|
|
404
420
|
t: void 0,
|
|
@@ -406,11 +422,12 @@ function Ye(r) {
|
|
|
406
422
|
o: void 0,
|
|
407
423
|
i: void 0,
|
|
408
424
|
n: void 0,
|
|
409
|
-
s: void 0
|
|
425
|
+
s: void 0,
|
|
426
|
+
h: void 0
|
|
410
427
|
}), e;
|
|
411
428
|
})();
|
|
412
429
|
}
|
|
413
|
-
|
|
430
|
+
be(["click"]);
|
|
414
431
|
export {
|
|
415
|
-
|
|
432
|
+
at as Shell
|
|
416
433
|
};
|
|
@@ -13,3 +13,4 @@ export { Panel, PanelHeader, PanelContent, type PanelProps, type PanelHeaderProp
|
|
|
13
13
|
export { KeepAliveStack, type KeepAliveStackProps, type KeepAliveView } from './KeepAliveStack';
|
|
14
14
|
export { DisplayModeSwitcher, sanitizeDisplayMode, type DisplayMode, type DisplayModeSwitcherProps, } from './DisplayModeSwitcher';
|
|
15
15
|
export { DisplayModePageShell, type DisplayModePageShellProps } from './DisplayModePageShell';
|
|
16
|
+
export { AppViewport, type AppViewportProps } from './AppViewport';
|