@flexkit/studio 0.0.36 → 0.1.1
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/README.md +81 -0
- package/dist/astro.d.ts +3 -5
- package/dist/astro.js +3 -8
- package/dist/chat-page-NWMI4XOE.js +2 -0
- package/dist/chat-page-NWMI4XOE.js.map +1 -0
- package/dist/chunk-2DXR5NJV.js +2 -0
- package/dist/chunk-2DXR5NJV.js.map +1 -0
- package/dist/chunk-3CPWATOI.js +2 -0
- package/dist/chunk-3CPWATOI.js.map +1 -0
- package/dist/chunk-5DHOBLAE.js +2 -0
- package/dist/chunk-5DHOBLAE.js.map +1 -0
- package/dist/chunk-6LYEDKFY.js +7 -0
- package/dist/chunk-6LYEDKFY.js.map +1 -0
- package/dist/chunk-7PDYCDX6.js +2 -0
- package/dist/chunk-7PDYCDX6.js.map +1 -0
- package/dist/chunk-7SK5YPHT.js +2 -0
- package/dist/chunk-7SK5YPHT.js.map +1 -0
- package/dist/chunk-AKQ6ELDX.js +2 -0
- package/dist/chunk-AKQ6ELDX.js.map +1 -0
- package/dist/chunk-CSUHZFEP.js +2 -0
- package/dist/chunk-CSUHZFEP.js.map +1 -0
- package/dist/chunk-G4PYYHI3.js +2 -0
- package/dist/chunk-G4PYYHI3.js.map +1 -0
- package/dist/chunk-GZIMMYLK.js +2 -0
- package/dist/chunk-GZIMMYLK.js.map +1 -0
- package/dist/chunk-HROHAMPM.js +3 -0
- package/dist/chunk-HROHAMPM.js.map +1 -0
- package/dist/chunk-NNA4MLFC.js +3 -0
- package/dist/chunk-NNA4MLFC.js.map +1 -0
- package/dist/chunk-NSYO57O3.js +5 -0
- package/dist/chunk-NSYO57O3.js.map +1 -0
- package/dist/chunk-ODORXGGY.js +2 -0
- package/dist/chunk-ODORXGGY.js.map +1 -0
- package/dist/chunk-OUSEULBR.js +384 -0
- package/dist/chunk-OUSEULBR.js.map +1 -0
- package/dist/chunk-P6BZ4QP7.js +2 -0
- package/dist/chunk-P6BZ4QP7.js.map +1 -0
- package/dist/chunk-QQUNCDUB.js +2 -0
- package/dist/chunk-QQUNCDUB.js.map +1 -0
- package/dist/chunk-SZEGGBOC.js +2 -0
- package/dist/chunk-SZEGGBOC.js.map +1 -0
- package/dist/chunk-TXK4OFAG.js +248 -0
- package/dist/chunk-W2EBZZAY.js +3 -0
- package/dist/chunk-W2EBZZAY.js.map +1 -0
- package/dist/chunk-YINI2YKQ.js +4 -0
- package/dist/chunk-YINI2YKQ.js.map +1 -0
- package/dist/{core-handler-C3xC98bN.d.ts → core-handler-XAVVKLhV.d.ts} +0 -3
- package/dist/edit-entity-PVT34FD7.js +2 -0
- package/dist/edit-entity-PVT34FD7.js.map +1 -0
- package/dist/index.css +1402 -0
- package/dist/index.d.ts +433 -33
- package/dist/index.js +12 -395
- package/dist/index.js.map +1 -1
- package/dist/list-SQCN7HA3.js +2 -0
- package/dist/list-SQCN7HA3.js.map +1 -0
- package/dist/nextjs.d.ts +61 -56
- package/dist/nextjs.js +3 -8
- package/dist/pages-OIAPASPF.js +3 -0
- package/dist/pages-OIAPASPF.js.map +1 -0
- package/dist/plugin-pages-AHOA6YJE.js +2 -0
- package/dist/plugin-pages-AHOA6YJE.js.map +1 -0
- package/dist/project-selector-72VM6SUI.js +2 -0
- package/dist/project-selector-72VM6SUI.js.map +1 -0
- package/dist/root-4FGNRGCD.js +23 -0
- package/dist/root-4FGNRGCD.js.map +1 -0
- package/dist/root-5ZW536V7.js +2 -0
- package/dist/root-5ZW536V7.js.map +1 -0
- package/dist/root-IIILTOJI.js +31 -0
- package/dist/root-IIILTOJI.js.map +1 -0
- package/dist/root-QPQQ3DFJ.js +2 -0
- package/dist/root-QPQQ3DFJ.js.map +1 -0
- package/dist/search-2K2BU4UU.js +2 -0
- package/dist/{search-XKG5A7XM.js.map → search-2K2BU4UU.js.map} +1 -1
- package/dist/skills-pages-PSBRTFGK.js +2 -0
- package/dist/skills-pages-PSBRTFGK.js.map +1 -0
- package/dist/tanstack-start.d.ts +4 -6
- package/dist/tanstack-start.js +5 -12
- package/dist/ui.d.ts +5 -7
- package/dist/ui.js +1 -6
- package/dist/ui.js.map +1 -1
- package/dist/user-nav-QZFCICK3.js +2 -0
- package/dist/{user-nav-LSEOOH4E.js.map → user-nav-QZFCICK3.js.map} +1 -1
- package/package.json +30 -12
- package/dist/asset-3XMRPTA5.js +0 -2
- package/dist/asset-3XMRPTA5.js.map +0 -1
- package/dist/boolean-MTD44LXP.js +0 -2
- package/dist/boolean-MTD44LXP.js.map +0 -1
- package/dist/chunk-3VOTTOJT.js +0 -2
- package/dist/chunk-3VOTTOJT.js.map +0 -1
- package/dist/chunk-5I7Q5ODB.js +0 -2
- package/dist/chunk-5I7Q5ODB.js.map +0 -1
- package/dist/chunk-6NRQMG26.js +0 -2
- package/dist/chunk-6NRQMG26.js.map +0 -1
- package/dist/chunk-6V73336R.js +0 -623
- package/dist/chunk-7BOX7HHO.js +0 -2
- package/dist/chunk-7BOX7HHO.js.map +0 -1
- package/dist/chunk-7JFLGBWE.js +0 -2
- package/dist/chunk-7JFLGBWE.js.map +0 -1
- package/dist/chunk-7ZJN4MWQ.js +0 -2
- package/dist/chunk-7ZJN4MWQ.js.map +0 -1
- package/dist/chunk-AICNS7KW.js +0 -2
- package/dist/chunk-AICNS7KW.js.map +0 -1
- package/dist/chunk-D4XLXU2H.js +0 -2
- package/dist/chunk-D4XLXU2H.js.map +0 -1
- package/dist/chunk-FLT6RWXH.js +0 -2
- package/dist/chunk-FLT6RWXH.js.map +0 -1
- package/dist/chunk-GBM7VKFS.js +0 -2
- package/dist/chunk-GBM7VKFS.js.map +0 -1
- package/dist/chunk-HMMBYXYA.js +0 -2
- package/dist/chunk-HMMBYXYA.js.map +0 -1
- package/dist/chunk-IRY4KWB5.js +0 -2
- package/dist/chunk-IRY4KWB5.js.map +0 -1
- package/dist/chunk-JH4MVD36.js +0 -2
- package/dist/chunk-JH4MVD36.js.map +0 -1
- package/dist/chunk-JKHUO27E.js +0 -2
- package/dist/chunk-JKHUO27E.js.map +0 -1
- package/dist/chunk-LIV5RBWJ.js +0 -2
- package/dist/chunk-LIV5RBWJ.js.map +0 -1
- package/dist/chunk-PENRGDNC.js +0 -2
- package/dist/chunk-PENRGDNC.js.map +0 -1
- package/dist/chunk-POQX5GIA.js +0 -366
- package/dist/chunk-QOX3QNMM.js +0 -2
- package/dist/chunk-QOX3QNMM.js.map +0 -1
- package/dist/chunk-QVBNGGOE.js +0 -2
- package/dist/chunk-QVBNGGOE.js.map +0 -1
- package/dist/chunk-S6MOM5G3.js +0 -2
- package/dist/chunk-S6MOM5G3.js.map +0 -1
- package/dist/chunk-UGRS4FEI.js +0 -2
- package/dist/chunk-UGRS4FEI.js.map +0 -1
- package/dist/chunk-USNXQOMJ.js +0 -2
- package/dist/chunk-USNXQOMJ.js.map +0 -1
- package/dist/chunk-UWMJBBTY.js +0 -2
- package/dist/chunk-UWMJBBTY.js.map +0 -1
- package/dist/chunk-W3Z33ETA.js +0 -2
- package/dist/chunk-W3Z33ETA.js.map +0 -1
- package/dist/chunk-WDRCARCP.js +0 -3
- package/dist/chunk-WDRCARCP.js.map +0 -1
- package/dist/chunk-WIUPQHZ5.js +0 -2
- package/dist/chunk-WIUPQHZ5.js.map +0 -1
- package/dist/chunk-WJ4ORIXF.js +0 -2
- package/dist/chunk-WJ4ORIXF.js.map +0 -1
- package/dist/chunk-YSLN4XT6.js +0 -2
- package/dist/chunk-YSLN4XT6.js.map +0 -1
- package/dist/datetime-C55QQQJK.js +0 -2
- package/dist/datetime-C55QQQJK.js.map +0 -1
- package/dist/editor-NZLXIOE7.js +0 -2
- package/dist/editor-NZLXIOE7.js.map +0 -1
- package/dist/project-selector-GQ24PVO6.js +0 -2
- package/dist/project-selector-GQ24PVO6.js.map +0 -1
- package/dist/search-XKG5A7XM.js +0 -2
- package/dist/select-SO3DICYX.js +0 -2
- package/dist/select-SO3DICYX.js.map +0 -1
- package/dist/switch-SU3OIXL6.js +0 -2
- package/dist/switch-SU3OIXL6.js.map +0 -1
- package/dist/text-FZSI6W5I.js +0 -2
- package/dist/text-FZSI6W5I.js.map +0 -1
- package/dist/text-QXGOD2KW.js +0 -2
- package/dist/text-QXGOD2KW.js.map +0 -1
- package/dist/textarea-INLURFNU.js +0 -2
- package/dist/textarea-INLURFNU.js.map +0 -1
- package/dist/tools.d.ts +0 -78
- package/dist/tools.js +0 -60
- package/dist/types-U28Ppixq.d.ts +0 -56
- package/dist/types.d-CPIuPrvL.d.ts +0 -458
- package/dist/user-nav-LSEOOH4E.js +0 -2
package/dist/chunk-POQX5GIA.js
DELETED
|
@@ -1,366 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CUSTOMER_TOOLS_SERVE_PATH,
|
|
3
|
-
FLEXKIT_SIGNATURE_HEADER,
|
|
4
|
-
FLEXKIT_SIGNATURE_PREVIOUS_HEADER,
|
|
5
|
-
FLEXKIT_STUDIO_RUNTIME_HEADER,
|
|
6
|
-
FLEXKIT_STUDIO_RUNTIME_LOCAL,
|
|
7
|
-
FLEXKIT_TIMESTAMP_HEADER,
|
|
8
|
-
flexkitApiDomain,
|
|
9
|
-
flexkitDomain,
|
|
10
|
-
getHeader,
|
|
11
|
-
handleDevConnectTick,
|
|
12
|
-
isCustomerToolsTickPath,
|
|
13
|
-
parseCustomerToolActor,
|
|
14
|
-
shouldHandleDevConnectTick,
|
|
15
|
-
toolToManifest,
|
|
16
|
-
verifySignedHeaders
|
|
17
|
-
} from "./chunk-6V73336R.js";
|
|
18
|
-
|
|
19
|
-
// src/tools/serve.ts
|
|
20
|
-
function jsonResult(status, body) {
|
|
21
|
-
return {
|
|
22
|
-
body,
|
|
23
|
-
headers: { "Content-Type": "application/json" },
|
|
24
|
-
status,
|
|
25
|
-
type: "json"
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
function getToolsSecrets() {
|
|
29
|
-
const env = globalThis.process?.env ?? {};
|
|
30
|
-
const secrets = [];
|
|
31
|
-
for (const value of [env.FLEXKIT_TOOLS_SECRET, env.FLEXKIT_TOOLS_SECRET_PREVIOUS]) {
|
|
32
|
-
const trimmed = value?.trim() ?? "";
|
|
33
|
-
if (trimmed && !secrets.includes(trimmed)) {
|
|
34
|
-
secrets.push(trimmed);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return secrets;
|
|
38
|
-
}
|
|
39
|
-
async function readRequestBody(request) {
|
|
40
|
-
try {
|
|
41
|
-
return await request.text();
|
|
42
|
-
} catch {
|
|
43
|
-
return "";
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
async function handleCustomerToolsRequest({
|
|
47
|
-
request,
|
|
48
|
-
skills,
|
|
49
|
-
tools
|
|
50
|
-
}) {
|
|
51
|
-
const secrets = getToolsSecrets();
|
|
52
|
-
if (secrets.length === 0) {
|
|
53
|
-
return jsonResult(503, { error: "FLEXKIT_TOOLS_SECRET is not configured." });
|
|
54
|
-
}
|
|
55
|
-
const method = request.method.toUpperCase();
|
|
56
|
-
const body = method === "GET" || method === "HEAD" ? "" : await readRequestBody(request);
|
|
57
|
-
let pathname = CUSTOMER_TOOLS_SERVE_PATH;
|
|
58
|
-
try {
|
|
59
|
-
({ pathname } = new URL(request.url));
|
|
60
|
-
} catch {
|
|
61
|
-
pathname = CUSTOMER_TOOLS_SERVE_PATH;
|
|
62
|
-
}
|
|
63
|
-
const verified = await verifySignedHeaders({
|
|
64
|
-
body,
|
|
65
|
-
method,
|
|
66
|
-
path: pathname,
|
|
67
|
-
previousSignatureHeader: getHeader(request.headers, FLEXKIT_SIGNATURE_PREVIOUS_HEADER),
|
|
68
|
-
secret: secrets,
|
|
69
|
-
signatureHeader: getHeader(request.headers, FLEXKIT_SIGNATURE_HEADER),
|
|
70
|
-
timestampHeader: getHeader(request.headers, FLEXKIT_TIMESTAMP_HEADER)
|
|
71
|
-
});
|
|
72
|
-
if (!verified) {
|
|
73
|
-
return jsonResult(401, { error: "Invalid Flexkit tools signature." });
|
|
74
|
-
}
|
|
75
|
-
if (method === "GET") {
|
|
76
|
-
return jsonResult(200, {
|
|
77
|
-
...skills === void 0 ? {} : { skills },
|
|
78
|
-
tools: tools.map((tool2) => toolToManifest(tool2))
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
if (method !== "POST") {
|
|
82
|
-
return jsonResult(405, { error: "Method not allowed." });
|
|
83
|
-
}
|
|
84
|
-
let payload;
|
|
85
|
-
try {
|
|
86
|
-
payload = JSON.parse(body);
|
|
87
|
-
} catch {
|
|
88
|
-
return jsonResult(400, { error: "Invalid JSON body." });
|
|
89
|
-
}
|
|
90
|
-
if (!payload.name || typeof payload.name !== "string") {
|
|
91
|
-
return jsonResult(400, { error: "Tool name is required." });
|
|
92
|
-
}
|
|
93
|
-
const actor = parseCustomerToolActor(payload.actor);
|
|
94
|
-
if (!actor) {
|
|
95
|
-
return jsonResult(400, { error: "A valid Flexkit actor is required." });
|
|
96
|
-
}
|
|
97
|
-
const tool = tools.find((candidate) => candidate.name === payload.name);
|
|
98
|
-
if (!tool) {
|
|
99
|
-
return jsonResult(404, { error: `Unknown tool "${payload.name}".` });
|
|
100
|
-
}
|
|
101
|
-
const parsed = tool.input.safeParse(payload.arguments ?? {});
|
|
102
|
-
if (!parsed.success) {
|
|
103
|
-
return jsonResult(400, {
|
|
104
|
-
error: "Invalid tool arguments.",
|
|
105
|
-
issues: parsed.error.issues.map((issue) => issue.message)
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
try {
|
|
109
|
-
const result = await tool.execute(parsed.data, actor);
|
|
110
|
-
return jsonResult(200, { result });
|
|
111
|
-
} catch (error) {
|
|
112
|
-
const message = error instanceof Error ? error.message : "Tool execution failed.";
|
|
113
|
-
return jsonResult(500, { error: message });
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
function isCustomerToolsPath(pathname) {
|
|
117
|
-
return pathname === CUSTOMER_TOOLS_SERVE_PATH;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// src/core/base-path.ts
|
|
121
|
-
function normalizeBasePath(basePath) {
|
|
122
|
-
if (!basePath || basePath === "/") {
|
|
123
|
-
return "/";
|
|
124
|
-
}
|
|
125
|
-
const normalizedPath = basePath.replace(/^\/+|\/+$/g, "");
|
|
126
|
-
return `/${normalizedPath}`;
|
|
127
|
-
}
|
|
128
|
-
function joinBasePath(basePath, ...segments) {
|
|
129
|
-
const normalizedBasePath = normalizeBasePath(basePath);
|
|
130
|
-
const normalizedSegments = segments.flatMap((segment) => segment.split("/")).filter(Boolean);
|
|
131
|
-
if (normalizedSegments.length === 0) {
|
|
132
|
-
return normalizedBasePath;
|
|
133
|
-
}
|
|
134
|
-
if (normalizedBasePath === "/") {
|
|
135
|
-
return `/${normalizedSegments.join("/")}`;
|
|
136
|
-
}
|
|
137
|
-
return `${normalizedBasePath}/${normalizedSegments.join("/")}`;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
// src/core/api-paths.ts
|
|
141
|
-
var domain = flexkitDomain;
|
|
142
|
-
var baseApiUrl = `https://${domain}`;
|
|
143
|
-
var baseProjectApiUrl = (projectId) => projectId ? `https://${projectId}.api.${domain}` : baseApiUrl;
|
|
144
|
-
var IMAGES_BASE_URL = `${baseApiUrl}/images/`;
|
|
145
|
-
function apiPaths(projectId = "") {
|
|
146
|
-
return {
|
|
147
|
-
assets: `/api/flexkit/${projectId}/assets`,
|
|
148
|
-
authProviders: `/api/flexkit/${projectId}/auth/providers`,
|
|
149
|
-
completion: `/api/flexkit/${projectId}/completion`,
|
|
150
|
-
currentUser: `/api/flexkit/${projectId}/users/me`,
|
|
151
|
-
loginOtpConfirm: `${baseProjectApiUrl(projectId)}/auth/otp/confirm`,
|
|
152
|
-
loginOtpSend: `${baseProjectApiUrl(projectId)}/auth/otp/send`,
|
|
153
|
-
logout: (basePath) => {
|
|
154
|
-
const params = new URLSearchParams({
|
|
155
|
-
redirect: joinBasePath(basePath, projectId)
|
|
156
|
-
});
|
|
157
|
-
return `/api/flexkit/${projectId}/auth/logout?${params.toString()}`;
|
|
158
|
-
},
|
|
159
|
-
search: `/api/flexkit/${projectId}/search`,
|
|
160
|
-
sessionId: `${baseProjectApiUrl(projectId)}/api/auth/login/session`
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
// src/auth/get-token.ts
|
|
165
|
-
async function getToken(code) {
|
|
166
|
-
const url = new URL(apiPaths().sessionId);
|
|
167
|
-
url.searchParams.set("code", code);
|
|
168
|
-
const token = await fetch(url.toString(), {
|
|
169
|
-
method: "GET",
|
|
170
|
-
headers: {
|
|
171
|
-
"Content-Type": "application/json"
|
|
172
|
-
}
|
|
173
|
-
}).then((res) => res.json()).catch((_error) => {
|
|
174
|
-
return { sid: "" };
|
|
175
|
-
});
|
|
176
|
-
return token;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
// src/auth/core-handler.ts
|
|
180
|
-
var domain2 = flexkitApiDomain;
|
|
181
|
-
var hopByHopHeaders = /* @__PURE__ */ new Set([
|
|
182
|
-
"connection",
|
|
183
|
-
"keep-alive",
|
|
184
|
-
"proxy-authenticate",
|
|
185
|
-
"proxy-authorization",
|
|
186
|
-
"te",
|
|
187
|
-
"trailer",
|
|
188
|
-
"transfer-encoding",
|
|
189
|
-
"upgrade"
|
|
190
|
-
]);
|
|
191
|
-
function getBearerToken(authorizationHeader) {
|
|
192
|
-
if (!authorizationHeader) {
|
|
193
|
-
return "";
|
|
194
|
-
}
|
|
195
|
-
const [scheme, token, ...rest] = authorizationHeader.trim().split(/\s+/);
|
|
196
|
-
if (rest.length > 0) {
|
|
197
|
-
return "";
|
|
198
|
-
}
|
|
199
|
-
if (!scheme || !token) {
|
|
200
|
-
return "";
|
|
201
|
-
}
|
|
202
|
-
if (scheme.toLowerCase() !== "bearer") {
|
|
203
|
-
return "";
|
|
204
|
-
}
|
|
205
|
-
return token;
|
|
206
|
-
}
|
|
207
|
-
function sanitizeForwardHeaders(headers) {
|
|
208
|
-
const sanitized = new Headers();
|
|
209
|
-
headers.forEach((value, key) => {
|
|
210
|
-
const normalizedKey = key.toLowerCase();
|
|
211
|
-
if (hopByHopHeaders.has(normalizedKey)) {
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
if (normalizedKey === "host") {
|
|
215
|
-
return;
|
|
216
|
-
}
|
|
217
|
-
if (normalizedKey === "content-length") {
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
220
|
-
if (normalizedKey === "content-encoding") {
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
if (normalizedKey === "accept-encoding") {
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
if (normalizedKey.startsWith("x-middleware-")) {
|
|
227
|
-
return;
|
|
228
|
-
}
|
|
229
|
-
if (normalizedKey === FLEXKIT_STUDIO_RUNTIME_HEADER.toLowerCase()) {
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
232
|
-
sanitized.set(key, value);
|
|
233
|
-
});
|
|
234
|
-
return sanitized;
|
|
235
|
-
}
|
|
236
|
-
function headersToObject(headers) {
|
|
237
|
-
const result = {};
|
|
238
|
-
headers.forEach((value, key) => {
|
|
239
|
-
result[key] = value;
|
|
240
|
-
});
|
|
241
|
-
return result;
|
|
242
|
-
}
|
|
243
|
-
async function handleFlexkitRequest(ctx) {
|
|
244
|
-
const { request, pathname, search, sessionToken, contentType, options } = ctx;
|
|
245
|
-
const { body: requestBody, method } = request;
|
|
246
|
-
if (isCustomerToolsPath(pathname)) {
|
|
247
|
-
return handleCustomerToolsRequest({
|
|
248
|
-
request,
|
|
249
|
-
skills: options?.skills,
|
|
250
|
-
tools: options?.tools ?? []
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
if (isCustomerToolsTickPath(pathname)) {
|
|
254
|
-
const [, , , tickProjectId] = pathname.split("/");
|
|
255
|
-
return handleDevConnectTick({
|
|
256
|
-
projectId: tickProjectId ?? "",
|
|
257
|
-
sessionToken,
|
|
258
|
-
skills: options?.skills,
|
|
259
|
-
tools: options?.tools ?? []
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
if (pathname === "/api/flexkit/get-token") {
|
|
263
|
-
const url = new URL(request.url);
|
|
264
|
-
const code = url.searchParams.get("code") ?? "";
|
|
265
|
-
const token = await getToken(code);
|
|
266
|
-
const redirect = url.searchParams.get("redirect") ?? "/";
|
|
267
|
-
return {
|
|
268
|
-
type: "redirect",
|
|
269
|
-
status: 307,
|
|
270
|
-
headers: { Location: redirect },
|
|
271
|
-
setCookie: `sessionToken=${token.sid}; Path=/; HttpOnly; Secure; SameSite=Strict; Max-Age=31536000;`
|
|
272
|
-
};
|
|
273
|
-
}
|
|
274
|
-
if (pathname === "/api/flexkit/logout") {
|
|
275
|
-
return {
|
|
276
|
-
type: "redirect",
|
|
277
|
-
status: 307,
|
|
278
|
-
headers: { Location: "/" },
|
|
279
|
-
setCookie: `sessionToken=; Path=/; HttpOnly; Secure; SameSite=Strict; Max-Age=0;`
|
|
280
|
-
};
|
|
281
|
-
}
|
|
282
|
-
if (pathname === "/api/flexkit/set-token" && method === "POST") {
|
|
283
|
-
const url = new URL(request.url);
|
|
284
|
-
const redirect = url.searchParams.get("redirect") ?? "/";
|
|
285
|
-
let sid = "";
|
|
286
|
-
try {
|
|
287
|
-
const body2 = await request.json();
|
|
288
|
-
sid = body2.sid ?? "";
|
|
289
|
-
} catch {
|
|
290
|
-
sid = "";
|
|
291
|
-
}
|
|
292
|
-
return {
|
|
293
|
-
type: "redirect",
|
|
294
|
-
status: 307,
|
|
295
|
-
headers: { Location: redirect },
|
|
296
|
-
setCookie: `sessionToken=${sid}; Path=/; HttpOnly; Secure; SameSite=Strict; Max-Age=31536000;`
|
|
297
|
-
};
|
|
298
|
-
}
|
|
299
|
-
const [, , , projectId] = pathname.split("/");
|
|
300
|
-
const apiUrl = `https://${projectId}.${domain2}`;
|
|
301
|
-
const path = pathname.replace(`/api/flexkit/${projectId}`, "");
|
|
302
|
-
let body;
|
|
303
|
-
let forwardContentType = contentType ?? "application/json";
|
|
304
|
-
if (method !== "GET" && method !== "HEAD") {
|
|
305
|
-
const normalizedContentType = (contentType ?? "").toLowerCase();
|
|
306
|
-
const isJson = normalizedContentType.includes("application/json");
|
|
307
|
-
const isTextPlain = normalizedContentType.startsWith("text/plain");
|
|
308
|
-
try {
|
|
309
|
-
if (isJson || isTextPlain || !contentType) {
|
|
310
|
-
const text = await request.text();
|
|
311
|
-
const trimmed = text.trim();
|
|
312
|
-
if (trimmed.startsWith("{") || trimmed.startsWith("[")) {
|
|
313
|
-
body = trimmed;
|
|
314
|
-
forwardContentType = "application/json";
|
|
315
|
-
} else {
|
|
316
|
-
body = text;
|
|
317
|
-
forwardContentType = contentType ?? "text/plain";
|
|
318
|
-
}
|
|
319
|
-
} else {
|
|
320
|
-
body = requestBody;
|
|
321
|
-
}
|
|
322
|
-
} catch {
|
|
323
|
-
body = void 0;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
const forwardHeaders = sanitizeForwardHeaders(request.headers);
|
|
327
|
-
const bearerToken = getBearerToken(request.headers.get("authorization"));
|
|
328
|
-
const effectiveSessionToken = sessionToken || bearerToken;
|
|
329
|
-
forwardHeaders.delete("Authorization");
|
|
330
|
-
forwardHeaders.delete(FLEXKIT_STUDIO_RUNTIME_HEADER);
|
|
331
|
-
if (!effectiveSessionToken) {
|
|
332
|
-
forwardHeaders.delete("Cookie");
|
|
333
|
-
}
|
|
334
|
-
if (effectiveSessionToken) {
|
|
335
|
-
forwardHeaders.set("Cookie", `sessionToken=${effectiveSessionToken}`);
|
|
336
|
-
}
|
|
337
|
-
if (shouldHandleDevConnectTick() && effectiveSessionToken && !effectiveSessionToken.startsWith("flk-")) {
|
|
338
|
-
forwardHeaders.set(FLEXKIT_STUDIO_RUNTIME_HEADER, FLEXKIT_STUDIO_RUNTIME_LOCAL);
|
|
339
|
-
}
|
|
340
|
-
if (method !== "GET" && method !== "HEAD") {
|
|
341
|
-
forwardHeaders.set("Content-Type", forwardContentType);
|
|
342
|
-
}
|
|
343
|
-
const requestInit = {
|
|
344
|
-
headers: forwardHeaders,
|
|
345
|
-
method,
|
|
346
|
-
body
|
|
347
|
-
};
|
|
348
|
-
if (body && typeof body !== "string") {
|
|
349
|
-
requestInit.duplex = "half";
|
|
350
|
-
}
|
|
351
|
-
const response = await fetch(`${apiUrl}${path}${search}`, requestInit);
|
|
352
|
-
if (response.status === 204) {
|
|
353
|
-
return { type: "response", status: 204, body: null };
|
|
354
|
-
}
|
|
355
|
-
const responseHeaders = sanitizeForwardHeaders(response.headers);
|
|
356
|
-
return {
|
|
357
|
-
type: "response",
|
|
358
|
-
status: response.status,
|
|
359
|
-
body: response.body,
|
|
360
|
-
headers: headersToObject(responseHeaders)
|
|
361
|
-
};
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
export {
|
|
365
|
-
handleFlexkitRequest
|
|
366
|
-
};
|
package/dist/chunk-QOX3QNMM.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import'./index.css';import {j}from'./chunk-GBM7VKFS.js';import {useId}from'react';import {jsxs,jsx}from'react/jsx-runtime';function c({scope:e,checked:d,disabled:n,onChange:t}){let l=useId();return !e||e==="default"?null:jsxs("div",{className:"fk:flex fk:items-center fk:space-x-2",children:[jsx(j,{checked:d,disabled:n,id:l,onCheckedChange:t}),jsx("label",{className:"fk:text-xs fk:font-normal fk:leading-none fk:peer-disabled:cursor-not-allowed fk:peer-disabled:opacity-70",htmlFor:l,children:"Use default value"})]})}export{c as a};//# sourceMappingURL=chunk-QOX3QNMM.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-QOX3QNMM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/form/fields/default-value-switch.tsx"],"names":["DefaultValueSwitch","scope","checked","disabled","onChange","elementId","useId","jsxs","jsx","Checkbox"],"mappings":"2HAWO,SAASA,CAAAA,CAAmB,CAAE,KAAA,CAAAC,EAAO,OAAA,CAAAC,CAAAA,CAAS,QAAA,CAAAC,CAAAA,CAAU,QAAA,CAAAC,CAAS,CAAA,CAA8B,CACpG,IAAMC,CAAAA,CAAYC,KAAAA,EAAM,CAExB,OAAI,CAACL,GAASA,CAAAA,GAAU,SAAA,CACf,IAAA,CAIPM,IAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,sCAAA,CACb,QAAA,CAAA,CAAAC,GAAAA,CAACC,CAAAA,CAAA,CAAS,OAAA,CAASP,CAAAA,CAAS,QAAA,CAAUC,CAAAA,CAAU,EAAA,CAAIE,CAAAA,CAAW,eAAA,CAAiBD,CAAAA,CAAwB,CAAA,CACxGI,GAAAA,CAAC,OAAA,CAAA,CACC,SAAA,CAAU,2GAAA,CACV,OAAA,CAASH,CAAAA,CACV,QAAA,CAAA,mBAAA,CAED,CAAA,CAAA,CACF,CAEJ","file":"chunk-QOX3QNMM.js","sourcesContent":["import { useId } from 'react';\nimport type { JSX } from 'react';\nimport { Checkbox } from '../../ui/primitives/checkbox';\n\ntype Props = {\n scope: string | undefined;\n checked: boolean;\n disabled?: boolean;\n onChange: (checked: boolean) => void;\n};\n\nexport function DefaultValueSwitch({ scope, checked, disabled, onChange }: Props): JSX.Element | null {\n const elementId = useId();\n\n if (!scope || scope === 'default') {\n return null;\n }\n\n return (\n <div className=\"fk:flex fk:items-center fk:space-x-2\">\n <Checkbox checked={checked} disabled={disabled} id={elementId} onCheckedChange={onChange as () => void} />\n <label\n className=\"fk:text-xs fk:font-normal fk:leading-none fk:peer-disabled:cursor-not-allowed fk:peer-disabled:opacity-70\"\n htmlFor={elementId}\n >\n Use default value\n </label>\n </div>\n );\n}\n"]}
|
package/dist/chunk-QVBNGGOE.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import'./index.css';import {a}from'./chunk-O2QMYUPS.js';import {Switch}from'radix-ui';import {jsx}from'react/jsx-runtime';function o({className:i,size:s="default",...f}){return jsx(Switch.Root,{"data-slot":"switch","data-size":s,className:a("fk:peer fk:group/switch fk:inline-flex fk:shrink-0 fk:items-center fk:rounded-full fk:border fk:border-transparent fk:shadow-xs fk:transition-all fk:outline-none fk:focus-visible:border-ring fk:focus-visible:ring-[3px] fk:focus-visible:ring-ring/50 fk:disabled:cursor-not-allowed fk:disabled:opacity-50 fk:data-[size=default]:h-5 fk:data-[size=default]:w-8 fk:data-[size=sm]:h-3.5 fk:data-[size=sm]:w-6 fk:data-[state=checked]:bg-success fk:data-[state=unchecked]:bg-input fk:dark:data-[state=unchecked]:bg-input/80 fk:corner-squircle",i),...f,children:jsx(Switch.Thumb,{"data-slot":"switch-thumb",className:a("fk:pointer-events-none fk:block fk:rounded-full fk:bg-white fk:ring-0 fk:transition-transform fk:group-data-[size=default]/switch:size-3.75 fk:group-data-[size=sm]/switch:size-3 fk:data-[state=checked]:translate-x-[calc(100%-2px)] fk:data-[state=unchecked]:translate-x-0.25 fk:dark:data-[state=checked]:bg-white fk:dark:data-[state=unchecked]:bg-white fk:corner-squircle")})})}export{o as a};//# sourceMappingURL=chunk-QVBNGGOE.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-QVBNGGOE.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/primitives/switch.tsx"],"names":["Switch","className","size","props","jsx","SwitchPrimitive","cn"],"mappings":"0HAMA,SAASA,EAAO,CACd,SAAA,CAAAC,EACA,IAAA,CAAAC,CAAAA,CAAO,UACP,GAAGC,CACL,EAEG,CACD,OACEC,GAAAA,CAACC,MAAAA,CAAgB,IAAA,CAAhB,CACC,YAAU,QAAA,CACV,WAAA,CAAWH,EACX,SAAA,CAAWI,CAAAA,CACT,yhBACAL,CACF,CAAA,CACC,GAAGE,CAAAA,CAEJ,QAAA,CAAAC,IAACC,MAAAA,CAAgB,KAAA,CAAhB,CACC,WAAA,CAAU,cAAA,CACV,UAAWC,CAAAA,CACT,oXACF,CAAA,CACF,CAAA,CACF,CAEJ","file":"chunk-QVBNGGOE.js","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Switch as SwitchPrimitive } from 'radix-ui';\nimport { cn } from '../lib/utils';\n\nfunction Switch({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n 'fk:peer fk:group/switch fk:inline-flex fk:shrink-0 fk:items-center fk:rounded-full fk:border fk:border-transparent fk:shadow-xs fk:transition-all fk:outline-none fk:focus-visible:border-ring fk:focus-visible:ring-[3px] fk:focus-visible:ring-ring/50 fk:disabled:cursor-not-allowed fk:disabled:opacity-50 fk:data-[size=default]:h-5 fk:data-[size=default]:w-8 fk:data-[size=sm]:h-3.5 fk:data-[size=sm]:w-6 fk:data-[state=checked]:bg-success fk:data-[state=unchecked]:bg-input fk:dark:data-[state=unchecked]:bg-input/80 fk:corner-squircle',\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'fk:pointer-events-none fk:block fk:rounded-full fk:bg-white fk:ring-0 fk:transition-transform fk:group-data-[size=default]/switch:size-3.75 fk:group-data-[size=sm]/switch:size-3 fk:data-[state=checked]:translate-x-[calc(100%-2px)] fk:data-[state=unchecked]:translate-x-0.25 fk:dark:data-[state=checked]:bg-white fk:dark:data-[state=unchecked]:bg-white fk:corner-squircle'\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"]}
|
package/dist/chunk-S6MOM5G3.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import'./index.css';import {b as b$1,c,d as d$1,e}from'./chunk-USNXQOMJ.js';import {b}from'./chunk-WDRCARCP.js';import {defaultStyles,FileIcon}from'react-file-icon';import {useMemo,useState,useEffect}from'react';import {jsx,jsxs}from'react/jsx-runtime';var _=250,E=25e5,a=new Map,v=new Map,w=new Set,T=new Map;function d(e){if(T.has(e))return;let t=new Image;t.decoding="async",t.src=e,T.set(e,t);}function g(e){let t=a.get(e);t&&a.set(e,{...t,lastUsedAt:Date.now()});}function N(){if(a.size<=_)return;let e=Array.from(a.entries()).sort((n,s)=>n[1].lastUsedAt-s[1].lastUsedAt),t=Math.max(1,Math.ceil(_*.1));for(let n=0;n<t&&n<e.length;n+=1){let[s,r]=e[n];a.delete(s),URL.revokeObjectURL(r.objectUrl);}}async function I(e){if(w.has(e)){d(e);return}if(a.has(e)){g(e);return}let t=v.get(e);if(t){await t;return}let n=(async()=>{try{let s=await fetch(e,{mode:"cors",cache:"force-cache"});if(!s.ok){d(e);return}let r=await s.blob();if(r.size>E)return;let i=URL.createObjectURL(r);a.set(e,{objectUrl:i,byteSize:r.size,lastUsedAt:Date.now()}),N();}catch(s){s instanceof TypeError&&w.add(e),d(e);}})();v.set(e,n),await n,v.delete(e);}function A(e){let t=useMemo(()=>{if(!e)return null;let r=a.get(e);return r?(g(e),r.objectUrl):null},[e]),[n,s]=useState(t);return useEffect(()=>{if(!e){s(null);return}if(w.has(e)){d(e),s(null);return}let r=a.get(e);if(r){g(e),s(r.objectUrl);return}s(null);let i=false;return I(e).then(()=>{let f=a.get(e);f&&(i||(g(e),s(f.objectUrl)));}),()=>{i=true;}},[e]),n}var x="fk:bg-[#fafafa] [--asset-checker:#f0f0f0] [background-image:linear-gradient(45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(-45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(45deg,transparent_75%,var(--asset-checker)_75%),linear-gradient(-45deg,transparent_75%,var(--asset-checker)_75%)] [background-position:0_0,0_4px,4px_-4px,-4px_0px] [background-size:8px_8px] fk:dark:bg-[#222] dark:[--asset-checker:#2a2a2a]";function O({value:e}){return Array.isArray(e)?jsx(P,{value:e}):jsx(L,{value:e})}function L({value:e$1}){let t=e$1?.path??"",n=!!t,s=n&&/\.(png|jpe?g|gif|webp|avif|svg)$/i.test(t),r=l=>{let[p]=l.split("?"),y=p.split(".");return y.length>1?y.pop().toLowerCase():"file"},i=n?t.endsWith(".svg")?`${b}${t}`:`${b}${t}?w=84&h=84&f=webp`:null,f=n?t.endsWith(".svg")?`${b}${t}`:`${b}${t}?w=624&h=624&f=webp`:"",U=A(i);return n?jsx("div",{className:"fk:z-10",children:s?jsxs(b$1,{children:[jsx(c,{asChild:true,children:jsx("img",{alt:"asset",className:`fk:w-7 fk:h-7 fk:cursor-zoom-in fk:overflow-hidden fk:rounded-md fk:object-contain ${x} fk:corner-squircle`,decoding:"async",src:U??void 0})}),jsx(d$1,{children:jsx(e,{children:jsx("img",{alt:"asset",className:`fk:w-52 fk:h-52 fk:overflow-hidden fk:rounded-md fk:object-contain ${x} fk:corner-squircle`,decoding:"async",src:f})})})]}):jsxs(b$1,{children:[jsx(c,{asChild:true,children:jsx("div",{className:"fk:w-7 fk:h-7 fk:rounded-sm fk:bg-transparent fk:flex fk:items-center fk:justify-center fk:[&>svg]:h-full fk:[&>svg]:w-auto fk:corner-squircle",children:(()=>{let l=r(t),p=defaultStyles[l];return jsx(FileIcon,{extension:l,...p||{}})})()})}),jsx(d$1,{children:jsx(e,{children:jsx("div",{className:"fk:text-sm fk:text-muted-foreground",children:"Preview not available"})})})]})}):null}function P({value:e}){let t=e.filter(r=>!!r.path).slice(0,3),n=Math.max(e[0]?.totalCount??0,e.length);if(t.length===0)return n>0?jsx("div",{className:"fk:flex fk:items-center",children:jsx("span",{className:"fk:text-xs fk:text-muted-foreground",children:n===1?"1 asset":`${n} assets`})}):null;let s=n-t.length;return jsxs("div",{className:"fk:flex fk:items-center",children:[jsx("div",{className:"fk:flex fk:-space-x-2",children:t.map(r=>jsx("img",{alt:"asset",className:`fk:h-7 fk:w-7 fk:overflow-hidden fk:rounded-md fk:object-contain ${x} fk:corner-squircle`,decoding:"async",src:`${b}${r.path}?w=84&h=84&f=webp`},r._id))}),s>0?jsxs("span",{className:"fk:ml-2 fk:text-xs fk:text-muted-foreground",children:["+",s]}):null]})}export{O as a};//# sourceMappingURL=chunk-S6MOM5G3.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-S6MOM5G3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/hooks/use-cached-image-src.ts","../src/data-grid/preview-components/asset.tsx"],"names":["MAX_CACHE_ENTRIES","MAX_SINGLE_BLOB_BYTES","blobUrlCache","inFlightLoads","corsBlockedUrls","preloadedImages","ensurePreloaded","url","img","touch","entry","evictIfNeeded","entries","a","b","evictCount","i","loadToCache","existing","promise","res","blob","objectUrl","err","useCachedImageSrc","initial","useMemo","cached","src","setSrc","useState","useEffect","isStale","next","transparentImageBackground","Asset","value","jsx","AssetStack","SingleAsset","path","hasPath","isImage","getExtensionFromPath","p","clean","parts","thumbnaillUrl","IMAGES_BASE_URL","fullUrl","cachedThumbnailSrc","jsxs","Tooltip","TooltipTrigger","TooltipPortal","TooltipContent","ext","style","defaultStyles","FileTypeIcon","assets","asset","totalCount","overflowCount"],"mappings":"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","file":"chunk-S6MOM5G3.js","sourcesContent":["import { useEffect, useMemo, useState } from 'react';\n\ntype CacheEntry = {\n objectUrl: string;\n byteSize: number;\n lastUsedAt: number;\n};\n\nconst MAX_CACHE_ENTRIES = 250;\nconst MAX_SINGLE_BLOB_BYTES = 2_500_000; // ~2.5MB\n\nconst blobUrlCache = new Map<string, CacheEntry>();\nconst inFlightLoads = new Map<string, Promise<void>>();\nconst corsBlockedUrls = new Set<string>();\nconst preloadedImages = new Map<string, HTMLImageElement>();\n\nfunction ensurePreloaded(url: string): void {\n if (preloadedImages.has(url)) {\n return;\n }\n\n const img = new Image();\n img.decoding = 'async';\n img.src = url;\n preloadedImages.set(url, img);\n}\n\nfunction touch(url: string): void {\n const entry = blobUrlCache.get(url);\n\n if (!entry) {\n return;\n }\n\n blobUrlCache.set(url, { ...entry, lastUsedAt: Date.now() });\n}\n\nfunction evictIfNeeded(): void {\n if (blobUrlCache.size <= MAX_CACHE_ENTRIES) {\n return;\n }\n\n const entries = Array.from(blobUrlCache.entries()).sort((a, b) => a[1].lastUsedAt - b[1].lastUsedAt);\n const evictCount = Math.max(1, Math.ceil(MAX_CACHE_ENTRIES * 0.1));\n\n for (let i = 0; i < evictCount && i < entries.length; i += 1) {\n const [url, entry] = entries[i];\n blobUrlCache.delete(url);\n\n URL.revokeObjectURL(entry.objectUrl);\n }\n}\n\nasync function loadToCache(url: string): Promise<void> {\n if (corsBlockedUrls.has(url)) {\n ensurePreloaded(url);\n\n return;\n }\n\n if (blobUrlCache.has(url)) {\n touch(url);\n\n return;\n }\n\n const existing = inFlightLoads.get(url);\n\n if (existing) {\n await existing;\n\n return;\n }\n\n const promise = (async () => {\n try {\n const res = await fetch(url, {\n mode: 'cors',\n cache: 'force-cache',\n });\n\n if (!res.ok) {\n ensurePreloaded(url);\n\n return;\n }\n\n const blob = await res.blob();\n\n if (blob.size > MAX_SINGLE_BLOB_BYTES) {\n return;\n }\n\n const objectUrl = URL.createObjectURL(blob);\n blobUrlCache.set(url, { objectUrl, byteSize: blob.size, lastUsedAt: Date.now() });\n evictIfNeeded();\n } catch (err: unknown) {\n // Most common failure is CORS (TypeError: Failed to fetch). If so, avoid retrying.\n if (err instanceof TypeError) {\n corsBlockedUrls.add(url);\n }\n\n ensurePreloaded(url);\n }\n })();\n\n inFlightLoads.set(url, promise);\n\n await promise;\n\n inFlightLoads.delete(url);\n}\n\n/**\n * Keeps a stable, in-memory cached image src across virtualized unmount/remount cycles.\n * Falls back to the original URL if the image can’t be fetched (e.g. due to CORS).\n */\nexport function useCachedImageSrc(url: string | null | undefined): string | null {\n const initial = useMemo(() => {\n if (!url) {\n return null;\n }\n\n const cached = blobUrlCache.get(url);\n\n if (!cached) {\n return null;\n }\n\n touch(url);\n\n return cached.objectUrl;\n }, [url]);\n\n const [src, setSrc] = useState<string | null>(initial);\n\n useEffect(() => {\n if (!url) {\n setSrc(null);\n\n return;\n }\n\n if (corsBlockedUrls.has(url)) {\n ensurePreloaded(url);\n setSrc(null);\n\n return;\n }\n\n const cached = blobUrlCache.get(url);\n\n if (cached) {\n touch(url);\n setSrc(cached.objectUrl);\n\n return;\n }\n\n setSrc(null);\n let isStale = false;\n\n loadToCache(url).then(() => {\n const next = blobUrlCache.get(url);\n\n if (!next) {\n return;\n }\n\n if (isStale) {\n return;\n }\n\n touch(url);\n setSrc(next.objectUrl);\n });\n\n return () => {\n isStale = true;\n };\n }, [url]);\n\n return src;\n}\n","import type { JSX } from 'react';\nimport { Tooltip, TooltipContent, TooltipPortal, TooltipTrigger } from '../../ui/primitives/tooltip';\nimport { IMAGES_BASE_URL } from '../../core/api-paths';\nimport { FileIcon as FileTypeIcon, defaultStyles } from 'react-file-icon';\nimport { useCachedImageSrc } from '../../ui/hooks/use-cached-image-src';\n\nexport type Asset = {\n _id: string;\n path: string;\n /** Total connected assets; the fetched array is bounded by the query's `first`. */\n totalCount?: number;\n};\n\nconst transparentImageBackground =\n 'fk:bg-[#fafafa] [--asset-checker:#f0f0f0] [background-image:linear-gradient(45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(-45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(45deg,transparent_75%,var(--asset-checker)_75%),linear-gradient(-45deg,transparent_75%,var(--asset-checker)_75%)] [background-position:0_0,0_4px,4px_-4px,-4px_0px] [background-size:8px_8px] fk:dark:bg-[#222] dark:[--asset-checker:#2a2a2a]';\n\nexport function Asset({ value }: { value: Asset | Asset[] }) {\n if (Array.isArray(value)) {\n return <AssetStack value={value} />;\n }\n\n return <SingleAsset value={value} />;\n}\n\nfunction SingleAsset({ value }: { value: Asset }) {\n const path = value?.path ?? '';\n const hasPath = Boolean(path);\n const isImage = hasPath && /\\.(png|jpe?g|gif|webp|avif|svg)$/i.test(path);\n\n const getExtensionFromPath = (p: string): string => {\n const [clean] = p.split('?');\n const parts = clean.split('.');\n\n if (parts.length > 1) {\n return parts.pop()!.toLowerCase();\n }\n\n return 'file';\n };\n\n const thumbnaillUrl = hasPath\n ? path.endsWith('.svg')\n ? `${IMAGES_BASE_URL}${path}`\n : `${IMAGES_BASE_URL}${path}?w=84&h=84&f=webp`\n : null;\n\n const fullUrl = hasPath\n ? path.endsWith('.svg')\n ? `${IMAGES_BASE_URL}${path}`\n : `${IMAGES_BASE_URL}${path}?w=624&h=624&f=webp`\n : '';\n\n const cachedThumbnailSrc = useCachedImageSrc(thumbnaillUrl);\n\n if (!hasPath) {\n return null;\n }\n\n return (\n <div className=\"fk:z-10\">\n {isImage ? (\n <Tooltip>\n <TooltipTrigger asChild>\n <img\n alt=\"asset\"\n className={`fk:w-7 fk:h-7 fk:cursor-zoom-in fk:overflow-hidden fk:rounded-md fk:object-contain ${transparentImageBackground} fk:corner-squircle`}\n decoding=\"async\"\n src={cachedThumbnailSrc ?? undefined}\n />\n </TooltipTrigger>\n <TooltipPortal>\n <TooltipContent>\n <img\n alt=\"asset\"\n className={`fk:w-52 fk:h-52 fk:overflow-hidden fk:rounded-md fk:object-contain ${transparentImageBackground} fk:corner-squircle`}\n decoding=\"async\"\n src={fullUrl}\n />\n </TooltipContent>\n </TooltipPortal>\n </Tooltip>\n ) : (\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"fk:w-7 fk:h-7 fk:rounded-sm fk:bg-transparent fk:flex fk:items-center fk:justify-center fk:[&>svg]:h-full fk:[&>svg]:w-auto fk:corner-squircle\">\n {(() => {\n const ext = getExtensionFromPath(path);\n const style = (\n defaultStyles as Record<string, Record<string, string | number | boolean | undefined>>\n )[ext];\n\n return <FileTypeIcon extension={ext} {...(style || {})} />;\n })()}\n </div>\n </TooltipTrigger>\n <TooltipPortal>\n <TooltipContent>\n <div className=\"fk:text-sm fk:text-muted-foreground\">Preview not available</div>\n </TooltipContent>\n </TooltipPortal>\n </Tooltip>\n )}\n </div>\n );\n}\n\nfunction AssetStack({ value }: { value: Asset[] }): JSX.Element | null {\n const assets = value.filter((asset) => Boolean(asset.path)).slice(0, 3);\n // Queries bound connection edges, so the array length undercounts; the\n // aggregate total travels on each item as totalCount.\n const totalCount = Math.max(value[0]?.totalCount ?? 0, value.length);\n\n // All fetched edges can lack `path` (still-processing uploads, incomplete\n // nodes) while totalCount > 0 — especially likely now that list queries\n // only fetch the first 3 edges. Show a count so the cell is not blank.\n if (assets.length === 0) {\n if (totalCount > 0) {\n return (\n <div className=\"fk:flex fk:items-center\">\n <span className=\"fk:text-xs fk:text-muted-foreground\">\n {totalCount === 1 ? '1 asset' : `${totalCount} assets`}\n </span>\n </div>\n );\n }\n\n return null;\n }\n\n const overflowCount = totalCount - assets.length;\n\n return (\n <div className=\"fk:flex fk:items-center\">\n <div className=\"fk:flex fk:-space-x-2\">\n {assets.map((asset) => (\n <img\n alt=\"asset\"\n className={`fk:h-7 fk:w-7 fk:overflow-hidden fk:rounded-md fk:object-contain ${transparentImageBackground} fk:corner-squircle`}\n decoding=\"async\"\n key={asset._id}\n src={`${IMAGES_BASE_URL}${asset.path}?w=84&h=84&f=webp`}\n />\n ))}\n </div>\n {overflowCount > 0 ? (\n <span className=\"fk:ml-2 fk:text-xs fk:text-muted-foreground\">+{overflowCount}</span>\n ) : null}\n </div>\n );\n}\n"]}
|
package/dist/chunk-UGRS4FEI.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import'./index.css';import {a}from'./chunk-7BOX7HHO.js';import {a as a$1}from'./chunk-QOX3QNMM.js';import {c,e,f,h,g,i}from'./chunk-GBM7VKFS.js';import {jsx,jsxs}from'react/jsx-runtime';function y({control:v,fieldSchema:k,readOnly:m,setValue:t}){let{name:l,label:b,options:n}=k;function h$1(e,o){t(l,{...o,value:e.currentTarget.value});}function g$1(e,o){t(l,{...o,disabled:e});}return jsx(c,{control:v,name:l,render:({field:e$1})=>jsxs(e,{children:[jsxs("div",{className:"fk:flex",children:[jsxs("div",{className:"fk:full-w fk:grid fk:gap-2",children:[jsx(f,{children:b}),n?.comment?jsx(h,{children:n.comment}):null]}),jsx("div",{className:"fk:h-full fk:self-end fk:ml-auto"})]}),jsx(g,{children:jsx(a,{className:"fk:w-full fk:mt-0.75",disabled:m||e$1.value?.disabled,...e$1,onChange:o=>{h$1(o,e$1.value);},value:e$1.value?.value||""})}),jsx(a$1,{checked:e$1.value?.disabled??false,disabled:m,onChange:o=>{g$1(o,e$1.value);},scope:e$1.value?.scope}),jsx(i,{})]})})}export{y as a};//# sourceMappingURL=chunk-UGRS4FEI.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-UGRS4FEI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/form/fields/textarea.tsx"],"names":["Textarea","control","fieldSchema","readOnly","setValue","name","label","options","handleInput","event","previousValue","handleCheckbox","checked","value","jsx","FormField","field","jsxs","FormItem","FormLabel","FormDescription","FormControl","DefaultValueSwitch","FormMessage"],"mappings":"0LAOO,SAASA,EAAS,CAAE,OAAA,CAAAC,CAAAA,CAAS,WAAA,CAAAC,EAAa,QAAA,CAAAC,CAAAA,CAAU,SAAAC,CAAS,CAAA,CAA6C,CAC/G,GAAM,CAAE,IAAA,CAAAC,CAAAA,CAAM,MAAAC,CAAAA,CAAO,OAAA,CAAAC,CAAQ,CAAA,CAAIL,CAAAA,CAEjC,SAASM,GAAAA,CACPC,CAAAA,CACAC,CAAAA,CACM,CACNN,EAASC,CAAAA,CAAM,CACb,GAAGK,CAAAA,CACH,KAAA,CAAOD,EAAM,aAAA,CAAc,KAC7B,CAAC,EACH,CAEA,SAASE,GAAAA,CAAeC,EAAkBC,CAAAA,CAAyC,CACjFT,EAASC,CAAAA,CAAM,CACb,GAAGQ,CAAAA,CACH,SAAUD,CACZ,CAAC,EACH,CAEA,OACEE,IAACC,CAAAA,CAAA,CACC,OAAA,CAASd,CAAAA,CACT,KAAMI,CAAAA,CACN,MAAA,CAAQ,CAAC,CAAE,KAAA,CAAAW,GAAM,CAAA,GACfC,IAAAA,CAACC,CAAAA,CAAA,CACC,UAAAD,IAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,SAAA,CACb,QAAA,CAAA,CAAAA,KAAC,KAAA,CAAA,CAAI,SAAA,CAAU,4BAAA,CACb,QAAA,CAAA,CAAAH,IAACK,CAAAA,CAAA,CAAW,SAAAb,CAAAA,CAAM,CAAA,CACjBC,GAAS,OAAA,CAAUO,GAAAA,CAACM,CAAAA,CAAA,CAAiB,SAAAb,CAAAA,CAAQ,OAAA,CAAQ,EAAqB,IAAA,CAAA,CAC7E,CAAA,CACAO,IAAC,KAAA,CAAA,CAAI,SAAA,CAAU,kCAAA,CAEf,CAAA,CAAA,CACF,EACAA,GAAAA,CAACO,CAAAA,CAAA,CACC,QAAA,CAAAP,GAAAA,CAACd,EAAA,CACC,SAAA,CAAU,sBAAA,CACV,QAAA,CAAUG,GAAYa,GAAAA,CAAM,KAAA,EAAO,SAClC,GAAGA,GAAAA,CACJ,SAAWP,CAAAA,EAAU,CACnBD,GAAAA,CAAYC,CAAAA,CAAOO,IAAM,KAAK,EAChC,EACA,KAAA,CAAQA,GAAAA,CAAM,OAAO,KAAA,EAAoB,EAAA,CAC3C,CAAA,CACF,CAAA,CACAF,IAACQ,GAAAA,CAAA,CACC,QAASN,GAAAA,CAAM,KAAA,EAAO,UAAY,KAAA,CAClC,QAAA,CAAUb,CAAAA,CACV,QAAA,CAAWS,GAAY,CACrBD,GAAAA,CAAeC,EAASI,GAAAA,CAAM,KAAK,EACrC,CAAA,CACA,KAAA,CAAOA,GAAAA,CAAM,KAAA,EAAO,MACtB,CAAA,CACAF,GAAAA,CAACS,EAAA,EAAY,CAAA,CAAA,CACf,EAEJ,CAEJ","file":"chunk-UGRS4FEI.js","sourcesContent":["import type { JSX } from 'react';\nimport type { FormFieldValue } from '../../graphql-client/types';\nimport { FormControl, FormDescription, FormField, FormLabel, FormMessage, FormItem } from '../../ui/primitives/form';\nimport { Textarea as TextareaPrimitive } from '../../ui/primitives/textarea';\nimport type { FormFieldParams } from '../types';\nimport { DefaultValueSwitch } from './default-value-switch';\n\nexport function Textarea({ control, fieldSchema, readOnly, setValue }: FormFieldParams<'textarea'>): JSX.Element {\n const { name, label, options } = fieldSchema;\n\n function handleInput(\n event: React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>,\n previousValue: FormFieldValue | undefined\n ): void {\n setValue(name, {\n ...previousValue,\n value: event.currentTarget.value,\n });\n }\n\n function handleCheckbox(checked: boolean, value: FormFieldValue | undefined): void {\n setValue(name, {\n ...value,\n disabled: checked,\n });\n }\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }: { field: { value?: FormFieldValue } }) => (\n <FormItem>\n <div className=\"fk:flex\">\n <div className=\"fk:full-w fk:grid fk:gap-2\">\n <FormLabel>{label}</FormLabel>\n {options?.comment ? <FormDescription>{options.comment}</FormDescription> : null}\n </div>\n <div className=\"fk:h-full fk:self-end fk:ml-auto\">\n {/* TODO: this should be a slot that can receive user-defined components and system components like Presence and AI Writting Tools */}\n </div>\n </div>\n <FormControl>\n <TextareaPrimitive\n className=\"fk:w-full fk:mt-0.75\"\n disabled={readOnly || field.value?.disabled}\n {...field}\n onChange={(event) => {\n handleInput(event, field.value);\n }}\n value={(field.value?.value as string) || ''}\n />\n </FormControl>\n <DefaultValueSwitch\n checked={field.value?.disabled ?? false}\n disabled={readOnly}\n onChange={(checked) => {\n handleCheckbox(checked, field.value);\n }}\n scope={field.value?.scope}\n />\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n"]}
|
package/dist/chunk-USNXQOMJ.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import'./index.css';import {a}from'./chunk-O2QMYUPS.js';import {Tooltip}from'radix-ui';import {jsx,jsxs}from'react/jsx-runtime';function d({delayDuration:t=0,...e}){return jsx(Tooltip.Provider,{"data-slot":"tooltip-provider",delayDuration:t,...e})}function s({...t}){return jsx(Tooltip.Root,{"data-slot":"tooltip",...t})}function m({...t}){return jsx(Tooltip.Trigger,{"data-slot":"tooltip-trigger",...t})}function k({...t}){return jsx(Tooltip.Portal,{...t})}function c({className:t,sideOffset:e=0,children:n,...a$1}){return jsx(Tooltip.Portal,{children:jsxs(Tooltip.Content,{"data-slot":"tooltip-content",sideOffset:e,className:a("fk:z-50 fk:w-fit fk:origin-(--radix-tooltip-content-transform-origin) fk:animate-in fk:rounded-md fk:bg-foreground fk:px-3 fk:py-1.5 fk:text-xs fk:text-balance fk:text-background fk:fade-in-0 fk:zoom-in-95 fk:data-[side=bottom]:slide-in-from-top-2 fk:data-[side=left]:slide-in-from-right-2 fk:data-[side=right]:slide-in-from-left-2 fk:data-[side=top]:slide-in-from-bottom-2 fk:data-[state=closed]:animate-out fk:data-[state=closed]:fade-out-0 fk:data-[state=closed]:zoom-out-95 fk:corner-squircle",t),...a$1,children:[n,jsx(Tooltip.Arrow,{className:"fk:z-50 fk:size-2.5 fk:translate-y-[calc(-50%-2px)] fk:rotate-45 fk:rounded-[2px] fk:bg-foreground fk:fill-foreground fk:corner-squircle"})]})})}export{d as a,s as b,m as c,k as d,c as e};//# sourceMappingURL=chunk-USNXQOMJ.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-USNXQOMJ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/primitives/tooltip.tsx"],"names":["TooltipProvider","delayDuration","props","jsx","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipPortal","TooltipContent","className","sideOffset","children","jsxs","cn"],"mappings":"gIAMA,SAASA,CAAAA,CAAgB,CAAE,aAAA,CAAAC,CAAAA,CAAgB,CAAA,CAAG,GAAGC,CAAM,CAAA,CAA2D,CAChH,OAAOC,GAAAA,CAACC,OAAAA,CAAiB,QAAA,CAAjB,CAA0B,WAAA,CAAU,kBAAA,CAAmB,aAAA,CAAeH,CAAAA,CAAgB,GAAGC,EAAO,CAC1G,CAEA,SAASG,CAAAA,CAAQ,CAAE,GAAGH,CAAM,CAAA,CAAuD,CACjF,OAAOC,GAAAA,CAACC,OAAAA,CAAiB,IAAA,CAAjB,CAAsB,WAAA,CAAU,SAAA,CAAW,GAAGF,CAAAA,CAAO,CAC/D,CAEA,SAASI,CAAAA,CAAe,CAAE,GAAGJ,CAAM,CAAA,CAA0D,CAC3F,OAAOC,GAAAA,CAACC,OAAAA,CAAiB,OAAA,CAAjB,CAAyB,YAAU,iBAAA,CAAmB,GAAGF,CAAAA,CAAO,CAC1E,CAEA,SAASK,CAAAA,CAAc,CAAE,GAAGL,CAAM,CAAA,CAAyD,CACzF,OAAOC,GAAAA,CAACC,OAAAA,CAAiB,MAAA,CAAjB,CAAyB,GAAGF,CAAAA,CAAO,CAC7C,CAEA,SAASM,CAAAA,CAAe,CACtB,SAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CAAa,CAAA,CACb,QAAA,CAAAC,CAAAA,CACA,GAAGT,GACL,CAAA,CAA0D,CACxD,OACEC,GAAAA,CAACC,OAAAA,CAAiB,MAAA,CAAjB,CACC,QAAA,CAAAQ,IAAAA,CAACR,OAAAA,CAAiB,OAAA,CAAjB,CACC,WAAA,CAAU,iBAAA,CACV,UAAA,CAAYM,CAAAA,CACZ,SAAA,CAAWG,CAAAA,CACT,kfAAA,CACAJ,CACF,CAAA,CACC,GAAGP,GAAAA,CAEH,QAAA,CAAA,CAAAS,CAAAA,CACDR,GAAAA,CAACC,OAAAA,CAAiB,KAAA,CAAjB,CAAuB,SAAA,CAAU,0IAAA,CAA2I,CAAA,CAAA,CAC/K,EACF,CAEJ","file":"chunk-USNXQOMJ.js","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Tooltip as TooltipPrimitive } from 'radix-ui';\nimport { cn } from '../lib/utils';\n\nfunction TooltipProvider({ delayDuration = 0, ...props }: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return <TooltipPrimitive.Provider data-slot=\"tooltip-provider\" delayDuration={delayDuration} {...props} />;\n}\n\nfunction Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />;\n}\n\nfunction TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipPortal({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Portal>) {\n return <TooltipPrimitive.Portal {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'fk:z-50 fk:w-fit fk:origin-(--radix-tooltip-content-transform-origin) fk:animate-in fk:rounded-md fk:bg-foreground fk:px-3 fk:py-1.5 fk:text-xs fk:text-balance fk:text-background fk:fade-in-0 fk:zoom-in-95 fk:data-[side=bottom]:slide-in-from-top-2 fk:data-[side=left]:slide-in-from-right-2 fk:data-[side=right]:slide-in-from-left-2 fk:data-[side=top]:slide-in-from-bottom-2 fk:data-[state=closed]:animate-out fk:data-[state=closed]:fade-out-0 fk:data-[state=closed]:zoom-out-95 fk:corner-squircle',\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"fk:z-50 fk:size-2.5 fk:translate-y-[calc(-50%-2px)] fk:rotate-45 fk:rounded-[2px] fk:bg-foreground fk:fill-foreground fk:corner-squircle\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider, TooltipPortal };\n"]}
|
package/dist/chunk-UWMJBBTY.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import'./index.css';import {a}from'./chunk-YSLN4XT6.js';import {a as a$1}from'./chunk-QOX3QNMM.js';import {c,e,f,h,g,i}from'./chunk-GBM7VKFS.js';import {useId}from'react';import {jsx,jsxs}from'react/jsx-runtime';function L({control:f$1,fieldSchema:b,readOnly:m,setValue:a$2}){let{name:t,label:h$1,options:l}=b,n=useId();function g$1(e,o){a$2(t,{...o,value:e.currentTarget.value});}function C(e,o){a$2(t,{...o,disabled:e});}return jsx(c,{control:f$1,name:t,render:({field:e$1})=>jsxs(e,{children:[jsx(f,{htmlFor:n,children:h$1}),l?.comment?jsx(h,{children:l.comment}):null,jsx(g,{children:jsx(a,{className:"fk:w-full fk:mt-0.75",disabled:m||e$1.value?.disabled,id:n,...e$1,onChange:o=>{g$1(o,e$1.value);},value:e$1.value?.value||""})}),jsx(a$1,{checked:e$1.value?.disabled??false,disabled:m,onChange:o=>{C(o,e$1.value);},scope:e$1.value?.scope}),jsx(i,{})]})})}export{L as a};//# sourceMappingURL=chunk-UWMJBBTY.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-UWMJBBTY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/form/fields/text.tsx"],"names":["Text","control","fieldSchema","readOnly","setValue","name","label","options","id","useId","handleInput","event","previousValue","handleCheckbox","checked","value","jsx","FormField","field","jsxs","FormItem","FormLabel","FormDescription","FormControl","Input","DefaultValueSwitch","FormMessage"],"mappings":"oNAQO,SAASA,EAAK,CAAE,OAAA,CAAAC,IAAS,WAAA,CAAAC,CAAAA,CAAa,SAAAC,CAAAA,CAAU,QAAA,CAAAC,GAAS,CAAA,CAAyC,CACvG,GAAM,CAAE,IAAA,CAAAC,CAAAA,CAAM,MAAAC,GAAAA,CAAO,OAAA,CAAAC,CAAQ,CAAA,CAAIL,EAC3BM,CAAAA,CAAKC,KAAAA,GAEX,SAASC,GAAAA,CACPC,EACAC,CAAAA,CACM,CACNR,GAAAA,CAASC,CAAAA,CAAM,CACb,GAAGO,CAAAA,CACH,KAAA,CAAOD,CAAAA,CAAM,cAAc,KAC7B,CAAC,EACH,CAEA,SAASE,CAAAA,CAAeC,CAAAA,CAAkBC,EAAyC,CACjFX,GAAAA,CAASC,EAAM,CACb,GAAGU,CAAAA,CACH,QAAA,CAAUD,CACZ,CAAC,EACH,CAEA,OACEE,GAAAA,CAACC,EAAA,CACC,OAAA,CAAShB,GAAAA,CACT,IAAA,CAAMI,EACN,MAAA,CAAQ,CAAC,CAAE,KAAA,CAAAa,GAAM,IACfC,IAAAA,CAACC,CAAAA,CAAA,CACC,QAAA,CAAA,CAAAJ,IAACK,CAAAA,CAAA,CAAU,OAAA,CAASb,CAAAA,CAAK,SAAAF,GAAAA,CAAM,CAAA,CAC9BC,CAAAA,EAAS,OAAA,CAAUS,IAACM,CAAAA,CAAA,CAAiB,SAAAf,CAAAA,CAAQ,OAAA,CAAQ,EAAqB,IAAA,CAC3ES,GAAAA,CAACO,CAAAA,CAAA,CACC,SAAAP,GAAAA,CAACQ,CAAAA,CAAA,CACC,SAAA,CAAU,uBACV,QAAA,CAAUrB,CAAAA,EAAYe,GAAAA,CAAM,KAAA,EAAO,SACnC,EAAA,CAAIV,CAAAA,CACH,GAAGU,GAAAA,CACJ,QAAA,CAAWP,GAAU,CACnBD,GAAAA,CAAYC,CAAAA,CAAOO,GAAAA,CAAM,KAAK,EAChC,CAAA,CACA,KAAA,CAAQA,GAAAA,CAAM,OAAO,KAAA,EAAoB,EAAA,CAC3C,CAAA,CACF,CAAA,CAEAF,IAACS,GAAAA,CAAA,CACC,QAASP,GAAAA,CAAM,KAAA,EAAO,UAAY,KAAA,CAClC,QAAA,CAAUf,CAAAA,CACV,QAAA,CAAWW,GAAY,CACrBD,CAAAA,CAAeC,EAASI,GAAAA,CAAM,KAAK,EACrC,CAAA,CACA,KAAA,CAAOA,GAAAA,CAAM,KAAA,EAAO,MACtB,CAAA,CACAF,GAAAA,CAACU,EAAA,EAAY,CAAA,CAAA,CACf,EAEJ,CAEJ","file":"chunk-UWMJBBTY.js","sourcesContent":["import { useId } from 'react';\nimport type { JSX } from 'react';\nimport type { FormFieldValue } from '../../graphql-client/types';\nimport { FormControl, FormDescription, FormField, FormLabel, FormMessage, FormItem } from '../../ui/primitives/form';\nimport { Input } from '../../ui/primitives/input';\nimport type { FormFieldParams } from '../types';\nimport { DefaultValueSwitch } from './default-value-switch';\n\nexport function Text({ control, fieldSchema, readOnly, setValue }: FormFieldParams<'text'>): JSX.Element {\n const { name, label, options } = fieldSchema;\n const id = useId();\n\n function handleInput(\n event: React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>,\n previousValue: FormFieldValue | undefined\n ): void {\n setValue(name, {\n ...previousValue,\n value: event.currentTarget.value,\n });\n }\n\n function handleCheckbox(checked: boolean, value: FormFieldValue | undefined): void {\n setValue(name, {\n ...value,\n disabled: checked,\n });\n }\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }: { field: { value?: FormFieldValue } }) => (\n <FormItem>\n <FormLabel htmlFor={id}>{label}</FormLabel>\n {options?.comment ? <FormDescription>{options.comment}</FormDescription> : null}\n <FormControl>\n <Input\n className=\"fk:w-full fk:mt-0.75\"\n disabled={readOnly || field.value?.disabled}\n id={id}\n {...field}\n onChange={(event) => {\n handleInput(event, field.value);\n }}\n value={(field.value?.value as string) || ''}\n />\n </FormControl>\n\n <DefaultValueSwitch\n checked={field.value?.disabled ?? false}\n disabled={readOnly}\n onChange={(checked) => {\n handleCheckbox(checked, field.value);\n }}\n scope={field.value?.scope}\n />\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n"]}
|
package/dist/chunk-W3Z33ETA.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import'./index.css';import {b}from'./chunk-6NRQMG26.js';import {a}from'./chunk-O2QMYUPS.js';import {Slot,Separator,Dialog,ScrollArea}from'radix-ui';import {cva}from'class-variance-authority';import {jsx,jsxs}from'react/jsx-runtime';import {XIcon,SearchIcon}from'lucide-react';import {Command}from'cmdk';var y=cva("fk:inline-flex fk:w-fit fk:shrink-0 fk:items-center fk:justify-center fk:gap-1 fk:overflow-hidden fk:rounded-full fk:border fk:border-transparent fk:px-2 fk:py-0.5 fk:text-xs fk:font-medium fk:whitespace-nowrap fk:transition-[color,box-shadow] fk:focus-visible:border-ring fk:focus-visible:ring-[3px] fk:focus-visible:ring-ring/50 fk:aria-invalid:border-destructive fk:aria-invalid:ring-destructive/20 fk:dark:aria-invalid:ring-destructive/40 fk:[&>svg]:pointer-events-none fk:[&>svg]:size-3 fk:corner-squircle",{variants:{variant:{default:"fk:bg-primary fk:text-primary-foreground fk:[a&]:hover:bg-primary/90",secondary:"fk:bg-secondary fk:text-secondary-foreground fk:[a&]:hover:bg-secondary/90",destructive:"fk:bg-destructive fk:text-white fk:focus-visible:ring-destructive/20 fk:dark:bg-destructive/60 fk:dark:focus-visible:ring-destructive/40 fk:[a&]:hover:bg-destructive/90",outline:"fk:border-border fk:text-foreground fk:[a&]:hover:bg-accent fk:[a&]:hover:text-accent-foreground",ghost:"fk:[a&]:hover:bg-accent fk:[a&]:hover:text-accent-foreground",link:"fk:text-primary fk:underline-offset-4 fk:[a&]:hover:underline"}},defaultVariants:{variant:"default"}});function E({className:o,variant:t="default",asChild:a$1=false,...f}){let m=a$1?Slot.Root:"span";return jsx(m,{"data-slot":"badge","data-variant":t,className:a(y({variant:t}),o),...f})}function F({className:o,orientation:t="horizontal",decorative:a$1=true,...f}){return jsx(Separator.Root,{"data-slot":"separator",decorative:a$1,orientation:t,className:a("fk:shrink-0 fk:bg-border fk:data-[orientation=horizontal]:h-px fk:data-[orientation=horizontal]:w-full fk:data-[orientation=vertical]:h-full fk:data-[orientation=vertical]:w-px",o),...f})}function u({...o}){return jsx(Dialog.Root,{"data-slot":"dialog",...o})}function W({...o}){return jsx(Dialog.Trigger,{"data-slot":"dialog-trigger",...o})}function S({...o}){return jsx(Dialog.Portal,{"data-slot":"dialog-portal",...o})}function Y({...o}){return jsx(Dialog.Close,{"data-slot":"dialog-close",...o})}function _({className:o,...t}){return jsx(Dialog.Overlay,{"data-slot":"dialog-overlay",className:a("fk:fixed fk:inset-0 fk:z-50 fk:bg-black/50 fk:data-[state=closed]:animate-out fk:data-[state=closed]:fade-out-0 fk:data-[state=open]:animate-in fk:data-[state=open]:fade-in-0",o),...t})}function g({className:o,children:t,showCloseButton:a$1=true,...f}){return jsxs(S,{"data-slot":"dialog-portal",children:[jsx(_,{}),jsxs(Dialog.Content,{"data-slot":"dialog-content",className:a("fk:fixed fk:top-[50%] fk:left-[50%] fk:z-50 fk:grid fk:w-full fk:max-w-[calc(100%-2rem)] fk:translate-x-[-50%] fk:translate-y-[-50%] fk:gap-4 fk:rounded-lg fk:border fk:bg-background fk:p-6 fk:shadow-lg fk:duration-200 fk:outline-none fk:data-[state=closed]:animate-out fk:data-[state=closed]:fade-out-0 fk:data-[state=closed]:zoom-out-95 fk:data-[state=open]:animate-in fk:data-[state=open]:fade-in-0 fk:data-[state=open]:zoom-in-95 fk:sm:max-w-lg fk:corner-squircle",o),...f,children:[t,a$1&&jsxs(Dialog.Close,{"data-slot":"dialog-close",className:"fk:absolute fk:top-4 fk:right-4 fk:rounded-xs fk:opacity-70 fk:ring-offset-background fk:transition-opacity fk:hover:opacity-100 fk:focus:ring-2 fk:focus:ring-ring fk:focus:ring-offset-2 fk:focus:outline-hidden fk:disabled:pointer-events-none fk:data-[state=open]:bg-accent fk:data-[state=open]:text-muted-foreground fk:[&_svg]:pointer-events-none fk:[&_svg]:shrink-0 fk:[&_svg:not([class*='size-'])]:size-4 fk:corner-squircle",children:[jsx(XIcon,{}),jsx("span",{className:"fk:sr-only",children:"Close"})]})]})]})}function v({className:o,...t}){return jsx("div",{"data-slot":"dialog-header",className:a("fk:flex fk:flex-col fk:gap-2 fk:text-center fk:sm:text-left",o),...t})}function Z({className:o,showCloseButton:t=false,children:a$1,...f}){return jsxs("div",{"data-slot":"dialog-footer",className:a("fk:flex fk:flex-col-reverse fk:gap-2 fk:sm:flex-row fk:sm:justify-end",o),...f,children:[a$1,t&&jsx(Dialog.Close,{asChild:true,children:jsx(b,{variant:"outline",children:"Close"})})]})}function h({className:o,...t}){return jsx(Dialog.Title,{"data-slot":"dialog-title",className:a("fk:text-lg fk:leading-none fk:font-semibold fk:text-left",o),...t})}function x({className:o,...t}){return jsx(Dialog.Description,{"data-slot":"dialog-description",className:a("fk:text-sm fk:text-muted-foreground fk:text-left",o),...t})}function A({className:o,...t}){return jsx(Command,{"data-slot":"command",className:a("fk:flex fk:h-full fk:w-full fk:flex-col fk:rounded-md fk:bg-popover fk:text-popover-foreground fk:corner-squircle",o),...t})}function ro({title:o="Command Palette",description:t="Search for a command to run...",children:a$1,className:f,showCloseButton:m=true,...C}){return jsxs(u,{...C,children:[jsxs(v,{className:"fk:sr-only",children:[jsx(h,{children:o}),jsx(x,{children:t})]}),jsx(g,{className:a("fk:overflow-hidden fk:p-0",f),showCloseButton:m,children:jsx(A,{className:"fk:**:data-[slot=command-input-wrapper]:h-12 fk:**:[[cmdk-group-heading]]:px-2 fk:**:[[cmdk-group-heading]]:font-medium fk:**:[[cmdk-group-heading]]:text-muted-foreground fk:**:[[cmdk-group]]:px-2 fk:[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 fk:[&_[cmdk-input-wrapper]_svg]:h-5 fk:[&_[cmdk-input-wrapper]_svg]:w-5 fk:**:[[cmdk-input]]:h-12 fk:**:[[cmdk-item]]:px-2 fk:**:[[cmdk-item]]:py-3 fk:[&_[cmdk-item]_svg]:h-5 fk:[&_[cmdk-item]_svg]:w-5",children:a$1})})]})}function io({className:o,...t}){return jsxs("div",{"data-slot":"command-input-wrapper",className:"fk:flex fk:h-9 fk:items-center fk:gap-2 fk:border-b fk:px-3",children:[jsx(SearchIcon,{className:"fk:size-4 fk:shrink-0 fk:opacity-50"}),jsx(Command.Input,{"data-slot":"command-input",className:a("fk:flex fk:h-10 fk:w-full fk:rounded-md fk:bg-transparent fk:py-3 fk:text-sm fk:outline-hidden fk:placeholder:text-muted-foreground fk:disabled:cursor-not-allowed fk:disabled:opacity-50 fk:corner-squircle",o),...t})]})}function no({className:o,...t}){return jsx(Command.List,{"data-slot":"command-list",className:a("fk:max-h-[300px] fk:scroll-py-1 fk:overflow-x-hidden fk:overflow-y-auto",o),...t})}function fo({...o}){return jsx(Command.Empty,{"data-slot":"command-empty",className:"fk:py-6 fk:text-center fk:text-sm",...o})}function lo({className:o,...t}){return jsx(Command.Group,{"data-slot":"command-group",className:a("fk:overflow-hidden fk:p-1 fk:text-foreground fk:**:[[cmdk-group-heading]]:px-2 fk:**:[[cmdk-group-heading]]:py-1.5 fk:**:[[cmdk-group-heading]]:text-xs fk:**:[[cmdk-group-heading]]:font-medium fk:**:[[cmdk-group-heading]]:text-muted-foreground",o),...t})}function so({className:o,...t}){return jsx(Command.Separator,{"data-slot":"command-separator",className:a("fk:-mx-1 fk:h-px fk:bg-border",o),...t})}function ko({className:o,...t}){return jsx(Command.Item,{"data-slot":"command-item",className:a("fk:relative fk:flex fk:cursor-default fk:items-center fk:gap-2 fk:rounded-sm fk:px-2 fk:py-1.5 fk:text-sm fk:outline-hidden fk:select-none fk:data-[disabled=true]:pointer-events-none fk:data-[disabled=true]:opacity-50 fk:data-[selected=true]:bg-accent fk:data-[selected=true]:text-accent-foreground fk:[&_svg]:pointer-events-none fk:[&_svg]:shrink-0 fk:[&_svg:not([class*='size-'])]:size-4 fk:[&_svg:not([class*='text-'])]:text-muted-foreground fk:corner-squircle",o),...t})}function mo({className:o,...t}){return jsx("span",{"data-slot":"command-shortcut",className:a("fk:ml-auto fk:text-xs fk:tracking-widest fk:text-muted-foreground",o),...t})}function vo({className:o,children:t,...a$1}){return jsxs(ScrollArea.Root,{"data-slot":"scroll-area",className:a("fk:relative",o),...a$1,children:[jsx(ScrollArea.Viewport,{"data-slot":"scroll-area-viewport",className:"fk:size-full fk:rounded-[inherit] fk:transition-[color,box-shadow] fk:outline-none fk:focus-visible:ring-[3px] fk:focus-visible:ring-ring/50 fk:focus-visible:outline-1 fk:corner-squircle",children:t}),jsx(T,{}),jsx(ScrollArea.Corner,{})]})}function T({className:o,orientation:t="vertical",...a$1}){return jsx(ScrollArea.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:t,className:a("fk:flex fk:touch-none fk:p-px fk:transition-colors fk:select-none",t==="vertical"&&"fk:h-full fk:w-2.5 fk:border-l fk:border-l-transparent",t==="horizontal"&&"fk:h-2.5 fk:flex-col fk:border-t fk:border-t-transparent",o),...a$1,children:jsx(ScrollArea.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"fk:relative fk:flex-1 fk:rounded-full fk:bg-border fk:corner-squircle"})})}export{y as a,E as b,F as c,u as d,W as e,S as f,Y as g,_ as h,g as i,v as j,Z as k,h as l,x as m,A as n,ro as o,io as p,no as q,fo as r,lo as s,so as t,ko as u,mo as v,vo as w,T as x};//# sourceMappingURL=chunk-W3Z33ETA.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-W3Z33ETA.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/primitives/badge.tsx","../src/ui/primitives/separator.tsx","../src/ui/primitives/dialog.tsx","../src/ui/primitives/command.tsx","../src/ui/primitives/scroll-area.tsx"],"names":["badgeVariants","cva","Badge","className","variant","asChild","props","Comp","Slot","jsx","cn","Separator","orientation","decorative","SeparatorPrimitive","Dialog","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","DialogContent","children","showCloseButton","jsxs","XIcon","DialogHeader","DialogFooter","Button","DialogTitle","DialogDescription","Command","CommandPrimitive","CommandDialog","title","description","CommandInput","SearchIcon","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut","ScrollArea","ScrollAreaPrimitive","ScrollBar"],"mappings":"mTAKMA,CAAAA,CAAgBC,GAAAA,CACpB,igBACA,CACE,QAAA,CAAU,CACR,OAAA,CAAS,CACP,OAAA,CAAS,sEAAA,CACT,SAAA,CAAW,4EAAA,CACX,YACE,0KAAA,CACF,OAAA,CAAS,mGACT,KAAA,CAAO,8DAAA,CACP,KAAM,+DACR,CACF,EACA,eAAA,CAAiB,CACf,QAAS,SACX,CACF,CACF,EAEA,SAASC,EAAM,CACb,SAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CAAU,SAAA,CACV,QAAAC,GAAAA,CAAU,KAAA,CACV,GAAGC,CACL,CAAA,CAA8F,CAC5F,IAAMC,CAAAA,CAAOF,IAAUG,IAAAA,CAAK,IAAA,CAAO,OAEnC,OACEC,GAAAA,CAACF,EAAA,CAAK,WAAA,CAAU,QAAQ,cAAA,CAAcH,CAAAA,CAAS,SAAA,CAAWM,CAAAA,CAAGV,CAAAA,CAAc,CAAE,QAAAI,CAAQ,CAAC,EAAGD,CAAS,CAAA,CAAI,GAAGG,CAAAA,CAAO,CAEpH,CC9BA,SAASK,CAAAA,CAAU,CACjB,SAAA,CAAAR,CAAAA,CACA,WAAA,CAAAS,CAAAA,CAAc,YAAA,CACd,UAAA,CAAAC,IAAa,IAAA,CACb,GAAGP,CACL,CAAA,CAAyD,CACvD,OACEG,GAAAA,CAACK,SAAAA,CAAmB,KAAnB,CACC,WAAA,CAAU,YACV,UAAA,CAAYD,GAAAA,CACZ,YAAaD,CAAAA,CACb,SAAA,CAAWF,EACT,kLAAA,CACAP,CACF,CAAA,CACC,GAAGG,CAAAA,CACN,CAEJ,CChBA,SAASS,EAAO,CAAE,GAAGT,CAAM,CAAA,CAAsD,CAC/E,OAAOG,GAAAA,CAACO,MAAAA,CAAgB,IAAA,CAAhB,CAAqB,WAAA,CAAU,QAAA,CAAU,GAAGV,CAAAA,CAAO,CAC7D,CAEA,SAASW,CAAAA,CAAc,CAAE,GAAGX,CAAM,EAAyD,CACzF,OAAOG,IAACO,MAAAA,CAAgB,OAAA,CAAhB,CAAwB,WAAA,CAAU,gBAAA,CAAkB,GAAGV,CAAAA,CAAO,CACxE,CAEA,SAASY,CAAAA,CAAa,CAAE,GAAGZ,CAAM,CAAA,CAAwD,CACvF,OAAOG,GAAAA,CAACO,MAAAA,CAAgB,MAAA,CAAhB,CAAuB,WAAA,CAAU,gBAAiB,GAAGV,CAAAA,CAAO,CACtE,CAEA,SAASa,EAAY,CAAE,GAAGb,CAAM,CAAA,CAAuD,CACrF,OAAOG,IAACO,MAAAA,CAAgB,KAAA,CAAhB,CAAsB,WAAA,CAAU,cAAA,CAAgB,GAAGV,CAAAA,CAAO,CACpE,CAEA,SAASc,CAAAA,CAAc,CAAE,SAAA,CAAAjB,CAAAA,CAAW,GAAGG,CAAM,CAAA,CAAyD,CACpG,OACEG,GAAAA,CAACO,MAAAA,CAAgB,OAAA,CAAhB,CACC,WAAA,CAAU,iBACV,SAAA,CAAWN,CAAAA,CACT,iLACAP,CACF,CAAA,CACC,GAAGG,CAAAA,CACN,CAEJ,CAEA,SAASe,CAAAA,CAAc,CACrB,SAAA,CAAAlB,CAAAA,CACA,SAAAmB,CAAAA,CACA,eAAA,CAAAC,IAAkB,IAAA,CAClB,GAAGjB,CACL,CAAA,CAEG,CACD,OACEkB,KAACN,CAAAA,CAAA,CAAa,YAAU,eAAA,CACtB,QAAA,CAAA,CAAAT,IAACW,CAAAA,CAAA,EAAc,EACfI,IAAAA,CAACR,MAAAA,CAAgB,QAAhB,CACC,WAAA,CAAU,iBACV,SAAA,CAAWN,CAAAA,CACT,sdACAP,CACF,CAAA,CACC,GAAGG,CAAAA,CAEH,QAAA,CAAA,CAAAgB,CAAAA,CACAC,KACCC,IAAAA,CAACR,MAAAA,CAAgB,MAAhB,CACC,WAAA,CAAU,eACV,SAAA,CAAU,4aAAA,CAEV,QAAA,CAAA,CAAAP,GAAAA,CAACgB,KAAAA,CAAA,EAAM,EACPhB,GAAAA,CAAC,MAAA,CAAA,CAAK,UAAU,YAAA,CAAa,QAAA,CAAA,OAAA,CAAK,GACpC,CAAA,CAAA,CAEJ,CAAA,CAAA,CACF,CAEJ,CAEA,SAASiB,CAAAA,CAAa,CAAE,SAAA,CAAAvB,CAAAA,CAAW,GAAGG,CAAM,CAAA,CAAgC,CAC1E,OACEG,GAAAA,CAAC,OACC,WAAA,CAAU,eAAA,CACV,UAAWC,CAAAA,CAAG,6DAAA,CAA+DP,CAAS,CAAA,CACrF,GAAGG,EACN,CAEJ,CAEA,SAASqB,CAAAA,CAAa,CACpB,SAAA,CAAAxB,EACA,eAAA,CAAAoB,CAAAA,CAAkB,MAClB,QAAA,CAAAD,GAAAA,CACA,GAAGhB,CACL,CAAA,CAEG,CACD,OACEkB,IAAAA,CAAC,KAAA,CAAA,CACC,YAAU,eAAA,CACV,SAAA,CAAWd,EAAG,uEAAA,CAAyEP,CAAS,EAC/F,GAAGG,CAAAA,CAEH,QAAA,CAAA,CAAAgB,GAAAA,CACAC,CAAAA,EACCd,GAAAA,CAACO,OAAgB,KAAA,CAAhB,CAAsB,QAAO,IAAA,CAC5B,QAAA,CAAAP,IAACmB,CAAAA,CAAA,CAAO,QAAQ,SAAA,CAAU,QAAA,CAAA,OAAA,CAAK,EACjC,CAAA,CAAA,CAEJ,CAEJ,CAEA,SAASC,CAAAA,CAAY,CAAE,SAAA,CAAA1B,CAAAA,CAAW,GAAGG,CAAM,CAAA,CAAuD,CAChG,OACEG,GAAAA,CAACO,MAAAA,CAAgB,MAAhB,CACC,WAAA,CAAU,eACV,SAAA,CAAWN,CAAAA,CAAG,0DAAA,CAA4DP,CAAS,CAAA,CAClF,GAAGG,EACN,CAEJ,CAEA,SAASwB,CAAAA,CAAkB,CAAE,UAAA3B,CAAAA,CAAW,GAAGG,CAAM,CAAA,CAA6D,CAC5G,OACEG,IAACO,MAAAA,CAAgB,WAAA,CAAhB,CACC,WAAA,CAAU,oBAAA,CACV,UAAWN,CAAAA,CAAG,kDAAA,CAAoDP,CAAS,CAAA,CAC1E,GAAGG,EACN,CAEJ,CCjHA,SAASyB,CAAAA,CAAQ,CAAE,UAAA5B,CAAAA,CAAW,GAAGG,CAAM,CAAA,CAAkD,CACvF,OACEG,GAAAA,CAACuB,OAAAA,CAAA,CACC,WAAA,CAAU,SAAA,CACV,UAAWtB,CAAAA,CACT,mHAAA,CACAP,CACF,CAAA,CACC,GAAGG,CAAAA,CACN,CAEJ,CAEA,SAAS2B,GAAc,CACrB,KAAA,CAAAC,EAAQ,iBAAA,CACR,WAAA,CAAAC,EAAc,gCAAA,CACd,QAAA,CAAAb,IACA,SAAA,CAAAnB,CAAAA,CACA,gBAAAoB,CAAAA,CAAkB,IAAA,CAClB,GAAGjB,CACL,CAAA,CAKG,CACD,OACEkB,IAAAA,CAACT,CAAAA,CAAA,CAAQ,GAAGT,CAAAA,CACV,UAAAkB,IAAAA,CAACE,CAAAA,CAAA,CAAa,SAAA,CAAU,YAAA,CACtB,QAAA,CAAA,CAAAjB,GAAAA,CAACoB,CAAAA,CAAA,CAAa,SAAAK,CAAAA,CAAM,CAAA,CACpBzB,IAACqB,CAAAA,CAAA,CAAmB,SAAAK,CAAAA,CAAY,CAAA,CAAA,CAClC,CAAA,CACA1B,GAAAA,CAACY,CAAAA,CAAA,CAAc,UAAWX,CAAAA,CAAG,2BAAA,CAA6BP,CAAS,CAAA,CAAG,eAAA,CAAiBoB,EACrF,QAAA,CAAAd,GAAAA,CAACsB,EAAA,CAAQ,SAAA,CAAU,scAChB,QAAA,CAAAT,GAAAA,CACH,EACF,CAAA,CAAA,CACF,CAEJ,CAEA,SAASc,EAAAA,CAAa,CAAE,SAAA,CAAAjC,CAAAA,CAAW,GAAGG,CAAM,CAAA,CAAwD,CAClG,OACEkB,IAAAA,CAAC,KAAA,CAAA,CAAI,YAAU,uBAAA,CAAwB,SAAA,CAAU,6DAAA,CAC/C,QAAA,CAAA,CAAAf,GAAAA,CAAC4B,UAAAA,CAAA,CAAW,SAAA,CAAU,qCAAA,CAAsC,EAC5D5B,GAAAA,CAACuB,OAAAA,CAAiB,MAAjB,CACC,WAAA,CAAU,eAAA,CACV,SAAA,CAAWtB,CAAAA,CACT,8MAAA,CACAP,CACF,CAAA,CACC,GAAGG,EACN,CAAA,CAAA,CACF,CAEJ,CAEA,SAASgC,EAAAA,CAAY,CAAE,SAAA,CAAAnC,CAAAA,CAAW,GAAGG,CAAM,CAAA,CAAuD,CAChG,OACEG,GAAAA,CAACuB,QAAiB,IAAA,CAAjB,CACC,WAAA,CAAU,cAAA,CACV,SAAA,CAAWtB,CAAAA,CAAG,0EAA2EP,CAAS,CAAA,CACjG,GAAGG,CAAAA,CACN,CAEJ,CAEA,SAASiC,EAAAA,CAAa,CAAE,GAAGjC,CAAM,CAAA,CAAwD,CACvF,OAAOG,GAAAA,CAACuB,QAAiB,KAAA,CAAjB,CAAuB,YAAU,eAAA,CAAgB,SAAA,CAAU,mCAAA,CAAqC,GAAG1B,CAAAA,CAAO,CACpH,CAEA,SAASkC,EAAAA,CAAa,CAAE,SAAA,CAAArC,CAAAA,CAAW,GAAGG,CAAM,CAAA,CAAwD,CAClG,OACEG,GAAAA,CAACuB,QAAiB,KAAA,CAAjB,CACC,YAAU,eAAA,CACV,SAAA,CAAWtB,EACT,qPAAA,CACAP,CACF,CAAA,CACC,GAAGG,CAAAA,CACN,CAEJ,CAEA,SAASmC,EAAAA,CAAiB,CAAE,SAAA,CAAAtC,CAAAA,CAAW,GAAGG,CAAM,CAAA,CAA4D,CAC1G,OACEG,GAAAA,CAACuB,QAAiB,SAAA,CAAjB,CACC,YAAU,mBAAA,CACV,SAAA,CAAWtB,EAAG,+BAAA,CAAiCP,CAAS,CAAA,CACvD,GAAGG,CAAAA,CACN,CAEJ,CAEA,SAASoC,EAAAA,CAAY,CAAE,SAAA,CAAAvC,CAAAA,CAAW,GAAGG,CAAM,CAAA,CAAuD,CAChG,OACEG,GAAAA,CAACuB,QAAiB,IAAA,CAAjB,CACC,YAAU,cAAA,CACV,SAAA,CAAWtB,EACT,idAAA,CACAP,CACF,CAAA,CACC,GAAGG,CAAAA,CACN,CAEJ,CAEA,SAASqC,EAAAA,CAAgB,CAAE,SAAA,CAAAxC,CAAAA,CAAW,GAAGG,CAAM,CAAA,CAAiC,CAC9E,OACEG,GAAAA,CAAC,MAAA,CAAA,CACC,YAAU,kBAAA,CACV,SAAA,CAAWC,EAAG,mEAAA,CAAqEP,CAAS,EAC3F,GAAGG,CAAAA,CACN,CAEJ,CCvHA,SAASsC,GAAW,CAAE,SAAA,CAAAzC,EAAW,QAAA,CAAAmB,CAAAA,CAAU,GAAGhB,GAAM,CAAA,CAA0D,CAC5G,OACEkB,IAAAA,CAACqB,UAAAA,CAAoB,IAAA,CAApB,CAAyB,WAAA,CAAU,cAAc,SAAA,CAAWnC,CAAAA,CAAG,cAAeP,CAAS,CAAA,CAAI,GAAGG,GAAAA,CAC7F,QAAA,CAAA,CAAAG,GAAAA,CAACoC,UAAAA,CAAoB,QAAA,CAApB,CACC,YAAU,sBAAA,CACV,SAAA,CAAU,6LAET,QAAA,CAAAvB,CAAAA,CACH,EACAb,GAAAA,CAACqC,CAAAA,CAAA,EAAU,CAAA,CACXrC,GAAAA,CAACoC,UAAAA,CAAoB,OAApB,EAA2B,CAAA,CAAA,CAC9B,CAEJ,CAEA,SAASC,EAAU,CACjB,SAAA,CAAA3C,EACA,WAAA,CAAAS,CAAAA,CAAc,WACd,GAAGN,GACL,EAAyE,CACvE,OACEG,IAACoC,UAAAA,CAAoB,mBAAA,CAApB,CACC,WAAA,CAAU,uBAAA,CACV,WAAA,CAAajC,EACb,SAAA,CAAWF,CAAAA,CACT,oEACAE,CAAAA,GAAgB,UAAA,EAAc,yDAC9BA,CAAAA,GAAgB,YAAA,EAAgB,0DAAA,CAChCT,CACF,CAAA,CACC,GAAGG,IAEJ,QAAA,CAAAG,GAAAA,CAACoC,WAAoB,eAAA,CAApB,CACC,YAAU,mBAAA,CACV,SAAA,CAAU,uEAAA,CACZ,CAAA,CACF,CAEJ","file":"chunk-W3Z33ETA.js","sourcesContent":["import * as React from 'react';\nimport { Slot } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\nconst badgeVariants = cva(\n 'fk:inline-flex fk:w-fit fk:shrink-0 fk:items-center fk:justify-center fk:gap-1 fk:overflow-hidden fk:rounded-full fk:border fk:border-transparent fk:px-2 fk:py-0.5 fk:text-xs fk:font-medium fk:whitespace-nowrap fk:transition-[color,box-shadow] fk:focus-visible:border-ring fk:focus-visible:ring-[3px] fk:focus-visible:ring-ring/50 fk:aria-invalid:border-destructive fk:aria-invalid:ring-destructive/20 fk:dark:aria-invalid:ring-destructive/40 fk:[&>svg]:pointer-events-none fk:[&>svg]:size-3 fk:corner-squircle',\n {\n variants: {\n variant: {\n default: 'fk:bg-primary fk:text-primary-foreground fk:[a&]:hover:bg-primary/90',\n secondary: 'fk:bg-secondary fk:text-secondary-foreground fk:[a&]:hover:bg-secondary/90',\n destructive:\n 'fk:bg-destructive fk:text-white fk:focus-visible:ring-destructive/20 fk:dark:bg-destructive/60 fk:dark:focus-visible:ring-destructive/40 fk:[a&]:hover:bg-destructive/90',\n outline: 'fk:border-border fk:text-foreground fk:[a&]:hover:bg-accent fk:[a&]:hover:text-accent-foreground',\n ghost: 'fk:[a&]:hover:bg-accent fk:[a&]:hover:text-accent-foreground',\n link: 'fk:text-primary fk:underline-offset-4 fk:[a&]:hover:underline',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nfunction Badge({\n className,\n variant = 'default',\n asChild = false,\n ...props\n}: React.ComponentProps<'span'> & VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : 'span';\n\n return (\n <Comp data-slot=\"badge\" data-variant={variant} className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","'use client';\n\nimport * as React from 'react';\nimport { Separator as SeparatorPrimitive } from 'radix-ui';\nimport { cn } from '../lib/utils';\n\nfunction Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'fk:shrink-0 fk:bg-border fk:data-[orientation=horizontal]:h-px fk:data-[orientation=horizontal]:w-full fk:data-[orientation=vertical]:h-full fk:data-[orientation=vertical]:w-px',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n","'use client';\n\nimport * as React from 'react';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\nimport { XIcon } from 'lucide-react';\nimport { cn } from '../lib/utils';\nimport { Button } from './button';\n\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'fk:fixed fk:inset-0 fk:z-50 fk:bg-black/50 fk:data-[state=closed]:animate-out fk:data-[state=closed]:fade-out-0 fk:data-[state=open]:animate-in fk:data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'fk:fixed fk:top-[50%] fk:left-[50%] fk:z-50 fk:grid fk:w-full fk:max-w-[calc(100%-2rem)] fk:translate-x-[-50%] fk:translate-y-[-50%] fk:gap-4 fk:rounded-lg fk:border fk:bg-background fk:p-6 fk:shadow-lg fk:duration-200 fk:outline-none fk:data-[state=closed]:animate-out fk:data-[state=closed]:fade-out-0 fk:data-[state=closed]:zoom-out-95 fk:data-[state=open]:animate-in fk:data-[state=open]:fade-in-0 fk:data-[state=open]:zoom-in-95 fk:sm:max-w-lg fk:corner-squircle',\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"fk:absolute fk:top-4 fk:right-4 fk:rounded-xs fk:opacity-70 fk:ring-offset-background fk:transition-opacity fk:hover:opacity-100 fk:focus:ring-2 fk:focus:ring-ring fk:focus:ring-offset-2 fk:focus:outline-hidden fk:disabled:pointer-events-none fk:data-[state=open]:bg-accent fk:data-[state=open]:text-muted-foreground fk:[&_svg]:pointer-events-none fk:[&_svg]:shrink-0 fk:[&_svg:not([class*='size-'])]:size-4 fk:corner-squircle\"\n >\n <XIcon />\n <span className=\"fk:sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn('fk:flex fk:flex-col fk:gap-2 fk:text-center fk:sm:text-left', className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n showCloseButton?: boolean;\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn('fk:flex fk:flex-col-reverse fk:gap-2 fk:sm:flex-row fk:sm:justify-end', className)}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close asChild>\n <Button variant=\"outline\">Close</Button>\n </DialogPrimitive.Close>\n )}\n </div>\n );\n}\n\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn('fk:text-lg fk:leading-none fk:font-semibold fk:text-left', className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn('fk:text-sm fk:text-muted-foreground fk:text-left', className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { SearchIcon } from 'lucide-react';\nimport { cn } from '../lib/utils';\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from './dialog';\n\ntype CommandChildren = React.ComponentProps<typeof CommandPrimitive>['children'];\n\nfunction Command({ className, ...props }: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n 'fk:flex fk:h-full fk:w-full fk:flex-col fk:rounded-md fk:bg-popover fk:text-popover-foreground fk:corner-squircle',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n className,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof Dialog> & {\n title?: string;\n description?: string;\n className?: string;\n showCloseButton?: boolean;\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"fk:sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent className={cn('fk:overflow-hidden fk:p-0', className)} showCloseButton={showCloseButton}>\n <Command className=\"fk:**:data-[slot=command-input-wrapper]:h-12 fk:**:[[cmdk-group-heading]]:px-2 fk:**:[[cmdk-group-heading]]:font-medium fk:**:[[cmdk-group-heading]]:text-muted-foreground fk:**:[[cmdk-group]]:px-2 fk:[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 fk:[&_[cmdk-input-wrapper]_svg]:h-5 fk:[&_[cmdk-input-wrapper]_svg]:w-5 fk:**:[[cmdk-input]]:h-12 fk:**:[[cmdk-item]]:px-2 fk:**:[[cmdk-item]]:py-3 fk:[&_[cmdk-item]_svg]:h-5 fk:[&_[cmdk-item]_svg]:w-5\">\n {children as CommandChildren}\n </Command>\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction CommandInput({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div data-slot=\"command-input-wrapper\" className=\"fk:flex fk:h-9 fk:items-center fk:gap-2 fk:border-b fk:px-3\">\n <SearchIcon className=\"fk:size-4 fk:shrink-0 fk:opacity-50\" />\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n 'fk:flex fk:h-10 fk:w-full fk:rounded-md fk:bg-transparent fk:py-3 fk:text-sm fk:outline-hidden fk:placeholder:text-muted-foreground fk:disabled:cursor-not-allowed fk:disabled:opacity-50 fk:corner-squircle',\n className\n )}\n {...props}\n />\n </div>\n );\n}\n\nfunction CommandList({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn('fk:max-h-[300px] fk:scroll-py-1 fk:overflow-x-hidden fk:overflow-y-auto', className)}\n {...props}\n />\n );\n}\n\nfunction CommandEmpty({ ...props }: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return <CommandPrimitive.Empty data-slot=\"command-empty\" className=\"fk:py-6 fk:text-center fk:text-sm\" {...props} />;\n}\n\nfunction CommandGroup({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\n 'fk:overflow-hidden fk:p-1 fk:text-foreground fk:**:[[cmdk-group-heading]]:px-2 fk:**:[[cmdk-group-heading]]:py-1.5 fk:**:[[cmdk-group-heading]]:text-xs fk:**:[[cmdk-group-heading]]:font-medium fk:**:[[cmdk-group-heading]]:text-muted-foreground',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CommandSeparator({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn('fk:-mx-1 fk:h-px fk:bg-border', className)}\n {...props}\n />\n );\n}\n\nfunction CommandItem({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"fk:relative fk:flex fk:cursor-default fk:items-center fk:gap-2 fk:rounded-sm fk:px-2 fk:py-1.5 fk:text-sm fk:outline-hidden fk:select-none fk:data-[disabled=true]:pointer-events-none fk:data-[disabled=true]:opacity-50 fk:data-[selected=true]:bg-accent fk:data-[selected=true]:text-accent-foreground fk:[&_svg]:pointer-events-none fk:[&_svg]:shrink-0 fk:[&_svg:not([class*='size-'])]:size-4 fk:[&_svg:not([class*='text-'])]:text-muted-foreground fk:corner-squircle\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CommandShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn('fk:ml-auto fk:text-xs fk:tracking-widest fk:text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\nimport { cn } from '../lib/utils';\n\nfunction ScrollArea({ className, children, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root data-slot=\"scroll-area\" className={cn('fk:relative', className)} {...props}>\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"fk:size-full fk:rounded-[inherit] fk:transition-[color,box-shadow] fk:outline-none fk:focus-visible:ring-[3px] fk:focus-visible:ring-ring/50 fk:focus-visible:outline-1 fk:corner-squircle\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollBar({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n 'fk:flex fk:touch-none fk:p-px fk:transition-colors fk:select-none',\n orientation === 'vertical' && 'fk:h-full fk:w-2.5 fk:border-l fk:border-l-transparent',\n orientation === 'horizontal' && 'fk:h-2.5 fk:flex-col fk:border-t fk:border-t-transparent',\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"fk:relative fk:flex-1 fk:rounded-full fk:bg-border fk:corner-squircle\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n\nexport { ScrollArea, ScrollBar };\n"]}
|
package/dist/chunk-WDRCARCP.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import'./index.css';import {b}from'./chunk-WIUPQHZ5.js';var e="flexkit.io",g={"flexkit.io":true,"flexkit.test":true};function p(){let t=globalThis.process?.env?.FLEXKIT_DOMAIN?.trim();return t&&g[t]?t:e}var i=p();var o=i,r=`https://${o}`,s=t=>t?`https://${t}.api.${o}`:r,c=`${r}/images/`;function x(t=""){return {assets:`/api/flexkit/${t}/assets`,authProviders:`/api/flexkit/${t}/auth/providers`,completion:`/api/flexkit/${t}/completion`,currentUser:`/api/flexkit/${t}/users/me`,loginOtpConfirm:`${s(t)}/auth/otp/confirm`,loginOtpSend:`${s(t)}/auth/otp/send`,logout:a=>{let l=new URLSearchParams({redirect:b(a,t)});return `/api/flexkit/${t}/auth/logout?${l.toString()}`},search:`/api/flexkit/${t}/search`,sessionId:`${s(t)}/api/auth/login/session`}}
|
|
2
|
-
export{r as a,c as b,x as c};//# sourceMappingURL=chunk-WDRCARCP.js.map
|
|
3
|
-
//# sourceMappingURL=chunk-WDRCARCP.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/domains.ts","../src/core/api-paths.ts"],"names":["defaultFlexkitDomain","allowedFlexkitDomains","getConfiguredFlexkitDomain","configuredDomain","flexkitDomain","domain","baseApiUrl","baseProjectApiUrl","projectId","IMAGES_BASE_URL","apiPaths","basePath","params","joinBasePath"],"mappings":"wDAAA,IAAMA,CAAAA,CAAuB,YAAA,CAEvBC,CAAAA,CAAoD,CACxD,YAAA,CAAc,IAAA,CACd,cAAA,CAAgB,IAClB,CAAA,CAUA,SAASC,CAAAA,EAAqC,CAC5C,IAAMC,CAAAA,CAAoB,UAAA,CAAoC,OAAA,EAAS,GAAA,EAAK,cAAA,EAAgB,IAAA,EAAK,CAEjG,OAAKA,CAAAA,EAIDF,CAAAA,CAAsBE,CAAgB,CAAA,CACjCA,CAAAA,CAJAH,CAQX,CAEO,IAAMI,CAAAA,CAAgBF,CAAAA,EAA2B,CC1BxD,IAAMG,CAAAA,CAASD,CAAAA,CACFE,CAAAA,CAAa,CAAA,QAAA,EAAWD,CAAM,CAAA,CAAA,CACrCE,CAAAA,CAAqBC,CAAAA,EACzBA,CAAAA,CAAY,CAAA,QAAA,EAAWA,CAAS,CAAA,KAAA,EAAQH,CAAM,CAAA,CAAA,CAAKC,CAAAA,CAcxCG,CAAAA,CAAkB,CAAA,EAAGH,CAAU,CAAA,QAAA,EAErC,SAASI,CAAAA,CAASF,CAAAA,CAAY,EAAA,CAAc,CACjD,OAAO,CACL,MAAA,CAAQ,CAAA,aAAA,EAAgBA,CAAS,CAAA,OAAA,CAAA,CACjC,aAAA,CAAe,CAAA,aAAA,EAAgBA,CAAS,CAAA,eAAA,CAAA,CACxC,UAAA,CAAY,CAAA,aAAA,EAAgBA,CAAS,CAAA,WAAA,CAAA,CACrC,WAAA,CAAa,CAAA,aAAA,EAAgBA,CAAS,CAAA,SAAA,CAAA,CACtC,eAAA,CAAiB,CAAA,EAAGD,CAAAA,CAAkBC,CAAS,CAAC,CAAA,iBAAA,CAAA,CAChD,YAAA,CAAc,CAAA,EAAGD,CAAAA,CAAkBC,CAAS,CAAC,CAAA,cAAA,CAAA,CAC7C,MAAA,CAASG,CAAAA,EAAqB,CAC5B,IAAMC,CAAAA,CAAS,IAAI,eAAA,CAAgB,CACjC,QAAA,CAAUC,CAAAA,CAAaF,CAAAA,CAAUH,CAAS,CAC5C,CAAC,CAAA,CAED,OAAO,CAAA,aAAA,EAAgBA,CAAS,CAAA,aAAA,EAAgBI,CAAAA,CAAO,QAAA,EAAU,CAAA,CACnE,CAAA,CACA,MAAA,CAAQ,CAAA,aAAA,EAAgBJ,CAAS,CAAA,OAAA,CAAA,CACjC,SAAA,CAAW,CAAA,EAAGD,CAAAA,CAAkBC,CAAS,CAAC,yBAC5C,CACF","file":"chunk-WDRCARCP.js","sourcesContent":["const defaultFlexkitDomain = 'flexkit.io';\n\nconst allowedFlexkitDomains: { [domain: string]: true } = {\n 'flexkit.io': true,\n 'flexkit.test': true,\n};\n\ntype GlobalWithProcessEnv = typeof globalThis & {\n process?: {\n env?: {\n [key: string]: string | undefined;\n };\n };\n};\n\nfunction getConfiguredFlexkitDomain(): string {\n const configuredDomain = (globalThis as GlobalWithProcessEnv).process?.env?.FLEXKIT_DOMAIN?.trim();\n\n if (!configuredDomain) {\n return defaultFlexkitDomain;\n }\n\n if (allowedFlexkitDomains[configuredDomain]) {\n return configuredDomain;\n }\n\n return defaultFlexkitDomain;\n}\n\nexport const flexkitDomain = getConfiguredFlexkitDomain();\nexport const flexkitApiDomain = `api.${flexkitDomain}`;\n","import { joinBasePath } from './base-path';\nimport { flexkitDomain } from './domains';\n\nconst domain = flexkitDomain;\nexport const baseApiUrl = `https://${domain}`;\nconst baseProjectApiUrl = (projectId?: string): string =>\n projectId ? `https://${projectId}.api.${domain}` : baseApiUrl;\n\ninterface ApiPaths {\n assets: string;\n authProviders: string;\n completion: string;\n currentUser: string;\n loginOtpConfirm: string;\n loginOtpSend: string;\n logout: (basePath: string) => string;\n search: string;\n sessionId: string;\n}\n\nexport const IMAGES_BASE_URL = `${baseApiUrl}/images/`;\n\nexport function apiPaths(projectId = ''): ApiPaths {\n return {\n assets: `/api/flexkit/${projectId}/assets`,\n authProviders: `/api/flexkit/${projectId}/auth/providers`,\n completion: `/api/flexkit/${projectId}/completion`,\n currentUser: `/api/flexkit/${projectId}/users/me`,\n loginOtpConfirm: `${baseProjectApiUrl(projectId)}/auth/otp/confirm`,\n loginOtpSend: `${baseProjectApiUrl(projectId)}/auth/otp/send`,\n logout: (basePath: string) => {\n const params = new URLSearchParams({\n redirect: joinBasePath(basePath, projectId),\n });\n\n return `/api/flexkit/${projectId}/auth/logout?${params.toString()}`;\n },\n search: `/api/flexkit/${projectId}/search`,\n sessionId: `${baseProjectApiUrl(projectId)}/api/auth/login/session`,\n };\n}\n"]}
|
package/dist/chunk-WIUPQHZ5.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import'./index.css';function o(n){return !n||n==="/"?"/":`/${n.replace(/^\/+|\/+$/g,"")}`}function a(n,...e){let t=o(n),r=e.flatMap(i=>i.split("/")).filter(Boolean);return r.length===0?t:t==="/"?`/${r.join("/")}`:`${t}/${r.join("/")}`}export{o as a,a as b};//# sourceMappingURL=chunk-WIUPQHZ5.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-WIUPQHZ5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/base-path.ts"],"names":["normalizeBasePath","basePath","joinBasePath","segments","normalizedBasePath","normalizedSegments","segment"],"mappings":"oBAAO,SAASA,CAAAA,CAAkBC,CAAAA,CAA2B,CAC3D,OAAI,CAACA,CAAAA,EAAYA,CAAAA,GAAa,GAAA,CACrB,GAAA,CAKF,CAAA,CAAA,EAFgBA,CAAAA,CAAS,OAAA,CAAQ,YAAA,CAAc,EAAE,CAE/B,CAAA,CAC3B,CAEO,SAASC,CAAAA,CAAaD,CAAAA,CAAAA,GAAqBE,CAAAA,CAA4B,CAC5E,IAAMC,CAAAA,CAAqBJ,CAAAA,CAAkBC,CAAQ,CAAA,CAC/CI,CAAAA,CAAqBF,CAAAA,CAAS,OAAA,CAASG,CAAAA,EAAYA,CAAAA,CAAQ,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,CAE3F,OAAID,CAAAA,CAAmB,MAAA,GAAW,CAAA,CACzBD,CAAAA,CAGLA,CAAAA,GAAuB,GAAA,CAClB,CAAA,CAAA,EAAIC,CAAAA,CAAmB,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAGlC,CAAA,EAAGD,CAAkB,CAAA,CAAA,EAAIC,CAAAA,CAAmB,IAAA,CAAK,GAAG,CAAC,CAAA,CAC9D","file":"chunk-WIUPQHZ5.js","sourcesContent":["export function normalizeBasePath(basePath?: string): string {\n if (!basePath || basePath === '/') {\n return '/';\n }\n\n const normalizedPath = basePath.replace(/^\\/+|\\/+$/g, '');\n\n return `/${normalizedPath}`;\n}\n\nexport function joinBasePath(basePath: string, ...segments: string[]): string {\n const normalizedBasePath = normalizeBasePath(basePath);\n const normalizedSegments = segments.flatMap((segment) => segment.split('/')).filter(Boolean);\n\n if (normalizedSegments.length === 0) {\n return normalizedBasePath;\n }\n\n if (normalizedBasePath === '/') {\n return `/${normalizedSegments.join('/')}`;\n }\n\n return `${normalizedBasePath}/${normalizedSegments.join('/')}`;\n}\n"]}
|
package/dist/chunk-WJ4ORIXF.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import'./index.css';import {d}from'./chunk-LIV5RBWJ.js';import {c as c$1}from'./chunk-WDRCARCP.js';import {createContext,useContext}from'react';import h from'swr';import {useParams}from'react-router-dom';import {jsx}from'react/jsx-runtime';function n(){let{projectId:e}=useParams(),{projects:t}=d(),r=t.find(s=>s.projectId===e)??t[0],{data:a,isLoading:d$1}=h(c$1(e??"").currentUser,s=>fetch(s,{mode:"cors",credentials:"include"}).then(o=>o.json()).then(o=>({...o,spaces:o.spaces??[]})));return [d$1,{user:a,logout:async()=>{await fetch(c$1(e??"").logout(r?.basePath??"/"),{method:"POST",mode:"cors",credentials:"include"}),await fetch("/api/flexkit/logout",{method:"GET",credentials:"include"}),window.location.reload();}}]}var c=createContext([true,{user:null,logout:()=>Promise.resolve()}]);function L({children:e}){let[t,r]=n();return jsx(c.Provider,{value:[t,r],children:e})}function j(){return useContext(c)}export{L as a,j as b};//# sourceMappingURL=chunk-WJ4ORIXF.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-WJ4ORIXF.js.map
|