@mapomodule/form 2.0.0-beta.3 → 2.0.0-beta.5

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 (46) hide show
  1. package/README.md +2 -1
  2. package/dist/index.d.mts +1 -1
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/module.d.ts.map +1 -1
  6. package/dist/module.json +1 -1
  7. package/dist/module.mjs +17 -0
  8. package/dist/runtime/components/fields/MapoEnhancedMediaField.vue +128 -0
  9. package/dist/runtime/components/fields/MapoEnhancedMediaField.vue.d.ts +16 -0
  10. package/dist/runtime/components/fields/MapoEnhancedMediaField.vue.d.ts.map +1 -0
  11. package/dist/runtime/components/fields/MapoMediaField.vue +89 -0
  12. package/dist/runtime/components/fields/MapoMediaField.vue.d.ts +16 -0
  13. package/dist/runtime/components/fields/MapoMediaField.vue.d.ts.map +1 -0
  14. package/dist/runtime/components/fields/MapoMediaM2mField.vue +106 -0
  15. package/dist/runtime/components/fields/MapoMediaM2mField.vue.d.ts +16 -0
  16. package/dist/runtime/components/fields/MapoMediaM2mField.vue.d.ts.map +1 -0
  17. package/dist/runtime/components/fields/MapoMediaUnavailable.vue +15 -0
  18. package/dist/runtime/components/fields/MapoMediaUnavailable.vue.d.ts +4 -0
  19. package/dist/runtime/components/fields/MapoMediaUnavailable.vue.d.ts.map +1 -0
  20. package/dist/runtime/components/fields/MapoWygEditor.vue +26 -5
  21. package/dist/runtime/components/fields/MapoWygEditor.vue.d.ts.map +1 -1
  22. package/dist/runtime/composables/useMediaManager.d.ts +17 -0
  23. package/dist/runtime/composables/useMediaManager.d.ts.map +1 -0
  24. package/dist/runtime/composables/useMediaManager.js +6 -0
  25. package/dist/runtime/registry/defaults.d.ts.map +1 -1
  26. package/dist/runtime/registry/defaults.js +8 -2
  27. package/dist/runtime/types/descriptor.d.ts +18 -4
  28. package/dist/runtime/types/descriptor.d.ts.map +1 -1
  29. package/dist/runtime/types/index.d.ts +2 -1
  30. package/dist/runtime/types/index.d.ts.map +1 -1
  31. package/dist/runtime/types/media.d.ts +43 -0
  32. package/dist/runtime/types/media.d.ts.map +1 -0
  33. package/dist/runtime/types/media.js +0 -0
  34. package/package.json +4 -3
  35. package/src/index.ts +5 -0
  36. package/src/module.ts +25 -0
  37. package/src/runtime/components/fields/MapoEnhancedMediaField.vue +150 -0
  38. package/src/runtime/components/fields/MapoMediaField.vue +101 -0
  39. package/src/runtime/components/fields/MapoMediaM2mField.vue +123 -0
  40. package/src/runtime/components/fields/MapoMediaUnavailable.vue +19 -0
  41. package/src/runtime/components/fields/MapoWygEditor.vue +40 -5
  42. package/src/runtime/composables/useMediaManager.ts +21 -0
  43. package/src/runtime/registry/defaults.ts +9 -1
  44. package/src/runtime/types/descriptor.ts +22 -7
  45. package/src/runtime/types/index.ts +4 -0
  46. package/src/runtime/types/media.ts +44 -0
@@ -312,12 +312,26 @@ export interface RepeaterDescriptor<T = Record<string, unknown>> extends FieldBa
312
312
  compressThreshold?: number;
313
313
  };
314
314
  }
315
- /** Descriptor for media/file manager fields. */
315
+ /** Descriptor for a single-media picker field (`type: 'media'`). */
316
316
  export interface MediaDescriptor<T = Record<string, unknown>> extends FieldBase<T> {
317
- type: `${KnownFieldType.Media}` | `${KnownFieldType.MediaM2m}` | `${KnownFieldType.EnhancedMedia}`;
317
+ type: `${KnownFieldType.Media}`;
318
+ attrs?: {
319
+ mime?: string;
320
+ };
321
+ }
322
+ /** Descriptor for a multi-media picker field (`type: 'media-m2m'`). */
323
+ export interface MediaM2mDescriptor<T = Record<string, unknown>> extends FieldBase<T> {
324
+ type: `${KnownFieldType.MediaM2m}`;
325
+ attrs?: {
326
+ mime?: string;
327
+ maxItems?: number;
328
+ };
329
+ }
330
+ /** Descriptor for a media picker with inline alt/caption metadata (`type: 'enhanced-media'`). */
331
+ export interface EnhancedMediaDescriptor<T = Record<string, unknown>> extends FieldBase<T> {
332
+ type: `${KnownFieldType.EnhancedMedia}`;
318
333
  attrs?: {
319
334
  mime?: string;
320
- multiple?: boolean;
321
335
  };
322
336
  }
323
337
  /**
@@ -344,7 +358,7 @@ export interface CustomDescriptor<T = Record<string, unknown>> extends FieldBase
344
358
  * { key: 'body', type: KnownFieldType.Editor, label: 'Body', translatable: true },
345
359
  * ]
346
360
  */
347
- export type FieldDescriptor<T = Record<string, unknown>> = TextDescriptor<T> | NumberDescriptor<T> | BooleanDescriptor<T> | SelectDescriptor<T> | FksDescriptor<T> | DateDescriptor<T> | ColorDescriptor<T> | FileDescriptor<T> | EditorDescriptor<T> | SeoDescriptor<T> | MapDescriptor<T> | RepeaterDescriptor<T> | MediaDescriptor<T>;
361
+ export type FieldDescriptor<T = Record<string, unknown>> = TextDescriptor<T> | NumberDescriptor<T> | BooleanDescriptor<T> | SelectDescriptor<T> | FksDescriptor<T> | DateDescriptor<T> | ColorDescriptor<T> | FileDescriptor<T> | EditorDescriptor<T> | SeoDescriptor<T> | MapDescriptor<T> | RepeaterDescriptor<T> | MediaDescriptor<T> | MediaM2mDescriptor<T> | EnhancedMediaDescriptor<T>;
348
362
  /**
349
363
  * {@link FieldDescriptor} plus the {@link CustomDescriptor} escape hatch.
350
364
  *
@@ -1 +1 @@
1
- {"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../../src/runtime/types/descriptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../../src/runtime/types/descriptor.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,8 @@
4
4
  * and registry helpers.
5
5
  */
6
6
  export { KnownFieldType } from "./descriptor.js";
7
- export type { FieldType, FieldAccessor, FieldDescriptor, AnyFieldDescriptor, TextDescriptor, NumberDescriptor, BooleanDescriptor, SelectDescriptor, FksDescriptor, DateDescriptor, ColorDescriptor, FileDescriptor, EditorDescriptor, SeoDescriptor, MapDescriptor, RepeaterDescriptor, MediaDescriptor, CustomDescriptor, } from "./descriptor.js";
7
+ export type { FieldType, FieldAccessor, FieldDescriptor, AnyFieldDescriptor, TextDescriptor, NumberDescriptor, BooleanDescriptor, SelectDescriptor, FksDescriptor, DateDescriptor, ColorDescriptor, FileDescriptor, EditorDescriptor, SeoDescriptor, MapDescriptor, RepeaterDescriptor, MediaDescriptor, MediaM2mDescriptor, EnhancedMediaDescriptor, CustomDescriptor, } from "./descriptor.js";
8
+ export type { MediaLink, MediaItem, EnhancedMediaValue } from "./media.js";
8
9
  export type { FieldComponentEntry, FieldRegistry, PartialFieldRegistry, } from "./registry.js";
9
10
  export { resolveFieldComponent, resolveFieldAttrs, resolveFieldAccessor, } from "./registry.js";
10
11
  export type { MapoFormRuntimeConfig } from "./registry.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EACV,SAAS,EACT,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EACV,SAAS,EACT,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE3E,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Media **value** types — the shape that lands in the form model for the
3
+ * `media`, `media-m2m`, and `enhanced-media` field types.
4
+ *
5
+ * These live in `@mapomodule/form` (next to their descriptors) because they are
6
+ * a form contract, not a Media Manager implementation detail. `@mapomodule/uikit`
7
+ * re-exports them from `runtime/types/media.ts` alongside the store/adapter types
8
+ * so the Media Manager keeps a single import surface.
9
+ */
10
+ /** A model instance referencing a media (Camomilla returns these as `links`). */
11
+ export interface MediaLink {
12
+ model: string;
13
+ id: number;
14
+ name: string;
15
+ }
16
+ export interface MediaItem {
17
+ id: number;
18
+ file: string;
19
+ mime_type: string;
20
+ title: string;
21
+ alt_text: string;
22
+ description: string;
23
+ size: number;
24
+ created: string;
25
+ modified: string;
26
+ folder?: number | null;
27
+ name?: string;
28
+ /** Model instances that reference this media — shown in the editor info panel. */
29
+ links?: MediaLink[];
30
+ translations?: Record<string, {
31
+ title?: string;
32
+ alt_text?: string;
33
+ description?: string;
34
+ }>;
35
+ }
36
+ /** Value of an `enhanced-media` field: a media plus inline caption metadata. */
37
+ export interface EnhancedMediaValue {
38
+ media: MediaItem | null;
39
+ alt?: string;
40
+ caption?: string;
41
+ [key: string]: unknown;
42
+ }
43
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/runtime/types/media.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CACnB,MAAM,EACN;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAC5D,CAAC;CACH;AAED,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mapomodule/form",
3
- "version": "2.0.0-beta.3",
3
+ "version": "2.0.0-beta.5",
4
4
  "description": "Mapo declarative typed form engine and field components",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -48,8 +48,9 @@
48
48
  },
49
49
  "dependencies": {
50
50
  "@internationalized/date": "^3.7.0",
51
- "@mapomodule/store": "2.0.0-beta.3",
52
- "@mapomodule/utils": "2.0.0-beta.1",
51
+ "@mapomodule/store": "2.0.0-beta.4",
52
+ "@mapomodule/utils": "2.0.0-beta.2",
53
+ "@tiptap/extension-image": "^2.11.5",
53
54
  "@tiptap/extension-link": "^2.11.5",
54
55
  "@tiptap/extension-underline": "^2.11.5",
55
56
  "@tiptap/starter-kit": "^2.11.5",
package/src/index.ts CHANGED
@@ -42,7 +42,12 @@ export type {
42
42
  MapDescriptor,
43
43
  RepeaterDescriptor,
44
44
  MediaDescriptor,
45
+ MediaM2mDescriptor,
46
+ EnhancedMediaDescriptor,
45
47
  CustomDescriptor,
48
+ MediaLink,
49
+ MediaItem,
50
+ EnhancedMediaValue,
46
51
  FieldComponentEntry,
47
52
  FieldRegistry,
48
53
  PartialFieldRegistry,
package/src/module.ts CHANGED
@@ -30,6 +30,16 @@ export default defineNuxtModule<MapoFormOptions>({
30
30
  async setup(options, nuxt) {
31
31
  const resolver = createResolver(import.meta.url);
32
32
 
33
+ // In consuming apps this runtime lives inside node_modules, where Nuxt
34
+ // skips auto-import injection by default (workspace apps are unaffected:
35
+ // pnpm symlinks resolve outside node_modules). Opt back in and transpile
36
+ // the runtime for the SSR build.
37
+ nuxt.options.build.transpile.push(resolver.resolve("./runtime"));
38
+ nuxt.options.imports.transform ??= {};
39
+ (nuxt.options.imports.transform.include ??= []).push(
40
+ /@mapomodule[\\/]form[\\/]/,
41
+ );
42
+
33
43
  // Only serializable values can go into runtimeConfig.public.
34
44
  // `mapping` and `accessor` contain functions → not SSR-serializable.
35
45
  // To extend mapping/accessor, use an app plugin that accesses $mapoFormRegistry:
@@ -111,6 +121,21 @@ export {};
111
121
  });
112
122
  }
113
123
 
124
+ // Media field components — registered so consumers can use them directly,
125
+ // and so MapoMediaUnavailable resolves inside them.
126
+ const mediaFieldComponents = [
127
+ "MapoMediaField",
128
+ "MapoMediaM2mField",
129
+ "MapoEnhancedMediaField",
130
+ "MapoMediaUnavailable",
131
+ ];
132
+ for (const name of mediaFieldComponents) {
133
+ addComponent({
134
+ name,
135
+ filePath: resolver.resolve(`./runtime/components/fields/${name}.vue`),
136
+ });
137
+ }
138
+
114
139
  // Public auto-imported composables
115
140
  addImports([
116
141
  {
@@ -0,0 +1,150 @@
1
+ <script setup lang="ts">
2
+ import { ref, computed } from "vue";
3
+ import type {
4
+ EnhancedMediaDescriptor,
5
+ EnhancedMediaValue,
6
+ MediaItem,
7
+ } from "../../types/index.js";
8
+ import { useMediaManager } from "../../composables/useMediaManager.js";
9
+
10
+ const props = defineProps<{
11
+ modelValue: EnhancedMediaValue | null | undefined;
12
+ descriptor: EnhancedMediaDescriptor;
13
+ errors?: string[];
14
+ readonly?: boolean;
15
+ disabled?: boolean;
16
+ }>();
17
+
18
+ const emit = defineEmits<{
19
+ "update:modelValue": [value: EnhancedMediaValue | null];
20
+ }>();
21
+
22
+ const dialogOpen = ref(false);
23
+
24
+ // Picker dialog comes from @mapomodule/uikit, resolved at runtime.
25
+ const { MediaDialog, available } = useMediaManager();
26
+
27
+ const current = computed<MediaItem | null>(
28
+ () => props.modelValue?.media ?? null,
29
+ );
30
+
31
+ const altValue = computed({
32
+ get: () => props.modelValue?.alt ?? "",
33
+ set: (v: string) =>
34
+ emit("update:modelValue", {
35
+ ...(props.modelValue ?? { media: null }),
36
+ alt: v,
37
+ }),
38
+ });
39
+
40
+ const captionValue = computed({
41
+ get: () => props.modelValue?.caption ?? "",
42
+ set: (v: string) =>
43
+ emit("update:modelValue", {
44
+ ...(props.modelValue ?? { media: null }),
45
+ caption: v,
46
+ }),
47
+ });
48
+
49
+ const mime = computed(() => props.descriptor.attrs?.mime as string | undefined);
50
+
51
+ function onConfirm(selection: MediaItem | MediaItem[]) {
52
+ const media = Array.isArray(selection) ? (selection[0] ?? null) : selection;
53
+ emit("update:modelValue", {
54
+ ...(props.modelValue ?? {}),
55
+ media,
56
+ alt: props.modelValue?.alt ?? media?.alt_text ?? "",
57
+ caption: props.modelValue?.caption ?? "",
58
+ });
59
+ }
60
+
61
+ function clear() {
62
+ emit("update:modelValue", null);
63
+ }
64
+ </script>
65
+
66
+ <template>
67
+ <div class="mapo-enhanced-media-field space-y-3">
68
+ <MapoMediaUnavailable v-if="!available" />
69
+
70
+ <template v-else>
71
+ <div class="flex gap-3">
72
+ <!-- Preview -->
73
+ <div class="shrink-0">
74
+ <div
75
+ class="flex size-24 cursor-pointer items-center justify-center overflow-hidden rounded-lg border-2 border-dashed transition-colors"
76
+ :class="
77
+ current
78
+ ? 'border-default'
79
+ : 'border-accented hover:border-primary'
80
+ "
81
+ @click="!readonly && !disabled && (dialogOpen = true)"
82
+ >
83
+ <MapoMediaPreview v-if="current" :media="current" size="md" />
84
+ <div v-else class="flex flex-col items-center gap-1 text-dimmed">
85
+ <UIcon name="i-lucide-image-plus" class="size-7" />
86
+ <span class="text-[10px]">Select</span>
87
+ </div>
88
+ </div>
89
+ </div>
90
+
91
+ <!-- Metadata fields -->
92
+ <div class="flex-1 space-y-2">
93
+ <div v-if="current" class="flex items-start justify-between gap-2">
94
+ <p class="truncate text-xs text-muted">
95
+ {{ current.title || current.file?.split("/").pop() }}
96
+ </p>
97
+ <div class="flex gap-1">
98
+ <UButton
99
+ v-if="!readonly && !disabled"
100
+ icon="i-lucide-refresh-cw"
101
+ size="xs"
102
+ variant="ghost"
103
+ color="neutral"
104
+ title="Change"
105
+ @click="dialogOpen = true"
106
+ />
107
+ <UButton
108
+ v-if="!readonly && !disabled"
109
+ icon="i-lucide-x"
110
+ size="xs"
111
+ variant="ghost"
112
+ color="neutral"
113
+ title="Remove"
114
+ @click="clear"
115
+ />
116
+ </div>
117
+ </div>
118
+
119
+ <UInput
120
+ v-model="altValue"
121
+ size="sm"
122
+ placeholder="Alt text"
123
+ :disabled="readonly || disabled || !current"
124
+ />
125
+ <UInput
126
+ v-model="captionValue"
127
+ size="sm"
128
+ placeholder="Caption"
129
+ :disabled="readonly || disabled || !current"
130
+ />
131
+ </div>
132
+ </div>
133
+
134
+ <!-- Dialog -->
135
+ <component
136
+ :is="MediaDialog"
137
+ v-model="dialogOpen"
138
+ selection-mode="single"
139
+ :mime="mime"
140
+ :selected="current"
141
+ @confirm="onConfirm"
142
+ />
143
+ </template>
144
+
145
+ <!-- Errors -->
146
+ <p v-for="err in errors" :key="err" class="text-xs text-error" role="alert">
147
+ {{ err }}
148
+ </p>
149
+ </div>
150
+ </template>
@@ -0,0 +1,101 @@
1
+ <script setup lang="ts">
2
+ import { ref, computed } from "vue";
3
+ import type { MediaDescriptor, MediaItem } from "../../types/index.js";
4
+ import { useMediaManager } from "../../composables/useMediaManager.js";
5
+
6
+ const props = defineProps<{
7
+ modelValue: MediaItem | number | null | undefined;
8
+ descriptor: MediaDescriptor;
9
+ errors?: string[];
10
+ readonly?: boolean;
11
+ disabled?: boolean;
12
+ }>();
13
+
14
+ const emit = defineEmits<{
15
+ "update:modelValue": [value: MediaItem | null];
16
+ }>();
17
+
18
+ const dialogOpen = ref(false);
19
+
20
+ // Picker dialog comes from @mapomodule/uikit, resolved at runtime.
21
+ const { MediaDialog, available } = useMediaManager();
22
+
23
+ const current = computed<MediaItem | null>(() => {
24
+ if (!props.modelValue) return null;
25
+ if (typeof props.modelValue === "object") return props.modelValue;
26
+ return null;
27
+ });
28
+
29
+ const mime = computed(() => props.descriptor.attrs?.mime as string | undefined);
30
+
31
+ function onConfirm(selection: MediaItem | MediaItem[]) {
32
+ emit(
33
+ "update:modelValue",
34
+ Array.isArray(selection) ? (selection[0] ?? null) : selection,
35
+ );
36
+ }
37
+
38
+ function clear() {
39
+ emit("update:modelValue", null);
40
+ }
41
+ </script>
42
+
43
+ <template>
44
+ <div class="mapo-media-field space-y-2">
45
+ <MapoMediaUnavailable v-if="!available" />
46
+
47
+ <template v-else>
48
+ <!-- Selected media preview -->
49
+ <div
50
+ v-if="current"
51
+ class="flex items-center gap-3 rounded-lg border border-default p-2"
52
+ >
53
+ <MapoMediaPreview :media="current" size="sm" />
54
+ <div class="flex-1 min-w-0">
55
+ <p class="truncate text-xs font-medium">
56
+ {{ current.title || current.file?.split("/").pop() }}
57
+ </p>
58
+ <p class="text-xs text-dimmed">
59
+ {{ current.mime_type }}
60
+ </p>
61
+ </div>
62
+ <UButton
63
+ v-if="!readonly && !disabled"
64
+ icon="i-lucide-x"
65
+ size="xs"
66
+ variant="ghost"
67
+ color="neutral"
68
+ @click="clear"
69
+ />
70
+ </div>
71
+
72
+ <!-- Trigger button -->
73
+ <UButton
74
+ v-if="!readonly && !disabled"
75
+ :icon="current ? 'i-lucide-refresh-cw' : 'i-lucide-image-plus'"
76
+ size="sm"
77
+ variant="soft"
78
+ color="neutral"
79
+ :block="!current"
80
+ @click="dialogOpen = true"
81
+ >
82
+ {{ current ? "Change" : "Select media" }}
83
+ </UButton>
84
+
85
+ <!-- Dialog -->
86
+ <component
87
+ :is="MediaDialog"
88
+ v-model="dialogOpen"
89
+ selection-mode="single"
90
+ :mime="mime"
91
+ :selected="current"
92
+ @confirm="onConfirm"
93
+ />
94
+ </template>
95
+
96
+ <!-- Errors -->
97
+ <p v-for="err in errors" :key="err" class="text-xs text-error" role="alert">
98
+ {{ err }}
99
+ </p>
100
+ </div>
101
+ </template>
@@ -0,0 +1,123 @@
1
+ <script setup lang="ts">
2
+ import { ref, computed } from "vue";
3
+ import type { MediaM2mDescriptor, MediaItem } from "../../types/index.js";
4
+ import { useMediaManager } from "../../composables/useMediaManager.js";
5
+
6
+ const props = defineProps<{
7
+ modelValue: MediaItem[] | number[] | null | undefined;
8
+ descriptor: MediaM2mDescriptor;
9
+ errors?: string[];
10
+ readonly?: boolean;
11
+ disabled?: boolean;
12
+ }>();
13
+
14
+ const emit = defineEmits<{
15
+ "update:modelValue": [value: MediaItem[]];
16
+ }>();
17
+
18
+ const dialogOpen = ref(false);
19
+
20
+ // Picker dialog comes from @mapomodule/uikit, resolved at runtime.
21
+ const { MediaDialog, available } = useMediaManager();
22
+
23
+ const current = computed<MediaItem[]>(() => {
24
+ if (!props.modelValue) return [];
25
+ return props.modelValue.filter((v): v is MediaItem => typeof v === "object");
26
+ });
27
+
28
+ const mime = computed(() => props.descriptor.attrs?.mime as string | undefined);
29
+
30
+ function onConfirm(selection: MediaItem | MediaItem[]) {
31
+ emit("update:modelValue", Array.isArray(selection) ? selection : [selection]);
32
+ }
33
+
34
+ function removeItem(id: number) {
35
+ emit(
36
+ "update:modelValue",
37
+ current.value.filter((m) => m.id !== id),
38
+ );
39
+ }
40
+
41
+ // HTML5 drag reorder — order matters for m2m relations (legacy parity).
42
+ const dragIndex = ref<number | null>(null);
43
+
44
+ function onDragStart(index: number) {
45
+ dragIndex.value = index;
46
+ }
47
+
48
+ function onDragOverItem(index: number) {
49
+ if (dragIndex.value === null || dragIndex.value === index) return;
50
+ const items = [...current.value];
51
+ const [moved] = items.splice(dragIndex.value, 1);
52
+ if (!moved) return;
53
+ items.splice(index, 0, moved);
54
+ dragIndex.value = index;
55
+ emit("update:modelValue", items);
56
+ }
57
+
58
+ function onDragEnd() {
59
+ dragIndex.value = null;
60
+ }
61
+ </script>
62
+
63
+ <template>
64
+ <div class="mapo-media-m2m-field space-y-2">
65
+ <MapoMediaUnavailable v-if="!available" />
66
+
67
+ <template v-else>
68
+ <!-- Selected items grid -->
69
+ <div v-if="current.length > 0" class="flex flex-wrap gap-2">
70
+ <div
71
+ v-for="(media, i) in current"
72
+ :key="media.id"
73
+ class="group relative"
74
+ :class="{
75
+ 'opacity-50': dragIndex === i,
76
+ 'cursor-grab': !readonly && !disabled,
77
+ }"
78
+ :draggable="!readonly && !disabled"
79
+ @dragstart="onDragStart(i)"
80
+ @dragover.prevent="onDragOverItem(i)"
81
+ @dragend="onDragEnd"
82
+ >
83
+ <MapoMediaPreview :media="media" size="sm" />
84
+ <button
85
+ v-if="!readonly && !disabled"
86
+ class="absolute -right-1.5 -top-1.5 hidden size-4 items-center justify-center rounded-full bg-error text-inverted group-hover:flex"
87
+ type="button"
88
+ @click="removeItem(media.id)"
89
+ >
90
+ <UIcon name="i-lucide-x" class="size-2.5" />
91
+ </button>
92
+ </div>
93
+ </div>
94
+
95
+ <!-- Add button -->
96
+ <UButton
97
+ v-if="!readonly && !disabled"
98
+ icon="i-lucide-plus"
99
+ size="sm"
100
+ variant="soft"
101
+ color="neutral"
102
+ @click="dialogOpen = true"
103
+ >
104
+ {{ current.length > 0 ? "Add media" : "Select media" }}
105
+ </UButton>
106
+
107
+ <!-- Dialog -->
108
+ <component
109
+ :is="MediaDialog"
110
+ v-model="dialogOpen"
111
+ selection-mode="multi"
112
+ :mime="mime"
113
+ :selected="current"
114
+ @confirm="onConfirm"
115
+ />
116
+ </template>
117
+
118
+ <!-- Errors -->
119
+ <p v-for="err in errors" :key="err" class="text-xs text-error" role="alert">
120
+ {{ err }}
121
+ </p>
122
+ </div>
123
+ </template>
@@ -0,0 +1,19 @@
1
+ <script setup lang="ts">
2
+ /**
3
+ * Placeholder rendered by the media fields when the Media Manager is not
4
+ * registered — i.e. `@mapomodule/form` is installed without `@mapomodule/uikit`.
5
+ * Better than a silently broken picker: it names the missing package.
6
+ */
7
+ </script>
8
+
9
+ <template>
10
+ <div
11
+ class="flex items-center gap-2 rounded-lg border border-dashed border-default px-3 py-2 text-xs text-muted"
12
+ >
13
+ <UIcon
14
+ name="i-lucide-triangle-alert"
15
+ class="size-4 shrink-0 text-warning"
16
+ />
17
+ <span>Media fields require <code>@mapomodule/uikit</code>.</span>
18
+ </div>
19
+ </template>