@floegence/floe-webapp-core 0.1.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/app/FloeApp.d.ts +37 -0
- package/dist/app/FloeProvider.d.ts +17 -0
- package/dist/app/index.d.ts +2 -0
- package/dist/components/deck/DeckCell.d.ts +17 -0
- package/dist/components/deck/DeckGrid.d.ts +14 -0
- package/dist/components/deck/DeckTopBar.d.ts +9 -0
- package/dist/components/deck/DropZonePreview.d.ts +10 -0
- package/dist/components/deck/LayoutSelector.d.ts +7 -0
- package/dist/components/deck/WidgetFrame.d.ts +14 -0
- package/dist/components/deck/WidgetPalette.d.ts +7 -0
- package/dist/components/deck/WidgetResizeHandle.d.ts +9 -0
- package/dist/components/deck/WidgetTypeSwitcher.d.ts +9 -0
- package/dist/components/deck/index.d.ts +9 -0
- package/dist/components/icons/index.d.ts +29 -0
- package/dist/components/index.d.ts +5 -0
- package/dist/components/launchpad/Launchpad.d.ts +15 -0
- package/dist/components/launchpad/LaunchpadGrid.d.ts +8 -0
- package/dist/components/launchpad/LaunchpadItem.d.ts +18 -0
- package/dist/components/launchpad/LaunchpadPagination.d.ts +6 -0
- package/dist/components/launchpad/LaunchpadSearch.d.ts +6 -0
- package/dist/components/launchpad/index.d.ts +10 -0
- package/dist/components/layout/ActivityBar.d.ts +24 -0
- package/dist/components/layout/BottomBar.d.ts +27 -0
- package/dist/components/layout/MobileTabBar.d.ts +19 -0
- package/dist/components/layout/Panel.d.ts +27 -0
- package/dist/components/layout/ResizeHandle.d.ts +9 -0
- package/dist/components/layout/Shell.d.ts +23 -0
- package/dist/components/layout/Sidebar.d.ts +33 -0
- package/dist/components/layout/TopBar.d.ts +11 -0
- package/dist/components/layout/index.d.ts +9 -0
- package/dist/components/loading/LoadingOverlay.d.ts +10 -0
- package/dist/components/loading/Skeleton.d.ts +21 -0
- package/dist/components/loading/SnakeLoader.d.ts +9 -0
- package/dist/components/loading/index.d.ts +3 -0
- package/dist/components/ui/Button.d.ts +12 -0
- package/dist/components/ui/Card.d.ts +79 -0
- package/dist/components/ui/CommandPalette.d.ts +4 -0
- package/dist/components/ui/Dialog.d.ts +29 -0
- package/dist/components/ui/Dropdown.d.ts +35 -0
- package/dist/components/ui/FloatingWindow.d.ts +45 -0
- package/dist/components/ui/Input.d.ts +16 -0
- package/dist/components/ui/Tooltip.d.ts +12 -0
- package/dist/components/ui/index.d.ts +8 -0
- package/dist/context/CommandContext.d.ts +30 -0
- package/dist/context/ComponentRegistry.d.ts +90 -0
- package/dist/context/DeckContext.d.ts +88 -0
- package/dist/context/FloeConfigContext.d.ts +133 -0
- package/dist/context/LayoutContext.d.ts +20 -0
- package/dist/context/NotificationContext.d.ts +32 -0
- package/dist/context/ThemeContext.d.ts +12 -0
- package/dist/context/WidgetRegistry.d.ts +37 -0
- package/dist/context/createSimpleContext.d.ts +15 -0
- package/dist/context/index.d.ts +9 -0
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/useDebounce.d.ts +5 -0
- package/dist/hooks/useDeckDrag.d.ts +6 -0
- package/dist/hooks/useKeybind.d.ts +4 -0
- package/dist/hooks/useMediaQuery.d.ts +5 -0
- package/dist/hooks/usePersisted.d.ts +5 -0
- package/dist/hooks/useResizeObserver.d.ts +9 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +226 -0
- package/dist/index10.js +92 -0
- package/dist/index11.js +101 -0
- package/dist/index12.js +113 -0
- package/dist/index13.js +82 -0
- package/dist/index14.js +123 -0
- package/dist/index15.js +106 -0
- package/dist/index16.js +131 -0
- package/dist/index17.js +152 -0
- package/dist/index18.js +41 -0
- package/dist/index19.js +61 -0
- package/dist/index2.js +215 -0
- package/dist/index20.js +79 -0
- package/dist/index21.js +162 -0
- package/dist/index22.js +293 -0
- package/dist/index23.js +136 -0
- package/dist/index24.js +45 -0
- package/dist/index25.js +146 -0
- package/dist/index26.js +258 -0
- package/dist/index27.js +92 -0
- package/dist/index28.js +42 -0
- package/dist/index29.js +71 -0
- package/dist/index3.js +94 -0
- package/dist/index30.js +280 -0
- package/dist/index31.js +154 -0
- package/dist/index32.js +31 -0
- package/dist/index33.js +50 -0
- package/dist/index34.js +15 -0
- package/dist/index35.js +32 -0
- package/dist/index36.js +51 -0
- package/dist/index37.js +41 -0
- package/dist/index38.js +28 -0
- package/dist/index39.js +176 -0
- package/dist/index4.js +55 -0
- package/dist/index40.js +43 -0
- package/dist/index41.js +69 -0
- package/dist/index42.js +99 -0
- package/dist/index43.js +120 -0
- package/dist/index44.js +141 -0
- package/dist/index45.js +42 -0
- package/dist/index46.js +386 -0
- package/dist/index47.js +16 -0
- package/dist/index48.js +13 -0
- package/dist/index49.js +19 -0
- package/dist/index5.js +48 -0
- package/dist/index50.js +13 -0
- package/dist/index51.js +11 -0
- package/dist/index52.js +59 -0
- package/dist/index53.js +8 -0
- package/dist/index54.js +6 -0
- package/dist/index55.js +48 -0
- package/dist/index56.js +29 -0
- package/dist/index57.js +35 -0
- package/dist/index58.js +94 -0
- package/dist/index59.js +25 -0
- package/dist/index6.js +73 -0
- package/dist/index60.js +49 -0
- package/dist/index61.js +17 -0
- package/dist/index62.js +38 -0
- package/dist/index63.js +67 -0
- package/dist/index64.js +87 -0
- package/dist/index65.js +17 -0
- package/dist/index66.js +2266 -0
- package/dist/index7.js +112 -0
- package/dist/index8.js +66 -0
- package/dist/index9.js +33 -0
- package/dist/styles/build.d.ts +1 -0
- package/dist/styles/themes/index.d.ts +9 -0
- package/dist/styles.css +1 -0
- package/dist/styles.js +1 -0
- package/dist/utils/animations.d.ts +222 -0
- package/dist/utils/bodyStyleLock.d.ts +9 -0
- package/dist/utils/cn.d.ts +5 -0
- package/dist/utils/defer.d.ts +5 -0
- package/dist/utils/gridCollision.d.ts +31 -0
- package/dist/utils/gridLayout.d.ts +38 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/keybind.d.ts +22 -0
- package/dist/utils/persist.d.ts +17 -0
- package/dist/widgets/MetricsWidget.d.ts +5 -0
- package/dist/widgets/SidebarWidget.d.ts +11 -0
- package/dist/widgets/TerminalWidget.d.ts +5 -0
- package/dist/widgets/index.d.ts +3 -0
- package/package.json +40 -0
package/dist/index2.js
ADDED
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { delegateEvents as z, template as f, insert as a, createComponent as n, Dynamic as p, memo as b, effect as w, className as y, setStyleProperty as R } from "solid-js/web";
|
|
2
|
+
import { createSignal as H, createEffect as C, createMemo as $, For as _, Show as m } from "solid-js";
|
|
3
|
+
import { useLayout as O } from "./index41.js";
|
|
4
|
+
import { useResolvedFloeConfig as F } from "./index39.js";
|
|
5
|
+
import { useMediaQuery as P } from "./index47.js";
|
|
6
|
+
import { cn as x } from "./index53.js";
|
|
7
|
+
import { useComponentRegistry as W } from "./index44.js";
|
|
8
|
+
import { Sidebar as E } from "./index4.js";
|
|
9
|
+
import { TopBar as Q } from "./index5.js";
|
|
10
|
+
import { BottomBar as D } from "./index6.js";
|
|
11
|
+
import { MobileTabBar as L } from "./index7.js";
|
|
12
|
+
import { ActivityBar as N } from "./index3.js";
|
|
13
|
+
import { ResizeHandle as T } from "./index8.js";
|
|
14
|
+
var A = /* @__PURE__ */ f('<div class="flex items-center gap-2">'), j = /* @__PURE__ */ f('<div class="absolute inset-0 z-40 bg-background/80 backdrop-blur-sm cursor-pointer">'), q = /* @__PURE__ */ f('<div><div class="h-full overflow-auto overscroll-contain">'), G = /* @__PURE__ */ f('<div class="relative shrink-0 border-t border-border bg-terminal-background overflow-hidden">'), J = /* @__PURE__ */ f('<div><div class="flex-1 min-h-0 flex overflow-hidden relative"><div class="flex-1 min-w-0 flex flex-col overflow-hidden"><main class="flex-1 min-h-0 overflow-auto overscroll-contain">');
|
|
15
|
+
function ae(o) {
|
|
16
|
+
const r = O(), B = F(), s = P(B.config.layout.mobileQuery), [v, g] = H(!1), d = (() => {
|
|
17
|
+
try {
|
|
18
|
+
return W();
|
|
19
|
+
} catch {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
})();
|
|
23
|
+
C(() => {
|
|
24
|
+
const e = s();
|
|
25
|
+
r.isMobile() !== e && r.setIsMobile(e);
|
|
26
|
+
}), C(() => {
|
|
27
|
+
s() || g(!1);
|
|
28
|
+
});
|
|
29
|
+
const u = $(() => o.activityItems ? o.activityItems : d ? d.sidebarItems().filter((e) => !!e.icon).filter((e) => {
|
|
30
|
+
var t;
|
|
31
|
+
return !(s() && ((t = e.sidebar) != null && t.hiddenOnMobile));
|
|
32
|
+
}).map((e) => {
|
|
33
|
+
var t;
|
|
34
|
+
return {
|
|
35
|
+
id: e.id,
|
|
36
|
+
icon: e.icon,
|
|
37
|
+
label: e.name,
|
|
38
|
+
badge: (t = e.sidebar) == null ? void 0 : t.badge
|
|
39
|
+
};
|
|
40
|
+
}) : []), S = (e) => {
|
|
41
|
+
if (o.sidebarContent) return o.sidebarContent(e);
|
|
42
|
+
if (!d) return;
|
|
43
|
+
const t = d.getComponent(e);
|
|
44
|
+
if (t != null && t.sidebar && !t.sidebar.fullScreen)
|
|
45
|
+
return n(p, {
|
|
46
|
+
get component() {
|
|
47
|
+
return t.component;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}, I = $(() => {
|
|
51
|
+
var t;
|
|
52
|
+
if (!d) return !1;
|
|
53
|
+
const e = d.getComponent(r.sidebarActiveTab());
|
|
54
|
+
return ((t = e == null ? void 0 : e.sidebar) == null ? void 0 : t.fullScreen) ?? !1;
|
|
55
|
+
}), M = $(() => {
|
|
56
|
+
if (o.bottomBarItems) return o.bottomBarItems;
|
|
57
|
+
if (!d) return;
|
|
58
|
+
const e = [...d.statusBarItems()].sort((l, i) => (l.order ?? 100) - (i.order ?? 100)), t = e.filter((l) => l.position === "left"), c = e.filter((l) => l.position === "right");
|
|
59
|
+
return [(() => {
|
|
60
|
+
var l = A();
|
|
61
|
+
return a(l, n(_, {
|
|
62
|
+
each: t,
|
|
63
|
+
children: (i) => n(p, {
|
|
64
|
+
get component() {
|
|
65
|
+
return i.component;
|
|
66
|
+
}
|
|
67
|
+
})
|
|
68
|
+
})), l;
|
|
69
|
+
})(), (() => {
|
|
70
|
+
var l = A();
|
|
71
|
+
return a(l, n(_, {
|
|
72
|
+
each: c,
|
|
73
|
+
children: (i) => n(p, {
|
|
74
|
+
get component() {
|
|
75
|
+
return i.component;
|
|
76
|
+
}
|
|
77
|
+
})
|
|
78
|
+
})), l;
|
|
79
|
+
})()];
|
|
80
|
+
});
|
|
81
|
+
C(() => {
|
|
82
|
+
const e = u();
|
|
83
|
+
if (!e.length) return;
|
|
84
|
+
const t = r.sidebarActiveTab();
|
|
85
|
+
(!t || !e.some((c) => c.id === t)) && r.setSidebarActiveTab(e[0].id);
|
|
86
|
+
});
|
|
87
|
+
const k = (e) => {
|
|
88
|
+
r.sidebarActiveTab() === e && v() ? g(!1) : (r.setSidebarActiveTab(e), g(!0));
|
|
89
|
+
};
|
|
90
|
+
return (() => {
|
|
91
|
+
var e = J(), t = e.firstChild, c = t.firstChild, l = c.firstChild;
|
|
92
|
+
return a(e, n(Q, {
|
|
93
|
+
get logo() {
|
|
94
|
+
return o.logo;
|
|
95
|
+
},
|
|
96
|
+
get actions() {
|
|
97
|
+
return o.topBarActions;
|
|
98
|
+
}
|
|
99
|
+
}), t), a(t, n(m, {
|
|
100
|
+
get when() {
|
|
101
|
+
return !s();
|
|
102
|
+
},
|
|
103
|
+
get children() {
|
|
104
|
+
return [n(m, {
|
|
105
|
+
get when() {
|
|
106
|
+
return u().length > 0;
|
|
107
|
+
},
|
|
108
|
+
get children() {
|
|
109
|
+
return n(N, {
|
|
110
|
+
get items() {
|
|
111
|
+
return u();
|
|
112
|
+
},
|
|
113
|
+
get bottomItems() {
|
|
114
|
+
return o.activityBottomItems;
|
|
115
|
+
},
|
|
116
|
+
get activeId() {
|
|
117
|
+
return r.sidebarActiveTab();
|
|
118
|
+
},
|
|
119
|
+
get onActiveChange() {
|
|
120
|
+
return r.setSidebarActiveTab;
|
|
121
|
+
},
|
|
122
|
+
get collapsed() {
|
|
123
|
+
return r.sidebarCollapsed();
|
|
124
|
+
},
|
|
125
|
+
get onCollapsedChange() {
|
|
126
|
+
return r.setSidebarCollapsed;
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}), n(m, {
|
|
131
|
+
get when() {
|
|
132
|
+
return b(() => !r.sidebarCollapsed())() && !I();
|
|
133
|
+
},
|
|
134
|
+
get children() {
|
|
135
|
+
return n(E, {
|
|
136
|
+
get width() {
|
|
137
|
+
return r.sidebarWidth();
|
|
138
|
+
},
|
|
139
|
+
get resizer() {
|
|
140
|
+
return n(T, {
|
|
141
|
+
direction: "horizontal",
|
|
142
|
+
onResize: (i) => r.setSidebarWidth(r.sidebarWidth() + i)
|
|
143
|
+
});
|
|
144
|
+
},
|
|
145
|
+
get children() {
|
|
146
|
+
return S(r.sidebarActiveTab());
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
})];
|
|
151
|
+
}
|
|
152
|
+
}), c), a(t, n(m, {
|
|
153
|
+
get when() {
|
|
154
|
+
return b(() => !!s())() && v();
|
|
155
|
+
},
|
|
156
|
+
get children() {
|
|
157
|
+
return [(() => {
|
|
158
|
+
var i = j();
|
|
159
|
+
return i.$$click = () => g(!1), i;
|
|
160
|
+
})(), (() => {
|
|
161
|
+
var i = q(), h = i.firstChild;
|
|
162
|
+
return a(h, () => S(r.sidebarActiveTab())), w(() => y(i, x("absolute left-0 top-0 bottom-0 z-50 w-80 max-w-[85vw]", "bg-sidebar border-r border-sidebar-border", "shadow-xl", "animate-in slide-in-from-left duration-200"))), i;
|
|
163
|
+
})()];
|
|
164
|
+
}
|
|
165
|
+
}), c), a(l, () => o.children), a(c, n(m, {
|
|
166
|
+
get when() {
|
|
167
|
+
return b(() => !!(!s() && r.terminalOpened()))() && o.terminalPanel;
|
|
168
|
+
},
|
|
169
|
+
get children() {
|
|
170
|
+
var i = G();
|
|
171
|
+
return a(i, n(T, {
|
|
172
|
+
direction: "vertical",
|
|
173
|
+
onResize: (h) => r.setTerminalHeight(r.terminalHeight() - h)
|
|
174
|
+
}), null), a(i, () => o.terminalPanel, null), w((h) => R(i, "height", `${r.terminalHeight()}px`)), i;
|
|
175
|
+
}
|
|
176
|
+
}), null), a(e, n(m, {
|
|
177
|
+
get when() {
|
|
178
|
+
return !s();
|
|
179
|
+
},
|
|
180
|
+
get children() {
|
|
181
|
+
return n(D, {
|
|
182
|
+
get children() {
|
|
183
|
+
return M();
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}), null), a(e, n(m, {
|
|
188
|
+
get when() {
|
|
189
|
+
return b(() => !!s())() && u().length > 0;
|
|
190
|
+
},
|
|
191
|
+
get children() {
|
|
192
|
+
return n(L, {
|
|
193
|
+
get items() {
|
|
194
|
+
return u();
|
|
195
|
+
},
|
|
196
|
+
get activeId() {
|
|
197
|
+
return b(() => !!v())() ? r.sidebarActiveTab() : "";
|
|
198
|
+
},
|
|
199
|
+
onSelect: k
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}), null), w(() => y(e, x(
|
|
203
|
+
// Use dvh when supported to avoid mobile browser UI causing layout jumps.
|
|
204
|
+
"h-screen h-[100dvh] w-full flex flex-col overflow-hidden",
|
|
205
|
+
"bg-background text-foreground",
|
|
206
|
+
// Prevent overscroll on the shell container
|
|
207
|
+
"overscroll-none",
|
|
208
|
+
o.class
|
|
209
|
+
))), e;
|
|
210
|
+
})();
|
|
211
|
+
}
|
|
212
|
+
z(["click"]);
|
|
213
|
+
export {
|
|
214
|
+
ae as Shell
|
|
215
|
+
};
|
package/dist/index20.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { template as n, insert as o, createComponent as s, spread as c, mergeProps as d } from "solid-js/web";
|
|
2
|
+
import { splitProps as g, Show as i } from "solid-js";
|
|
3
|
+
import { cn as p } from "./index53.js";
|
|
4
|
+
var m = /* @__PURE__ */ n('<div class="absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground pointer-events-none">'), h = /* @__PURE__ */ n('<div class="absolute right-2.5 top-1/2 -translate-y-1/2 text-muted-foreground pointer-events-none">'), f = /* @__PURE__ */ n('<p class="mt-1 text-[11px] text-error">'), x = /* @__PURE__ */ n("<div class=relative><input>"), b = /* @__PURE__ */ n("<div><textarea>");
|
|
5
|
+
const v = {
|
|
6
|
+
sm: "h-7 text-xs px-2",
|
|
7
|
+
md: "h-8 text-xs px-2.5",
|
|
8
|
+
lg: "h-9 text-sm px-3"
|
|
9
|
+
};
|
|
10
|
+
function I(a) {
|
|
11
|
+
const [r, u] = g(a, ["size", "error", "leftIcon", "rightIcon", "class"]);
|
|
12
|
+
return (() => {
|
|
13
|
+
var t = x(), l = t.firstChild;
|
|
14
|
+
return o(t, s(i, {
|
|
15
|
+
get when() {
|
|
16
|
+
return r.leftIcon;
|
|
17
|
+
},
|
|
18
|
+
get children() {
|
|
19
|
+
var e = m();
|
|
20
|
+
return o(e, () => r.leftIcon), e;
|
|
21
|
+
}
|
|
22
|
+
}), l), c(l, d({
|
|
23
|
+
get class() {
|
|
24
|
+
return p(
|
|
25
|
+
"w-full rounded border border-input bg-background shadow-sm",
|
|
26
|
+
"placeholder:text-muted-foreground/60",
|
|
27
|
+
"transition-colors duration-100",
|
|
28
|
+
"focus:outline-none focus:ring-1 focus:ring-ring focus:border-ring",
|
|
29
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
30
|
+
r.error && "border-error focus:ring-error",
|
|
31
|
+
v[r.size ?? "md"],
|
|
32
|
+
// Icon padding must come AFTER sizeStyles to override px-*
|
|
33
|
+
r.leftIcon && "pl-10",
|
|
34
|
+
r.rightIcon && "pr-10",
|
|
35
|
+
r.class
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
}, u), !1, !1), o(t, s(i, {
|
|
39
|
+
get when() {
|
|
40
|
+
return r.rightIcon;
|
|
41
|
+
},
|
|
42
|
+
get children() {
|
|
43
|
+
var e = h();
|
|
44
|
+
return o(e, () => r.rightIcon), e;
|
|
45
|
+
}
|
|
46
|
+
}), null), o(t, s(i, {
|
|
47
|
+
get when() {
|
|
48
|
+
return r.error;
|
|
49
|
+
},
|
|
50
|
+
get children() {
|
|
51
|
+
var e = f();
|
|
52
|
+
return o(e, () => r.error), e;
|
|
53
|
+
}
|
|
54
|
+
}), null), t;
|
|
55
|
+
})();
|
|
56
|
+
}
|
|
57
|
+
function y(a) {
|
|
58
|
+
const [r, u] = g(a, ["error", "class"]);
|
|
59
|
+
return (() => {
|
|
60
|
+
var t = b(), l = t.firstChild;
|
|
61
|
+
return c(l, d({
|
|
62
|
+
get class() {
|
|
63
|
+
return p("w-full min-h-16 rounded border border-input bg-background p-2.5 text-xs shadow-sm", "placeholder:text-muted-foreground/60", "transition-colors duration-100", "focus:outline-none focus:ring-1 focus:ring-ring focus:border-ring", "disabled:cursor-not-allowed disabled:opacity-50", "resize-y", r.error && "border-error focus:ring-error", r.class);
|
|
64
|
+
}
|
|
65
|
+
}, u), !1, !1), o(t, s(i, {
|
|
66
|
+
get when() {
|
|
67
|
+
return r.error;
|
|
68
|
+
},
|
|
69
|
+
get children() {
|
|
70
|
+
var e = f();
|
|
71
|
+
return o(e, () => r.error), e;
|
|
72
|
+
}
|
|
73
|
+
}), null), t;
|
|
74
|
+
})();
|
|
75
|
+
}
|
|
76
|
+
export {
|
|
77
|
+
I as Input,
|
|
78
|
+
y as Textarea
|
|
79
|
+
};
|
package/dist/index21.js
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { delegateEvents as E, createComponent as o, Portal as _, template as c, insert as l, effect as b, setAttribute as v, className as D, use as T } from "solid-js/web";
|
|
2
|
+
import { createUniqueId as O, createEffect as $, onCleanup as x, Show as s } from "solid-js";
|
|
3
|
+
import { cn as L } from "./index53.js";
|
|
4
|
+
import { Button as y } from "./index19.js";
|
|
5
|
+
import { X as z } from "./index30.js";
|
|
6
|
+
import { lockBodyStyle as F } from "./index57.js";
|
|
7
|
+
import { useResolvedFloeConfig as I } from "./index39.js";
|
|
8
|
+
var j = /* @__PURE__ */ c('<div class="fixed inset-0 z-50 bg-background/80 backdrop-blur-sm animate-in fade-in cursor-pointer">'), H = /* @__PURE__ */ c('<h2 class="text-sm font-semibold">'), M = /* @__PURE__ */ c('<p class="mt-0.5 text-xs text-muted-foreground">'), S = /* @__PURE__ */ c('<div class="flex items-start justify-between p-3 border-b border-border"><div>'), q = /* @__PURE__ */ c('<div class="flex items-center justify-end gap-2 p-3 border-t border-border">'), A = /* @__PURE__ */ c('<div role=dialog aria-modal=true tabindex=-1><div class="flex-1 overflow-auto p-3">'), B = /* @__PURE__ */ c("<div>");
|
|
9
|
+
function k(e) {
|
|
10
|
+
const a = ["a[href]", "button:not([disabled])", "input:not([disabled])", "select:not([disabled])", "textarea:not([disabled])", '[tabindex]:not([tabindex="-1"])', '[contenteditable="true"]'].join(",");
|
|
11
|
+
return Array.from(e.querySelectorAll(a)).filter((f) => f instanceof HTMLElement);
|
|
12
|
+
}
|
|
13
|
+
function K(e) {
|
|
14
|
+
const a = O(), f = () => `dialog-${a}-title`, w = () => `dialog-${a}-description`;
|
|
15
|
+
let m;
|
|
16
|
+
return $(() => {
|
|
17
|
+
if (!e.open || typeof document > "u") return;
|
|
18
|
+
const n = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
19
|
+
setTimeout(() => {
|
|
20
|
+
const t = m;
|
|
21
|
+
if (!t) return;
|
|
22
|
+
(k(t)[0] ?? t).focus();
|
|
23
|
+
}, 0);
|
|
24
|
+
const d = (t) => {
|
|
25
|
+
if (t.key === "Escape") {
|
|
26
|
+
e.onOpenChange(!1);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (t.key !== "Tab") return;
|
|
30
|
+
const i = m;
|
|
31
|
+
if (!i) return;
|
|
32
|
+
const r = k(i);
|
|
33
|
+
if (!r.length) {
|
|
34
|
+
t.preventDefault(), i.focus();
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const u = r[0], C = r[r.length - 1], g = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
38
|
+
t.shiftKey ? (g === u || !g || !i.contains(g)) && (t.preventDefault(), C.focus()) : g === C && (t.preventDefault(), u.focus());
|
|
39
|
+
};
|
|
40
|
+
document.addEventListener("keydown", d, !0), x(() => document.removeEventListener("keydown", d, !0)), x(() => n == null ? void 0 : n.focus());
|
|
41
|
+
}), $(() => {
|
|
42
|
+
if (!e.open) return;
|
|
43
|
+
const n = F({
|
|
44
|
+
overflow: "hidden"
|
|
45
|
+
});
|
|
46
|
+
x(n);
|
|
47
|
+
}), o(s, {
|
|
48
|
+
get when() {
|
|
49
|
+
return e.open;
|
|
50
|
+
},
|
|
51
|
+
get children() {
|
|
52
|
+
return o(_, {
|
|
53
|
+
get children() {
|
|
54
|
+
return [(() => {
|
|
55
|
+
var n = j();
|
|
56
|
+
return n.$$click = () => e.onOpenChange(!1), n;
|
|
57
|
+
})(), (() => {
|
|
58
|
+
var n = A(), h = n.firstChild, d = m;
|
|
59
|
+
return typeof d == "function" ? T(d, n) : m = n, l(n, o(s, {
|
|
60
|
+
get when() {
|
|
61
|
+
return e.title || e.description;
|
|
62
|
+
},
|
|
63
|
+
get children() {
|
|
64
|
+
var t = S(), i = t.firstChild;
|
|
65
|
+
return l(i, o(s, {
|
|
66
|
+
get when() {
|
|
67
|
+
return e.title;
|
|
68
|
+
},
|
|
69
|
+
get children() {
|
|
70
|
+
var r = H();
|
|
71
|
+
return l(r, () => e.title), b(() => v(r, "id", f())), r;
|
|
72
|
+
}
|
|
73
|
+
}), null), l(i, o(s, {
|
|
74
|
+
get when() {
|
|
75
|
+
return e.description;
|
|
76
|
+
},
|
|
77
|
+
get children() {
|
|
78
|
+
var r = M();
|
|
79
|
+
return l(r, () => e.description), b(() => v(r, "id", w())), r;
|
|
80
|
+
}
|
|
81
|
+
}), null), l(t, o(y, {
|
|
82
|
+
variant: "ghost",
|
|
83
|
+
size: "icon",
|
|
84
|
+
class: "h-6 w-6 -mr-1",
|
|
85
|
+
onClick: () => e.onOpenChange(!1),
|
|
86
|
+
"aria-label": "Close",
|
|
87
|
+
get children() {
|
|
88
|
+
return o(z, {
|
|
89
|
+
class: "w-3.5 h-3.5"
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}), null), t;
|
|
93
|
+
}
|
|
94
|
+
}), h), l(h, () => e.children), l(n, o(s, {
|
|
95
|
+
get when() {
|
|
96
|
+
return e.footer;
|
|
97
|
+
},
|
|
98
|
+
get children() {
|
|
99
|
+
var t = q();
|
|
100
|
+
return l(t, () => e.footer), t;
|
|
101
|
+
}
|
|
102
|
+
}), null), b((t) => {
|
|
103
|
+
var i = L("fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2", "w-full max-w-md max-h-[85vh]", "bg-card text-card-foreground rounded-md shadow-lg", "border border-border", "animate-in fade-in zoom-in-95", "flex flex-col", e.class), r = e.title ? f() : void 0, u = e.description ? w() : void 0;
|
|
104
|
+
return i !== t.e && D(n, t.e = i), r !== t.t && v(n, "aria-labelledby", t.t = r), u !== t.a && v(n, "aria-describedby", t.a = u), t;
|
|
105
|
+
}, {
|
|
106
|
+
e: void 0,
|
|
107
|
+
t: void 0,
|
|
108
|
+
a: void 0
|
|
109
|
+
}), n;
|
|
110
|
+
})()];
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
function Q(e) {
|
|
117
|
+
const a = I();
|
|
118
|
+
return o(K, {
|
|
119
|
+
get open() {
|
|
120
|
+
return e.open;
|
|
121
|
+
},
|
|
122
|
+
get onOpenChange() {
|
|
123
|
+
return e.onOpenChange;
|
|
124
|
+
},
|
|
125
|
+
get title() {
|
|
126
|
+
return e.title;
|
|
127
|
+
},
|
|
128
|
+
get description() {
|
|
129
|
+
return e.description;
|
|
130
|
+
},
|
|
131
|
+
get footer() {
|
|
132
|
+
return [o(y, {
|
|
133
|
+
variant: "ghost",
|
|
134
|
+
onClick: () => e.onOpenChange(!1),
|
|
135
|
+
get children() {
|
|
136
|
+
return e.cancelText ?? a.config.strings.confirmDialog.cancel;
|
|
137
|
+
}
|
|
138
|
+
}), o(y, {
|
|
139
|
+
get variant() {
|
|
140
|
+
return e.variant === "destructive" ? "destructive" : "primary";
|
|
141
|
+
},
|
|
142
|
+
get onClick() {
|
|
143
|
+
return e.onConfirm;
|
|
144
|
+
},
|
|
145
|
+
get loading() {
|
|
146
|
+
return e.loading;
|
|
147
|
+
},
|
|
148
|
+
get children() {
|
|
149
|
+
return e.confirmText ?? a.config.strings.confirmDialog.confirm;
|
|
150
|
+
}
|
|
151
|
+
})];
|
|
152
|
+
},
|
|
153
|
+
get children() {
|
|
154
|
+
return B();
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
E(["click"]);
|
|
159
|
+
export {
|
|
160
|
+
Q as ConfirmDialog,
|
|
161
|
+
K as Dialog
|
|
162
|
+
};
|