@aphexcms/cms-core 0.1.16 → 0.1.17

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.
@@ -132,7 +132,9 @@ export function generateTypes(schemas) {
132
132
  const objectSchemas = schemas.filter((s) => s.type === 'object');
133
133
  // Generate interfaces for all schemas
134
134
  const objectInterfaces = objectSchemas.map((s) => generateInterface(s, schemaMap)).join('\n\n');
135
- const documentInterfaces = documentSchemas.map((s) => generateInterface(s, schemaMap)).join('\n\n');
135
+ const documentInterfaces = documentSchemas
136
+ .map((s) => generateInterface(s, schemaMap))
137
+ .join('\n\n');
136
138
  // Generate Collections interface augmentation
137
139
  const collectionsAugmentation = generateCollectionsAugmentation(documentSchemas);
138
140
  // Build the complete file
@@ -1,10 +1,15 @@
1
1
  <script lang="ts">
2
2
  import { Button } from '@aphexcms/ui/shadcn/button';
3
+ import { Input } from '@aphexcms/ui/shadcn/input';
4
+ import { Textarea } from '@aphexcms/ui/shadcn/textarea';
5
+ import { Checkbox } from '@aphexcms/ui/shadcn/checkbox';
3
6
  import * as DropdownMenu from '@aphexcms/ui/shadcn/dropdown-menu';
7
+ import * as Card from '@aphexcms/ui/shadcn/card';
4
8
  import type { ArrayField as ArrayFieldType, SchemaType } from '../../../types/schemas';
5
9
  import { getArrayTypes, getSchemaByName } from '../../../schema-utils/utils';
6
10
  import { getSchemaContext } from '../../../schema-context.svelte';
7
11
  import ObjectModal from '../ObjectModal.svelte';
12
+ import ImageField from './ImageField.svelte';
8
13
 
9
14
  interface Props {
10
15
  field: ArrayFieldType;
@@ -19,19 +24,72 @@
19
24
  // Get schemas from context
20
25
  const schemas = getSchemaContext();
21
26
 
22
- // Get available types for this array field
27
+ // Determine if this is a primitive array or object array
28
+ // If the type is not found in schemas, it's a primitive type
29
+ const isPrimitiveArray = $derived(
30
+ field.of && field.of.length > 0 && field.of[0]?.type && !getSchemaByName(schemas, field.of[0].type)
31
+ );
32
+ const primitiveType = $derived(isPrimitiveArray ? field.of?.[0]?.type : null);
33
+
34
+ // Get available types for this array field (for object arrays)
23
35
  const availableTypes = $derived(getArrayTypes(schemas, field));
24
36
 
25
- // Modal state
37
+ // Modal state (for object arrays)
26
38
  let modalOpen = $state(false);
27
39
  let editingIndex = $state<number | null>(null);
28
40
  let editingType = $state<string | null>(null);
29
41
  let editingSchema = $state<SchemaType | null>(null);
30
42
  let editingValue = $state<Record<string, any>>({});
31
43
 
44
+ // Image modal state
45
+ let imageModalOpen = $state(false);
46
+ let imageModalValue = $state<any>(null);
47
+
32
48
  // Ensure value is always an array
33
49
  const arrayValue = $derived(Array.isArray(value) ? value : []);
34
50
 
51
+ // Primitive array functions
52
+ function handleAddPrimitive() {
53
+ if (readonly) return;
54
+
55
+ // For images, open the modal
56
+ if (primitiveType === 'image') {
57
+ imageModalValue = null;
58
+ imageModalOpen = true;
59
+ return;
60
+ }
61
+
62
+ // For other primitives, add a new empty item
63
+ const newArray = [...arrayValue];
64
+ const defaultValue = primitiveType === 'boolean' ? false : primitiveType === 'number' ? 0 : '';
65
+ newArray.push(defaultValue);
66
+ onUpdate(newArray);
67
+ }
68
+
69
+ function handleUpdatePrimitive(index: number, newValue: any) {
70
+ if (readonly) return;
71
+ const newArray = [...arrayValue];
72
+ newArray[index] = newValue;
73
+ onUpdate(newArray);
74
+ }
75
+
76
+ function handleImageModalClose() {
77
+ imageModalOpen = false;
78
+ imageModalValue = null;
79
+ }
80
+
81
+ function handleImageUpload(newValue: any) {
82
+ if (newValue) {
83
+ // Auto-add the image to the array
84
+ const newArray = [...arrayValue, newValue];
85
+ onUpdate(newArray);
86
+ // Close the modal
87
+ imageModalOpen = false;
88
+ imageModalValue = null;
89
+ }
90
+ }
91
+
92
+ // Object array functions
35
93
  function handleTypeSelected(selectedType: string) {
36
94
  if (readonly || !selectedType) return;
37
95
 
@@ -135,120 +193,249 @@
135
193
  <div class="border-border space-y-4 rounded-md border p-4">
136
194
  <h4 class="text-sm font-medium">{field.title}</h4>
137
195
 
138
- <!-- Array items -->
139
- {#if arrayValue.length > 0}
140
- <div class="space-y-2">
141
- {#each arrayValue as item, index (index)}
142
- <div class="border-border/50 space-y-2 rounded border p-3">
143
- <div class="flex items-center justify-between">
144
- <div class="flex items-center gap-2">
196
+ {#if isPrimitiveArray}
197
+ <!-- Primitive array UI -->
198
+ {#if arrayValue.length === 0}
199
+ <!-- Empty state -->
200
+ <div class="border-border/50 bg-muted/30 flex items-center justify-center rounded border border-dashed p-6">
201
+ <p class="text-muted-foreground text-sm">No items</p>
202
+ </div>
203
+ {:else}
204
+ <div class="space-y-2">
205
+ {#each arrayValue as item, index (index)}
206
+ {#if primitiveType === 'image'}
207
+ <!-- Image item in compact mode -->
208
+ <ImageField
209
+ field={{
210
+ ...field.of?.[0],
211
+ name: `image-${index}`,
212
+ type: 'image',
213
+ title: `Image ${index + 1}`
214
+ }}
215
+ value={item}
216
+ onUpdate={(newValue) => {
217
+ const newArray = [...arrayValue];
218
+ if (newValue === null) {
219
+ // Remove the image if null
220
+ newArray.splice(index, 1);
221
+ } else {
222
+ newArray[index] = newValue;
223
+ }
224
+ onUpdate(newArray);
225
+ }}
226
+ {readonly}
227
+ compact={true}
228
+ />
229
+ {:else}
230
+ <!-- Always-editable primitive with options menu -->
231
+ <div class="border-border/50 flex items-center gap-2 rounded border p-2">
145
232
  <span class="text-muted-foreground text-xs">#{index + 1}</span>
146
- <h5 class="text-sm font-medium">{getItemTitle(item)}</h5>
147
- {#if item._type}
148
- <span class="bg-muted rounded px-2 py-1 text-xs">{item._type}</span>
233
+ {#if primitiveType === 'boolean'}
234
+ <div class="flex flex-1 items-center gap-2">
235
+ <Checkbox
236
+ checked={item}
237
+ onCheckedChange={(checked) => handleUpdatePrimitive(index, checked)}
238
+ disabled={readonly}
239
+ />
240
+ <span class="text-sm">{item ? 'True' : 'False'}</span>
241
+ </div>
242
+ {:else if primitiveType === 'text'}
243
+ <Textarea
244
+ value={item}
245
+ oninput={(e) => handleUpdatePrimitive(index, e.currentTarget.value)}
246
+ readonly={readonly}
247
+ class="flex-1"
248
+ rows={3}
249
+ placeholder="Enter text..."
250
+ />
251
+ {:else if primitiveType === 'number'}
252
+ <Input
253
+ type="number"
254
+ value={item}
255
+ oninput={(e) => handleUpdatePrimitive(index, parseFloat(e.currentTarget.value) || 0)}
256
+ readonly={readonly}
257
+ class="flex-1"
258
+ placeholder="Enter number..."
259
+ />
260
+ {:else}
261
+ <Input
262
+ value={item}
263
+ oninput={(e) => handleUpdatePrimitive(index, e.currentTarget.value)}
264
+ readonly={readonly}
265
+ class="flex-1"
266
+ placeholder="Enter value..."
267
+ />
268
+ {/if}
269
+ {#if !readonly}
270
+ <DropdownMenu.Root>
271
+ <DropdownMenu.Trigger>
272
+ <Button variant="ghost" size="sm" class="h-8 w-8 p-0">
273
+ <svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
274
+ <path
275
+ stroke-linecap="round"
276
+ stroke-linejoin="round"
277
+ stroke-width="2"
278
+ d="M12 5v.01M12 12v.01M12 19v.01M12 6a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2z"
279
+ />
280
+ </svg>
281
+ </Button>
282
+ </DropdownMenu.Trigger>
283
+ <DropdownMenu.Content align="end">
284
+ <DropdownMenu.Item onclick={() => handleRemoveItem(index)}>
285
+ <svg class="mr-2 h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
286
+ <path
287
+ stroke-linecap="round"
288
+ stroke-linejoin="round"
289
+ stroke-width="2"
290
+ d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"
291
+ />
292
+ </svg>
293
+ Remove
294
+ </DropdownMenu.Item>
295
+ </DropdownMenu.Content>
296
+ </DropdownMenu.Root>
149
297
  {/if}
150
298
  </div>
151
- <div class="flex items-center gap-2">
152
- <Button
153
- variant="ghost"
154
- size="sm"
155
- onclick={() => {
156
- handleEditItem(index);
157
- }}
158
- class="h-8 w-8 p-0"
159
- title={readonly ? 'View item' : 'Edit item'}
160
- >
161
- {#if readonly}
162
- <svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
163
- <path
164
- stroke-linecap="round"
165
- stroke-linejoin="round"
166
- stroke-width="2"
167
- d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"
168
- />
169
- <path
170
- stroke-linecap="round"
171
- stroke-linejoin="round"
172
- stroke-width="2"
173
- d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"
174
- />
175
- </svg>
176
- {:else}
177
- <svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
178
- <path
179
- stroke-linecap="round"
180
- stroke-linejoin="round"
181
- stroke-width="2"
182
- d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
183
- />
184
- </svg>
299
+ {/if}
300
+ {/each}
301
+ </div>
302
+ {/if}
303
+
304
+ <!-- Add primitive item section -->
305
+ {#if !readonly}
306
+ <Button variant="outline" class="w-full" onclick={handleAddPrimitive}>
307
+ <svg class="mr-2 h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
308
+ <path
309
+ stroke-linecap="round"
310
+ stroke-linejoin="round"
311
+ stroke-width="2"
312
+ d="M12 4v16m8-8H4"
313
+ />
314
+ </svg>
315
+ Add Item
316
+ </Button>
317
+ {/if}
318
+ {:else}
319
+ <!-- Object array UI (existing code) -->
320
+ {#if arrayValue.length === 0}
321
+ <!-- Empty state -->
322
+ <div class="border-border/50 bg-muted/30 flex items-center justify-center rounded border border-dashed p-6">
323
+ <p class="text-muted-foreground text-sm">No items</p>
324
+ </div>
325
+ {:else}
326
+ <div class="space-y-2">
327
+ {#each arrayValue as item, index (index)}
328
+ <div class="border-border/50 space-y-2 rounded border p-3">
329
+ <div class="flex items-center justify-between">
330
+ <div class="flex items-center gap-2">
331
+ <span class="text-muted-foreground text-xs">#{index + 1}</span>
332
+ <h5 class="text-sm font-medium">{getItemTitle(item)}</h5>
333
+ {#if item._type}
334
+ <span class="bg-muted rounded px-2 py-1 text-xs">{item._type}</span>
185
335
  {/if}
186
- </Button>
187
-
188
- {#if !readonly}
336
+ </div>
337
+ <div class="flex items-center gap-2">
189
338
  <Button
190
339
  variant="ghost"
191
340
  size="sm"
192
- onclick={() => handleRemoveItem(index)}
193
- class="text-destructive hover:text-destructive h-8 w-8 p-0"
194
- title="Remove item"
341
+ onclick={() => {
342
+ handleEditItem(index);
343
+ }}
344
+ class="h-8 w-8 p-0"
345
+ title={readonly ? 'View item' : 'Edit item'}
195
346
  >
196
- <svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
197
- <path
198
- stroke-linecap="round"
199
- stroke-linejoin="round"
200
- stroke-width="2"
201
- d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"
202
- />
203
- </svg>
347
+ {#if readonly}
348
+ <svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
349
+ <path
350
+ stroke-linecap="round"
351
+ stroke-linejoin="round"
352
+ stroke-width="2"
353
+ d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"
354
+ />
355
+ <path
356
+ stroke-linecap="round"
357
+ stroke-linejoin="round"
358
+ stroke-width="2"
359
+ d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"
360
+ />
361
+ </svg>
362
+ {:else}
363
+ <svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
364
+ <path
365
+ stroke-linecap="round"
366
+ stroke-linejoin="round"
367
+ stroke-width="2"
368
+ d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
369
+ />
370
+ </svg>
371
+ {/if}
204
372
  </Button>
205
- {/if}
373
+
374
+ {#if !readonly}
375
+ <Button
376
+ variant="ghost"
377
+ size="sm"
378
+ onclick={() => handleRemoveItem(index)}
379
+ class="text-destructive hover:text-destructive h-8 w-8 p-0"
380
+ title="Remove item"
381
+ >
382
+ <svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
383
+ <path
384
+ stroke-linecap="round"
385
+ stroke-linejoin="round"
386
+ stroke-width="2"
387
+ d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"
388
+ />
389
+ </svg>
390
+ </Button>
391
+ {/if}
392
+ </div>
206
393
  </div>
207
- </div>
208
394
 
209
- <!-- Show a preview of the item content -->
210
- <div class="text-muted-foreground pl-6 text-xs">
211
- {#if item.title || item.heading}
212
- {item.title || item.heading}
213
- {:else if item.description}
214
- {item.description.substring(0, 100)}{item.description.length > 100 ? '...' : ''}
215
- {:else}
216
- {readonly ? 'Click view to see details' : 'Click edit to configure this item'}
217
- {/if}
395
+ <!-- Show a preview of the item content -->
396
+ <div class="text-muted-foreground pl-6 text-xs">
397
+ {#if item.title || item.heading}
398
+ {item.title || item.heading}
399
+ {:else if item.description}
400
+ {item.description.substring(0, 100)}{item.description.length > 100 ? '...' : ''}
401
+ {:else}
402
+ {readonly ? 'Click view to see details' : 'Click edit to configure this item'}
403
+ {/if}
404
+ </div>
218
405
  </div>
219
- </div>
220
- {/each}
221
- </div>
222
- {/if}
223
-
224
- <!-- Add Item section (hidden for read-only) -->
225
- {#if !readonly}
226
- <div class="border-border border-t pt-2">
227
- <DropdownMenu.Root>
228
- <DropdownMenu.Trigger>
229
- {#snippet child({ props })}
230
- <Button {...props} variant="outline" class="w-full cursor-pointer">
231
- <svg class="mr-2 h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
232
- <path
233
- stroke-linecap="round"
234
- stroke-linejoin="round"
235
- stroke-width="2"
236
- d="M12 4v16m8-8H4"
237
- />
238
- </svg>
239
- Add Item
240
- </Button>
241
- {/snippet}
242
- </DropdownMenu.Trigger>
243
- <DropdownMenu.Content class="w-56">
244
- {#each availableTypes as type, index (index)}
245
- <DropdownMenu.Item onclick={() => handleTypeSelected(type.name)}>
246
- {type.title}
247
- </DropdownMenu.Item>
248
- {/each}
249
- </DropdownMenu.Content>
250
- </DropdownMenu.Root>
251
- </div>
406
+ {/each}
407
+ </div>
408
+ {/if}
409
+
410
+ <!-- Add Item section (hidden for read-only) -->
411
+ {#if !readonly}
412
+ <div class="border-border border-t pt-2">
413
+ <DropdownMenu.Root>
414
+ <DropdownMenu.Trigger>
415
+ {#snippet child({ props })}
416
+ <Button {...props} variant="outline" class="w-full cursor-pointer">
417
+ <svg class="mr-2 h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
418
+ <path
419
+ stroke-linecap="round"
420
+ stroke-linejoin="round"
421
+ stroke-width="2"
422
+ d="M12 4v16m8-8H4"
423
+ />
424
+ </svg>
425
+ Add Item
426
+ </Button>
427
+ {/snippet}
428
+ </DropdownMenu.Trigger>
429
+ <DropdownMenu.Content class="w-56">
430
+ {#each availableTypes as type, index (index)}
431
+ <DropdownMenu.Item onclick={() => handleTypeSelected(type.name)}>
432
+ {type.title}
433
+ </DropdownMenu.Item>
434
+ {/each}
435
+ </DropdownMenu.Content>
436
+ </DropdownMenu.Root>
437
+ </div>
438
+ {/if}
252
439
  {/if}
253
440
  </div>
254
441
 
@@ -264,3 +451,52 @@
264
451
  {readonly}
265
452
  />
266
453
  {/if}
454
+
455
+ <!-- Image upload modal -->
456
+ {#if imageModalOpen}
457
+ <div
458
+ class="bg-background/80 fixed bottom-0 left-0 right-0 top-12 z-[100] flex items-center justify-center p-6 backdrop-blur-xs sm:absolute sm:top-0 sm:p-4"
459
+ onclick={(e) => {
460
+ if (e.target === e.currentTarget) handleImageModalClose();
461
+ }}
462
+ onkeydown={(e) => {
463
+ if (e.key === 'Escape') handleImageModalClose();
464
+ }}
465
+ role="button"
466
+ tabindex="-1"
467
+ >
468
+ <Card.Root class="flex max-h-[85vh] w-full max-w-2xl flex-col overflow-hidden shadow-lg">
469
+ <Card.Header class="border-b">
470
+ <div class="flex items-center justify-between">
471
+ <div>
472
+ <Card.Title>{field.title} - Add Image</Card.Title>
473
+ <Card.Description>Upload a new image to add to the array</Card.Description>
474
+ </div>
475
+ <Button variant="ghost" size="icon" onclick={handleImageModalClose}>
476
+ <svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
477
+ <path
478
+ stroke-linecap="round"
479
+ stroke-linejoin="round"
480
+ stroke-width="2"
481
+ d="M6 18L18 6M6 6l12 12"
482
+ />
483
+ </svg>
484
+ </Button>
485
+ </div>
486
+ </Card.Header>
487
+
488
+ <Card.Content class="flex-1 overflow-auto">
489
+ <ImageField
490
+ field={{
491
+ ...field.of?.[0],
492
+ name: 'image',
493
+ type: 'image',
494
+ title: 'Image'
495
+ }}
496
+ value={imageModalValue}
497
+ onUpdate={handleImageUpload}
498
+ />
499
+ </Card.Content>
500
+ </Card.Root>
501
+ </div>
502
+ {/if}
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayField.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/admin/fields/ArrayField.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAc,MAAM,wBAAwB,CAAC;AAMtF,UAAU,KAAK;IACd,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AA0NF,QAAA,MAAM,UAAU,2CAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ArrayField.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/admin/fields/ArrayField.svelte.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAc,MAAM,wBAAwB,CAAC;AAOtF,UAAU,KAAK;IACd,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AA0YF,QAAA,MAAM,UAAU,2CAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
@@ -21,6 +21,7 @@
21
21
  schemaType?: string;
22
22
  fieldPath?: string;
23
23
  readonly?: boolean;
24
+ compact?: boolean; // Compact mode for arrays
24
25
  }
25
26
 
26
27
  let {
@@ -30,7 +31,8 @@
30
31
  validationClasses,
31
32
  schemaType,
32
33
  fieldPath,
33
- readonly = false
34
+ readonly = false,
35
+ compact = false
34
36
  }: Props = $props();
35
37
 
36
38
  // Component state
@@ -169,6 +171,11 @@
169
171
 
170
172
  // Get asset URL for preview
171
173
  const previewUrl = $derived(assetData?.url || null);
174
+
175
+ // Get display name for the image
176
+ const displayName = $derived(
177
+ assetData?.originalFilename || assetData?.filename || value?.asset?._ref || 'Image'
178
+ );
172
179
  </script>
173
180
 
174
181
  <!-- Hidden file input -->
@@ -180,138 +187,229 @@
180
187
  onchange={handleFileInputChange}
181
188
  />
182
189
 
183
- {#if value && value.asset}
184
- <!-- Image preview with controls -->
185
- <div class="border-border overflow-hidden rounded-md border {validationClasses}">
186
- <div class="group relative">
187
- <!-- Image preview (Sanity-style aspect ratio ~2.75:1) -->
188
- <div class="bg-muted flex items-center justify-center" style="aspect-ratio: 2.75 / 1;">
190
+ {#if compact}
191
+ <!-- Compact mode for arrays -->
192
+ {#if value && value.asset}
193
+ <!-- Compact image row with thumbnail -->
194
+ <div class="border-border flex items-center gap-3 rounded-md border p-2 {validationClasses}">
195
+ <!-- Thumbnail -->
196
+ <div class="bg-muted flex h-12 w-12 flex-shrink-0 items-center justify-center overflow-hidden rounded">
189
197
  {#if loadingAsset}
190
- <div class="text-muted-foreground flex flex-col items-center gap-2">
191
- <div class="border-primary h-8 w-8 animate-spin rounded-full border-b-2"></div>
192
- <span class="text-sm">Loading image...</span>
193
- </div>
198
+ <div class="border-primary h-4 w-4 animate-spin rounded-full border-b-2"></div>
194
199
  {:else if previewUrl}
195
200
  <img
196
201
  src={previewUrl}
197
- alt={assetData?.alt || 'Uploaded image'}
198
- class="h-full w-full object-contain"
202
+ alt={assetData?.alt || displayName}
203
+ class="h-full w-full object-cover"
199
204
  loading="lazy"
200
205
  />
201
206
  {:else}
202
- <div class="text-muted-foreground flex flex-col items-center gap-2">
203
- <ImageIcon size={32} />
204
- <span class="text-sm">Image: {value.asset._ref}</span>
205
- <span class="text-xs">Failed to load preview</span>
206
- </div>
207
+ <ImageIcon size={20} class="text-muted-foreground" />
207
208
  {/if}
208
209
  </div>
209
210
 
210
- <!-- Overlay controls (hidden for read-only) -->
211
+ <!-- File name -->
212
+ <div class="flex-1 overflow-hidden">
213
+ <p class="truncate text-sm font-medium">{displayName}</p>
214
+ {#if assetData?.size}
215
+ <p class="text-muted-foreground text-xs">
216
+ {(assetData.size / 1024).toFixed(1)} KB
217
+ </p>
218
+ {/if}
219
+ </div>
220
+
221
+ <!-- Options menu -->
211
222
  {#if !readonly}
212
- <div class="absolute inset-2 flex items-start justify-end gap-2">
213
- <DropdownMenu>
214
- <DropdownMenuTrigger><Ellipsis /></DropdownMenuTrigger>
215
- <DropdownMenuContent>
216
- <DropdownMenuGroup>
217
- <DropdownMenuLabel
218
- ><Button
219
- variant="secondary"
220
- size="sm"
221
- onclick={openFileDialog}
222
- disabled={isUploading}
223
- >
224
- <Upload size={16} class="mr-1" />
225
- Replace
226
- </Button></DropdownMenuLabel
223
+ <DropdownMenu>
224
+ <DropdownMenuTrigger>
225
+ <Button variant="ghost" size="sm" class="h-8 w-8 p-0">
226
+ <Ellipsis size={16} />
227
+ </Button>
228
+ </DropdownMenuTrigger>
229
+ <DropdownMenuContent align="end">
230
+ <DropdownMenuGroup>
231
+ <DropdownMenuLabel>
232
+ <Button
233
+ variant="ghost"
234
+ size="sm"
235
+ onclick={openFileDialog}
236
+ disabled={isUploading}
237
+ class="w-full justify-start"
227
238
  >
228
- <DropdownMenuLabel
229
- ><Button
230
- variant="destructive"
231
- size="sm"
232
- onclick={removeImage}
233
- disabled={isUploading}
234
- >
235
- <Trash2 size={16} class="mr-1" />
236
- Remove
237
- </Button></DropdownMenuLabel
239
+ <Upload size={16} class="mr-2" />
240
+ Replace
241
+ </Button>
242
+ </DropdownMenuLabel>
243
+ <DropdownMenuLabel>
244
+ <Button
245
+ variant="ghost"
246
+ size="sm"
247
+ onclick={removeImage}
248
+ disabled={isUploading}
249
+ class="text-destructive hover:text-destructive w-full justify-start"
238
250
  >
239
- </DropdownMenuGroup>
240
- </DropdownMenuContent>
241
- </DropdownMenu>
242
- </div>
251
+ <Trash2 size={16} class="mr-2" />
252
+ Remove
253
+ </Button>
254
+ </DropdownMenuLabel>
255
+ </DropdownMenuGroup>
256
+ </DropdownMenuContent>
257
+ </DropdownMenu>
243
258
  {/if}
244
259
  </div>
245
-
246
- <!-- Additional image controls/metadata could go here -->
247
- {#if field.fields}
248
- <div class="border-border space-y-2 border-t p-3">
249
- <!-- Custom fields like caption, alt text, etc. would be rendered here -->
250
- <p class="text-muted-foreground text-xs">Custom fields coming soon...</p>
251
- </div>
252
- {/if}
253
- </div>
260
+ {:else}
261
+ <!-- Compact upload button -->
262
+ <Button
263
+ variant="outline"
264
+ class="w-full justify-start"
265
+ onclick={openFileDialog}
266
+ disabled={isUploading || readonly}
267
+ type="button"
268
+ >
269
+ {#if isUploading}
270
+ <div class="border-primary mr-2 h-4 w-4 animate-spin rounded-full border-b-2"></div>
271
+ Uploading...
272
+ {:else}
273
+ <Upload size={16} class="mr-2" />
274
+ Upload Image
275
+ {/if}
276
+ </Button>
277
+ {/if}
254
278
  {:else}
255
- <!-- Sanity-style upload bar -->
256
- <div class="border-border overflow-hidden rounded-md border {validationClasses}">
257
- <div class="flex items-center">
258
- <!-- Drag and drop area (left side) -->
259
- <div
260
- class="flex-1 px-4 py-3 transition-colors {readonly
261
- ? ''
262
- : isDragging
263
- ? 'bg-primary/5'
264
- : 'hover:bg-muted/50'}"
265
- ondragover={readonly ? undefined : handleDragOver}
266
- ondragleave={readonly ? undefined : handleDragLeave}
267
- ondrop={readonly ? undefined : handleDrop}
268
- tabindex={readonly ? -1 : 0}
269
- role={readonly ? undefined : 'button'}
270
- >
271
- {#if isUploading}
272
- <div class="flex items-center gap-3">
273
- <div class="border-primary h-5 w-5 animate-spin rounded-full border-b-2"></div>
274
- <span class="text-muted-foreground text-sm">Uploading...</span>
275
- </div>
276
- {:else}
277
- <div class="flex items-center gap-3">
278
- <FileImage size={20} class="text-muted-foreground" />
279
- <span class="text-muted-foreground text-sm">
280
- {readonly ? 'No image' : isDragging ? 'Drop image here' : 'Drag or paste image here'}
281
- </span>
279
+ <!-- Full mode (original) -->
280
+ {#if value && value.asset}
281
+ <!-- Image preview with controls -->
282
+ <div class="border-border overflow-hidden rounded-md border {validationClasses}">
283
+ <div class="group relative">
284
+ <!-- Image preview (Sanity-style aspect ratio ~2.75:1) -->
285
+ <div class="bg-muted flex items-center justify-center" style="aspect-ratio: 2.75 / 1;">
286
+ {#if loadingAsset}
287
+ <div class="text-muted-foreground flex flex-col items-center gap-2">
288
+ <div class="border-primary h-8 w-8 animate-spin rounded-full border-b-2"></div>
289
+ <span class="text-sm">Loading image...</span>
290
+ </div>
291
+ {:else if previewUrl}
292
+ <img
293
+ src={previewUrl}
294
+ alt={assetData?.alt || 'Uploaded image'}
295
+ class="h-full w-full object-contain"
296
+ loading="lazy"
297
+ />
298
+ {:else}
299
+ <div class="text-muted-foreground flex flex-col items-center gap-2">
300
+ <ImageIcon size={32} />
301
+ <span class="text-sm">Image: {value.asset._ref}</span>
302
+ <span class="text-xs">Failed to load preview</span>
303
+ </div>
304
+ {/if}
305
+ </div>
306
+
307
+ <!-- Overlay controls (hidden for read-only) -->
308
+ {#if !readonly}
309
+ <div class="absolute inset-2 flex items-start justify-end gap-2">
310
+ <DropdownMenu>
311
+ <DropdownMenuTrigger><Ellipsis /></DropdownMenuTrigger>
312
+ <DropdownMenuContent>
313
+ <DropdownMenuGroup>
314
+ <DropdownMenuLabel
315
+ ><Button
316
+ variant="secondary"
317
+ size="sm"
318
+ onclick={openFileDialog}
319
+ disabled={isUploading}
320
+ >
321
+ <Upload size={16} class="mr-1" />
322
+ Replace
323
+ </Button></DropdownMenuLabel
324
+ >
325
+ <DropdownMenuLabel
326
+ ><Button
327
+ variant="destructive"
328
+ size="sm"
329
+ onclick={removeImage}
330
+ disabled={isUploading}
331
+ >
332
+ <Trash2 size={16} class="mr-1" />
333
+ Remove
334
+ </Button></DropdownMenuLabel
335
+ >
336
+ </DropdownMenuGroup>
337
+ </DropdownMenuContent>
338
+ </DropdownMenu>
282
339
  </div>
283
340
  {/if}
284
341
  </div>
285
342
 
286
- <!-- Buttons (right side) -->
287
- <div class="border-border bg-muted/20 flex items-center gap-2 border-l px-3 py-2">
288
- <Button
289
- variant="outline"
290
- size="sm"
291
- onclick={openFileDialog}
292
- disabled={isUploading || readonly}
293
- type="button"
294
- >
295
- <Upload size={16} class="mr-1" />
296
- Upload
297
- </Button>
298
-
299
- <Button
300
- variant="outline"
301
- size="sm"
302
- disabled={isUploading || readonly}
303
- type="button"
304
- onclick={() => {
305
- // TODO: Open asset browser/selector
306
- console.log('Open asset selector');
307
- }}
343
+ <!-- Additional image controls/metadata could go here -->
344
+ {#if field.fields}
345
+ <div class="border-border space-y-2 border-t p-3">
346
+ <!-- Custom fields like caption, alt text, etc. would be rendered here -->
347
+ <p class="text-muted-foreground text-xs">Custom fields coming soon...</p>
348
+ </div>
349
+ {/if}
350
+ </div>
351
+ {:else}
352
+ <!-- Sanity-style upload bar -->
353
+ <div class="border-border overflow-hidden rounded-md border {validationClasses}">
354
+ <div class="flex items-center">
355
+ <!-- Drag and drop area (left side) -->
356
+ <div
357
+ class="flex-1 px-4 py-3 transition-colors {readonly
358
+ ? ''
359
+ : isDragging
360
+ ? 'bg-primary/5'
361
+ : 'hover:bg-muted/50'}"
362
+ ondragover={readonly ? undefined : handleDragOver}
363
+ ondragleave={readonly ? undefined : handleDragLeave}
364
+ ondrop={readonly ? undefined : handleDrop}
365
+ tabindex={readonly ? -1 : 0}
366
+ role={readonly ? undefined : 'button'}
308
367
  >
309
- <ImageIcon size={16} class="mr-1" />
310
- Select
311
- </Button>
368
+ {#if isUploading}
369
+ <div class="flex items-center gap-3">
370
+ <div class="border-primary h-5 w-5 animate-spin rounded-full border-b-2"></div>
371
+ <span class="text-muted-foreground text-sm">Uploading...</span>
372
+ </div>
373
+ {:else}
374
+ <div class="flex items-center gap-3">
375
+ <FileImage size={20} class="text-muted-foreground" />
376
+ <span class="text-muted-foreground text-sm">
377
+ {readonly ? 'No image' : isDragging ? 'Drop image here' : 'Drag or paste image here'}
378
+ </span>
379
+ </div>
380
+ {/if}
381
+ </div>
382
+
383
+ <!-- Buttons (right side) -->
384
+ <div class="border-border bg-muted/20 flex items-center gap-2 border-l px-3 py-2">
385
+ <Button
386
+ variant="outline"
387
+ size="sm"
388
+ onclick={openFileDialog}
389
+ disabled={isUploading || readonly}
390
+ type="button"
391
+ >
392
+ <Upload size={16} class="mr-1" />
393
+ Upload
394
+ </Button>
395
+
396
+ <Button
397
+ variant="outline"
398
+ size="sm"
399
+ disabled={isUploading || readonly}
400
+ type="button"
401
+ onclick={() => {
402
+ // TODO: Open asset browser/selector
403
+ console.log('Open asset selector');
404
+ }}
405
+ >
406
+ <ImageIcon size={16} class="mr-1" />
407
+ Select
408
+ </Button>
409
+ </div>
312
410
  </div>
313
411
  </div>
314
- </div>
412
+ {/if}
315
413
  {/if}
316
414
 
317
415
  <!-- Error display -->
@@ -8,6 +8,7 @@ interface Props {
8
8
  schemaType?: string;
9
9
  fieldPath?: string;
10
10
  readonly?: boolean;
11
+ compact?: boolean;
11
12
  }
12
13
  declare const ImageField: import("svelte").Component<Props, {}, "">;
13
14
  type ImageField = ReturnType<typeof ImageField>;
@@ -1 +1 @@
1
- {"version":3,"file":"ImageField.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/admin/fields/ImageField.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAY1E,UAAU,KAAK;IACd,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAyQF,QAAA,MAAM,UAAU,2CAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ImageField.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/admin/fields/ImageField.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAY1E,UAAU,KAAK;IACd,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAiVF,QAAA,MAAM,UAAU,2CAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
@@ -1,11 +1,11 @@
1
1
  <script lang="ts">
2
2
  import { Input } from '@aphexcms/ui/shadcn/input';
3
3
  import { Button } from '@aphexcms/ui/shadcn/button';
4
- import type { Field } from '../../../types/schemas';
4
+ import type { SlugField } from '../../../types/schemas';
5
5
  import { generateSlug } from '../../../utils/index';
6
6
 
7
7
  interface Props {
8
- field: Field;
8
+ field: SlugField;
9
9
  value: any;
10
10
  documentData?: Record<string, any>;
11
11
  onUpdate: (value: any) => void;
@@ -26,15 +26,21 @@
26
26
  readonly = false
27
27
  }: Props = $props();
28
28
 
29
+ // Get the source field name (default to 'title' for backwards compatibility)
30
+ const sourceField = $derived(field.source || 'title');
31
+
32
+ // Get the source value from document data
33
+ const sourceValue = $derived(documentData?.[sourceField]);
34
+
29
35
  function handleInputChange(event: Event) {
30
36
  const target = event.target as HTMLInputElement;
31
37
  onUpdate(target.value);
32
38
  }
33
39
 
34
- // Generate slug from title
35
- function generateSlugFromTitle() {
36
- if (documentData?.title) {
37
- const generatedSlug = generateSlug(documentData.title);
40
+ // Generate slug from source field
41
+ function generateSlugFromSource() {
42
+ if (sourceValue && typeof sourceValue === 'string') {
43
+ const generatedSlug = generateSlug(sourceValue);
38
44
  onUpdate(generatedSlug);
39
45
  }
40
46
  }
@@ -55,20 +61,24 @@
55
61
  <Button
56
62
  variant="outline"
57
63
  size="sm"
58
- onclick={generateSlugFromTitle}
59
- disabled={!documentData?.title || readonly}
64
+ onclick={generateSlugFromSource}
65
+ disabled={!sourceValue || readonly}
60
66
  class="shrink-0"
61
67
  >
62
- Generate from Title
68
+ Generate
63
69
  </Button>
64
70
  </div>
65
- {#if documentData?.title}
71
+ {#if sourceValue}
72
+ <p class="text-muted-foreground text-xs">
73
+ Click "Generate" to create slug from {sourceField}: "{sourceValue}"
74
+ </p>
75
+ {:else if field.source}
66
76
  <p class="text-muted-foreground text-xs">
67
- Click "Generate from Title" to create slug from: "{documentData.title}"
77
+ Enter a {sourceField} first to generate a slug automatically
68
78
  </p>
69
79
  {:else}
70
80
  <p class="text-muted-foreground text-xs">
71
- Enter a title first to generate a slug automatically
81
+ Click "Generate" or enter a custom slug
72
82
  </p>
73
83
  {/if}
74
84
  </div>
@@ -1,6 +1,6 @@
1
- import type { Field } from '../../../types/schemas.js';
1
+ import type { SlugField } from '../../../types/schemas.js';
2
2
  interface Props {
3
- field: Field;
3
+ field: SlugField;
4
4
  value: any;
5
5
  documentData?: Record<string, any>;
6
6
  onUpdate: (value: any) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"SlugField.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/admin/fields/SlugField.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAInD,UAAU,KAAK;IACd,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAqDF,QAAA,MAAM,SAAS,2CAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"SlugField.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/admin/fields/SlugField.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAIvD,UAAU,KAAK;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,GAAG,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AA+DF,QAAA,MAAM,SAAS,2CAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/asset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/asset.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/document.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IAClC,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAE/B,WAAW,CACV,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,GAC/C,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvB,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC1F,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5D,cAAc,CACb,cAAc,EAAE,MAAM,EACtB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,GAAG,EACT,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC5B,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAGpE,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACzE,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAG3E,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAG5E;;;;;;OAMG;IACH,mBAAmB,CAClB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEjC;;;;;;OAMG;IACH,mBAAmB,CAClB,cAAc,EAAE,MAAM,EACtB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC5B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAE5B;;;;;;OAMG;IACH,cAAc,CACb,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,KAAK,GACX,OAAO,CAAC,MAAM,CAAC,CAAC;CACnB"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/document.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IAClC,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAE/B,WAAW,CACV,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,GAC/C,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvB,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC1F,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5D,cAAc,CACb,cAAc,EAAE,MAAM,EACtB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,GAAG,EACT,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC5B,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAGpE,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACzE,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAG3E,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAG5E;;;;;;OAMG;IACH,mBAAmB,CAClB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEjC;;;;;;OAMG;IACH,mBAAmB,CAClB,cAAc,EAAE,MAAM,EACtB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC5B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAE5B;;;;;;OAMG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/F"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/field-validation/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAUrD;AAED;;GAEG;AACH,wBAAsB,aAAa,CAClC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,GAAG,EACV,OAAO,GAAE,GAAQ,GACf,OAAO,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC1B,CAAC,CA6CD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAO/D;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACzC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,OAAO,GAAE,GAAQ,GACf,OAAO,CAAC,wBAAwB,CAAC,CA0BnC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/field-validation/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAUrD;AAED;;GAEG;AACH,wBAAsB,aAAa,CAClC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,GAAG,EACV,OAAO,GAAE,GAAQ,GACf,OAAO,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC1B,CAAC,CA6CD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAO/D;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACzC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,OAAO,GAAE,GAAQ,GACf,OAAO,CAAC,wBAAwB,CAAC,CAwBnC"}
@@ -81,9 +81,7 @@ export async function validateDocumentData(schema, data, context = {}) {
81
81
  const value = data[field.name];
82
82
  const result = await validateField(field, value, { ...context, ...data });
83
83
  if (!result.isValid) {
84
- const errorMessages = result.errors
85
- .filter((e) => e.level === 'error')
86
- .map((e) => e.message);
84
+ const errorMessages = result.errors.filter((e) => e.level === 'error').map((e) => e.message);
87
85
  if (errorMessages.length > 0) {
88
86
  validationErrors.push({
89
87
  field: field.name,
@@ -81,9 +81,7 @@ export async function validateDocumentData(schema, data, context = {}) {
81
81
  const value = data[field.name];
82
82
  const result = await validateField(field, value, { ...context, ...data });
83
83
  if (!result.isValid) {
84
- const errorMessages = result.errors
85
- .filter((e) => e.level === 'error')
86
- .map((e) => e.message);
84
+ const errorMessages = result.errors.filter((e) => e.level === 'error').map((e) => e.message);
87
85
  if (errorMessages.length > 0) {
88
86
  validationErrors.push({
89
87
  field: field.name,
@@ -1 +1 @@
1
- {"version":3,"file":"collection-api.d.ts","sourceRoot":"","sources":["../../src/lib/local-api/collection-api.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AA6BlD;;;GAGG;AACH,qBAAa,aAAa,CAAC,CAAC,GAAG,QAAQ;IAErC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,WAAW;gBAHX,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,iBAAiB;IAMvC;;OAEG;IACH,IAAI,MAAM,IAAI,UAAU,CAEvB;IAED;;;;;;;;;;;;;;;;;OAiBG;IACG,IAAI,CACT,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE,WAAW,CAAC,CAAC,CAAM,GAC1B,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAqBzB;;;;;;;;;;;OAWG;IACG,QAAQ,CACb,OAAO,EAAE,eAAe,EACxB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAmBpB;;;;;;;;;;OAUG;IACG,KAAK,CACV,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;KAAE,GACzC,OAAO,CAAC,MAAM,CAAC;IAWlB;;;;;;;;;;;;;;OAcG;IACG,MAAM,CACX,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,OAAO,CAAC,CAAC,CAAC;IAuCb;;;;;;;;;;;;OAYG;IACG,MAAM,CACX,OAAO,EAAE,eAAe,EACxB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,EACtC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IA6CpB;;;;;;;;;;OAUG;IACG,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOpE;;;;;;;;;;OAUG;IACG,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAgCtE;;;;;;;;;;OAUG;IACG,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;CAUxE"}
1
+ {"version":3,"file":"collection-api.d.ts","sourceRoot":"","sources":["../../src/lib/local-api/collection-api.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AA6BlD;;;GAGG;AACH,qBAAa,aAAa,CAAC,CAAC,GAAG,QAAQ;IAErC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,WAAW;gBAHX,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,iBAAiB;IAMvC;;OAEG;IACH,IAAI,MAAM,IAAI,UAAU,CAEvB;IAED;;;;;;;;;;;;;;;;;OAiBG;IACG,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,GAAE,WAAW,CAAC,CAAC,CAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAqB1F;;;;;;;;;;;OAWG;IACG,QAAQ,CACb,OAAO,EAAE,eAAe,EACxB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAmBpB;;;;;;;;;;OAUG;IACG,KAAK,CACV,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;KAAE,GACzC,OAAO,CAAC,MAAM,CAAC;IAWlB;;;;;;;;;;;;;;OAcG;IACG,MAAM,CACX,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,OAAO,CAAC,CAAC,CAAC;IAoCb;;;;;;;;;;;;OAYG;IACG,MAAM,CACX,OAAO,EAAE,eAAe,EACxB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,EACtC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IA0CpB;;;;;;;;;;OAUG;IACG,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOpE;;;;;;;;;;OAUG;IACG,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAgCtE;;;;;;;;;;OAUG;IACG,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;CAUxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/local-api/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE3B,CAAC,cAAc,EAAE,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;CAGjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,QAAQ;IAQnB,OAAO,CAAC,MAAM;IAPR,WAAW,EAAE,WAAW,CAAM;IACrC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,OAAO,CAA0B;gBAGhC,MAAM,EAAE,SAAS,EACzB,WAAW,EAAE,eAAe,EAC5B,aAAa,CAAC,EAAE,eAAe;IAmBhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAqC7B;;;OAGG;IACH,OAAO,CAAC,UAAU;IAOlB;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIpC;;OAEG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;CAGzD;AAKD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAC7B,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,eAAe,EAC5B,aAAa,CAAC,EAAE,eAAe,GAC7B,QAAQ,CAGV;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAKtC;AAGD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACnE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/local-api/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE3B,CAAC,cAAc,EAAE,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;CAGjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,QAAQ;IAQnB,OAAO,CAAC,MAAM;IAPR,WAAW,EAAE,WAAW,CAAM;IACrC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,OAAO,CAA0B;gBAGhC,MAAM,EAAE,SAAS,EACzB,WAAW,EAAE,eAAe,EAC5B,aAAa,CAAC,EAAE,eAAe;IAmBhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgC7B;;;OAGG;IACH,OAAO,CAAC,UAAU;IAOlB;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIpC;;OAEG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;CAGzD;AAKD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAC7B,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,eAAe,EAC5B,aAAa,CAAC,EAAE,eAAe,GAC7B,QAAQ,CAGV;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAKtC;AAGD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACnE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/lib/types/filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/lib/types/filters.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aphexcms/cms-core",
3
- "version": "0.1.16",
3
+ "version": "0.1.17",
4
4
  "description": "Aphex CMS Core - A Sanity-style CMS with ports and adapters architecture",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",