@baasix/baasix 0.1.62 → 0.1.64

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.
Files changed (119) hide show
  1. package/dist/app/404/index.html +1 -1
  2. package/dist/app/404.html +1 -1
  3. package/dist/app/_next/static/chunks/2667-7993936698bf75a9.js +1 -0
  4. package/dist/app/_next/static/chunks/3233-ae028c73c510ebea.js +1 -0
  5. package/dist/app/_next/static/chunks/4033-ea89dd457b87cead.js +1 -0
  6. package/dist/app/_next/static/chunks/799-d4372ad380b0dec6.js +1 -0
  7. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/all-activity/{page-a7e9f0b39624b489.js → page-8e1f084e807ff5ee.js} +1 -1
  8. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/email-log/{page-40f2b9ecf73e74b5.js → page-4e08df2865fe9d0f.js} +1 -1
  9. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/notifications/{page-21fcdd2f0b3549db.js → page-3a5070a5088835ae.js} +1 -1
  10. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/sessions/{page-82662735f1ec476a.js → page-edfa379cab0d3ccb.js} +1 -1
  11. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/workflow-executions/{page-4a781c95e5fb25f0.js → page-d007890f17b60862.js} +1 -1
  12. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/workflow-logs/{page-70bf8d31074dcba0.js → page-976e9829706ac8f2.js} +1 -1
  13. package/dist/app/_next/static/chunks/app/(authenticated)/dashboard/page-9f47da86e0599eae.js +1 -0
  14. package/dist/app/_next/static/chunks/app/(authenticated)/data-browser/{page-d5715b9743d8dba4.js → page-fbb7a4d4f2a4353d.js} +1 -1
  15. package/dist/app/_next/static/chunks/app/(authenticated)/file-manager/{page-c008de2bcf6811b9.js → page-cea6a2c1670d4ef5.js} +1 -1
  16. package/dist/app/_next/static/chunks/app/(authenticated)/layout-b7f18737e4c308a4.js +1 -0
  17. package/dist/app/_next/static/chunks/app/(authenticated)/settings/migrations/page-505c3389890685b9.js +1 -0
  18. package/dist/app/_next/static/chunks/app/(authenticated)/settings/permissions/{page-2d3043500adcdb12.js → page-ed80f4bd5d81df95.js} +1 -1
  19. package/dist/app/_next/static/chunks/app/(authenticated)/settings/project/{page-6a58f15efb013e17.js → page-310b8ce72d0516ea.js} +1 -1
  20. package/dist/app/_next/static/chunks/app/(authenticated)/settings/roles/{page-00cf3e4483986407.js → page-fd62dc19ac88dd64.js} +1 -1
  21. package/dist/app/_next/static/chunks/app/(authenticated)/settings/schema/page-3d91124704c2e853.js +1 -0
  22. package/dist/app/_next/static/chunks/app/(authenticated)/settings/schema-diff/page-cae8772a7ae93b9a.js +1 -0
  23. package/dist/app/_next/static/chunks/app/(authenticated)/settings/tasks/{page-fa3c401992a2fb8f.js → page-1479604bbfc53a83.js} +1 -1
  24. package/dist/app/_next/static/chunks/app/(authenticated)/settings/templates/edit/{page-4ce715d527c717a8.js → page-a611195661ce22bd.js} +1 -1
  25. package/dist/app/_next/static/chunks/app/(authenticated)/settings/templates/{page-aafbfd4f12875738.js → page-6787b62a4960304f.js} +1 -1
  26. package/dist/app/_next/static/chunks/app/(authenticated)/settings/tenants/{page-f34d97ce6f68183b.js → page-856d4af5fbd76c8e.js} +1 -1
  27. package/dist/app/_next/static/chunks/app/(authenticated)/users/invites/{page-20dd05a8745b6283.js → page-ed5493d55f6c1db8.js} +1 -1
  28. package/dist/app/_next/static/chunks/app/(authenticated)/users/list/{page-479a164304f4de3f.js → page-02e6ef533bdc3bbc.js} +1 -1
  29. package/dist/app/_next/static/chunks/app/(authenticated)/users/{page-909d7be1b8d9800c.js → page-faf321b61a6fdeef.js} +1 -1
  30. package/dist/app/_next/static/chunks/app/(authenticated)/users/preferences/{page-e3fbcc425e1710e5.js → page-2116015e962a2ecc.js} +1 -1
  31. package/dist/app/_next/static/chunks/app/(authenticated)/users/user-roles/{page-3f654c69d79269f7.js → page-7d1bcbbfc8f0694b.js} +1 -1
  32. package/dist/app/_next/static/chunks/app/(authenticated)/workflows/edit/{page-753cf274fd329860.js → page-45c465caaa5679bd.js} +1 -1
  33. package/dist/app/_next/static/chunks/app/(authenticated)/workflows/{page-33c1c69678122839.js → page-7f9cb24aaa798f42.js} +1 -1
  34. package/dist/app/_next/static/chunks/{main-324e91f5a430cddf.js → main-8ffa7219a08e42cf.js} +1 -1
  35. package/dist/app/_next/static/chunks/{webpack-b29732cfe967a5f5.js → webpack-7a100cbf9402e7ea.js} +1 -1
  36. package/dist/app/_next/static/css/45276c37be155f45.css +3 -0
  37. package/dist/app/activity-log/all-activity/index.html +1 -1
  38. package/dist/app/activity-log/all-activity/index.txt +3 -3
  39. package/dist/app/activity-log/email-log/index.html +1 -1
  40. package/dist/app/activity-log/email-log/index.txt +3 -3
  41. package/dist/app/activity-log/index.html +1 -1
  42. package/dist/app/activity-log/index.txt +2 -2
  43. package/dist/app/activity-log/notifications/index.html +1 -1
  44. package/dist/app/activity-log/notifications/index.txt +3 -3
  45. package/dist/app/activity-log/sessions/index.html +1 -1
  46. package/dist/app/activity-log/sessions/index.txt +3 -3
  47. package/dist/app/activity-log/workflow-executions/index.html +1 -1
  48. package/dist/app/activity-log/workflow-executions/index.txt +3 -3
  49. package/dist/app/activity-log/workflow-logs/index.html +1 -1
  50. package/dist/app/activity-log/workflow-logs/index.txt +3 -3
  51. package/dist/app/change-password/index.html +1 -1
  52. package/dist/app/change-password/index.txt +2 -2
  53. package/dist/app/dashboard/index.html +1 -1
  54. package/dist/app/dashboard/index.txt +3 -3
  55. package/dist/app/data-browser/index.html +1 -1
  56. package/dist/app/data-browser/index.txt +3 -3
  57. package/dist/app/file-manager/index.html +1 -1
  58. package/dist/app/file-manager/index.txt +3 -3
  59. package/dist/app/forgot-password/index.html +1 -1
  60. package/dist/app/forgot-password/index.txt +1 -1
  61. package/dist/app/index.html +1 -1
  62. package/dist/app/index.txt +1 -1
  63. package/dist/app/login/index.html +1 -1
  64. package/dist/app/login/index.txt +1 -1
  65. package/dist/app/register/index.html +1 -1
  66. package/dist/app/register/index.txt +1 -1
  67. package/dist/app/settings/migrations/index.html +1 -1
  68. package/dist/app/settings/migrations/index.txt +3 -3
  69. package/dist/app/settings/permissions/index.html +1 -1
  70. package/dist/app/settings/permissions/index.txt +3 -3
  71. package/dist/app/settings/project/index.html +1 -1
  72. package/dist/app/settings/project/index.txt +3 -3
  73. package/dist/app/settings/roles/index.html +1 -1
  74. package/dist/app/settings/roles/index.txt +3 -3
  75. package/dist/app/settings/schema/index.html +1 -1
  76. package/dist/app/settings/schema/index.txt +3 -3
  77. package/dist/app/settings/schema-diff/index.html +1 -0
  78. package/dist/app/settings/schema-diff/index.txt +14 -0
  79. package/dist/app/settings/tasks/index.html +1 -1
  80. package/dist/app/settings/tasks/index.txt +3 -3
  81. package/dist/app/settings/templates/edit/index.html +1 -1
  82. package/dist/app/settings/templates/edit/index.txt +3 -3
  83. package/dist/app/settings/templates/index.html +1 -1
  84. package/dist/app/settings/templates/index.txt +3 -3
  85. package/dist/app/settings/tenants/index.html +1 -1
  86. package/dist/app/settings/tenants/index.txt +3 -3
  87. package/dist/app/users/index.html +1 -1
  88. package/dist/app/users/index.txt +3 -3
  89. package/dist/app/users/invites/index.html +1 -1
  90. package/dist/app/users/invites/index.txt +3 -3
  91. package/dist/app/users/list/index.html +1 -1
  92. package/dist/app/users/list/index.txt +3 -3
  93. package/dist/app/users/preferences/index.html +1 -1
  94. package/dist/app/users/preferences/index.txt +3 -3
  95. package/dist/app/users/user-roles/index.html +1 -1
  96. package/dist/app/users/user-roles/index.txt +3 -3
  97. package/dist/app/workflows/detail/index.html +1 -1
  98. package/dist/app/workflows/detail/index.txt +2 -2
  99. package/dist/app/workflows/edit/index.html +1 -1
  100. package/dist/app/workflows/edit/index.txt +3 -3
  101. package/dist/app/workflows/execution/index.html +1 -1
  102. package/dist/app/workflows/execution/index.txt +2 -2
  103. package/dist/app/workflows/index.html +1 -1
  104. package/dist/app/workflows/index.txt +3 -3
  105. package/dist/routes/schema-diff.route.d.ts +7 -0
  106. package/dist/routes/schema-diff.route.d.ts.map +1 -0
  107. package/dist/routes/schema-diff.route.js +320 -0
  108. package/dist/routes/schema-diff.route.js.map +1 -0
  109. package/package.json +1 -1
  110. package/dist/app/_next/static/chunks/2033-8355304f13887db5.js +0 -1
  111. package/dist/app/_next/static/chunks/4952-1b97320cf61f3f21.js +0 -1
  112. package/dist/app/_next/static/chunks/6547-1aaab011e6089042.js +0 -1
  113. package/dist/app/_next/static/chunks/app/(authenticated)/dashboard/page-1ceeac9e72997a8a.js +0 -1
  114. package/dist/app/_next/static/chunks/app/(authenticated)/layout-2a4b221af5cbbade.js +0 -1
  115. package/dist/app/_next/static/chunks/app/(authenticated)/settings/migrations/page-6681c14dd478cc9a.js +0 -1
  116. package/dist/app/_next/static/chunks/app/(authenticated)/settings/schema/page-e7f836d3a7f7c5d0.js +0 -1
  117. package/dist/app/_next/static/css/17a2e01c4184b106.css +0 -3
  118. /package/dist/app/_next/static/{ORfvBD2VaKIB_8_7O9AgQ → 0OAEQ9OeMefOQpSdB_tKL}/_buildManifest.js +0 -0
  119. /package/dist/app/_next/static/{ORfvBD2VaKIB_8_7O9AgQ → 0OAEQ9OeMefOQpSdB_tKL}/_ssgManifest.js +0 -0
@@ -0,0 +1,320 @@
1
+ import { getSqlClient, getDatabase } from "../utils/db.js";
2
+ import { schemaManager } from "../utils/schemaManager.js";
3
+ import { adminOnly } from "../utils/auth.js";
4
+ import { APIError } from "../utils/errorHandler.js";
5
+ /**
6
+ * Determines which schema fields should produce actual database columns.
7
+ * Relation-only fields (no explicit type) do NOT produce columns,
8
+ * but BelongsTo relations produce a foreignKey column.
9
+ */
10
+ function getExpectedColumns(schema) {
11
+ const columns = new Map();
12
+ for (const [fieldName, fieldSchema] of Object.entries(schema.fields)) {
13
+ const fs = fieldSchema;
14
+ // BelongsTo relations create a foreign key column
15
+ if (fs.relType === "BelongsTo") {
16
+ const foreignKey = fs.foreignKey || `${fieldName}_Id`;
17
+ if (foreignKey === fieldName && fs.type) {
18
+ // Field itself is the FK column with explicit type
19
+ columns.set(fieldName, { type: fs.type, fromField: fieldName });
20
+ }
21
+ else if (foreignKey !== fieldName) {
22
+ // Separate FK column
23
+ columns.set(foreignKey, { type: fs.type || "UUID", fromField: fieldName });
24
+ }
25
+ // If foreignKey === fieldName but no explicit type, handled by FK logic
26
+ if (foreignKey === fieldName && !fs.type) {
27
+ columns.set(foreignKey, { type: "UUID", fromField: fieldName });
28
+ }
29
+ continue;
30
+ }
31
+ // Skip relation-only fields (no explicit type)
32
+ if (fs.relType && !fs.type)
33
+ continue;
34
+ columns.set(fieldName, { type: fs.type || "String", fromField: fieldName });
35
+ }
36
+ // Implicit columns from schema flags
37
+ if (schema.timestamps !== false) {
38
+ if (!columns.has("createdAt"))
39
+ columns.set("createdAt", { type: "DateTime", fromField: "[timestamps]" });
40
+ if (!columns.has("updatedAt"))
41
+ columns.set("updatedAt", { type: "DateTime", fromField: "[timestamps]" });
42
+ }
43
+ if (schema.paranoid) {
44
+ if (!columns.has("deletedAt"))
45
+ columns.set("deletedAt", { type: "DateTime", fromField: "[paranoid]" });
46
+ }
47
+ if (schema.sortEnabled) {
48
+ if (!columns.has("sort"))
49
+ columns.set("sort", { type: "Integer", fromField: "[sortEnabled]" });
50
+ }
51
+ if (schema.usertrack) {
52
+ if (!columns.has("userCreated"))
53
+ columns.set("userCreated", { type: "UUID", fromField: "[usertrack]" });
54
+ if (!columns.has("userUpdated"))
55
+ columns.set("userUpdated", { type: "UUID", fromField: "[usertrack]" });
56
+ }
57
+ return columns;
58
+ }
59
+ const registerEndpoint = (app, context) => {
60
+ /**
61
+ * GET /utils/schema-diff
62
+ * Compare schema definitions with actual database tables/columns.
63
+ * Admin-only endpoint.
64
+ */
65
+ app.get("/utils/schema-diff", adminOnly, async (req, res, next) => {
66
+ try {
67
+ const sql = getSqlClient();
68
+ // 1. Get all tables in the public schema from the actual database
69
+ // Tables to exclude from comparison (e.g. PostGIS internal tables)
70
+ const excludedTables = ['spatial_ref_sys'];
71
+ const dbTables = await sql `
72
+ SELECT table_name
73
+ FROM information_schema.tables
74
+ WHERE table_schema = 'public'
75
+ AND table_type = 'BASE TABLE'
76
+ AND table_name != ALL(${excludedTables})
77
+ ORDER BY table_name
78
+ `;
79
+ const dbTableNames = new Set(dbTables.map((t) => t.table_name));
80
+ // 2. Get all columns per table from the database
81
+ const dbColumns = await sql `
82
+ SELECT table_name, column_name, data_type, is_nullable, column_default,
83
+ character_maximum_length, numeric_precision, numeric_scale
84
+ FROM information_schema.columns
85
+ WHERE table_schema = 'public'
86
+ AND table_name != ALL(${excludedTables})
87
+ ORDER BY table_name, ordinal_position
88
+ `;
89
+ const dbColumnsByTable = new Map();
90
+ for (const col of dbColumns) {
91
+ if (!dbColumnsByTable.has(col.table_name)) {
92
+ dbColumnsByTable.set(col.table_name, []);
93
+ }
94
+ dbColumnsByTable.get(col.table_name).push(col);
95
+ }
96
+ // 3. Get all schema definitions from baasix
97
+ const allSchemaDefinitions = new Map();
98
+ // Access internal schemaDefinitions via the public API
99
+ const schemasMap = schemaManager.getAllSchemas();
100
+ for (const [collectionName] of schemasMap) {
101
+ const schemaDef = await schemaManager.getSchemaDefinition(collectionName);
102
+ if (schemaDef) {
103
+ allSchemaDefinitions.set(collectionName, schemaDef);
104
+ }
105
+ }
106
+ const schemaCollectionNames = new Set(allSchemaDefinitions.keys());
107
+ // 4. Compute diffs
108
+ // Tables in schema but not in database
109
+ const tablesOnlyInSchema = [];
110
+ for (const name of schemaCollectionNames) {
111
+ if (!dbTableNames.has(name)) {
112
+ tablesOnlyInSchema.push(name);
113
+ }
114
+ }
115
+ // Tables in database but not in schema
116
+ const tablesOnlyInDb = [];
117
+ for (const name of dbTableNames) {
118
+ if (!schemaCollectionNames.has(name)) {
119
+ tablesOnlyInDb.push(name);
120
+ }
121
+ }
122
+ // Per-table field diffs (only for tables that exist in both)
123
+ const fieldDiffs = [];
124
+ for (const [collectionName, schemaDef] of allSchemaDefinitions) {
125
+ if (!dbTableNames.has(collectionName))
126
+ continue; // table doesn't exist in DB
127
+ const expectedColumns = getExpectedColumns(schemaDef);
128
+ const actualColumns = dbColumnsByTable.get(collectionName) || [];
129
+ const actualColumnNames = new Set(actualColumns.map((c) => c.column_name));
130
+ const fieldsOnlyInSchema = [];
131
+ const fieldsOnlyInDb = [];
132
+ // Fields in schema but not in database
133
+ for (const [colName, meta] of expectedColumns) {
134
+ if (!actualColumnNames.has(colName)) {
135
+ fieldsOnlyInSchema.push({ column: colName, type: meta.type, fromField: meta.fromField });
136
+ }
137
+ }
138
+ // Fields in database but not in schema
139
+ for (const col of actualColumns) {
140
+ if (!expectedColumns.has(col.column_name)) {
141
+ fieldsOnlyInDb.push({
142
+ column: col.column_name,
143
+ dataType: col.data_type,
144
+ isNullable: col.is_nullable,
145
+ columnDefault: col.column_default,
146
+ });
147
+ }
148
+ }
149
+ if (fieldsOnlyInSchema.length > 0 || fieldsOnlyInDb.length > 0) {
150
+ fieldDiffs.push({
151
+ collection: collectionName,
152
+ fieldsOnlyInSchema,
153
+ fieldsOnlyInDb,
154
+ });
155
+ }
156
+ }
157
+ // 5. Summary
158
+ const summary = {
159
+ totalSchemaCollections: schemaCollectionNames.size,
160
+ totalDbTables: dbTableNames.size,
161
+ tablesOnlyInSchemaCount: tablesOnlyInSchema.length,
162
+ tablesOnlyInDbCount: tablesOnlyInDb.length,
163
+ collectionsWithFieldDiffs: fieldDiffs.length,
164
+ };
165
+ return res.status(200).json({
166
+ data: {
167
+ summary,
168
+ tablesOnlyInSchema,
169
+ tablesOnlyInDb,
170
+ fieldDiffs,
171
+ },
172
+ });
173
+ }
174
+ catch (error) {
175
+ next(error);
176
+ }
177
+ });
178
+ /**
179
+ * DELETE /utils/schema-diff/table/schema/:collection
180
+ * Remove a collection from schema definitions (keeps database table).
181
+ */
182
+ app.delete("/utils/schema-diff/table/schema/:collection", adminOnly, async (req, res, next) => {
183
+ try {
184
+ const { collection } = req.params;
185
+ // Verify collection exists in schema
186
+ const schemaDef = await schemaManager.getSchemaDefinition(collection);
187
+ if (!schemaDef) {
188
+ throw new APIError(`Collection '${collection}' not found in schema definitions`, 404);
189
+ }
190
+ // Prevent deleting system schemas
191
+ if (collection.startsWith("baasix_")) {
192
+ throw new APIError(`Cannot remove system schema '${collection}'`, 400);
193
+ }
194
+ await schemaManager.removeSchemaDefinition(collection);
195
+ return res.status(200).json({
196
+ data: { message: `Schema definition '${collection}' removed successfully` },
197
+ });
198
+ }
199
+ catch (error) {
200
+ next(error);
201
+ }
202
+ });
203
+ /**
204
+ * DELETE /utils/schema-diff/table/db/:table
205
+ * Drop a table from the database (keeps schema definition).
206
+ */
207
+ app.delete("/utils/schema-diff/table/db/:table", adminOnly, async (req, res, next) => {
208
+ try {
209
+ const { table } = req.params;
210
+ const sql = getSqlClient();
211
+ // Validate table name: only allow alphanumeric and underscores
212
+ if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(table)) {
213
+ throw new APIError("Invalid table name", 400);
214
+ }
215
+ // Verify table exists
216
+ const exists = await sql `
217
+ SELECT EXISTS (
218
+ SELECT FROM information_schema.tables
219
+ WHERE table_schema = 'public' AND table_name = ${table}
220
+ )
221
+ `;
222
+ if (!exists[0].exists) {
223
+ throw new APIError(`Table '${table}' not found in database`, 404);
224
+ }
225
+ // Prevent dropping system tables
226
+ if (table.startsWith("baasix_")) {
227
+ throw new APIError(`Cannot drop system table '${table}'`, 400);
228
+ }
229
+ await sql.unsafe(`DROP TABLE IF EXISTS "${table}" CASCADE`);
230
+ return res.status(200).json({
231
+ data: { message: `Table '${table}' dropped from database successfully` },
232
+ });
233
+ }
234
+ catch (error) {
235
+ next(error);
236
+ }
237
+ });
238
+ /**
239
+ * DELETE /utils/schema-diff/field/schema/:collection/:field
240
+ * Remove a field from a schema definition (keeps database column).
241
+ */
242
+ app.delete("/utils/schema-diff/field/schema/:collection/:field", adminOnly, async (req, res, next) => {
243
+ try {
244
+ const { collection, field } = req.params;
245
+ const schemaDef = await schemaManager.getSchemaDefinition(collection);
246
+ if (!schemaDef) {
247
+ throw new APIError(`Collection '${collection}' not found in schema definitions`, 404);
248
+ }
249
+ if (!schemaDef.fields || !schemaDef.fields[field]) {
250
+ throw new APIError(`Field '${field}' not found in schema for '${collection}'`, 404);
251
+ }
252
+ // Remove the field from schema
253
+ const updatedSchema = { ...schemaDef };
254
+ const updatedFields = { ...updatedSchema.fields };
255
+ delete updatedFields[field];
256
+ updatedSchema.fields = updatedFields;
257
+ // Persist updated schema
258
+ const db = getDatabase();
259
+ const { pgTable, text, jsonb, timestamp } = await import("drizzle-orm/pg-core");
260
+ const { eq } = await import("drizzle-orm");
261
+ const baasixSchemaDefinition = pgTable("baasix_SchemaDefinition", {
262
+ collectionName: text("collectionName").primaryKey().notNull(),
263
+ schema: jsonb("schema").notNull(),
264
+ createdAt: timestamp("createdAt", { withTimezone: true }).defaultNow(),
265
+ updatedAt: timestamp("updatedAt", { withTimezone: true }).defaultNow(),
266
+ });
267
+ await db
268
+ .update(baasixSchemaDefinition)
269
+ .set({ schema: updatedSchema, updatedAt: new Date() })
270
+ .where(eq(baasixSchemaDefinition.collectionName, collection));
271
+ // Update in-memory schema definition
272
+ // Re-initialize the model so in-memory state matches
273
+ await schemaManager.updateModel(collection, updatedSchema);
274
+ return res.status(200).json({
275
+ data: { message: `Field '${field}' removed from schema definition of '${collection}'` },
276
+ });
277
+ }
278
+ catch (error) {
279
+ next(error);
280
+ }
281
+ });
282
+ /**
283
+ * DELETE /utils/schema-diff/field/db/:collection/:column
284
+ * Drop a column from a database table (keeps schema field).
285
+ */
286
+ app.delete("/utils/schema-diff/field/db/:collection/:column", adminOnly, async (req, res, next) => {
287
+ try {
288
+ const { collection, column } = req.params;
289
+ const sql = getSqlClient();
290
+ // Validate names
291
+ if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(collection) || !/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(column)) {
292
+ throw new APIError("Invalid table or column name", 400);
293
+ }
294
+ // Verify column exists
295
+ const colExists = await sql `
296
+ SELECT EXISTS (
297
+ SELECT FROM information_schema.columns
298
+ WHERE table_schema = 'public'
299
+ AND table_name = ${collection}
300
+ AND column_name = ${column}
301
+ )
302
+ `;
303
+ if (!colExists[0].exists) {
304
+ throw new APIError(`Column '${column}' not found in table '${collection}'`, 404);
305
+ }
306
+ await sql.unsafe(`ALTER TABLE "${collection}" DROP COLUMN IF EXISTS "${column}" CASCADE`);
307
+ return res.status(200).json({
308
+ data: { message: `Column '${column}' dropped from table '${collection}'` },
309
+ });
310
+ }
311
+ catch (error) {
312
+ next(error);
313
+ }
314
+ });
315
+ };
316
+ export default {
317
+ id: "schema-diff",
318
+ handler: registerEndpoint,
319
+ };
320
+ //# sourceMappingURL=schema-diff.route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-diff.route.js","sourceRoot":"","sources":["../../baasix/routes/schema-diff.route.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baasix/baasix",
3
- "version": "0.1.62",
3
+ "version": "0.1.64",
4
4
  "description": "Baasix - Backend-as-a-Service with 40+ tools for schema management, CRUD operations with 50+ filter operators, relationships, permissions, files, workflows, and more",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2033],{79622:function(e,t,a){a.d(t,{OF:function(){return W},o_:function(){return F},Zl:function(){return eK},XG:function(){return eo},mq:function(){return Z},sU:function(){return em}});var s=a(57437),r=a(2265),l=a(40279),n=a(71096),i=a.n(n),o=a(45721),c=a.n(o),d=a(13257),u=a.n(d);i().extend(c()),i().extend(u());let m=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(null==e)return"";if(Array.isArray(e)){if("count"===t)return e.length.toString();if("list"===t){let t=a.separator||", ",s=a.limit,r=(s?e.slice(0,s):e).map(e=>"object"==typeof e&&null!==e?e.name||e.title||e.label||e.id||JSON.stringify(e):String(e)).join(t),l=s&&e.length>s?e.length-s:0;return l>0?"".concat(r," (+").concat(l," more)"):r}return"".concat(e.length," item").concat(1!==e.length?"s":"")}switch(t){case"raw":case"badge":case"color":case"image":case"file":default:return String(e);case"email":case"url":case"phone":return e;case"truncate":let s=String(e),r=a.maxLength||50;return s.length>r?"".concat(s.substring(0,r),"..."):s;case"uppercase":return String(e).toUpperCase();case"lowercase":return String(e).toLowerCase();case"capitalize":return String(e).charAt(0).toUpperCase()+String(e).slice(1).toLowerCase();case"currency":let l=a.currency||"USD";return new Intl.NumberFormat("en-US",{style:"currency",currency:l,minimumFractionDigits:a.decimals||2,maximumFractionDigits:a.decimals||2}).format(Number(e));case"percentage":return"".concat((100*Number(e)).toFixed(a.decimals||1),"%");case"decimal":return Number(e).toFixed(a.decimals||2);case"integer":return Math.round(Number(e)).toString();case"filesize":return h(Number(e));case"date":return i()(e).format(a.format||"YYYY-MM-DD");case"datetime":let n=a.format||(a.use24Hour?"YYYY-MM-DD HH:mm":"YYYY-MM-DD h:mm A");return i()(e).format(a.showSeconds?n+":ss":n);case"time":let o=a.use24Hour?"HH:mm":"h:mm A";return i()(e).format(a.showSeconds?o+":ss":o);case"relative":return i()(e).fromNow();case"age":let c=i()().diff(i()(e),"years");return"".concat(c," year").concat(1!==c?"s":"");case"duration":let d=i().duration(Number(e),"milliseconds");if(d.asHours()>=1)return"".concat(Math.floor(d.asHours()),"h ").concat(d.minutes(),"m");if(d.asMinutes()>=1)return"".concat(Math.floor(d.asMinutes()),"m ").concat(d.seconds(),"s");return"".concat(d.seconds(),"s");case"iso":return i()(e).toISOString();case"timestamp":return i()(e).unix().toString();case"boolean":case"check":return e?"✓":"✗";case"yesno":return e?a.trueText||"Yes":a.falseText||"No";case"truefalse":return e?a.trueText||"True":a.falseText||"False";case"list":if(!Array.isArray(e))return String(e);let u=a.separator||", ",m=a.limit,x=(m?e.slice(0,m):e).join(u);return m&&e.length>m?"".concat(x,"... (+").concat(e.length-m," more)"):x;case"count":return Array.isArray(e)?e.length.toString():"0";case"json":return JSON.stringify(e,null,2)}},h=e=>{if(0===e)return"0 Bytes";let t=Math.floor(Math.log(e)/Math.log(1024));return"".concat(parseFloat((e/Math.pow(1024,t)).toFixed(2))," ").concat(["Bytes","KB","MB","GB","TB"][t])};var x=e=>{let{value:t,format:a,options:r}=e,l=m(t,a,r);switch(a){case"email":return(0,s.jsx)("a",{href:"mailto:".concat(t),className:"text-primary hover:underline",children:l});case"url":return(0,s.jsx)("a",{href:t,target:(null==r?void 0:r.target)||"_blank",rel:(null==r?void 0:r.rel)||"noopener noreferrer",className:"text-primary hover:underline",children:l});case"phone":return(0,s.jsx)("a",{href:"tel:".concat(t),className:"text-primary hover:underline",children:l});case"color":return(0,s.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,s.jsx)("span",{className:"h-4 w-4 rounded border border-border",style:{backgroundColor:t}}),(0,s.jsx)("span",{children:t})]});case"check":return(0,s.jsx)("span",{className:t?"text-green-600":"text-red-600",children:l});case"badge":return(0,s.jsx)("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-2 py-0.5 text-xs font-medium text-primary",children:l});default:return(0,s.jsx)("span",{children:l})}};let p=r.memo(e=>{let{value:t,onChange:a,placeholder:r,disabled:n,readOnly:i,maxLength:o,showCount:c,size:d,displayFormat:u,displayOptions:m}=e;return i?u&&"raw"!==u?(0,s.jsx)(x,{value:t,format:u,options:m}):(0,s.jsx)("span",{className:"text-sm",children:t||""}):(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(l.I,{value:t||"",onChange:e=>null==a?void 0:a(e.target.value),placeholder:r,disabled:n,maxLength:o,className:d?({small:"h-8 text-sm",middle:"h-10",large:"h-12 text-lg"})[d]:""}),c&&o&&(0,s.jsxs)("span",{className:"absolute right-2 top-1/2 -translate-y-1/2 text-xs text-muted-foreground",children:[(null==t?void 0:t.length)||0,"/",o]})]})});p.displayName="TextField";let f=r.memo(e=>{let{value:t,onChange:a,placeholder:r,disabled:n,readOnly:i,size:o,min:c,max:d,step:u,precision:m}=e;if(i){let e=(null==t?void 0:t.toString())||"";return void 0!==m&&null!=t&&(e=t.toFixed(m)),(0,s.jsx)("span",{className:"text-sm",children:e})}return(0,s.jsx)(l.I,{type:"number",value:null!=t?t:"",onChange:e=>{let t=e.target.value;if(""===t)null==a||a(null);else{let e=parseFloat(t);isNaN(e)||(void 0!==m?null==a||a(parseFloat(e.toFixed(m))):null==a||a(e))}},placeholder:r,disabled:n,min:c,max:d,step:u,className:o?({small:"h-8 text-sm",middle:"h-10",large:"h-12 text-lg"})[o]:""})});f.displayName="NumberField";var g=a(94589),v=a(69174),y=e=>{let{value:t,onChange:a,disabled:r,size:l,readOnly:n}=e;return n?(0,s.jsx)(v.C,{variant:t?"default":"destructive",children:t?"Yes":"No"}):(0,s.jsx)(g.r,{checked:t||!1,onCheckedChange:a,disabled:r,className:"small"===l?"h-4 w-7":""})},j=a(12381),N=a(46291),b=a(12749),w=a(31047),C=a(60936),k=a(27107),S=a(93448),A=e=>{let{value:t,onChange:a,placeholder:r,disabled:l,readOnly:n,size:i,displayFormat:o,displayOptions:c}=e,d=t?"string"==typeof t?(0,C.D)(t):t:void 0;return n?d&&o&&"raw"!==o?(0,s.jsx)(x,{value:d,format:o,options:c}):(0,s.jsx)("span",{className:"text-sm",children:d?(0,k.WU)(d,"PPP"):""}):(0,s.jsxs)(b.J2,{children:[(0,s.jsx)(b.xo,{asChild:!0,children:(0,s.jsxs)(j.z,{variant:"outline",disabled:l,className:(0,S.cn)("w-full justify-start text-left font-normal",!d&&"text-muted-foreground",i?({small:"h-8 text-sm",middle:"h-10",large:"h-12 text-lg"})[i]:""),children:[(0,s.jsx)(w.Z,{className:"mr-2 h-4 w-4"}),d?(0,k.WU)(d,"PPP"):r||"Pick a date"]})}),(0,s.jsx)(b.yk,{className:"w-auto p-0",align:"start",children:(0,s.jsx)(N.f,{mode:"single",selected:d,onSelect:e=>null==a?void 0:a(e?e.toISOString():null),initialFocus:!0})})]})},O=e=>{let{value:t,onChange:a,placeholder:n,disabled:i,readOnly:o,size:c,displayFormat:d,displayOptions:u}=e,m=t?"string"==typeof t?(0,C.D)(t):t:void 0,[h,p]=r.useState(m?(0,k.WU)(m,"HH:mm"):"");if(r.useEffect(()=>{m&&p((0,k.WU)(m,"HH:mm"))},[t]),o)return m&&d&&"raw"!==d?(0,s.jsx)(x,{value:m,format:d,options:u}):(0,s.jsx)("span",{className:"text-sm",children:m?(0,k.WU)(m,"PPP HH:mm"):""});let f={small:"h-8 text-sm",middle:"h-10",large:"h-12 text-lg"};return(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsxs)(b.J2,{children:[(0,s.jsx)(b.xo,{asChild:!0,children:(0,s.jsxs)(j.z,{variant:"outline",disabled:i,className:(0,S.cn)("flex-1 justify-start text-left font-normal",!m&&"text-muted-foreground",c?f[c]:""),children:[(0,s.jsx)(w.Z,{className:"mr-2 h-4 w-4"}),m?(0,k.WU)(m,"PPP"):n||"Pick a date"]})}),(0,s.jsx)(b.yk,{className:"w-auto p-0",align:"start",children:(0,s.jsx)(N.f,{mode:"single",selected:m,onSelect:e=>{if(e){let[t,s]=h.split(":").map(Number);e.setHours(t||0,s||0,0,0),null==a||a(e.toISOString())}else null==a||a(null)},initialFocus:!0})})]}),(0,s.jsx)("div",{className:"relative",children:(0,s.jsx)(l.I,{type:"time",value:h,onChange:e=>{let t=e.target.value;if(p(t),m&&t){let[e,s]=t.split(":").map(Number),r=new Date(m);r.setHours(e,s,0,0),null==a||a(r.toISOString())}},disabled:i,className:(0,S.cn)("w-32",c?f[c]:"")})})]})},z=e=>{let{value:t,onChange:a,placeholder:r,disabled:n,readOnly:i,size:o}=e;return i?(0,s.jsx)("span",{className:"text-sm",children:t||""}):(0,s.jsx)(l.I,{type:"time",value:t||"",onChange:e=>null==a?void 0:a(e.target.value||null),placeholder:r,disabled:n,className:(0,S.cn)(o?({small:"h-8 text-sm",middle:"h-10",large:"h-12 text-lg"})[o]:"")})},I=a(23675),T=a(47416),_=a(74440),L=a(74291),Z=e=>{let{value:t,onChange:a,placeholder:l,disabled:n,readOnly:i}=e,[o,c]=(0,r.useState)(""),[d,u]=(0,r.useState)(null),[m,h]=(0,r.useState)(!1);(0,r.useEffect)(()=>{try{c(t?JSON.stringify(t,null,2):""),u(null)}catch(e){c(String(t))}},[t]);let x=e=>{if(c(e),!e.trim()){null==a||a(null),u(null);return}try{let t=JSON.parse(e);null==a||a(t),u(null)}catch(e){u("Invalid JSON")}};if(i)return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"relative group",children:[(0,s.jsx)("pre",{className:"rounded bg-muted p-2 pr-7 text-xs overflow-auto max-h-32 max-w-[400px] whitespace-pre-wrap break-all",children:o||"-"}),o&&(0,s.jsx)(j.z,{type:"button",variant:"ghost",size:"sm",className:"absolute right-1 top-1 h-6 w-6 p-0 opacity-0 group-hover:opacity-100 transition-opacity",onClick:()=>h(!0),children:(0,s.jsx)(T.Z,{className:"h-3 w-3"})})]}),(0,s.jsx)(L.Vq,{open:m,onOpenChange:h,children:(0,s.jsxs)(L.cZ,{className:"max-w-3xl",children:[(0,s.jsx)(L.fK,{children:(0,s.jsx)(L.$N,{children:"View JSON"})}),(0,s.jsx)("pre",{className:"rounded bg-muted p-4 text-sm font-mono overflow-auto max-h-[60vh] whitespace-pre-wrap",children:o||"-"})]})})]});let p=(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(I.g,{value:o,onChange:e=>x(e.target.value),placeholder:l||'{"key": "value"}',disabled:n,className:"min-h-[120px] font-mono text-sm ".concat(d?"border-destructive":"")}),d&&(0,s.jsx)("p",{className:"mt-1 text-xs text-destructive",children:d}),(0,s.jsx)(j.z,{type:"button",variant:"ghost",size:"sm",className:"absolute right-1 top-1 h-6 w-6 p-0",onClick:()=>h(!m),children:m?(0,s.jsx)(_.Z,{className:"h-3 w-3"}):(0,s.jsx)(T.Z,{className:"h-3 w-3"})})]});return m?(0,s.jsx)(L.Vq,{open:m,onOpenChange:h,children:(0,s.jsxs)(L.cZ,{className:"max-w-3xl",children:[(0,s.jsx)(L.fK,{children:(0,s.jsx)(L.$N,{children:"Edit JSON"})}),(0,s.jsx)(I.g,{value:o,onChange:e=>x(e.target.value),placeholder:l||'{"key": "value"}',disabled:n,className:"min-h-[400px] font-mono text-sm ".concat(d?"border-destructive":"")}),d&&(0,s.jsx)("p",{className:"text-xs text-destructive",children:d})]})}):p},R=e=>{let{value:t,onChange:a,placeholder:r,disabled:l,readOnly:n,autoSize:i}=e;if(n)return(0,s.jsx)("div",{className:"whitespace-pre-wrap text-sm rounded bg-muted p-2",children:t||""});let o=(null==i?void 0:i.minRows)?24*i.minRows:72,c=(null==i?void 0:i.maxRows)?24*i.maxRows:200;return(0,s.jsx)(I.g,{value:t||"",onChange:e=>null==a?void 0:a(e.target.value),placeholder:r,disabled:l,style:{minHeight:o,maxHeight:c},className:"resize-y"})},E=a(24156),M=a(99397),P=a(30401),D=a(2596),F=e=>{let{value:t,onChange:a,options:l=[],disabled:n,readOnly:i,size:o,placeholder:c,allowCustom:d=!0,allowNull:u=!1}=e,[m,h]=(0,r.useState)(!1),[x,p]=(0,r.useState)("");if((0,r.useEffect)(()=>{m||p("")},[m]),i)return t?(0,s.jsx)(v.C,{variant:"secondary",children:t}):(0,s.jsx)("span",{className:"text-muted-foreground",children:"-"});let f=e=>{null==a||a(e),h(!1),p("")},g=()=>{x.trim()&&(null==a||a(x.trim()),h(!1),p(""))},y=Array.isArray(l)?l:[],N=x.trim()&&!y.some(e=>e.toLowerCase()===x.trim().toLowerCase()),w=x.trim()?y.filter(e=>e.toLowerCase().includes(x.toLowerCase())):y;return(0,s.jsxs)(b.J2,{open:m,onOpenChange:h,children:[(0,s.jsx)(b.xo,{asChild:!0,children:(0,s.jsxs)(j.z,{variant:"outline",role:"combobox","aria-expanded":m,disabled:n,className:(0,S.cn)("w-full justify-between font-normal","small"===o?"h-8 text-sm":"h-10",!t&&"text-muted-foreground"),children:[t||c||"Select an option...",(0,s.jsx)(E.Z,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,s.jsx)(b.yk,{className:"w-[--radix-popover-trigger-width] p-0",align:"start",children:(0,s.jsxs)(D.mY,{shouldFilter:!1,children:[(0,s.jsx)(D.sZ,{placeholder:"Search or type custom value...",value:x,onValueChange:p}),(0,s.jsxs)(D.e8,{children:[(0,s.jsx)(D.rb,{children:d&&x.trim()?(0,s.jsxs)("button",{onClick:g,className:"flex w-full items-center gap-2 px-2 py-1.5 text-sm hover:bg-accent rounded cursor-pointer",children:[(0,s.jsx)(M.Z,{className:"h-4 w-4"}),'Add "',x.trim(),'"']}):"No options found."}),(0,s.jsxs)(D.fu,{children:[u&&(0,s.jsxs)(D.di,{value:"",onSelect:()=>f(""),children:[(0,s.jsx)(P.Z,{className:(0,S.cn)("mr-2 h-4 w-4",""!==t&&t?"opacity-0":"opacity-100")}),(0,s.jsx)("span",{className:"text-muted-foreground italic",children:"None"})]}),w.map(e=>(0,s.jsxs)(D.di,{value:e,onSelect:()=>f(e),children:[(0,s.jsx)(P.Z,{className:(0,S.cn)("mr-2 h-4 w-4",t===e?"opacity-100":"opacity-0")}),e]},e))]}),d&&N&&w.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(D.zz,{}),(0,s.jsx)(D.fu,{children:(0,s.jsxs)(D.di,{value:"add-custom-".concat(x),onSelect:g,children:[(0,s.jsx)(M.Z,{className:"mr-2 h-4 w-4"}),'Add "',x.trim(),'"']})})]})]})]})})]})},U=a(69658),Y=a(96362),H=e=>{let{value:t,onChange:a,disabled:r,readOnly:l}=e,n=t?"string"==typeof t?t:t.url:null,i=(()=>{if(!t)return null;if("string"==typeof t){let e=t.split("/");return e[e.length-1]}return t.name||"File"})();return l?n?(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(U.Z,{className:"h-4 w-4 text-muted-foreground"}),(0,s.jsx)("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-primary hover:underline truncate max-w-[200px]",children:i}),(0,s.jsx)(j.z,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>window.open(n,"_blank"),children:(0,s.jsx)(Y.Z,{className:"h-3 w-3"})})]}):(0,s.jsx)("span",{className:"text-muted-foreground",children:"-"}):(0,s.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-input p-2",children:[(0,s.jsx)(U.Z,{className:"h-4 w-4 text-muted-foreground"}),(0,s.jsx)("span",{className:"text-sm text-muted-foreground",children:i||"No file selected"}),(0,s.jsx)(j.z,{type:"button",variant:"outline",size:"sm",disabled:r,children:"Upload"})]})},J=a(53113),B=e=>{let{value:t,onChange:a,disabled:r,readOnly:l}=e,n=t?"string"==typeof t?t:t.url:null;return l?n?(0,s.jsx)("div",{className:"relative inline-block",children:(0,s.jsx)("img",{src:n,alt:"Preview",className:"h-12 w-12 rounded object-cover border border-border",onError:e=>{e.target.src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Crect fill='%23eee' width='48' height='48'/%3E%3Ctext x='50%25' y='50%25' dominant-baseline='middle' text-anchor='middle' fill='%23999' font-size='12'%3E?%3C/text%3E%3C/svg%3E"}})}):(0,s.jsx)("span",{className:"text-muted-foreground",children:"-"}):(0,s.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-input p-2",children:[n?(0,s.jsx)("img",{src:n,alt:"Preview",className:"h-10 w-10 rounded object-cover"}):(0,s.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded bg-muted",children:(0,s.jsx)(J.Z,{className:"h-5 w-5 text-muted-foreground"})}),(0,s.jsx)("span",{className:"flex-1 text-sm text-muted-foreground truncate",children:n?"Image uploaded":"No image selected"}),(0,s.jsx)(j.z,{type:"button",variant:"outline",size:"sm",disabled:r,children:"Upload"})]})},V=e=>{let{value:t,onChange:a,disabled:r,readOnly:n}=e;return n?(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("div",{className:"h-6 w-6 rounded border border-border",style:{backgroundColor:t||"transparent"}}),(0,s.jsx)("span",{className:"text-sm font-mono",children:t||"-"})]}):(0,s.jsxs)(b.J2,{children:[(0,s.jsx)(b.xo,{asChild:!0,children:(0,s.jsxs)(j.z,{variant:"outline",className:"w-full justify-start gap-2",disabled:r,children:[(0,s.jsx)("div",{className:"h-4 w-4 rounded border border-border",style:{backgroundColor:t||"transparent"}}),(0,s.jsx)("span",{className:"font-mono text-sm",children:t||"Select color"})]})}),(0,s.jsx)(b.yk,{className:"w-auto p-3",children:(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(l.I,{type:"color",value:t||"#000000",onChange:e=>null==a?void 0:a(e.target.value),className:"h-10 w-full cursor-pointer"}),(0,s.jsx)(l.I,{value:t||"",onChange:e=>null==a?void 0:a(e.target.value),placeholder:"#000000",className:"font-mono"})]})})]})},G=e=>{let{value:t,onChange:a,disabled:r,readOnly:n,size:i}=e;return n?(0,s.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:t||"-"}):(0,s.jsx)(l.I,{value:t||"",onChange:e=>null==a?void 0:a(e.target.value),disabled:r,className:(0,S.cn)("font-mono",i?({small:"h-8 text-sm",middle:"h-10",large:"h-12 text-lg"})[i]:""),placeholder:"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"})},q=a(32489),W=e=>{let{value:t=[],onChange:a,itemType:n="string",disabled:i,readOnly:o,size:c,placeholder:d}=e,[u,m]=(0,r.useState)(""),h=e=>{if(null==e)return"";if("date"===n||"datetime"===n){let t=new Date(e);return isNaN(t.getTime())?String(e):"datetime"===n?t.toLocaleString():t.toLocaleDateString()}return"boolean"===n?e?"true":"false":String(e)};if(o){let e=Array.isArray(t)?t:[];return(0,s.jsxs)("div",{className:"flex flex-wrap gap-1 max-w-[250px] overflow-hidden",children:[e.length>0?e.slice(0,5).map((e,t)=>(0,s.jsx)(v.C,{variant:"secondary",className:"truncate max-w-[120px]",children:h(e)},t)):(0,s.jsx)("span",{className:"text-muted-foreground",children:"-"}),e.length>5&&(0,s.jsxs)(v.C,{variant:"outline",children:["+",e.length-5]})]})}let x=()=>{let e;if("date"===n||"datetime"===n||"time"===n){if(!u)return}else if("boolean"!==n&&!u.trim())return;switch(n){case"number":if(isNaN(e=parseFloat(u.trim())))return;break;case"boolean":e="true"===u.trim().toLowerCase();break;case"date":case"time":if(!u)return;e=u;break;case"datetime":if(!u)return;e=new Date(u).toISOString();break;default:e=u.trim()}null==a||a([...Array.isArray(t)?t:[],e]),m("")},p=e=>{let s=[...Array.isArray(t)?t:[]];s.splice(e,1),null==a||a(s)};return(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(l.I,{type:(()=>{switch(n){case"number":return"number";case"date":return"date";case"datetime":return"datetime-local";case"time":return"time";default:return"text"}})(),value:u,onChange:e=>{m(e.target.value)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),x())},placeholder:(()=>{if(d)return d;switch(n){case"number":return"Enter a number";case"date":return"Select a date";case"datetime":return"Select date and time";case"time":return"Select a time";case"boolean":return"Enter true or false";default:return"Enter a value"}})(),disabled:i,className:(0,S.cn)(c?({small:"h-8 text-sm",middle:"h-10",large:"h-12 text-lg"})[c]:"")}),(0,s.jsx)(j.z,{type:"button",variant:"outline",size:"icon",onClick:()=>{x()},disabled:i||!u,className:(0,S.cn)("small"===c?"h-8 w-8":""),children:(0,s.jsx)(M.Z,{className:"h-4 w-4"})})]}),Array.isArray(t)&&t.length>0&&(0,s.jsx)("div",{className:"flex flex-wrap gap-1",children:t.map((e,t)=>(0,s.jsxs)(v.C,{variant:"secondary",className:"gap-1 pr-1",children:[h(e),(0,s.jsx)("button",{type:"button",onClick:()=>p(t),className:"ml-1 rounded-full hover:bg-muted",disabled:i,children:(0,s.jsx)(q.Z,{className:"h-3 w-3"})})]},t))})]})},K=a(71488),X=a(49322),$=e=>{let{value:t,onChange:a,field:l,disabled:n,readOnly:i,size:o,displayFormat:c,displayOptions:d}=e,u=r.useMemo(()=>{if(!t)return(null==l?void 0:l.showAs)&&(Array.isArray(l.showAs)?l.showAs.length>0:l.showAs)?null:"not-configured";if(Array.isArray(t))return{isArray:!0,items:t,field:l};if("object"==typeof t&&null!==t){if(null==l?void 0:l.showAs){if(Array.isArray(l.showAs)){let e=[" - "," ",", ","_"," & "," | "," (",") ","(",")"],a=[];l.showAs.forEach(s=>{if(e.includes(s))a.push(s);else{let e;if(s.includes(".")){let a=s.split("."),r=t;for(let e of a)if(null==(r=null==r?void 0:r[e]))break;e=r}else e=t[s];null!=e&&""!==e&&a.push(String(e))}});let s=a.filter((t,s)=>{let r=e.includes(t),l=s>0&&e.includes(a[s-1]),n=s===a.length-1;return!r||0!==s&&!n&&!l});return s.length>0?s.join(""):null}if("string"==typeof l.showAs){let e=l.showAs.split(",").map(e=>e.trim()).map(e=>t[e]).filter(Boolean);return e.length>0?e.join("-"):null}}return t.id||t.name||t.title||(Object.keys(t)[0]?t[Object.keys(t)[0]]:null)}return String(t)},[t,l]);if(i){if(u&&"object"==typeof u&&u.isArray){let{items:e,field:t}=u;if(!e||0===e.length)return(0,s.jsxs)(K.u,{children:[(0,s.jsx)(K.aJ,{children:(0,s.jsx)(v.C,{variant:"secondary",children:"Empty"})}),(0,s.jsx)(K._v,{children:"No related items"})]});let a=e.slice(0,3),r=e.length-3;return(0,s.jsxs)("div",{className:"flex flex-wrap gap-1",children:[a.map((e,a)=>{let r="";if((null==t?void 0:t.showAs)&&Array.isArray(t.showAs)){let a=[" - "," ",", ","_"," & "," | "," (",") ","(",")"],s=[];t.showAs.forEach(t=>{if(a.includes(t))s.push(t);else{let a;if(t.includes(".")){let s=t.split("."),r=e;for(let e of s)if(null==(r=null==r?void 0:r[e]))break;a=r}else a=e[t];null!=a&&""!==a&&s.push(String(a))}}),r=s.filter((e,t)=>{let r=a.includes(e),l=t>0&&a.includes(s[t-1]),n=t===s.length-1;return!r||0!==t&&!n&&!l}).join("")}else r=(null==t?void 0:t.showAs)&&"string"==typeof t.showAs?e[t.showAs]||e.name||e.title||e.id||"Item":e.name||e.title||e.id||"Item ".concat(a+1);return(0,s.jsx)(v.C,{variant:"default",children:r||"Item ".concat(a+1)},e.id||a)}),r>0&&(0,s.jsxs)(v.C,{variant:"secondary",children:["+",r," more"]})]})}return"not-configured"===u?(0,s.jsxs)(K.u,{children:[(0,s.jsxs)(K.aJ,{className:"flex items-center gap-1",children:[(0,s.jsx)(X.Z,{className:"h-4 w-4 text-yellow-500"}),(0,s.jsx)(v.C,{variant:"outline",className:"text-yellow-600",children:"Not Configured"})]}),(0,s.jsxs)(K._v,{children:["Display format not configured for relation '",null==l?void 0:l.name,"'. Configure 'showAs' field in schema management."]})]}):u&&""!==u?(0,s.jsx)("span",{className:"text-sm",children:u}):(0,s.jsxs)(K.u,{children:[(0,s.jsx)(K.aJ,{children:(0,s.jsx)(v.C,{variant:"secondary",children:"No Data"})}),(0,s.jsx)(K._v,{children:"Related data not found or not loaded"})]})}return(0,s.jsx)(p,{value:"not-configured"!==u&&u?String(u):"",onChange:a,disabled:n,readOnly:i,size:o,placeholder:"Select ".concat((null==l?void 0:l.name)||"relation"),displayFormat:c,displayOptions:d})},Q=a(89345),ee=e=>{let{value:t,onChange:a,disabled:r,readOnly:n,size:i,displayFormat:o,displayOptions:c}=e;return n?o&&"raw"!==o?(0,s.jsx)(x,{value:t,format:o,options:c}):t?(0,s.jsx)("a",{href:"mailto:".concat(t),className:"text-primary hover:underline",children:t}):(0,s.jsx)("span",{className:"text-muted-foreground",children:"-"}):(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(Q.Z,{className:"absolute left-2 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),(0,s.jsx)(l.I,{type:"email",value:t||"",onChange:e=>null==a?void 0:a(e.target.value),disabled:r,className:(0,S.cn)("pl-8",i?({small:"h-8 text-sm pl-8",middle:"h-10 pl-9",large:"h-12 text-lg pl-10"})[i]:""),placeholder:"email@example.com"})]})},et=a(98335),ea=e=>{let{value:t,onChange:a,disabled:r,readOnly:n,size:i,displayFormat:o,displayOptions:c}=e;return n?o&&"raw"!==o?(0,s.jsx)(x,{value:t,format:o,options:c}):t?(0,s.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t}):(0,s.jsx)("span",{className:"text-muted-foreground",children:"-"}):(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(et.Z,{className:"absolute left-2 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),(0,s.jsx)(l.I,{type:"url",value:t||"",onChange:e=>null==a?void 0:a(e.target.value),disabled:r,className:(0,S.cn)("pl-8",i?({small:"h-8 text-sm pl-8",middle:"h-10 pl-9",large:"h-12 text-lg pl-10"})[i]:""),placeholder:"https://example.com"})]})},es=a(13041),er=e=>{let{value:t,onChange:a,disabled:r,readOnly:n,size:i,displayFormat:o,displayOptions:c}=e;return n?o&&"raw"!==o?(0,s.jsx)(x,{value:t,format:o,options:c}):t?(0,s.jsx)("a",{href:"tel:".concat(t),className:"text-primary hover:underline",children:t}):(0,s.jsx)("span",{className:"text-muted-foreground",children:"-"}):(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(es.Z,{className:"absolute left-2 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),(0,s.jsx)(l.I,{type:"tel",value:t||"",onChange:e=>null==a?void 0:a(e.target.value),disabled:r,className:(0,S.cn)("pl-8",i?({small:"h-8 text-sm pl-8",middle:"h-10 pl-9",large:"h-12 text-lg pl-10"})[i]:""),placeholder:"+1 (555) 123-4567"})]})},el=e=>{let{value:t,onChange:a,disabled:r,readOnly:l,language:n="javascript"}=e;return l?(0,s.jsx)("pre",{className:"rounded bg-muted p-3 font-mono text-xs overflow-auto max-h-48",children:(0,s.jsx)("code",{children:t||""})}):(0,s.jsx)(I.g,{value:t||"",onChange:e=>null==a?void 0:a(e.target.value),disabled:r,className:"font-mono text-sm min-h-[120px]",placeholder:"// Enter ".concat(n," code here")})},en=a(83774),ei=a(83724),eo=e=>{let{value:t,onChange:a,disabled:l,readOnly:n,geometryType:i="Point",fieldName:o="Location"}=e,[c,d]=(0,r.useState)(!1),u=t?JSON.stringify(t,null,2):"",m=()=>{t&&d(!0)};if(n)return(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("pre",{className:"rounded bg-muted p-2 text-xs overflow-auto max-h-32 max-w-[250px] whitespace-pre-wrap break-all flex-1",children:u||"-"}),t&&(0,s.jsxs)(j.z,{variant:"ghost",size:"sm",className:"ml-2 h-8 text-xs gap-1",onClick:m,children:[(0,s.jsx)(en.Z,{className:"h-3 w-3"}),"Map"]})]}),(0,s.jsx)(ei.Z,{open:c,onOpenChange:d,value:t,fieldName:o,fieldType:i})]});let h=e=>{if(!e.trim()){null==a||a(null);return}try{let t=JSON.parse(e);null==a||a(t)}catch(e){}},x=r.useMemo(()=>{switch(i){case"Point":return'{"type": "Point", "coordinates": [longitude, latitude]}';case"Polygon":return'{"type": "Polygon", "coordinates": [[[lng1, lat1], [lng2, lat2], ...]]}';case"LineString":return'{"type": "LineString", "coordinates": [[lng1, lat1], [lng2, lat2]]}';default:return'{"type": "'.concat(i,'", "coordinates": [...]}')}},[i]);return(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"flex items-start gap-2",children:[(0,s.jsx)(I.g,{value:u,onChange:e=>h(e.target.value),disabled:l,className:"font-mono text-sm min-h-[100px] flex-1",placeholder:x}),t&&(0,s.jsxs)(j.z,{type:"button",variant:"outline",size:"sm",className:"h-8 text-xs gap-1 shrink-0",onClick:m,children:[(0,s.jsx)(en.Z,{className:"h-3 w-3"}),"Map"]})]}),(0,s.jsx)(ei.Z,{open:c,onOpenChange:d,value:t,fieldName:o,fieldType:i})]})},ec=a(75060),ed=a(68245);let eu=r.memo(e=>{let{value:t,onChange:a,disabled:r,readOnly:n,size:i,rangeType:o="integer"}=e,c=e=>{if(null==e)return"";if("date"===o||"datetime"===o){if(e instanceof Date)return"datetime"===o?e.toLocaleString():e.toLocaleDateString();if("string"==typeof e){let t=new Date(e);return"datetime"===o?t.toLocaleString():t.toLocaleDateString()}}return String(e)};if(n){if(!t)return(0,s.jsx)("span",{className:"text-sm text-muted-foreground",children:"-"});let e=!1!==t.lowerInclusive?"[":"(",a=!1!==t.upperInclusive?"]":")";return(0,s.jsxs)(v.C,{variant:"secondary",className:"font-mono text-xs",children:[e,c(t.lower)," – ",c(t.upper),a]})}let d={small:"h-8 text-sm",middle:"h-10",large:"h-12 text-lg"},u=()=>{switch(o){case"date":return"date";case"datetime":return"datetime-local";case"time":return"time";default:return"number"}},m=e=>{if(!e)return null;switch(o){case"integer":return parseInt(e,10);case"double":case"decimal":return parseFloat(e);case"date":case"datetime":return new Date(e).toISOString();default:return e}},h=e=>null==e?"":"date"===o&&e?new Date(e).toISOString().split("T")[0]:"datetime"===o&&e?new Date(e).toISOString().slice(0,16):String(e);return(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,s.jsx)(ec._,{className:"text-xs text-muted-foreground",children:"Lower"}),(0,s.jsx)(l.I,{type:u(),value:h(null==t?void 0:t.lower),onChange:e=>{var s,r,l;let n=m(e.target.value);null==a||a({lower:n,upper:null!==(s=null==t?void 0:t.upper)&&void 0!==s?s:null,lowerInclusive:null===(r=null==t?void 0:t.lowerInclusive)||void 0===r||r,upperInclusive:null===(l=null==t?void 0:t.upperInclusive)||void 0===l||l})},disabled:r,className:i?d[i]:"",placeholder:"Lower bound"})]}),(0,s.jsx)("span",{className:"text-muted-foreground pt-5",children:"–"}),(0,s.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,s.jsx)(ec._,{className:"text-xs text-muted-foreground",children:"Upper"}),(0,s.jsx)(l.I,{type:u(),value:h(null==t?void 0:t.upper),onChange:e=>{var s,r,l;let n=m(e.target.value);null==a||a({lower:null!==(s=null==t?void 0:t.lower)&&void 0!==s?s:null,upper:n,lowerInclusive:null===(r=null==t?void 0:t.lowerInclusive)||void 0===r||r,upperInclusive:null===(l=null==t?void 0:t.upperInclusive)||void 0===l||l})},disabled:r,className:i?d[i]:"",placeholder:"Upper bound"})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-4",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(ed.X,{id:"lowerInclusive",checked:(null==t?void 0:t.lowerInclusive)!==!1,onCheckedChange:e=>{var s,r,l;return null==a?void 0:a({lower:null!==(s=null==t?void 0:t.lower)&&void 0!==s?s:null,upper:null!==(r=null==t?void 0:t.upper)&&void 0!==r?r:null,lowerInclusive:!0===e,upperInclusive:null===(l=null==t?void 0:t.upperInclusive)||void 0===l||l})},disabled:r}),(0,s.jsx)(ec._,{htmlFor:"lowerInclusive",className:"text-xs",children:"Lower inclusive"})]}),(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(ed.X,{id:"upperInclusive",checked:(null==t?void 0:t.upperInclusive)!==!1,onCheckedChange:e=>{var s,r,l;return null==a?void 0:a({lower:null!==(s=null==t?void 0:t.lower)&&void 0!==s?s:null,upper:null!==(r=null==t?void 0:t.upper)&&void 0!==r?r:null,lowerInclusive:null===(l=null==t?void 0:t.lowerInclusive)||void 0===l||l,upperInclusive:!0===e})},disabled:r}),(0,s.jsx)(ec._,{htmlFor:"upperInclusive",className:"text-xs",children:"Upper inclusive"})]})]})]})});eu.displayName="RangeField";var em=eu,eh=a(46938),ex=a(78302),ep=a(54816),ef=a(63676),eg=a(65318),ev=a(78234),ey=a(13694),ej=a(24475),eN=a(71190),eb=a(5172),ew=a(75965),eC=a(44353),ek=a(84519),eS=a(29747),eA=a(79022),eO=a(81328),ez=a(19680),eI=a(17494),eT=a(18778),e_=a(64935),eL=a(12805),eZ=a(6387),eR=a(31734),eE=a(58310),eM=a(17881),eP=a(13720),eD=a(7586),eF=a(28645),eU=a(74656),eY=a(21047),eH=a(25330);let eJ=["#000000","#434343","#666666","#999999","#b7b7b7","#cccccc","#d9d9d9","#efefef","#f3f3f3","#ffffff","#980000","#ff0000","#ff9900","#ffff00","#00ff00","#00ffff","#4a86e8","#0000ff","#9900ff","#ff00ff","#e6b8af","#f4cccc","#fce5cd","#fff2cc","#d9ead3","#d0e0e3","#c9daf8","#cfe2f3","#d9d2e9","#ead1dc"],eB=e=>{let{onClick:t,isActive:a,disabled:r,children:l,title:n}=e;return(0,s.jsx)(j.z,{type:"button",variant:"ghost",size:"sm",onClick:t,disabled:r,className:(0,S.cn)("h-8 w-8 p-0",a&&"bg-muted text-foreground"),title:n,children:l})},eV=()=>(0,s.jsx)("div",{className:"w-px h-6 bg-border mx-1"}),eG=e=>{let{editor:t,onSourceToggle:a,isSourceMode:n,onFullscreenToggle:i,isFullscreen:o}=e,[c,d]=(0,r.useState)(""),[u,m]=(0,r.useState)(!1),[h,x]=(0,r.useState)(""),[p,f]=(0,r.useState)(!1),g=(0,r.useCallback)(()=>{t&&(c?t.chain().focus().extendMarkRange("link").setLink({href:c}).run():t.chain().focus().extendMarkRange("link").unsetLink().run(),m(!1),d(""))},[t,c]),v=(0,r.useCallback)(()=>{t&&(h&&t.chain().focus().setImage({src:h}).run(),f(!1),x(""))},[t,h]);return t?(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-0.5 p-1 border-b bg-muted/30",children:[(0,s.jsx)(eB,{onClick:()=>t.chain().focus().undo().run(),disabled:!t.can().undo(),title:"Undo",children:(0,s.jsx)(ew.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().redo().run(),disabled:!t.can().redo(),title:"Redo",children:(0,s.jsx)(eC.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eV,{}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().toggleHeading({level:1}).run(),isActive:t.isActive("heading",{level:1}),title:"Heading 1",children:(0,s.jsx)(ek.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().toggleHeading({level:2}).run(),isActive:t.isActive("heading",{level:2}),title:"Heading 2",children:(0,s.jsx)(eS.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().toggleHeading({level:3}).run(),isActive:t.isActive("heading",{level:3}),title:"Heading 3",children:(0,s.jsx)(eA.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eV,{}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().toggleBold().run(),isActive:t.isActive("bold"),title:"Bold",children:(0,s.jsx)(eO.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().toggleItalic().run(),isActive:t.isActive("italic"),title:"Italic",children:(0,s.jsx)(ez.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().toggleUnderline().run(),isActive:t.isActive("underline"),title:"Underline",children:(0,s.jsx)(eI.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().toggleStrike().run(),isActive:t.isActive("strike"),title:"Strikethrough",children:(0,s.jsx)(eT.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().toggleCode().run(),isActive:t.isActive("code"),title:"Inline Code",children:(0,s.jsx)(e_.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eV,{}),(0,s.jsxs)(b.J2,{children:[(0,s.jsx)(b.xo,{asChild:!0,children:(0,s.jsx)(j.z,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",title:"Text Color",children:(0,s.jsx)(eL.Z,{className:"h-4 w-4"})})}),(0,s.jsxs)(b.yk,{className:"w-auto p-2",children:[(0,s.jsx)("div",{className:"grid grid-cols-10 gap-1",children:eJ.map(e=>(0,s.jsx)("button",{className:"w-5 h-5 rounded border border-border hover:scale-110 transition-transform",style:{backgroundColor:e},onClick:()=>t.chain().focus().setColor(e).run()},e))}),(0,s.jsx)(j.z,{variant:"ghost",size:"sm",className:"w-full mt-2",onClick:()=>t.chain().focus().unsetColor().run(),children:"Remove color"})]})]}),(0,s.jsxs)(b.J2,{children:[(0,s.jsx)(b.xo,{asChild:!0,children:(0,s.jsx)(j.z,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",title:"Highlight",children:(0,s.jsx)(eZ.Z,{className:"h-4 w-4"})})}),(0,s.jsxs)(b.yk,{className:"w-auto p-2",children:[(0,s.jsx)("div",{className:"grid grid-cols-10 gap-1",children:eJ.slice(10).map(e=>(0,s.jsx)("button",{className:"w-5 h-5 rounded border border-border hover:scale-110 transition-transform",style:{backgroundColor:e},onClick:()=>t.chain().focus().toggleHighlight({color:e}).run()},e))}),(0,s.jsx)(j.z,{variant:"ghost",size:"sm",className:"w-full mt-2",onClick:()=>t.chain().focus().unsetHighlight().run(),children:"Remove highlight"})]})]}),(0,s.jsx)(eV,{}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().setTextAlign("left").run(),isActive:t.isActive({textAlign:"left"}),title:"Align Left",children:(0,s.jsx)(eR.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().setTextAlign("center").run(),isActive:t.isActive({textAlign:"center"}),title:"Align Center",children:(0,s.jsx)(eE.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().setTextAlign("right").run(),isActive:t.isActive({textAlign:"right"}),title:"Align Right",children:(0,s.jsx)(eM.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().setTextAlign("justify").run(),isActive:t.isActive({textAlign:"justify"}),title:"Justify",children:(0,s.jsx)(eP.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eV,{}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().toggleBulletList().run(),isActive:t.isActive("bulletList"),title:"Bullet List",children:(0,s.jsx)(eD.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().toggleOrderedList().run(),isActive:t.isActive("orderedList"),title:"Ordered List",children:(0,s.jsx)(eF.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().toggleBlockquote().run(),isActive:t.isActive("blockquote"),title:"Blockquote",children:(0,s.jsx)(eU.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eB,{onClick:()=>t.chain().focus().setHorizontalRule().run(),title:"Horizontal Rule",children:(0,s.jsx)(eY.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eV,{}),(0,s.jsxs)(b.J2,{open:u,onOpenChange:m,children:[(0,s.jsx)(b.xo,{asChild:!0,children:(0,s.jsx)(j.z,{variant:"ghost",size:"sm",className:(0,S.cn)("h-8 w-8 p-0",t.isActive("link")&&"bg-muted"),title:"Link",children:(0,s.jsx)(et.Z,{className:"h-4 w-4"})})}),(0,s.jsx)(b.yk,{className:"w-80",children:(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(ec._,{children:"URL"}),(0,s.jsx)(l.I,{value:c,onChange:e=>d(e.target.value),placeholder:"https://example.com",onKeyDown:e=>"Enter"===e.key&&g()}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsxs)(j.z,{size:"sm",onClick:g,children:[t.isActive("link")?"Update":"Add"," Link"]}),t.isActive("link")&&(0,s.jsx)(j.z,{size:"sm",variant:"outline",onClick:()=>{t.chain().focus().unsetLink().run(),m(!1)},children:"Remove"})]})]})})]}),(0,s.jsxs)(b.J2,{open:p,onOpenChange:f,children:[(0,s.jsx)(b.xo,{asChild:!0,children:(0,s.jsx)(j.z,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",title:"Image",children:(0,s.jsx)(J.Z,{className:"h-4 w-4"})})}),(0,s.jsx)(b.yk,{className:"w-80",children:(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(ec._,{children:"Image URL"}),(0,s.jsx)(l.I,{value:h,onChange:e=>x(e.target.value),placeholder:"https://example.com/image.jpg",onKeyDown:e=>"Enter"===e.key&&v()}),(0,s.jsx)(j.z,{size:"sm",onClick:v,children:"Add Image"})]})})]}),(0,s.jsx)("div",{className:"flex-1"}),(0,s.jsx)(eB,{onClick:a,isActive:n,title:"Source Code",children:(0,s.jsx)(eH.Z,{className:"h-4 w-4"})}),(0,s.jsx)(eB,{onClick:i,title:o?"Exit Fullscreen":"Fullscreen",children:o?(0,s.jsx)(_.Z,{className:"h-4 w-4"}):(0,s.jsx)(T.Z,{className:"h-4 w-4"})})]}):null};var eq=e=>{let{value:t,onChange:a,disabled:l,readOnly:n,placeholder:i="Enter content...",className:o,minHeight:c=300}=e,[d,u]=(0,r.useState)(!1),[m,h]=(0,r.useState)(t||""),[x,p]=(0,r.useState)(!1),[f,g]=(0,r.useState)(!1),v=(0,eh.jE)({immediatelyRender:!1,extensions:[ex.Z.configure({heading:{levels:[1,2,3,4,5,6]}}),ep.ZP.configure({openOnClick:!1,HTMLAttributes:{rel:"noopener noreferrer"}}),ef.ZP.configure({HTMLAttributes:{style:"max-width: 100%; height: auto;"}}),eg.Z.configure({types:["heading","paragraph"]}),ev.Z,ey.pn,ej.Z,eN.ZP.configure({multicolor:!0}),eb.Z.configure({placeholder:i})],content:t||"",editable:!l&&!n,onUpdate:e=>{let{editor:t}=e,s=t.getHTML();null==a||a(s)}});(0,r.useEffect)(()=>{v&&t!==v.getHTML()&&!d&&v.commands.setContent(t||"")},[t,v,d]),(0,r.useEffect)(()=>{d&&h(t||"")},[d,t]),(0,r.useEffect)(()=>{g(!0)},[]),(0,r.useEffect)(()=>{let e=e=>{"Escape"===e.key&&x&&p(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[x]);let y=()=>{null==a||a(m),null==v||v.commands.setContent(m),u(!1)};return n?(0,s.jsx)("div",{className:(0,S.cn)("prose prose-sm dark:prose-invert max-w-none","border rounded-md p-3 bg-muted/30","overflow-auto",o),style:{minHeight:c/2},dangerouslySetInnerHTML:{__html:t||"<em>No content</em>"}}):f?(0,s.jsxs)("div",{className:(0,S.cn)("html-field border rounded-md overflow-hidden flex flex-col bg-background",x&&"fixed inset-0 z-50 rounded-none",o),style:{height:x?"100vh":c},children:[(0,s.jsx)(eG,{editor:v,onSourceToggle:()=>{d?y():(h((null==v?void 0:v.getHTML())||""),u(!0))},isSourceMode:d,onFullscreenToggle:()=>p(!x),isFullscreen:x}),d?(0,s.jsxs)("div",{className:"flex-1 flex flex-col",children:[(0,s.jsx)(I.g,{value:m,onChange:e=>{h(e.target.value)},className:"flex-1 font-mono text-sm resize-none rounded-none border-0 focus-visible:ring-0",placeholder:"Enter HTML source code..."}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 p-2 border-t bg-muted/30",children:[(0,s.jsx)(j.z,{variant:"outline",size:"sm",onClick:()=>u(!1),children:"Cancel"}),(0,s.jsx)(j.z,{size:"sm",onClick:y,children:"Apply"})]})]}):(0,s.jsx)(eh.kg,{editor:v,className:(0,S.cn)("flex-1 overflow-auto","[&_.tiptap]:outline-none [&_.tiptap]:p-3 [&_.tiptap]:min-h-full","[&_.tiptap_p.is-editor-empty:first-child::before]:text-muted-foreground","[&_.tiptap_p.is-editor-empty:first-child::before]:content-[attr(data-placeholder)]","[&_.tiptap_p.is-editor-empty:first-child::before]:float-left","[&_.tiptap_p.is-editor-empty:first-child::before]:h-0","[&_.tiptap_p.is-editor-empty:first-child::before]:pointer-events-none")})]}):(0,s.jsx)("div",{className:(0,S.cn)("animate-pulse bg-muted rounded border",o),style:{height:c}})};let eW=r.memo(e=>{let{field:t,value:a,onChange:r,disabled:l,readOnly:n,size:i,placeholder:o,displayFormat:c,displayOptions:d}=e,u=c||t.displayFormat,m=d||t.displayOptions;if(t.relType)return(0,s.jsx)($,{value:a,onChange:r,field:t,disabled:l,readOnly:n,size:i,displayFormat:u,displayOptions:m});switch(t.type){case"UUID":return(0,s.jsx)(G,{value:a,onChange:r,disabled:l,readOnly:n,size:i});case"String":case"VARCHAR":case"CHAR":return(0,s.jsx)(p,{value:a,onChange:r,disabled:l,readOnly:n,size:i,placeholder:o,maxLength:t.maxLength,showCount:!!t.maxLength,displayFormat:u,displayOptions:m});case"Text":case"LONGTEXT":case"MEDIUMTEXT":return(0,s.jsx)(R,{value:a,onChange:r,disabled:l,readOnly:n,placeholder:o,autoSize:{minRows:3,maxRows:8}});case"HTML":return(0,s.jsx)(eq,{value:a,onChange:r,disabled:l,readOnly:n,placeholder:o});case"Number":case"INTEGER":case"INT":case"BIGINT":case"SMALLINT":case"TINYINT":return(0,s.jsx)(f,{value:a,onChange:r,disabled:l,readOnly:n,size:i,placeholder:o,precision:0});case"Float":case"DOUBLE":case"REAL":return(0,s.jsx)(f,{value:a,onChange:r,disabled:l,readOnly:n,size:i,placeholder:o,step:.1});case"Decimal":case"NUMERIC":return(0,s.jsx)(f,{value:a,onChange:r,disabled:l,readOnly:n,size:i,placeholder:o,precision:t.scale,step:t.scale?Math.pow(10,-t.scale):.01});case"Boolean":case"BOOLEAN":return(0,s.jsx)(y,{value:a,onChange:r,disabled:l,readOnly:n,size:"small"===i?"small":"default"});case"Date":return(0,s.jsx)(A,{value:a,onChange:r,disabled:l,readOnly:n,size:i,placeholder:o,displayFormat:u,displayOptions:m});case"DateTime":case"DateTime_NO_TZ":case"DATETIME":case"TIMESTAMP":return(0,s.jsx)(O,{value:a,onChange:r,disabled:l,readOnly:n,size:i,placeholder:o,displayFormat:u,displayOptions:m});case"Time":case"Time_NO_TZ":return(0,s.jsx)(z,{value:a,onChange:r,disabled:l,readOnly:n,size:i,placeholder:o});case"JSON":case"JSONB":return(0,s.jsx)(Z,{value:a,onChange:r,disabled:l,readOnly:n,placeholder:o});case"ENUM":case"Enum":return(0,s.jsx)(F,{value:a,onChange:r,options:t.values||[],disabled:l,readOnly:n,size:i,placeholder:o,allowNull:t.allowNull});case"File":return(0,s.jsx)(H,{value:a,onChange:r,disabled:l,readOnly:n});case"Image":return(0,s.jsx)(B,{value:a,onChange:r,disabled:l,readOnly:n});case"Color":return(0,s.jsx)(V,{value:a,onChange:r,disabled:l,readOnly:n});case"Array_String":return(0,s.jsx)(W,{value:a,onChange:r,itemType:"string",disabled:l,readOnly:n,size:i,placeholder:o||"Enter string values"});case"Array_Integer":case"Array_Number":case"Array_Double":case"Array_Decimal":return(0,s.jsx)(W,{value:a,onChange:r,itemType:"number",disabled:l,readOnly:n,size:i,placeholder:o||"Enter number values"});case"Array_UUID":return(0,s.jsx)(W,{value:a,onChange:r,itemType:"string",disabled:l,readOnly:n,size:i,placeholder:o||"Enter UUID values"});case"Array_Boolean":return(0,s.jsx)(W,{value:a,onChange:r,itemType:"boolean",disabled:l,readOnly:n,size:i,placeholder:o||"Enter true or false"});case"Array_Date":return(0,s.jsx)(W,{value:a,onChange:r,itemType:"date",disabled:l,readOnly:n,size:i,placeholder:o||"Select dates"});case"Array_DateTime":case"Array_DateTime_NO_TZ":return(0,s.jsx)(W,{value:a,onChange:r,itemType:"datetime",disabled:l,readOnly:n,size:i,placeholder:o||"Select date and time"});case"Array_Time":case"Array_Time_NO_TZ":return(0,s.jsx)(W,{value:a,onChange:r,itemType:"time",disabled:l,readOnly:n,size:i,placeholder:o||"Select times"});case"Email":return(0,s.jsx)(ee,{value:a,onChange:r,disabled:l,readOnly:n,size:i,displayFormat:u,displayOptions:m});case"URL":return(0,s.jsx)(ea,{value:a,onChange:r,disabled:l,readOnly:n,size:i,displayFormat:u,displayOptions:m});case"Phone":return(0,s.jsx)(er,{value:a,onChange:r,disabled:l,readOnly:n,size:i,displayFormat:u,displayOptions:m});case"Code":return(0,s.jsx)(el,{value:a,onChange:r,disabled:l,readOnly:n,language:t.language||"javascript"});case"Point":case"Polygon":case"LineString":case"MultiPoint":case"MultiPolygon":case"MultiLineString":case"GeometryCollection":return(0,s.jsx)(eo,{value:a,onChange:r,disabled:l,readOnly:n,geometryType:t.type});case"Range_Integer":return(0,s.jsx)(em,{value:a,onChange:r,disabled:l,readOnly:n,size:i,rangeType:"integer"});case"Range_Double":return(0,s.jsx)(em,{value:a,onChange:r,disabled:l,readOnly:n,size:i,rangeType:"double"});case"Range_Decimal":return(0,s.jsx)(em,{value:a,onChange:r,disabled:l,readOnly:n,size:i,rangeType:"decimal"});case"Range_Date":return(0,s.jsx)(em,{value:a,onChange:r,disabled:l,readOnly:n,size:i,rangeType:"date"});case"Range_DateTime":case"Range_DateTime_NO_TZ":return(0,s.jsx)(em,{value:a,onChange:r,disabled:l,readOnly:n,size:i,rangeType:"datetime"});case"Range_Time":case"Range_Time_NO_TZ":return(0,s.jsx)(em,{value:a,onChange:r,disabled:l,readOnly:n,size:i,rangeType:"time"});default:return(0,s.jsx)(p,{value:a,onChange:r,disabled:l,readOnly:n,size:i,placeholder:o,displayFormat:u,displayOptions:m})}});eW.displayName="FieldRenderer";var eK=eW},95937:function(e,t,a){a.d(t,{Cd:function(){return c},X:function(){return d},bZ:function(){return o}});var s=a(57437),r=a(2265),l=a(90535),n=a(93448);let i=(0,l.j)("relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),o=r.forwardRef((e,t)=>{let{className:a,variant:r,...l}=e;return(0,s.jsx)("div",{ref:t,role:"alert",className:(0,n.cn)(i({variant:r}),a),...l})});o.displayName="Alert";let c=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("h5",{ref:t,className:(0,n.cn)("mb-1 font-medium leading-none tracking-tight",a),...r})});c.displayName="AlertTitle";let d=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,n.cn)("text-sm [&_p]:leading-relaxed",a),...r})});d.displayName="AlertDescription"},46291:function(e,t,a){a.d(t,{f:function(){return c}});var s=a(57437);a(2265);var r=a(92451),l=a(10407),n=a(61013),i=a(93448),o=a(12381);function c(e){let{className:t,classNames:a,showOutsideDays:c=!0,...d}=e;return(0,s.jsx)(n._W,{showOutsideDays:c,className:(0,i.cn)("p-3",t),classNames:{months:"flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",month:"space-y-4",caption:"flex justify-center pt-1 relative items-center",caption_label:"text-sm font-medium",nav:"space-x-1 flex items-center",nav_button:(0,i.cn)((0,o.d)({variant:"outline"}),"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"),nav_button_previous:"absolute left-1",nav_button_next:"absolute right-1",table:"w-full border-collapse space-y-1",head_row:"flex",head_cell:"text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]",row:"flex w-full mt-2",cell:(0,i.cn)("relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected].day-range-end)]:rounded-r-md","range"===d.mode?"[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md":"[&:has([aria-selected])]:rounded-md"),day:(0,i.cn)((0,o.d)({variant:"ghost"}),"h-8 w-8 p-0 font-normal aria-selected:opacity-100"),day_range_start:"day-range-start",day_range_end:"day-range-end",day_selected:"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",day_today:"bg-accent text-accent-foreground",day_outside:"day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",day_disabled:"text-muted-foreground opacity-50",day_range_middle:"aria-selected:bg-accent aria-selected:text-accent-foreground",day_hidden:"invisible",...a},components:{IconLeft:()=>(0,s.jsx)(r.Z,{className:"h-4 w-4"}),IconRight:()=>(0,s.jsx)(l.Z,{className:"h-4 w-4"})},...d})}c.displayName="Calendar"},68245:function(e,t,a){a.d(t,{X:function(){return o}});var s=a(57437),r=a(2265),l=a(9270),n=a(30401),i=a(93448);let o=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.fC,{ref:t,className:(0,i.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",a),...r,children:(0,s.jsx)(l.z$,{className:(0,i.cn)("flex items-center justify-center text-current"),children:(0,s.jsx)(n.Z,{className:"h-4 w-4"})})})});o.displayName=l.fC.displayName},2596:function(e,t,a){a.d(t,{di:function(){return x},e8:function(){return d},fu:function(){return m},mY:function(){return o},rb:function(){return u},sZ:function(){return c},zz:function(){return h}});var s=a(57437),r=a(2265),l=a(46343),n=a(73247),i=a(93448);a(74291);let o=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.mY,{ref:t,className:(0,i.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",a),...r})});o.displayName=l.mY.displayName;let c=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsxs)("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[(0,s.jsx)(n.Z,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),(0,s.jsx)(l.mY.Input,{ref:t,className:(0,i.cn)("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",a),...r})]})});c.displayName=l.mY.Input.displayName;let d=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.mY.List,{ref:t,className:(0,i.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden",a),...r})});d.displayName=l.mY.List.displayName;let u=r.forwardRef((e,t)=>(0,s.jsx)(l.mY.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));u.displayName=l.mY.Empty.displayName;let m=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.mY.Group,{ref:t,className:(0,i.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",a),...r})});m.displayName=l.mY.Group.displayName;let h=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.mY.Separator,{ref:t,className:(0,i.cn)("-mx-1 h-px bg-border",a),...r})});h.displayName=l.mY.Separator.displayName;let x=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.mY.Item,{ref:t,className:(0,i.cn)("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",a),...r})});x.displayName=l.mY.Item.displayName},83724:function(e,t,a){var s=a(57437),r=a(2265),l=a(74291),n=a(12381),i=a(83774),o=a(78406),c=a(50417),d=a(51817),u=a(3609);let m=null,h=e=>{try{let t=e.replace(/^SRID=\d+;/i,"").trim().match(/^(\w+)\s*\((.+)\)$/i);if(!t)return null;let[,a,s]=t,r=a.toUpperCase();if("POINT"===r){let e=s.trim().split(/\s+/).map(Number);if(e.length>=2&&!e.some(isNaN))return{type:"Point",coordinates:e.slice(0,2)}}if("LINESTRING"===r){let e=s.split(",").map(e=>e.trim().split(/\s+/).map(Number).slice(0,2));if(e.every(e=>2===e.length&&!e.some(isNaN)))return{type:"LineString",coordinates:e}}if("POLYGON"===r){let e=[],t=s.match(/\(([^()]+)\)/g);if(t)for(let a of t){let t=a.replace(/[()]/g,"").split(",").map(e=>e.trim().split(/\s+/).map(Number).slice(0,2));t.every(e=>2===e.length&&!e.some(isNaN))&&e.push(t)}if(e.length>0)return{type:"Polygon",coordinates:e}}if("MULTIPOINT"===r){let e=[],t=s.match(/\(([^()]+)\)/g);if(t)for(let a of t){let t=a.replace(/[()]/g,"").trim().split(/\s+/).map(Number);t.length>=2&&!t.some(isNaN)&&e.push(t.slice(0,2))}else{let t=s.split(",").map(e=>e.trim().split(/\s+/).map(Number).slice(0,2));e.push(...t.filter(e=>2===e.length&&!e.some(isNaN)))}if(e.length>0)return{type:"MultiPoint",coordinates:e}}if("MULTILINESTRING"===r){let e=[],t=s.match(/\(([^()]+)\)/g);if(t)for(let a of t){let t=a.replace(/[()]/g,"").split(",").map(e=>e.trim().split(/\s+/).map(Number).slice(0,2));t.every(e=>2===e.length&&!e.some(isNaN))&&e.push(t)}if(e.length>0)return{type:"MultiLineString",coordinates:e}}if("MULTIPOLYGON"===r){let e=[];for(let t of s.split(/\)\s*,\s*\(/)){let a=[],s=t.replace(/^\(+|\)+$/g,"").match(/\(([^()]+)\)|[^,()]+(?:,[^,()]+)*/g);if(s)for(let e of s){let t=e.replace(/[()]/g,"").split(",").map(e=>e.trim().split(/\s+/).map(Number).slice(0,2)).filter(e=>2===e.length&&!e.some(isNaN));t.length>0&&a.push(t)}a.length>0&&e.push(a)}if(e.length>0)return{type:"MultiPolygon",coordinates:e}}return null}catch(e){return console.error("Error parsing WKT:",e),null}},x=(e,t)=>{if(!e)return null;if(e&&"object"==typeof e&&e.type&&e.coordinates)return e;if("string"==typeof e){if(e.trim().startsWith("{"))try{let t=JSON.parse(e);if(t.type&&t.coordinates)return t}catch(e){}if(/^(SRID=\d+;)?(POINT|LINESTRING|POLYGON|MULTIPOINT|MULTILINESTRING|MULTIPOLYGON)/i.test(e))return h(e);if(/^[0-9A-Fa-f]+$/.test(e))return console.warn("Received WKB hex format - cannot parse client-side. API should return GeoJSON."),null}if("object"==typeof e&&"x"in e&&"y"in e)return{type:"Point",coordinates:[e.x,e.y]};if(Array.isArray(e)){if(2===e.length&&"number"==typeof e[0]&&"number"==typeof e[1])return{type:t||"Point",coordinates:e};if(Array.isArray(e[0])&&"number"==typeof e[0][0]){let a=t||"LineString";return"Polygon"===a?{type:"Polygon",coordinates:[e]}:{type:a,coordinates:e}}if(Array.isArray(e[0])&&Array.isArray(e[0][0]))return{type:t||"Polygon",coordinates:e}}return null};t.Z=e=>{let{open:t,onOpenChange:h,value:p,fieldName:f="Location",fieldType:g}=e,v=(0,r.useRef)(null),y=(0,r.useRef)(null),j=(0,r.useRef)(null),[N,b]=(0,r.useState)(!0),w=(0,r.useMemo)(()=>x(p,g),[p,g]),{icon:C,title:k}=(0,r.useMemo)(()=>{let e=(null==w?void 0:w.type)||g,t=(0,s.jsx)(i.Z,{className:"h-4 w-4"});switch(e){case"Point":case"MultiPoint":t=(0,s.jsx)(i.Z,{className:"h-4 w-4"});break;case"LineString":case"MultiLineString":t=(0,s.jsx)(o.Z,{className:"h-4 w-4"});break;case"Polygon":case"MultiPolygon":t=(0,s.jsx)(c.Z,{className:"h-4 w-4"})}return{icon:t,title:"".concat(f," (").concat(e||"Geometry",")")}},[w,f,g]);(0,r.useEffect)(()=>{if(!t)return;let e=!0;return b(!0),(async()=>{try{if(await new Promise(e=>requestAnimationFrame(e)),!e||!v.current){b(!1);return}if(!document.querySelector('link[href*="leaflet.css"]')){let e=document.createElement("link");e.rel="stylesheet",e.href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css",document.head.appendChild(e),await new Promise(t=>{e.onload=()=>t(),e.onerror=()=>t(),setTimeout(t,1e3)})}if(m||(m=await a.e(4212).then(a.t.bind(a,60759,23)),delete m.Icon.Default.prototype._getIconUrl,m.Icon.Default.mergeOptions({iconRetinaUrl:"https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.9.4/images/marker-icon-2x.png",iconUrl:"https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.9.4/images/marker-icon.png",shadowUrl:"https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.9.4/images/marker-shadow.png"})),!e||!v.current){b(!1);return}let t=m;y.current&&(y.current.remove(),y.current=null);let s=t.map(v.current,{zoomControl:!0,scrollWheelZoom:!0});if(y.current=s,t.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',maxZoom:19}).addTo(s),w){let e=t.geoJSON({type:"Feature",geometry:w,properties:{}},{style:{color:"#3b82f6",weight:3,opacity:.8,fillColor:"#3b82f6",fillOpacity:.3},pointToLayer:(e,a)=>t.circleMarker(a,{radius:10,fillColor:"#3b82f6",color:"#1e40af",weight:2,opacity:1,fillOpacity:.8})}).addTo(s).getBounds();e.isValid()?(j.current=e,s.fitBounds(e,{padding:[50,50],maxZoom:16})):(j.current=null,s.setView([0,0],2))}else j.current=null,s.setView([0,0],2);requestAnimationFrame(()=>{y.current&&e&&y.current.invalidateSize(),b(!1)})}catch(e){console.error("Error initializing map:",e),b(!1)}})(),()=>{e=!1,y.current&&(y.current.remove(),y.current=null)}},[t,w]);let S=(0,r.useMemo)(()=>{if(!w)return"";let e=w.coordinates;if(!e)return"";try{switch(w.type){case"Point":return"[".concat(Number(e[0]).toFixed(6),", ").concat(Number(e[1]).toFixed(6),"]");case"LineString":case"MultiPoint":return"".concat(e.length," points");case"Polygon":var t;let a=e.length,s=(null===(t=e[0])||void 0===t?void 0:t.length)||0;return a>1?"".concat(s," points, ").concat(a-1," hole(s)"):"".concat(s," points");case"MultiLineString":return"".concat(e.length," lines");case"MultiPolygon":return"".concat(e.length," polygons");default:return""}}catch(e){return""}},[w]);return(0,s.jsx)(l.Vq,{open:t,onOpenChange:h,children:(0,s.jsxs)(l.cZ,{className:"max-w-3xl max-h-[85vh]",children:[(0,s.jsx)(l.fK,{children:(0,s.jsxs)(l.$N,{className:"flex items-center gap-2",children:[C,k]})}),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"relative",children:[N&&(0,s.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-muted rounded-md z-10",children:(0,s.jsx)(d.Z,{className:"h-8 w-8 animate-spin text-muted-foreground"})}),(0,s.jsx)("div",{ref:v,className:"w-full h-[400px] rounded-md border overflow-hidden bg-muted",style:{minHeight:"400px"}}),!N&&(0,s.jsx)(n.z,{variant:"secondary",size:"icon",className:"absolute top-2 right-2 z-[1000] shadow-md",onClick:()=>{y.current&&(j.current?y.current.fitBounds(j.current,{padding:[50,50],maxZoom:16}):y.current.setView([0,0],2))},title:"Reset to initial view",children:(0,s.jsx)(u.Z,{className:"h-4 w-4"})})]}),S&&(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,s.jsx)("span",{className:"font-medium",children:"Details:"}),(0,s.jsx)("span",{children:S})]}),(0,s.jsxs)("details",{className:"text-sm",children:[(0,s.jsx)("summary",{className:"cursor-pointer text-muted-foreground hover:text-foreground",children:"View raw GeoJSON"}),(0,s.jsx)("pre",{className:"mt-2 p-3 bg-muted rounded-md overflow-auto max-h-[200px] text-xs",children:JSON.stringify(w||p,null,2)})]})]})]})})}},12749:function(e,t,a){a.d(t,{J2:function(){return i},xo:function(){return o},yk:function(){return c}});var s=a(57437),r=a(2265),l=a(51777),n=a(93448);let i=l.fC,o=l.xz;l.ee;let c=r.forwardRef((e,t)=>{let{className:a,align:r="center",sideOffset:i=4,...o}=e;return(0,s.jsx)(l.h_,{children:(0,s.jsx)(l.VY,{ref:t,align:r,sideOffset:i,className:(0,n.cn)("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...o})})});c.displayName=l.VY.displayName},91032:function(e,t,a){a.d(t,{Ei:function(){return v},FF:function(){return f},Tu:function(){return p},bC:function(){return g},sw:function(){return d},ue:function(){return x},yo:function(){return c}});var s=a(57437),r=a(2265),l=a(70001),n=a(90535),i=a(32489),o=a(93448);let c=l.fC;l.xz;let d=l.x8,u=l.h_,m=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.aV,{className:(0,o.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...r,ref:t})});m.displayName=l.aV.displayName;let h=(0,n.j)("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out overflow-hidden",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-full sm:w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-full sm:w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right"}},defaultVariants:{side:"right"}}),x=r.forwardRef((e,t)=>{let{side:a="right",className:r,children:n,hideDefaultClose:c=!1,...d}=e;return(0,s.jsxs)(u,{children:[(0,s.jsx)(m,{}),(0,s.jsxs)(l.VY,{ref:t,className:(0,o.cn)(h({side:a}),r),...d,children:[!c&&(0,s.jsxs)(l.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[(0,s.jsx)(i.Z,{className:"h-4 w-4"}),(0,s.jsx)("span",{className:"sr-only",children:"Close"})]}),n]})]})});x.displayName=l.VY.displayName;let p=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,o.cn)("flex flex-col space-y-2 text-center sm:text-left",t),...a})};p.displayName="SheetHeader";let f=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,o.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a})};f.displayName="SheetFooter";let g=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.Dx,{ref:t,className:(0,o.cn)("text-lg font-semibold text-foreground",a),...r})});g.displayName=l.Dx.displayName;let v=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.dk,{ref:t,className:(0,o.cn)("text-sm text-muted-foreground",a),...r})});v.displayName=l.dk.displayName},94589:function(e,t,a){a.d(t,{r:function(){return i}});var s=a(57437),r=a(2265),l=a(50721),n=a(93448);let i=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.fC,{className:(0,n.cn)("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",a),...r,ref:t,children:(0,s.jsx)(l.bU,{className:(0,n.cn)("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})})});i.displayName=l.fC.displayName},71488:function(e,t,a){a.d(t,{_v:function(){return d},aJ:function(){return c},pn:function(){return i},u:function(){return o}});var s=a(57437),r=a(2265),l=a(91668),n=a(93448);let i=l.zt,o=l.fC,c=l.xz,d=r.forwardRef((e,t)=>{let{className:a,sideOffset:r=4,...i}=e;return(0,s.jsx)(l.VY,{ref:t,sideOffset:r,className:(0,n.cn)("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...i})});d.displayName=l.VY.displayName},29696:function(e,t,a){a.d(t,{A1:function(){return o},I_:function(){return i}});var s=a(57437),r=a(2265),l=a(72135);let n=(0,r.createContext)(void 0),i=()=>{let e=(0,r.useContext)(n);if(!e)throw Error("useSchema must be used within a SchemaProvider");return e};function o(e){let{children:t}=e,{data:a,isLoading:r,refetch:i}=(0,l.sm)({resource:"collections",queryOptions:{enabled:!0},sorters:[{field:"collectionName",order:"asc"}],pagination:{pageSize:500}}),o=(null==a?void 0:a.data)||[],c=e=>o.find(t=>t.collectionName===e),d=e=>{let t=c(e),a=null==t?void 0:t.schema.fields;if(a){let t={...a};for(let[e,a]of Object.entries(t))a.hidden&&delete t[e];return"baasix_Account"===e&&(delete t.password,delete t.accessToken,delete t.refreshToken,delete t.idToken),"baasix_Verification"===e&&delete t.value,"baasix_Sessions"===e&&delete t.token,t}return a},u=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(0===a)return[];let r=d(e);return r?Object.entries(r).map(e=>{let[r,l]=e,n=t?"".concat(t,".").concat(r):r,i=s?{title:l.relType?n+".*":n,value:l.relType?n+".*":n,key:l.relType?n+".*":n,isLeaf:!l.relType}:{title:n,value:n,key:n,isLeaf:!l.relType};return l.relType&&l.target&&(i.children=u(l.target,n,a-1,s)),i}):[]};return(0,s.jsx)(n.Provider,{value:{schemas:o,isLoading:r,refetch:i,getSchemaByName:c,getFieldsByCollection:d,getCollectionChoices:()=>o.map(e=>({label:e.schema.name,value:e.collectionName})),getTargetFields:e=>{let t=d(e);return t?Object.entries(t).map(e=>{let[t]=e;return{label:t,value:t}}):[]},formatRelationshipDisplay:(e,t)=>e&&t?null==t?void 0:t.split(",").map(t=>{let a=t.trim();return e[a]||a}).join(""):"",getNestedFields:e=>u(e),getPermissionFields:e=>[{title:"*",value:"*",key:"*",isLeaf:!0},...u(e,"",6,!0),{title:"*.*",value:"*.*",key:"*.*",isLeaf:!0},{title:"*.*.*",value:"*.*.*",key:"*.*.*",isLeaf:!0},{title:"*.*.*.*",value:"*.*.*.*",key:"*.*.*.*",isLeaf:!0}],isSortEnabled:e=>{var t;let a=c(e);return(null==a?void 0:null===(t=a.schema)||void 0===t?void 0:t.sortEnabled)===!0}},children:t})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4952],{79205:function(e,t,n){n.d(t,{Z:function(){return l}});var r=n(2265);let a=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),o=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((e,t,n)=>!!e&&n.indexOf(e)===t).join(" ")};var i={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let u=(0,r.forwardRef)((e,t)=>{let{color:n="currentColor",size:a=24,strokeWidth:u=2,absoluteStrokeWidth:l,className:c="",children:s,iconNode:f,...d}=e;return(0,r.createElement)("svg",{ref:t,...i,width:a,height:a,stroke:n,strokeWidth:l?24*Number(u)/Number(a):u,className:o("lucide",c),...d},[...f.map(e=>{let[t,n]=e;return(0,r.createElement)(t,n)}),...Array.isArray(s)?s:[s]])}),l=(e,t)=>{let n=(0,r.forwardRef)((n,i)=>{let{className:l,...c}=n;return(0,r.createElement)(u,{ref:i,iconNode:t,className:o("lucide-".concat(a(e)),l),...c})});return n.displayName="".concat(e),n}},16066:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("CircleArrowUp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]])},92934:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},99388:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]])},91723:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},71947:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("FileCode",[["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}]])},65621:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]])},51817:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},33276:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]])},69076:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]])},10866:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("Settings2",[["path",{d:"M20 7h-9",key:"3s1dr2"}],["path",{d:"M14 17H5",key:"gfn3mx"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]])},76865:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},370:function(e,t,n){n.d(t,{f:function(){return l}});var r=n(2265);n(54887);var a=n(37053),o=n(57437),i=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let n=(0,a.Z8)(`Primitive.${t}`),i=r.forwardRef((e,r)=>{let{asChild:a,...i}=e,u=a?n:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,o.jsx)(u,{...i,ref:r})});return i.displayName=`Primitive.${t}`,{...e,[t]:i}},{}),u=r.forwardRef((e,t)=>(0,o.jsx)(i.label,{...e,ref:t,onMouseDown:t=>{var n;t.target.closest("button, input, select, textarea")||(null===(n=e.onMouseDown)||void 0===n||n.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));u.displayName="Label";var l=u},1353:function(e,t,n){n.d(t,{Pc:function(){return M},ck:function(){return F},fC:function(){return A}});var r=n(2265),a=n(6741),o=n(9923),i=n(98575),u=n(73966),l=n(99255),c=n(82912),s=n(26606),f=n(80886),d=n(29114),h=n(57437),v="rovingFocusGroup.onEntryFocus",m={bubbles:!1,cancelable:!0},p="RovingFocusGroup",[y,b,g]=(0,o.B)(p),[w,M]=(0,u.b)(p,[g]),[k,x]=w(p),D=r.forwardRef((e,t)=>(0,h.jsx)(y.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,h.jsx)(y.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,h.jsx)(j,{...e,ref:t})})}));D.displayName=p;var j=r.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:o,loop:u=!1,dir:l,currentTabStopId:y,defaultCurrentTabStopId:g,onCurrentTabStopIdChange:w,onEntryFocus:M,preventScrollOnEntryFocus:x=!1,...D}=e,j=r.useRef(null),C=(0,i.e)(t,j),T=(0,d.gm)(l),[R,A]=(0,f.T)({prop:y,defaultProp:null!=g?g:null,onChange:w,caller:p}),[F,I]=r.useState(!1),E=(0,s.W)(M),N=b(n),S=r.useRef(!1),[L,V]=r.useState(0);return r.useEffect(()=>{let e=j.current;if(e)return e.addEventListener(v,E),()=>e.removeEventListener(v,E)},[E]),(0,h.jsx)(k,{scope:n,orientation:o,dir:T,loop:u,currentTabStopId:R,onItemFocus:r.useCallback(e=>A(e),[A]),onItemShiftTab:r.useCallback(()=>I(!0),[]),onFocusableItemAdd:r.useCallback(()=>V(e=>e+1),[]),onFocusableItemRemove:r.useCallback(()=>V(e=>e-1),[]),children:(0,h.jsx)(c.WV.div,{tabIndex:F||0===L?-1:0,"data-orientation":o,...D,ref:C,style:{outline:"none",...e.style},onMouseDown:(0,a.Mj)(e.onMouseDown,()=>{S.current=!0}),onFocus:(0,a.Mj)(e.onFocus,e=>{let t=!S.current;if(e.target===e.currentTarget&&t&&!F){let t=new CustomEvent(v,m);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=N().filter(e=>e.focusable);Z([e.find(e=>e.active),e.find(e=>e.id===R),...e].filter(Boolean).map(e=>e.ref.current),x)}}S.current=!1}),onBlur:(0,a.Mj)(e.onBlur,()=>I(!1))})})}),C="RovingFocusGroupItem",T=r.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:o=!0,active:i=!1,tabStopId:u,children:s,...f}=e,d=(0,l.M)(),v=u||d,m=x(C,n),p=m.currentTabStopId===v,g=b(n),{onFocusableItemAdd:w,onFocusableItemRemove:M,currentTabStopId:k}=m;return r.useEffect(()=>{if(o)return w(),()=>M()},[o,w,M]),(0,h.jsx)(y.ItemSlot,{scope:n,id:v,focusable:o,active:i,children:(0,h.jsx)(c.WV.span,{tabIndex:p?0:-1,"data-orientation":m.orientation,...f,ref:t,onMouseDown:(0,a.Mj)(e.onMouseDown,e=>{o?m.onItemFocus(v):e.preventDefault()}),onFocus:(0,a.Mj)(e.onFocus,()=>m.onItemFocus(v)),onKeyDown:(0,a.Mj)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey){m.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=function(e,t,n){var r;let a=(r=e.key,"rtl"!==n?r:"ArrowLeft"===r?"ArrowRight":"ArrowRight"===r?"ArrowLeft":r);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(a))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(a)))return R[a]}(e,m.orientation,m.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let a=g().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)a.reverse();else if("prev"===t||"next"===t){var n,r;"prev"===t&&a.reverse();let o=a.indexOf(e.currentTarget);a=m.loop?(n=a,r=o+1,n.map((e,t)=>n[(r+t)%n.length])):a.slice(o+1)}setTimeout(()=>Z(a))}}),children:"function"==typeof s?s({isCurrentTabStop:p,hasTabStop:null!=k}):s})})});T.displayName=C;var R={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Z(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}var A=D,F=T},20271:function(e,t,n){n.d(t,{VY:function(){return F},aV:function(){return Z},fC:function(){return R},xz:function(){return A}});var r=n(2265),a=n(6741),o=n(73966),i=n(1353),u=n(71599),l=n(82912),c=n(29114),s=n(80886),f=n(99255),d=n(57437),h="Tabs",[v,m]=(0,o.b)(h,[i.Pc]),p=(0,i.Pc)(),[y,b]=v(h),g=r.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,onValueChange:a,defaultValue:o,orientation:i="horizontal",dir:u,activationMode:v="automatic",...m}=e,p=(0,c.gm)(u),[b,g]=(0,s.T)({prop:r,onChange:a,defaultProp:null!=o?o:"",caller:h});return(0,d.jsx)(y,{scope:n,baseId:(0,f.M)(),value:b,onValueChange:g,orientation:i,dir:p,activationMode:v,children:(0,d.jsx)(l.WV.div,{dir:p,"data-orientation":i,...m,ref:t})})});g.displayName=h;var w="TabsList",M=r.forwardRef((e,t)=>{let{__scopeTabs:n,loop:r=!0,...a}=e,o=b(w,n),u=p(n);return(0,d.jsx)(i.fC,{asChild:!0,...u,orientation:o.orientation,dir:o.dir,loop:r,children:(0,d.jsx)(l.WV.div,{role:"tablist","aria-orientation":o.orientation,...a,ref:t})})});M.displayName=w;var k="TabsTrigger",x=r.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,disabled:o=!1,...u}=e,c=b(k,n),s=p(n),f=C(c.baseId,r),h=T(c.baseId,r),v=r===c.value;return(0,d.jsx)(i.ck,{asChild:!0,...s,focusable:!o,active:v,children:(0,d.jsx)(l.WV.button,{type:"button",role:"tab","aria-selected":v,"aria-controls":h,"data-state":v?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:f,...u,ref:t,onMouseDown:(0,a.Mj)(e.onMouseDown,e=>{o||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(r)}),onKeyDown:(0,a.Mj)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(r)}),onFocus:(0,a.Mj)(e.onFocus,()=>{let e="manual"!==c.activationMode;v||o||!e||c.onValueChange(r)})})})});x.displayName=k;var D="TabsContent",j=r.forwardRef((e,t)=>{let{__scopeTabs:n,value:a,forceMount:o,children:i,...c}=e,s=b(D,n),f=C(s.baseId,a),h=T(s.baseId,a),v=a===s.value,m=r.useRef(v);return r.useEffect(()=>{let e=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,d.jsx)(u.z,{present:o||v,children:n=>{let{present:r}=n;return(0,d.jsx)(l.WV.div,{"data-state":v?"active":"inactive","data-orientation":s.orientation,role:"tabpanel","aria-labelledby":f,hidden:!r,id:h,tabIndex:0,...c,ref:t,style:{...e.style,animationDuration:m.current?"0s":void 0},children:r&&i})}})});function C(e,t){return"".concat(e,"-trigger-").concat(t)}function T(e,t){return"".concat(e,"-content-").concat(t)}j.displayName=D;var R=g,Z=M,A=x,F=j},7598:function(e,t,n){n.d(t,{Q:function(){return d}});var r=n(63497),a=n(99649);function o(e,t){let n=(0,a.Q)(e),r=(0,a.Q)(t),o=n.getTime()-r.getTime();return o<0?-1:o>0?1:o}var i=n(78198),u=n(81363),l=n(27742),c=n(5654),s=n(55528),f=n(9340);function d(e,t){return function(e,t,n){var r,d,h,v,m,p;let y,b,g;let w=(0,s.j)(),M=null!==(d=null!==(r=null==n?void 0:n.locale)&&void 0!==r?r:w.locale)&&void 0!==d?d:c._,k=o(e,t);if(isNaN(k))throw RangeError("Invalid time value");let x=Object.assign({},n,{addSuffix:null==n?void 0:n.addSuffix,comparison:k});k>0?(y=(0,a.Q)(t),b=(0,a.Q)(e)):(y=(0,a.Q)(e),b=(0,a.Q)(t));let D=(h=b,v=y,(p=null==void 0?void 0:(void 0).roundingMethod,e=>{let t=(p?Math[p]:Math.trunc)(e);return 0===t?0:t})((+(0,a.Q)(h)-+(0,a.Q)(v))/1e3)),j=Math.round((D-((0,f.D)(b)-(0,f.D)(y))/1e3)/60);if(j<2){if(null==n?void 0:n.includeSeconds){if(D<5)return M.formatDistance("lessThanXSeconds",5,x);if(D<10)return M.formatDistance("lessThanXSeconds",10,x);if(D<20)return M.formatDistance("lessThanXSeconds",20,x);if(D<40)return M.formatDistance("halfAMinute",0,x);else if(D<60)return M.formatDistance("lessThanXMinutes",1,x);else return M.formatDistance("xMinutes",1,x)}return 0===j?M.formatDistance("lessThanXMinutes",1,x):M.formatDistance("xMinutes",j,x)}if(j<45)return M.formatDistance("xMinutes",j,x);if(j<90)return M.formatDistance("aboutXHours",1,x);if(j<i.H_)return M.formatDistance("aboutXHours",Math.round(j/60),x);if(j<2520)return M.formatDistance("xDays",1,x);if(j<i.fH){let e=Math.round(j/i.H_);return M.formatDistance("xDays",e,x)}if(j<2*i.fH)return g=Math.round(j/i.fH),M.formatDistance("aboutXMonths",g,x);if((g=function(e,t){let n;let r=(0,a.Q)(e),i=(0,a.Q)(t),c=o(r,i),s=Math.abs((0,u.T)(r,i));if(s<1)n=0;else{1===r.getMonth()&&r.getDate()>27&&r.setDate(30),r.setMonth(r.getMonth()-c*s);let t=o(r,i)===-c;(function(e){let t=(0,a.Q)(e);return+function(e){let t=(0,a.Q)(e);return t.setHours(23,59,59,999),t}(t)==+(0,l.V)(t)})((0,a.Q)(e))&&1===s&&1===o(e,i)&&(t=!1),n=c*(s-Number(t))}return 0===n?0:n}(b,y))<12){let e=Math.round(j/i.fH);return M.formatDistance("xMonths",e,x)}{let e=g%12,t=Math.trunc(g/12);return e<3?M.formatDistance("aboutXYears",t,x):e<9?M.formatDistance("overXYears",t,x):M.formatDistance("almostXYears",t+1,x)}}(e,(0,r.L)(e,Date.now()),t)}}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6547],{24654:function(){},69174:function(e,t,r){"use strict";r.d(t,{C:function(){return l}});var a=r(57437);r(2265);var n=r(90535),s=r(93448);let o=(0,n.j)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function l(e){let{className:t,variant:r,...n}=e;return(0,a.jsx)("div",{className:(0,s.cn)(o({variant:r}),t),...n})}},12381:function(e,t,r){"use strict";r.d(t,{d:function(){return i},z:function(){return d}});var a=r(57437),n=r(2265),s=r(37053),o=r(90535),l=r(93448);let i=(0,o.j)("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),d=n.forwardRef((e,t)=>{let{className:r,variant:n,size:o,asChild:d=!1,...c}=e,u=d?s.g7:"button";return(0,a.jsx)(u,{className:(0,l.cn)(i({variant:n,size:o,className:r})),ref:t,...c})});d.displayName="Button"},79820:function(e,t,r){"use strict";r.d(t,{Ol:function(){return l},SZ:function(){return d},Zb:function(){return o},aY:function(){return c},eW:function(){return u},ll:function(){return i}});var a=r(57437),n=r(2265),s=r(93448);let o=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("div",{ref:t,className:(0,s.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",r),...n})});o.displayName="Card";let l=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("div",{ref:t,className:(0,s.cn)("flex flex-col space-y-1 p-4",r),...n})});l.displayName="CardHeader";let i=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("h3",{ref:t,className:(0,s.cn)("text-lg font-semibold leading-none tracking-tight",r),...n})});i.displayName="CardTitle";let d=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("p",{ref:t,className:(0,s.cn)("text-sm text-muted-foreground",r),...n})});d.displayName="CardDescription";let c=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("div",{ref:t,className:(0,s.cn)("p-4 pt-0",r),...n})});c.displayName="CardContent";let u=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("div",{ref:t,className:(0,s.cn)("flex items-center p-4 pt-0",r),...n})});u.displayName="CardFooter"},74291:function(e,t,r){"use strict";r.d(t,{$N:function(){return x},Be:function(){return g},Vq:function(){return i},cN:function(){return p},cZ:function(){return f},fK:function(){return m},hg:function(){return d}});var a=r(57437),n=r(2265),s=r(70001),o=r(32489),l=r(93448);let i=s.fC,d=s.xz,c=s.h_;s.x8;let u=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.aV,{ref:t,className:(0,l.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...n})});u.displayName=s.aV.displayName;let f=n.forwardRef((e,t)=>{let{className:r,children:n,...i}=e;return(0,a.jsxs)(c,{children:[(0,a.jsx)(u,{}),(0,a.jsxs)(s.VY,{ref:t,className:(0,l.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",r),...i,children:[n,(0,a.jsxs)(s.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,a.jsx)(o.Z,{className:"h-4 w-4"}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});f.displayName=s.VY.displayName;let m=e=>{let{className:t,...r}=e;return(0,a.jsx)("div",{className:(0,l.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...r})};m.displayName="DialogHeader";let p=e=>{let{className:t,...r}=e;return(0,a.jsx)("div",{className:(0,l.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...r})};p.displayName="DialogFooter";let x=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.Dx,{ref:t,className:(0,l.cn)("text-lg font-semibold leading-none tracking-tight",r),...n})});x.displayName=s.Dx.displayName;let g=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.dk,{ref:t,className:(0,l.cn)("text-sm text-muted-foreground",r),...n})});g.displayName=s.dk.displayName},43368:function(e,t,r){"use strict";r.d(t,{t:function(){return u}});var a=r(57437),n=r(2265),s=r(73247),o=r(32489),l=r(93448),i=r(40279),d=r(12381),c=r(74291);let u=e=>{let{value:t,onChange:r,placeholder:u="Search...",className:f,expandedWidth:m="w-64"}=e,[p,x]=n.useState(!1),g=n.useRef(null),b=()=>{r("")};return n.useEffect(()=>{p&&setTimeout(()=>{var e;return null===(e=g.current)||void 0===e?void 0:e.focus()},100)},[p]),(0,a.jsxs)("div",{className:(0,l.cn)("relative",f),children:[(0,a.jsxs)("div",{className:"sm:hidden",children:[(0,a.jsxs)(d.z,{variant:t?"default":"outline",size:"icon",onClick:()=>{x(!0)},className:"relative",children:[(0,a.jsx)(s.Z,{className:"h-4 w-4"}),t&&(0,a.jsx)("span",{className:"absolute -top-1 -right-1 h-2 w-2 bg-primary rounded-full border-2 border-background"})]}),(0,a.jsx)(c.Vq,{open:p,onOpenChange:x,children:(0,a.jsxs)(c.cZ,{className:"sm:max-w-md top-[10%] translate-y-0",children:[(0,a.jsx)(c.fK,{children:(0,a.jsx)(c.$N,{children:"Search"})}),(0,a.jsx)("div",{className:"flex items-center gap-2",children:(0,a.jsxs)("div",{className:"relative flex-1",children:[(0,a.jsx)(s.Z,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),(0,a.jsx)(i.I,{ref:g,placeholder:u,value:t,onChange:e=>r(e.target.value),className:"pl-9 pr-9 h-10"}),t&&(0,a.jsx)(d.z,{variant:"ghost",size:"icon",className:"absolute right-0 top-0 h-10 w-10",onClick:b,children:(0,a.jsx)(o.Z,{className:"h-4 w-4"})})]})}),(0,a.jsxs)("div",{className:"flex justify-end gap-2 mt-2",children:[t&&(0,a.jsx)(d.z,{variant:"outline",size:"sm",onClick:b,children:"Clear"}),(0,a.jsx)(d.z,{size:"sm",onClick:()=>{x(!1)},children:"Done"})]})]})})]}),(0,a.jsxs)("div",{className:(0,l.cn)("hidden sm:block relative",m),children:[(0,a.jsx)(s.Z,{className:"absolute left-2 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),(0,a.jsx)(i.I,{placeholder:u,value:t,onChange:e=>r(e.target.value),className:"pl-8 h-9"}),t&&(0,a.jsx)(d.z,{variant:"ghost",size:"icon",className:"absolute right-0 top-0 h-9 w-9",onClick:b,children:(0,a.jsx)(o.Z,{className:"h-4 w-4"})})]})]})}},40279:function(e,t,r){"use strict";r.d(t,{I:function(){return o}});var a=r(57437),n=r(2265),s=r(93448);let o=n.forwardRef((e,t)=>{let{className:r,type:n,...o}=e;return(0,a.jsx)("input",{type:n,className:(0,s.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",r),ref:t,...o})});o.displayName="Input"},75060:function(e,t,r){"use strict";r.d(t,{_:function(){return d}});var a=r(57437),n=r(2265),s=r(370),o=r(90535),l=r(93448);let i=(0,o.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.f,{ref:t,className:(0,l.cn)(i(),r),...n})});d.displayName=s.f.displayName},90641:function(e,t,r){"use strict";r.d(t,{x:function(){return l}});var a=r(57437),n=r(2265),s=r(43643),o=r(93448);let l=n.forwardRef((e,t)=>{let{className:r,children:n,...l}=e;return(0,a.jsxs)(s.fC,{ref:t,className:(0,o.cn)("relative overflow-hidden",r),...l,children:[(0,a.jsx)(s.l_,{className:"h-full w-full rounded-[inherit]",children:n}),(0,a.jsx)(i,{}),(0,a.jsx)(s.Ns,{})]})});l.displayName=s.fC.displayName;let i=n.forwardRef((e,t)=>{let{className:r,orientation:n="vertical",...l}=e;return(0,a.jsx)(s.gb,{ref:t,orientation:n,className:(0,o.cn)("flex touch-none select-none transition-colors","vertical"===n&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===n&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",r),...l,children:(0,a.jsx)(s.q4,{className:"relative flex-1 rounded-full bg-border"})})});i.displayName=s.gb.displayName},15291:function(e,t,r){"use strict";r.d(t,{Bw:function(){return g},DI:function(){return u},Ph:function(){return c},Ql:function(){return h},i4:function(){return m},ki:function(){return f},n5:function(){return b}});var a=r(57437),n=r(2265),s=r(74797),o=r(40875),l=r(22135),i=r(30401),d=r(93448);let c=s.fC,u=s.ZA,f=s.B4,m=n.forwardRef((e,t)=>{let{className:r,children:n,...l}=e;return(0,a.jsxs)(s.xz,{ref:t,className:(0,d.cn)("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",r),...l,children:[n,(0,a.jsx)(s.JO,{asChild:!0,children:(0,a.jsx)(o.Z,{className:"h-4 w-4 opacity-50"})})]})});m.displayName=s.xz.displayName;let p=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.u_,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1",r),...n,children:(0,a.jsx)(l.Z,{className:"h-4 w-4"})})});p.displayName=s.u_.displayName;let x=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.$G,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1",r),...n,children:(0,a.jsx)(o.Z,{className:"h-4 w-4"})})});x.displayName=s.$G.displayName;let g=n.forwardRef((e,t)=>{let{className:r,children:n,position:o="popper",...l}=e;return(0,a.jsx)(s.h_,{children:(0,a.jsxs)(s.VY,{ref:t,className:(0,d.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===o&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",r),position:o,...l,children:[(0,a.jsx)(p,{}),(0,a.jsx)(s.l_,{className:(0,d.cn)("p-1 max-h-[300px] overflow-y-auto","popper"===o&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),style:{overscrollBehavior:"contain",touchAction:"pan-y",WebkitOverflowScrolling:"touch",willChange:"scroll-position",pointerEvents:"auto"},children:n}),(0,a.jsx)(x,{})]})})});g.displayName=s.VY.displayName;let b=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.__,{ref:t,className:(0,d.cn)("py-1.5 pl-8 pr-2 text-sm font-semibold",r),...n})});b.displayName=s.__.displayName;let h=n.forwardRef((e,t)=>{let{className:r,children:n,...o}=e;return(0,a.jsxs)(s.ck,{ref:t,className:(0,d.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r),...o,children:[(0,a.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,a.jsx)(s.wU,{children:(0,a.jsx)(i.Z,{className:"h-4 w-4"})})}),(0,a.jsx)(s.eT,{children:n})]})});h.displayName=s.ck.displayName,n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.Z0,{ref:t,className:(0,d.cn)("-mx-1 my-1 h-px bg-muted",r),...n})}).displayName=s.Z0.displayName},33804:function(e,t,r){"use strict";r.d(t,{RM:function(){return i},SC:function(){return d},iA:function(){return o},pj:function(){return u},ss:function(){return c},xD:function(){return l}});var a=r(57437),n=r(2265),s=r(93448);let o=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("div",{className:"relative w-full overflow-auto",children:(0,a.jsx)("table",{ref:t,className:(0,s.cn)("w-full caption-bottom text-sm",r),...n})})});o.displayName="Table";let l=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("thead",{ref:t,className:(0,s.cn)("[&_tr]:border-b",r),...n})});l.displayName="TableHeader";let i=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("tbody",{ref:t,className:(0,s.cn)("[&_tr:last-child]:border-0",r),...n})});i.displayName="TableBody",n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("tfoot",{ref:t,className:(0,s.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",r),...n})}).displayName="TableFooter";let d=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("tr",{ref:t,className:(0,s.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",r),...n})});d.displayName="TableRow";let c=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("th",{ref:t,className:(0,s.cn)("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",r),...n})});c.displayName="TableHead";let u=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("td",{ref:t,className:(0,s.cn)("p-4 align-middle [&:has([role=checkbox])]:pr-0",r),...n})});u.displayName="TableCell",n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("caption",{ref:t,className:(0,s.cn)("mt-4 text-sm text-muted-foreground",r),...n})}).displayName="TableCaption"},23675:function(e,t,r){"use strict";r.d(t,{g:function(){return o}});var a=r(57437),n=r(2265),s=r(93448);let o=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("textarea",{className:(0,s.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",r),ref:t,...n})});o.displayName="Textarea"},93448:function(e,t,r){"use strict";r.d(t,{cn:function(){return s}});var a=r(61994),n=r(53335);function s(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,n.m6)((0,a.W)(t))}}}]);