@rakun-kit/manager-react 1.4.6 → 1.4.8

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 (54) hide show
  1. package/README.md +196 -196
  2. package/dist/cjs/components/editor/themes/editor-theme.css +91 -91
  3. package/dist/cjs/components/ui/sortable.js +4 -4
  4. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js +11 -2
  5. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js.map +1 -1
  6. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/LinkedIteratorControl.js +53 -0
  7. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/LinkedIteratorControl.js.map +1 -0
  8. package/dist/cjs/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js +66 -1
  9. package/dist/cjs/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js.map +1 -1
  10. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js +97 -25
  11. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js.map +1 -1
  12. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js +12 -3
  13. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js.map +1 -1
  14. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js +63 -11
  15. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js.map +1 -1
  16. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/ListUI.js +3 -3
  17. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/ListUI.js.map +1 -1
  18. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js +13 -7
  19. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js.map +1 -1
  20. package/dist/cjs/state/theme.js +12 -12
  21. package/dist/esm/components/editor/themes/editor-theme.css +91 -91
  22. package/dist/esm/components/ui/sortable.js +4 -4
  23. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.d.ts.map +1 -1
  24. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js +11 -2
  25. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js.map +1 -1
  26. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/LinkedIteratorControl.d.ts +2 -0
  27. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/LinkedIteratorControl.d.ts.map +1 -0
  28. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/LinkedIteratorControl.js +49 -0
  29. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/LinkedIteratorControl.js.map +1 -0
  30. package/dist/esm/router/dashboard/[contentType]/[edit]/_context/EditPageContext.d.ts +8 -0
  31. package/dist/esm/router/dashboard/[contentType]/[edit]/_context/EditPageContext.d.ts.map +1 -1
  32. package/dist/esm/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js +66 -1
  33. package/dist/esm/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js.map +1 -1
  34. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.d.ts +8 -0
  35. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.d.ts.map +1 -1
  36. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js +96 -25
  37. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js.map +1 -1
  38. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/FileField/index.d.ts.map +1 -1
  39. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js +13 -4
  40. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js.map +1 -1
  41. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.d.ts.map +1 -1
  42. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js +66 -14
  43. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js.map +1 -1
  44. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/ListUI.js +3 -3
  45. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/ListUI.js.map +1 -1
  46. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.d.ts +5 -1
  47. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.d.ts.map +1 -1
  48. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js +13 -7
  49. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js.map +1 -1
  50. package/dist/esm/state/theme.js +12 -12
  51. package/dist/styles.css +43 -7
  52. package/dist/styles.css.d.ts +3 -3
  53. package/dist/tsconfig.build.tsbuildinfo +1 -1
  54. package/package.json +192 -192
@@ -0,0 +1,49 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { Link2, Unlink } from 'lucide-react';
4
+ import { useState } from 'react';
5
+ import { useEditPageContext } from '../_context/EditPageContext.js';
6
+ import { Badge } from '../../../../../components/ui/badge.js';
7
+ import { Button } from '../../../../../components/ui/button.js';
8
+ import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '../../../../../components/ui/dialog.js';
9
+ export const LinkedIteratorControl = () => {
10
+ const { contentTypeId, contentTypeName, documentActions, linkedIterator } = useEditPageContext();
11
+ const { state, mode } = linkedIterator;
12
+ const [confirmationAction, setConfirmationAction] = useState(null);
13
+ const handleConfirm = () => {
14
+ const action = confirmationAction;
15
+ setConfirmationAction(null);
16
+ if (action === 'initialize') {
17
+ void documentActions.handleInitializeLinkedIterator();
18
+ }
19
+ else if (action === 'relink') {
20
+ linkedIterator.adoptShared();
21
+ }
22
+ };
23
+ const withConfirmationDialog = (content) => (_jsxs(_Fragment, { children: [content, _jsx(Dialog, { open: confirmationAction !== null, onOpenChange: (open) => {
24
+ if (!open)
25
+ setConfirmationAction(null);
26
+ }, children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: confirmationAction === 'initialize'
27
+ ? 'Use this as the shared structure?'
28
+ : 'Use the shared structure?' }), _jsx(DialogDescription, { children: confirmationAction === 'initialize'
29
+ ? 'This iterator will become the structure for every linked entry. Local entries will not be changed.'
30
+ : "This entry's local iterator will be discarded when you save. The shared structure itself will not be changed." })] }), _jsxs(DialogFooter, { children: [_jsx(DialogClose, { asChild: true, children: _jsx(Button, { variant: "outline", children: "Cancel" }) }), _jsxs(Button, { loading: confirmationAction === 'initialize' &&
31
+ (documentActions.pending.create || documentActions.pending.update), onClick: handleConfirm, children: [_jsx(Link2, {}), "Use shared structure"] })] })] }) })] }));
32
+ if (!linkedIterator.enabled || !state)
33
+ return null;
34
+ if (!state.configured && mode === 'unlinked') {
35
+ return withConfirmationDialog(_jsx("div", { className: "mb-5 flex flex-wrap items-center justify-between gap-3 rounded-lg border p-4", children: _jsxs("div", { className: "space-y-1", children: [_jsxs(Badge, { variant: "secondary", children: [_jsx(Unlink, {}), "Local structure"] }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Changes only affect this entry. The shared structure has not been configured yet." })] }) }));
36
+ }
37
+ if (!state.configured) {
38
+ return withConfirmationDialog(_jsxs("div", { className: "mb-5 flex flex-wrap items-center justify-between gap-3 rounded-lg border border-amber-500/40 bg-amber-500/10 p-4", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: "flex items-center gap-2", children: _jsx(Badge, { variant: "outline", children: "Shared structure not configured" }) }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Choose this iterator as the initial structure for every linked entry." })] }), _jsxs("div", { className: "flex flex-wrap gap-2", children: [contentTypeId ? (_jsxs(Button, { variant: "outline", onClick: () => linkedIterator.setMode('unlinked'), children: [_jsx(Unlink, {}), "Keep this entry local"] })) : null, state.canUpdateShared ? (_jsxs(Button, { variant: "outline", loading: documentActions.pending.create || documentActions.pending.update, onClick: () => setConfirmationAction('initialize'), children: [_jsx(Link2, {}), "Use this structure"] })) : (_jsx("p", { className: "text-sm text-muted-foreground", children: contentTypeId
39
+ ? 'The update-any permission is required to initialize it.'
40
+ : 'Saving initializes it automatically only when this is the first entry.' }))] })] }));
41
+ }
42
+ if (mode === 'unlinked') {
43
+ return withConfirmationDialog(_jsxs("div", { className: "mb-5 flex flex-wrap items-center justify-between gap-3 rounded-lg border p-4", children: [_jsxs("div", { className: "space-y-1", children: [_jsxs(Badge, { variant: "secondary", children: [_jsx(Unlink, {}), "Local structure"] }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Changes only affect this entry." })] }), _jsxs(Button, { variant: "outline", onClick: () => setConfirmationAction('relink'), children: [_jsx(Link2, {}), "Use shared structure"] })] }));
44
+ }
45
+ return withConfirmationDialog(_jsxs("div", { className: "mb-5 flex flex-wrap items-center justify-between gap-3 rounded-lg border p-4", children: [_jsxs("div", { className: "space-y-1", children: [_jsxs(Badge, { children: [_jsx(Link2, {}), "Shared structure"] }), _jsx("p", { className: "text-sm text-muted-foreground", children: state.canUpdateShared
46
+ ? `Iterator changes apply to every linked ${contentTypeName}.`
47
+ : 'This shared iterator is read-only with your current permissions.' })] }), contentTypeId ? (_jsxs(Button, { variant: "outline", onClick: () => linkedIterator.setMode('unlinked'), children: [_jsx(Unlink, {}), "Unlink this entry"] })) : null] }));
48
+ };
49
+ //# sourceMappingURL=LinkedIteratorControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkedIteratorControl.js","sourceRoot":"","sources":["../../../../../../../src/router/dashboard/[contentType]/[edit]/_components/LinkedIteratorControl.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type PropsWithChildren } from 'react';
2
+ import type { LinkedIteratorStateOutput } from '@rakun-kit/core/client';
2
3
  import { useContentDocumentActions } from '../_hooks/useContentDocumentActions.js';
3
4
  import { useContentPreview } from '../_hooks/useContentPreview.js';
4
5
  import { useContentTypeSections } from '../_hooks/useContentTypeSections.js';
@@ -41,6 +42,13 @@ type EditPageContextValue = {
41
42
  translation: ReturnType<typeof useTranslationDialogState>;
42
43
  translationEnabled: boolean;
43
44
  moveToTrashOpen: boolean;
45
+ linkedIterator: {
46
+ enabled: boolean;
47
+ state?: LinkedIteratorStateOutput;
48
+ mode: 'linked' | 'unlinked';
49
+ setMode: (mode: 'linked' | 'unlinked') => void;
50
+ adoptShared: () => void;
51
+ };
44
52
  };
45
53
  export declare const EditPageProvider: ({ children, contentType, defaultData, preview, onAfterRestore, }: PropsWithChildren<EditPageProps>) => import("react/jsx-runtime").JSX.Element;
46
54
  export declare const useEditPageContext: () => EditPageContextValue;
@@ -1 +1 @@
1
- {"version":3,"file":"EditPageContext.d.ts","sourceRoot":"","sources":["../../../../../../../src/router/dashboard/[contentType]/[edit]/_context/EditPageContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EAMvB,MAAM,OAAO,CAAA;AAGd,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,EACL,iBAAiB,EAElB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,KAAK,EACV,oBAAoB,EAEpB,0BAA0B,EAC1B,aAAa,EACb,WAAW,EACZ,MAAM,eAAe,CAAA;AAKtB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAqF9C,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,WAAW,CAAA;IACtB,UAAU,EAAE,OAAO,CAAA;IACnB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACzC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;IAC7D,kBAAkB,EAAE,0BAA0B,CAAA;IAC9C,IAAI,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAA;IAC9C,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,sBAAsB,EAAE,CAAC,UAAU,EAAE,0BAA0B,KAAK,IAAI,CAAA;IACxE,aAAa,EAAE,OAAO,CAAA;IACtB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,cAAc,CAAC,CAAA;IAC5D,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;IACjD,qBAAqB,EAAE,MAAM,IAAI,CAAA;IACjC,yBAAyB,EAAE,MAAM,IAAI,CAAA;IACrC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,YAAY,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;IAClD,kBAAkB,CAAC,EAAE,oBAAoB,CAAA;IACzC,WAAW,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAA;IAClD,QAAQ,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAA;IACnD,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC3C,sBAAsB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/C,oBAAoB,EAAE,OAAO,CAAA;IAC7B,SAAS,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;IAC9C,WAAW,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;IACzD,kBAAkB,EAAE,OAAO,CAAA;IAC3B,eAAe,EAAE,OAAO,CAAA;CACzB,CAAA;AA+CD,eAAO,MAAM,gBAAgB,GAAI,kEAM9B,iBAAiB,CAAC,aAAa,CAAC,4CAgNlC,CAAA;AAED,eAAO,MAAM,kBAAkB,4BAQ9B,CAAA"}
1
+ {"version":3,"file":"EditPageContext.d.ts","sourceRoot":"","sources":["../../../../../../../src/router/dashboard/[contentType]/[edit]/_context/EditPageContext.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { createContext, useCallback, useContext, useEffect, useMemo, useState, } from 'react';
4
+ import { ITERATOR_FIELD_NAME } from '@rakun-kit/core/client';
4
5
  import { useContentDocumentActions } from '../_hooks/useContentDocumentActions.js';
5
6
  import { useContentPreview, } from '../_hooks/useContentPreview.js';
6
7
  import { useContentTypeSections } from '../_hooks/useContentTypeSections.js';
@@ -13,6 +14,7 @@ import { useOptionalManagerNavigation } from '../../../../../state/navigation.js
13
14
  import { useLanguage } from '../../../../../state/language.js';
14
15
  import { useSession } from '../../../../../state/session.js';
15
16
  import { useManagerQuery } from '../../../../../client/react.js';
17
+ import { deepEqual } from '../../../../../helpers/deepEqual.js';
16
18
  const getDefaultVisibility = (defaultData) => (defaultData?._visibility ??
17
19
  'draft');
18
20
  const getInitialTab = ({ hasIterables, hasNonIterables, hasSeo, }) => hasNonIterables ? 'info' : hasIterables ? 'content' : hasSeo ? 'seo' : 'versions';
@@ -95,6 +97,25 @@ export const EditPageProvider = ({ children, contentType, defaultData, preview,
95
97
  const sections = useContentTypeSections(contentType);
96
98
  const localeVariantRoute = (contentType.routes ?? []).find((route) => route.hasPage);
97
99
  const contentTypeId = defaultData?._id;
100
+ const linkedIteratorQuery = useManagerQuery({
101
+ name: 'manager.linkedIterator.get',
102
+ input: {
103
+ contentType: contentType.name,
104
+ ...(contentTypeId ? { documentId: contentTypeId } : {}),
105
+ },
106
+ enabled: Boolean(contentType.linkedIterator),
107
+ });
108
+ const linkedIteratorState = linkedIteratorQuery.data;
109
+ const [linkedIteratorMode, setLinkedIteratorMode] = useState('linked');
110
+ const effectiveDefaultData = useMemo(() => {
111
+ if (defaultData)
112
+ return defaultData;
113
+ if (!linkedIteratorState?.iterator)
114
+ return defaultData;
115
+ return {
116
+ [ITERATOR_FIELD_NAME]: linkedIteratorState.iterator,
117
+ };
118
+ }, [defaultData, linkedIteratorState?.iterator]);
98
119
  const hasVisibility = Boolean(contentType.documentVisibility);
99
120
  const canReadVersions = hasPermissions(['content.ContentVersion.readAny']);
100
121
  const canRestoreVersions = hasPermissions(['content.ContentVersion.updateAny']);
@@ -109,7 +130,7 @@ export const EditPageProvider = ({ children, contentType, defaultData, preview,
109
130
  const [moveToTrashOpen, setMoveToTrashOpen] = useState(false);
110
131
  const [permanentDeleteOpen, setPermanentDeleteOpen] = useState(false);
111
132
  const form = useEditFormController({
112
- defaultData,
133
+ defaultData: effectiveDefaultData,
113
134
  hasVisibility,
114
135
  setSaveErrorVisible: setShowSaveErrorTooltip,
115
136
  visibility,
@@ -126,6 +147,29 @@ export const EditPageProvider = ({ children, contentType, defaultData, preview,
126
147
  onAfterRestore,
127
148
  readFormData: form.readFormData,
128
149
  replaceDraft: form.replaceDraft,
150
+ getLinkedIteratorControl: (data, requestedAction) => {
151
+ if (!contentType.linkedIterator || !linkedIteratorState?.enabled)
152
+ return undefined;
153
+ const iteratorChanged = !deepEqual(data[ITERATOR_FIELD_NAME], linkedIteratorState.iterator);
154
+ const action = linkedIteratorMode === 'linked'
155
+ ? requestedAction ??
156
+ (linkedIteratorState.configured &&
157
+ iteratorChanged &&
158
+ linkedIteratorState.canUpdateShared
159
+ ? 'update'
160
+ : undefined)
161
+ : undefined;
162
+ return {
163
+ mode: linkedIteratorMode,
164
+ ...(action ? { action } : {}),
165
+ ...(linkedIteratorState.revision !== undefined
166
+ ? { revision: linkedIteratorState.revision }
167
+ : {}),
168
+ };
169
+ },
170
+ onLinkedIteratorSaved: async () => {
171
+ await linkedIteratorQuery.refetch();
172
+ },
129
173
  setVisibility,
130
174
  visibilityBeforeTrash,
131
175
  });
@@ -204,6 +248,11 @@ export const EditPageProvider = ({ children, contentType, defaultData, preview,
204
248
  useEffect(() => {
205
249
  setVisibility(getDefaultVisibility(defaultData));
206
250
  }, [defaultData]);
251
+ useEffect(() => {
252
+ if (linkedIteratorState?.mode) {
253
+ setLinkedIteratorMode(linkedIteratorState.mode);
254
+ }
255
+ }, [linkedIteratorState?.mode]);
207
256
  useEffect(() => {
208
257
  if (editErrors.length === 0) {
209
258
  setShowSaveErrorTooltip(false);
@@ -227,6 +276,15 @@ export const EditPageProvider = ({ children, contentType, defaultData, preview,
227
276
  const handleVisibilityChange = (nextVisibility) => {
228
277
  setVisibility(nextVisibility);
229
278
  };
279
+ const adoptSharedIterator = () => {
280
+ if (!linkedIteratorState?.iterator)
281
+ return;
282
+ form.replaceDraft({
283
+ ...(form.draft.current ?? {}),
284
+ [ITERATOR_FIELD_NAME]: linkedIteratorState.iterator,
285
+ });
286
+ setLinkedIteratorMode('linked');
287
+ };
230
288
  return (_jsx(EditPageContext.Provider, { value: {
231
289
  activeTab,
232
290
  canPreview,
@@ -245,6 +303,13 @@ export const EditPageProvider = ({ children, contentType, defaultData, preview,
245
303
  isTrashed,
246
304
  languageCode: language.code,
247
305
  languageList,
306
+ linkedIterator: {
307
+ enabled: Boolean(contentType.linkedIterator),
308
+ state: linkedIteratorState,
309
+ mode: linkedIteratorMode,
310
+ setMode: setLinkedIteratorMode,
311
+ adoptShared: adoptSharedIterator,
312
+ },
248
313
  moveToTrashOpen,
249
314
  onAfterRestore,
250
315
  openMoveToTrashDialog: () => setMoveToTrashOpen(true),
@@ -1 +1 @@
1
- {"version":3,"file":"EditPageContext.js","sourceRoot":"","sources":["../../../../../../../src/router/dashboard/[contentType]/[edit]/_context/EditPageContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EditPageContext.js","sourceRoot":"","sources":["../../../../../../../src/router/dashboard/[contentType]/[edit]/_context/EditPageContext.tsx"],"names":[],"mappings":"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"}
@@ -16,8 +16,16 @@ type SourceFieldOption = {
16
16
  value: string;
17
17
  kind: SourceFieldKind;
18
18
  };
19
+ type CurrentDocumentListSourceOption = {
20
+ label: string;
21
+ value: string;
22
+ contentType: EncodedContentType;
23
+ path: string;
24
+ itemName?: string;
25
+ };
19
26
  export declare const isDynamicFieldEnabled: (contentType: EncodedContentType, field: EncodedFieldUnknown) => boolean;
20
27
  export declare const sourceFieldOptions: (contentType?: EncodedContentType, targetField?: EncodedFieldUnknown) => SourceFieldOption[];
28
+ export declare const currentDocumentListSourceOptions: (contentType: EncodedContentType) => CurrentDocumentListSourceOption[];
21
29
  export declare const readFilterState: (filter: Record<string, unknown> | undefined) => FilterState;
22
30
  export declare const buildFilter: (state: FilterState, fieldOptions?: SourceFieldOption[]) => Record<string, unknown> | undefined;
23
31
  export declare const DynamicDataControl: ({ contentType, documentContentType, fieldName, field, contentTypes, bindings, onChange, open, onOpenChange, mode, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicDataControl.d.ts","sourceRoot":"","sources":["../../../../../../../src/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,uBAAuB,EAIvB,kBAAkB,EAElB,mBAAmB,EAIpB,MAAM,wBAAwB,CAAA;AAuD/B,KAAK,cAAc,GACf,QAAQ,GACR,WAAW,GACX,UAAU,GACV,IAAI,GACJ,OAAO,GACP,aAAa,GACb,oBAAoB,GACpB,UAAU,GACV,iBAAiB,GACjB,MAAM,GACN,OAAO,GACP,QAAQ,GACR,WAAW,CAAA;AACf,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,cAAc,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CACpC,CAAA;AACD,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,KAAK,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B,CAAA;AACD,KAAK,eAAe,GAChB,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,SAAS,GACT,MAAM,GACN,QAAQ,GACR,OAAO,GACP,SAAS,CAAA;AACb,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,eAAe,CAAA;CACtB,CAAA;AAuCD,eAAO,MAAM,qBAAqB,GAChC,aAAa,kBAAkB,EAC/B,OAAO,mBAAmB,YAM3B,CAAA;AAmLD,eAAO,MAAM,kBAAkB,GAC7B,cAAc,kBAAkB,EAChC,cAAc,mBAAmB,KAChC,iBAAiB,EAWnB,CAAA;AAkID,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KAC1C,WAyBF,CAAA;AAgED,eAAO,MAAM,WAAW,GACtB,OAAO,WAAW,EAClB,eAAc,iBAAiB,EAAO,wCAavC,CAAA;AAo0CD,eAAO,MAAM,kBAAkB,GAAI,qHAWhC;IACD,WAAW,EAAE,kBAAkB,CAAA;IAC/B,mBAAmB,CAAC,EAAE,kBAAkB,CAAA;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,mBAAmB,CAAA;IAC1B,YAAY,EAAE,kBAAkB,EAAE,CAAA;IAClC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,CAAA;IAC7C,QAAQ,EAAE,CAAC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,KAAK,IAAI,CAAA;IACjE,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;CAC/C,mDAkOA,CAAA"}
1
+ {"version":3,"file":"DynamicDataControl.d.ts","sourceRoot":"","sources":["../../../../../../../src/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,uBAAuB,EAKvB,kBAAkB,EAElB,mBAAmB,EAIpB,MAAM,wBAAwB,CAAA;AAwD/B,KAAK,cAAc,GACf,QAAQ,GACR,WAAW,GACX,UAAU,GACV,IAAI,GACJ,OAAO,GACP,aAAa,GACb,oBAAoB,GACpB,UAAU,GACV,iBAAiB,GACjB,MAAM,GACN,OAAO,GACP,QAAQ,GACR,WAAW,CAAA;AACf,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,cAAc,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CACpC,CAAA;AACD,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,KAAK,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B,CAAA;AACD,KAAK,eAAe,GAChB,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,SAAS,GACT,MAAM,GACN,QAAQ,GACR,OAAO,GACP,SAAS,CAAA;AACb,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,eAAe,CAAA;CACtB,CAAA;AACD,KAAK,+BAA+B,GAAG;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,kBAAkB,CAAA;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AA4CD,eAAO,MAAM,qBAAqB,GAChC,aAAa,kBAAkB,EAC/B,OAAO,mBAAmB,YAM3B,CAAA;AAmLD,eAAO,MAAM,kBAAkB,GAC7B,cAAc,kBAAkB,EAChC,cAAc,mBAAmB,KAChC,iBAAiB,EAWnB,CAAA;AAKD,eAAO,MAAM,gCAAgC,GAC3C,aAAa,kBAAkB,KAC9B,+BAA+B,EAsC9B,CAAA;AAkIJ,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KAC1C,WAyBF,CAAA;AAgED,eAAO,MAAM,WAAW,GACtB,OAAO,WAAW,EAClB,eAAc,iBAAiB,EAAO,wCAavC,CAAA;AAk4CD,eAAO,MAAM,kBAAkB,GAAI,qHAWhC;IACD,WAAW,EAAE,kBAAkB,CAAA;IAC/B,mBAAmB,CAAC,EAAE,kBAAkB,CAAA;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,mBAAmB,CAAA;IAC1B,YAAY,EAAE,kBAAkB,EAAE,CAAA;IAClC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,CAAA;IAC7C,QAAQ,EAAE,CAAC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,KAAK,IAAI,CAAA;IACjE,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;CAC/C,mDAmOA,CAAA"}
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { DYNAMIC_QUERY_CURRENT_VALUE_KEY, getListField, isDynamicDataSourceContentTypeAllowed, isTranslatableObject, } from '@rakun-kit/core/client';
3
+ import { DYNAMIC_QUERY_CURRENT_VALUE_KEY, ITERATOR_FIELD_NAME, getListField, isDynamicDataSourceContentTypeAllowed, isTranslatableObject, } from '@rakun-kit/core/client';
4
4
  import { Cable, ChevronRight, HelpCircle, Link2, ListFilter, Plus, Trash2, X, } from 'lucide-react';
5
5
  import { useEffect, useMemo, useRef, useState } from 'react';
6
6
  import { Badge } from '../../../../../components/ui/badge.js';
@@ -30,6 +30,7 @@ const isRecord = (value) => !!value && typeof value === 'object' && !Array.isArr
30
30
  const isListField = (field) => field.config.ui === 'List' || field.config.ui === 'Iterator';
31
31
  const isRelatedCollectionSource = (source) => !!source && 'kind' in source && source.kind === 'relatedCollection';
32
32
  const isDynamicVisibleField = (field) => (field.visibility ?? 'all') === 'all' && field.isDynamic !== false;
33
+ const isSelectableDynamicField = (name, field) => name !== ITERATOR_FIELD_NAME && isDynamicVisibleField(field);
33
34
  export const isDynamicFieldEnabled = (contentType, field) => {
34
35
  return (contentType.dynamicData !== false &&
35
36
  isDynamicVisibleField(field));
@@ -122,7 +123,7 @@ const fileFieldOptions = (path, targetField) => {
122
123
  return options.filter((option) => isCompatibleSourceKind(option.kind, targetField));
123
124
  };
124
125
  const nestedSourceFieldOptions = ({ contentType, prefix = '', targetField, depth = 0, }) => Object.entries(contentType.fields).flatMap(([name, field]) => {
125
- if (!isDynamicVisibleField(field))
126
+ if (!isSelectableDynamicField(name, field))
126
127
  return [];
127
128
  const path = prefix ? `${prefix}.${name}` : name;
128
129
  const kind = getFieldKind(field);
@@ -183,6 +184,38 @@ export const sourceFieldOptions = (contentType, targetField) => {
183
184
  ? [{ label: 'href', value: '$href', kind: 'string' }, ...fields]
184
185
  : fields;
185
186
  };
187
+ const currentDocumentListSourceValue = (path, itemName) => `current-document:${path}:${itemName ?? ''}`;
188
+ export const currentDocumentListSourceOptions = (contentType) => Object.entries(contentType.fields).flatMap(([name, field]) => {
189
+ if (!isSelectableDynamicField(name, field) || field.isTranslatable)
190
+ return [];
191
+ if (field.config.ui === 'List' || field.config.ui === 'Iterator') {
192
+ const relationEntries = field.fields.filter((entry) => entry.name !== ITERATOR_FIELD_NAME &&
193
+ entry.field.config.type === 'Relation');
194
+ return relationEntries.map((entry) => ({
195
+ label: relationEntries.length === 1
196
+ ? `Current document · ${name}`
197
+ : `Current document · ${name} (${entry.name})`,
198
+ value: currentDocumentListSourceValue(name, entry.name),
199
+ contentType: entry.field.contentType,
200
+ path: name,
201
+ itemName: entry.name,
202
+ }));
203
+ }
204
+ if (field.config.ui === 'SimpleList') {
205
+ const itemField = field.field;
206
+ if (itemField.config.type !== 'Relation')
207
+ return [];
208
+ return [
209
+ {
210
+ label: `Current document · ${name}`,
211
+ value: currentDocumentListSourceValue(name),
212
+ contentType: itemField.contentType,
213
+ path: name,
214
+ },
215
+ ];
216
+ }
217
+ return [];
218
+ });
186
219
  const createSource = (contentType, value, id) => value === '$href'
187
220
  ? { contentType, id, virtual: 'href' }
188
221
  : { contentType, id, path: value };
@@ -389,12 +422,15 @@ const bindingSummary = ({ list, fieldBinding, listBinding, documentContentTypeNa
389
422
  if (list) {
390
423
  if (!listBinding)
391
424
  return '';
425
+ const source = listBinding.source
426
+ ? `Current document.${listBinding.source.path}`
427
+ : listBinding.contentType;
392
428
  const limit = listBinding.query?.options?.limit ?? 10;
393
429
  const filter = filterSummary(listBinding.query?.filter);
394
430
  return [
395
- `${listBinding.contentType} -> ${listBinding.itemName}`,
396
- `limit ${limit}`,
397
- filter,
431
+ `${source} -> ${listBinding.itemName}`,
432
+ listBinding.source ? '' : `limit ${limit}`,
433
+ listBinding.source ? '' : filter,
398
434
  ]
399
435
  .filter(Boolean)
400
436
  .join(' · ');
@@ -495,14 +531,14 @@ const getRelationContentType = (field) => {
495
531
  return undefined;
496
532
  };
497
533
  const getRelatedRelationOptions = (contentType, currentSource) => Object.entries(contentType.fields).flatMap(([name, field]) => {
498
- if (!isDynamicVisibleField(field))
534
+ if (!isSelectableDynamicField(name, field))
499
535
  return [];
500
536
  const relationContentType = getRelationContentType(field);
501
537
  return relationContentType?.name === currentSource.name ? [name] : [];
502
538
  });
503
539
  const getRelatedPathOptions = (contentType, targetField) => sourceFieldOptions(contentType, targetField).filter((option) => option.kind === 'array' && option.value !== '$href');
504
540
  const getSortFieldOptions = (contentType) => Object.entries(contentType.fields).flatMap(([name, field]) => {
505
- if (!isDynamicVisibleField(field) ||
541
+ if (!isSelectableDynamicField(name, field) ||
506
542
  field.isTranslatable ||
507
543
  name.startsWith('_') ||
508
544
  isSeoPath(name)) {
@@ -649,15 +685,25 @@ const MappingSourceEditor = ({ contentTypes, currentSource, targetField, source,
649
685
  })
650
686
  : undefined, children: [_jsx(SelectTrigger, { className: 'w-full', children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: 'asc', children: "Ascending" }), _jsx(SelectItem, { value: 'desc', children: "Descending" })] })] })] })] })] }));
651
687
  };
652
- const ListBindingEditor = ({ contentTypes, documentContentType, field, binding, onChange, }) => {
653
- const [sourceType, setSourceType] = useState(binding?.contentType || '');
654
- const [itemName, setItemName] = useState(binding?.itemName || field.fields[0]?.name || '');
688
+ const ListBindingEditor = ({ contentTypes, documentContentType, currentDocumentSourceEnabled, field, binding, onChange, }) => {
689
+ const itemOptions = field.fields.filter((item) => item.name !== ITERATOR_FIELD_NAME);
690
+ const documentSourceOptions = currentDocumentSourceEnabled
691
+ ? currentDocumentListSourceOptions(documentContentType)
692
+ : [];
693
+ const initialDocumentSource = binding?.source
694
+ ? documentSourceOptions.find((option) => option.path === binding.source?.path &&
695
+ option.itemName === binding.source?.itemName)
696
+ : undefined;
697
+ const [sourceType, setSourceType] = useState(initialDocumentSource?.value || binding?.contentType || '');
698
+ const [itemName, setItemName] = useState(binding?.itemName || itemOptions[0]?.name || '');
655
699
  const [filterState, setFilterState] = useState(readFilterState(binding?.query?.filter));
656
700
  const [openMappingField, setOpenMappingField] = useState(null);
657
- const selectedSource = contentTypes.find((ct) => ct.name === sourceType);
701
+ const selectedDocumentSource = documentSourceOptions.find((option) => option.value === sourceType);
702
+ const selectedSource = selectedDocumentSource?.contentType ??
703
+ contentTypes.find((ct) => ct.name === sourceType);
658
704
  const targetContentType = getListTargetContentType(field, itemName);
659
705
  const targetFields = useMemo(() => targetContentType
660
- ? Object.entries(targetContentType.fields).filter(([, targetField]) => isDynamicVisibleField(targetField))
706
+ ? Object.entries(targetContentType.fields).filter(([targetFieldName, targetField]) => isSelectableDynamicField(targetFieldName, targetField))
661
707
  : [], [targetContentType]);
662
708
  const sortFieldOptions = selectedSource
663
709
  ? getSortFieldOptions(selectedSource)
@@ -675,11 +721,22 @@ const ListBindingEditor = ({ contentTypes, documentContentType, field, binding,
675
721
  const sortField = sortEntry?.[0] ?? '';
676
722
  const sortDirection = sortEntry?.[1] ?? 'desc';
677
723
  const emit = (patch) => {
724
+ const source = selectedDocumentSource
725
+ ? {
726
+ kind: 'currentDocument',
727
+ contentType: documentContentType.name,
728
+ path: selectedDocumentSource.path,
729
+ itemName: selectedDocumentSource.itemName,
730
+ }
731
+ : undefined;
678
732
  const next = {
679
- contentType: sourceType,
733
+ contentType: selectedSource?.name ?? '',
734
+ source,
680
735
  itemName,
681
736
  map: binding?.map ?? {},
682
- query: binding?.query ?? { options: { limit: 10 } },
737
+ query: source
738
+ ? undefined
739
+ : (binding?.query ?? { options: { limit: 10 } }),
683
740
  ...patch,
684
741
  };
685
742
  if (!next.contentType || !next.itemName) {
@@ -702,26 +759,40 @@ const ListBindingEditor = ({ contentTypes, documentContentType, field, binding,
702
759
  conditions[index] = nextCondition;
703
760
  updateFilter({ ...filterState, conditions });
704
761
  };
705
- return (_jsxs("div", { className: 'grid gap-3', children: [_jsx(PanelSection, { title: 'Collection', children: _jsxs("div", { className: 'grid gap-3 md:grid-cols-2', children: [_jsxs(Label, { className: 'grid gap-1.5', children: ["Source", _jsxs(Select, { disabled: contentTypes.length === 0, value: sourceType, onValueChange: (value) => {
762
+ return (_jsxs("div", { className: 'grid gap-3', children: [_jsx(PanelSection, { title: 'Collection', children: _jsxs("div", { className: 'grid gap-3 md:grid-cols-2', children: [_jsxs(Label, { className: 'grid gap-1.5', children: ["Source", _jsxs(Select, { disabled: contentTypes.length === 0 && documentSourceOptions.length === 0, value: sourceType, onValueChange: (value) => {
763
+ const documentSource = documentSourceOptions.find((option) => option.value === value);
706
764
  setSourceType(value);
707
765
  const nextFilterState = {
708
766
  combinator: 'and',
709
767
  conditions: [],
710
768
  };
711
769
  setFilterState(nextFilterState);
712
- emit({
713
- contentType: value,
770
+ onChange({
771
+ contentType: documentSource?.contentType.name ?? value,
772
+ source: documentSource
773
+ ? {
774
+ kind: 'currentDocument',
775
+ contentType: documentContentType.name,
776
+ path: documentSource.path,
777
+ itemName: documentSource.itemName,
778
+ }
779
+ : undefined,
780
+ itemName,
714
781
  map: {},
715
- query: {
716
- options: {
717
- limit: binding?.query?.options?.limit ?? 10,
782
+ query: documentSource
783
+ ? undefined
784
+ : {
785
+ options: {
786
+ limit: binding?.query?.options?.limit ?? 10,
787
+ },
718
788
  },
719
- },
720
789
  });
721
- }, children: [_jsx(SelectTrigger, { className: 'w-full', children: _jsx(SelectValue, { placeholder: contentTypes.length > 0 ? 'Content type' : 'No content types' }) }), _jsx(SelectContent, { children: _jsx(SelectGroup, { children: contentTypes.map((ct) => (_jsx(SelectItem, { value: ct.name, children: ct.name }, ct.name))) }) })] })] }), _jsxs(Label, { className: 'grid gap-1.5', children: ["Item", _jsxs(Select, { disabled: !sourceType || field.fields.length === 0, value: itemName, onValueChange: (value) => {
790
+ }, children: [_jsx(SelectTrigger, { className: 'w-full', children: _jsx(SelectValue, { placeholder: contentTypes.length > 0 || documentSourceOptions.length > 0
791
+ ? 'Content type or document list'
792
+ : 'No compatible sources' }) }), _jsx(SelectContent, { children: _jsxs(SelectGroup, { children: [documentSourceOptions.map((option) => (_jsx(SelectItem, { value: option.value, children: option.label }, option.value))), contentTypes.map((ct) => (_jsx(SelectItem, { value: ct.name, children: ct.name }, ct.name)))] }) })] })] }), _jsxs(Label, { className: 'grid gap-1.5', children: ["Item", _jsxs(Select, { disabled: !sourceType || itemOptions.length === 0, value: itemName, onValueChange: (value) => {
722
793
  setItemName(value);
723
794
  emit({ itemName: value, map: {} });
724
- }, children: [_jsx(SelectTrigger, { className: 'w-full', children: _jsx(SelectValue, { placeholder: field.fields.length > 0 ? 'Item type' : 'No item types' }) }), _jsx(SelectContent, { children: _jsx(SelectGroup, { children: field.fields.map((item) => (_jsx(SelectItem, { value: item.name, children: item.name }, item.name))) }) })] })] })] }) }), _jsxs(PanelSection, { title: 'Query', children: [_jsxs("div", { className: 'grid grid-cols-[minmax(5rem,0.4fr)_minmax(0,1.2fr)_minmax(8rem,0.6fr)] items-end gap-3', children: [_jsxs(Label, { className: 'grid gap-1.5', children: ["Limit", _jsx(Input, { type: 'number', min: 1, max: 100, value: String(binding?.query?.options?.limit ?? 10), onChange: (event) => emit({
795
+ }, children: [_jsx(SelectTrigger, { className: 'w-full', children: _jsx(SelectValue, { placeholder: itemOptions.length > 0 ? 'Item type' : 'No item types' }) }), _jsx(SelectContent, { children: _jsx(SelectGroup, { children: itemOptions.map((item) => (_jsx(SelectItem, { value: item.name, children: item.name }, item.name))) }) })] })] })] }) }), selectedDocumentSource ? null : (_jsxs(PanelSection, { title: 'Query', children: [_jsxs("div", { className: 'grid grid-cols-[minmax(5rem,0.4fr)_minmax(0,1.2fr)_minmax(8rem,0.6fr)] items-end gap-3', children: [_jsxs(Label, { className: 'grid gap-1.5', children: ["Limit", _jsx(Input, { type: 'number', min: 1, max: 100, value: String(binding?.query?.options?.limit ?? 10), onChange: (event) => emit({
725
796
  query: {
726
797
  ...binding?.query,
727
798
  options: {
@@ -810,7 +881,7 @@ const ListBindingEditor = ({ contentTypes, documentContentType, field, binding,
810
881
  ...filterState,
811
882
  conditions: filterState.conditions.filter((_, conditionIndex) => conditionIndex !== index),
812
883
  }), children: [_jsx(Trash2, { className: 'h-4 w-4' }), _jsx("span", { className: 'sr-only', children: "Remove condition" })] })] }, `${index}-${condition.field}`));
813
- }) }))] })] }), _jsx(PanelSection, { title: 'Mapping', children: _jsx("div", { className: 'grid gap-2', children: targetFields.map(([targetField, targetFieldConfig]) => {
884
+ }) }))] })] })), _jsx(PanelSection, { title: 'Mapping', children: _jsx("div", { className: 'grid gap-2', children: targetFields.map(([targetField, targetFieldConfig]) => {
814
885
  const source = binding?.map?.[targetField];
815
886
  const summary = mappingSourceSummary(source, selectedSource?.name ?? 'Source');
816
887
  const isOpen = openMappingField === targetField;
@@ -909,7 +980,7 @@ export const DynamicDataControl = ({ contentType, documentContentType, fieldName
909
980
  setOpen(false);
910
981
  };
911
982
  const trigger = (_jsxs("div", { className: 'flex min-w-0 items-center gap-1.5', children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: 'button', className: 'min-w-0 cursor-pointer rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', onClick: () => setOpen((value) => !value), children: bound && summary ? (_jsxs(Badge, { variant: 'secondary', className: 'max-w-80 min-w-0 gap-1.5 rounded-md px-2 py-1 hover:bg-secondary/80', children: [list ? (_jsx(ListFilter, { className: 'h-3.5 w-3.5 shrink-0' })) : (_jsx(Link2, { className: 'h-3.5 w-3.5 shrink-0' })), _jsx("span", { className: 'truncate', children: summary })] })) : (_jsxs(Badge, { variant: 'outline', className: 'gap-1.5 rounded-md px-2 py-1 text-muted-foreground', children: [_jsx(Cable, { className: 'h-3.5 w-3.5' }), "Not linked"] })) }) }), _jsx(TooltipContent, { side: 'top', sideOffset: 6, children: triggerLabel })] }), bound ? (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs(Button, { type: 'button', size: 'icon', variant: 'ghost', className: 'size-6', onClick: clearBinding, children: [_jsx(X, { className: 'h-4 w-4' }), _jsx("span", { className: 'sr-only', children: "Clear dynamic data" })] }) }), _jsx(TooltipContent, { side: 'top', sideOffset: 6, children: "Clear dynamic data link" })] })) : null] }));
912
- const editor = list ? (_jsx(ListBindingEditor, { contentTypes: sourceContentTypes, documentContentType: currentDocumentContentType, field: field, binding: listBinding, onChange: updateListBinding })) : (_jsx(FieldBindingEditor, { contentTypes: fieldSourceContentTypes, documentContentType: currentDocumentContentType, currentDocumentSourceEnabled: currentDocumentSourceEnabled, targetField: field, binding: fieldBinding, onChange: updateFieldBinding }));
983
+ const editor = list ? (_jsx(ListBindingEditor, { contentTypes: sourceContentTypes, documentContentType: currentDocumentContentType, currentDocumentSourceEnabled: currentDocumentSourceEnabled, field: field, binding: listBinding, onChange: updateListBinding })) : (_jsx(FieldBindingEditor, { contentTypes: fieldSourceContentTypes, documentContentType: currentDocumentContentType, currentDocumentSourceEnabled: currentDocumentSourceEnabled, targetField: field, binding: fieldBinding, onChange: updateFieldBinding }));
913
984
  const panel = isOpen ? (_jsx("div", { className: 'rounded-md border border-border bg-background p-4 shadow-sm', children: editor })) : null;
914
985
  const dialog = (_jsx(Dialog, { open: isOpen, onOpenChange: (value) => {
915
986
  if (value) {