@arpproject/recrate 0.1.35 → 0.1.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/crate-builder/RenderEntity/DialogEditContext.d.ts +4 -0
- package/dist/crate-builder/RenderEntity/approval-utils.d.ts +6 -0
- package/dist/crate-builder/RenderEntity/useEntityMutationHandlers.d.ts +1 -0
- package/dist/crate-builder/RenderEntity/useEntityNavigationState.d.ts +4 -1
- package/dist/crate-builder/RenderEntity/useEntityScrollRestoration.d.ts +3 -1
- package/dist/crate-builder/locales/en.d.ts +12 -0
- package/dist/crate-builder/locales/hu.d.ts +12 -0
- package/dist/recrate.css +1 -1
- package/dist/recrate.es.js +384 -46
- package/package.json +1 -1
|
@@ -3,6 +3,10 @@ interface DialogEditContextProps {
|
|
|
3
3
|
onClose: () => void;
|
|
4
4
|
onUpdateContext: (context: any) => void;
|
|
5
5
|
open: boolean;
|
|
6
|
+
approvalRecord?: any;
|
|
7
|
+
readonly?: boolean;
|
|
8
|
+
onAcceptAiContext?: () => void;
|
|
9
|
+
onRejectAiContext?: () => void;
|
|
6
10
|
}
|
|
7
11
|
declare const DialogEditContext: React.FC<DialogEditContextProps>;
|
|
8
12
|
export default DialogEditContext;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const approvalIsApproved: (approvalRecord: any) => boolean;
|
|
2
|
+
export declare const CONTEXT_APPROVAL_PROPERTY_NAME = "@context";
|
|
2
3
|
export declare const getApprovalEntities: (approvalData: any) => any[];
|
|
3
4
|
export declare const getEntityIdAliases: (id: string | undefined) => string[];
|
|
4
5
|
export declare const entityIdsMatch: (left: string | undefined, right: string | undefined) => boolean;
|
|
@@ -14,6 +15,11 @@ export declare const getDeletedEntityReviewTarget: (entityApproval: any) => {
|
|
|
14
15
|
export declare const getPendingDeletedEntityReversePropertiesForSource: (approvalData: any, sourceEntityId: string | undefined) => string[];
|
|
15
16
|
export declare const getEntityApproval: (approvalData: any, entityId: string | undefined) => any | undefined;
|
|
16
17
|
export declare const getEntityApprovalRecords: (approvalData: any, entityId: string | undefined, property: string) => any[];
|
|
18
|
+
export declare const getPendingEntityContextApprovalRecords: (approvalData: any, entityId: string | undefined) => any[];
|
|
19
|
+
export declare const getPendingContextApprovalRecords: (approvalData: any) => Array<{
|
|
20
|
+
entityId: string;
|
|
21
|
+
approvalRecord: any;
|
|
22
|
+
}>;
|
|
17
23
|
export declare const getReferenceId: (value: any) => string | undefined;
|
|
18
24
|
export declare const getReferenceValues: (value: any) => any[];
|
|
19
25
|
export declare const getRemovedReferenceValues: (previousValue: any, currentValue: any) => any[];
|
|
@@ -23,6 +23,7 @@ declare const useEntityMutationHandlers: ({ entity, contextEntity, crateManager,
|
|
|
23
23
|
handleCreateEntity: (data: any) => any;
|
|
24
24
|
handleCreateProperty: (data: {
|
|
25
25
|
property: string;
|
|
26
|
+
propertyId?: string;
|
|
26
27
|
value: any;
|
|
27
28
|
}) => void;
|
|
28
29
|
handleDeleteEntity: (data: {
|
|
@@ -13,9 +13,12 @@ interface UseEntityNavigationStateOptions {
|
|
|
13
13
|
onSaveCrate: () => void;
|
|
14
14
|
debugScroll?: (...args: any[]) => void;
|
|
15
15
|
}
|
|
16
|
+
interface CaptureViewContextOptions {
|
|
17
|
+
updateActiveTab?: boolean;
|
|
18
|
+
}
|
|
16
19
|
declare const useEntityNavigationState: ({ activeTab, activeContentRef, contextEntity, state, restoreInProgressRef, showAddPanel, reverseSidebarVisible, highlightRequiredProperties, iconView, tabPaneWidth, onSaveCrate, debugScroll, }: UseEntityNavigationStateOptions) => {
|
|
17
20
|
captureCurrentViewContext: (tabName?: string) => void;
|
|
18
|
-
captureViewContext: (tabName?: string, explicitScrollTop?: number) => void;
|
|
21
|
+
captureViewContext: (tabName?: string, explicitScrollTop?: number, options?: CaptureViewContextOptions) => void;
|
|
19
22
|
saveCratePreservingView: () => void;
|
|
20
23
|
saveTabToState: (tabName: string) => void;
|
|
21
24
|
};
|
|
@@ -24,7 +24,9 @@ interface UseEntityScrollRestorationOptions {
|
|
|
24
24
|
tabPaneWidth: number;
|
|
25
25
|
state: any;
|
|
26
26
|
isAiScrollRestoreSuppressed: () => boolean;
|
|
27
|
-
captureViewContext: (tabName?: string, explicitScrollTop?: number
|
|
27
|
+
captureViewContext: (tabName?: string, explicitScrollTop?: number, options?: {
|
|
28
|
+
updateActiveTab?: boolean;
|
|
29
|
+
}) => void;
|
|
28
30
|
debugScroll?: (...args: any[]) => void;
|
|
29
31
|
}
|
|
30
32
|
declare const useEntityScrollRestoration: ({ activeTab, activeContentRef, contextEntity, renderTabs, tabsLength, extraPropertiesLength, scrollRestoreNonce, setScrollRestoreNonce, navigationRestoreReadyRef, pendingRestoredTabRef, restoreInProgressRef, pendingAddedPropertyRef, showAddPanel, reverseSidebarVisible, highlightRequiredProperties, iconView, tabPaneWidth, state, isAiScrollRestoreSuppressed, captureViewContext, debugScroll, }: UseEntityScrollRestorationOptions) => void;
|
|
@@ -20,6 +20,18 @@ declare namespace en {
|
|
|
20
20
|
let browse_entities: string;
|
|
21
21
|
let filter_attribute_set: string;
|
|
22
22
|
let save_label: string;
|
|
23
|
+
let ai_context_review_title: string;
|
|
24
|
+
let ai_context_review_description: string;
|
|
25
|
+
let ai_context_diff_aria: string;
|
|
26
|
+
let ai_context_diff_title: string;
|
|
27
|
+
let ai_previous_context: string;
|
|
28
|
+
let ai_current_context: string;
|
|
29
|
+
let ai_context_diff_omitted_lines_one: string;
|
|
30
|
+
let ai_context_diff_omitted_lines_other: string;
|
|
31
|
+
let ai_context_diff_show_omitted_lines_one: string;
|
|
32
|
+
let ai_context_diff_show_omitted_lines_other: string;
|
|
33
|
+
let ai_context_diff_hide_omitted_lines_one: string;
|
|
34
|
+
let ai_context_diff_hide_omitted_lines_other: string;
|
|
23
35
|
let preview_loading: string;
|
|
24
36
|
let search_for_connection: string;
|
|
25
37
|
let filter_by_type: string;
|
|
@@ -20,6 +20,18 @@ declare namespace hu {
|
|
|
20
20
|
let browse_entities: string;
|
|
21
21
|
let filter_attribute_set: string;
|
|
22
22
|
let save_label: string;
|
|
23
|
+
let ai_context_review_title: string;
|
|
24
|
+
let ai_context_review_description: string;
|
|
25
|
+
let ai_context_diff_aria: string;
|
|
26
|
+
let ai_context_diff_title: string;
|
|
27
|
+
let ai_previous_context: string;
|
|
28
|
+
let ai_current_context: string;
|
|
29
|
+
let ai_context_diff_omitted_lines_one: string;
|
|
30
|
+
let ai_context_diff_omitted_lines_other: string;
|
|
31
|
+
let ai_context_diff_show_omitted_lines_one: string;
|
|
32
|
+
let ai_context_diff_show_omitted_lines_other: string;
|
|
33
|
+
let ai_context_diff_hide_omitted_lines_one: string;
|
|
34
|
+
let ai_context_diff_hide_omitted_lines_other: string;
|
|
23
35
|
let preview_loading: string;
|
|
24
36
|
let search_for_connection: string;
|
|
25
37
|
let filter_by_type: string;
|
package/dist/recrate.css
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
.el-tabs__item{height:unset}.el-select-dropdown__wrap{max-height:500px!important}.el-select-group__title{font-size:14px!important}.scrollbar{overflow:overlay}.scrollbar::-webkit-scrollbar{background-color:#0000;height:16px;width:16px;z-index:999999}.scrollbar::-webkit-scrollbar-track{background-color:#0000}.scrollbar::-webkit-scrollbar-thumb{background-color:#0000;border:0 solid #fff;border-radius:16px}.scrollbar::-webkit-scrollbar-button{display:none}.scrollbar:hover::-webkit-scrollbar-thumb{background-color:#a0a0a5;border:4px solid #fff}.scrollbar::-webkit-scrollbar-thumb:hover{background-color:#a0a0a5;border:4px solid #f4f4f4}.cm-editor{font-size:12px;height:auto;max-height:none}.recrate-tab-icon{align-items:center;display:flex;font-size:14px;font-weight:600;height:100%;justify-content:center;width:100%}.recrate-add-only-tabs .ant-tabs-nav,.recrate-add-only-tabs .ant-tabs-nav-wrap{height:100%}.recrate-add-only-tabs .ant-tabs-nav-list{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center}.recrate-add-only-tabs .ant-tabs-tab{justify-content:center}.recrate-tab-rail{background:#fff;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;position:relative}.recrate-tab-rail-actions{border-bottom:1px solid #e5e7eb;display:flex;flex:0 0 auto;gap:8px;justify-content:center;padding:10px 8px 8px}.recrate-tab-rail-actions-only .recrate-tab-rail-actions{border-bottom:0}.recrate-tab-rail-list{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;padding:8px 6px 16px;scrollbar-width:none}.recrate-tab-rail-list::-webkit-scrollbar{display:none}.recrate-tab-rail-item{border-radius:6px;color:#334155;cursor:pointer;display:block;margin:2px 0;outline:none;padding:12px 10px;position:relative;transition:background-color .12s ease,color .12s ease;width:100%}.recrate-tab-rail-item:focus-visible,.recrate-tab-rail-item:hover{background:#f1f5f9}.recrate-tab-rail-item-active{background:#eaf2ff;color:#1d4ed8}.recrate-tab-rail-item-active:before{background:#2563eb;border-radius:999px;bottom:10px;content:"";left:0;position:absolute;top:10px;width:3px}.recrate-tab-rail-item-icon{align-items:center;display:flex;justify-content:center;min-height:42px;padding:8px}.recrate-tab-rail-row{align-items:center;display:flex;gap:8px;justify-content:space-between}.recrate-tab-rail-title{font-size:15px;font-weight:600;line-height:1.35;min-width:0;overflow-wrap:anywhere}.recrate-tab-rail-status{align-items:center;display:inline-flex;flex:0 0 auto;gap:4px}.recrate-tab-rail-remove-button{flex:0 0 auto;transition:opacity .12s ease}.recrate-tab-rail-description{color:#64748b;font-size:12px;line-height:1.35;margin-top:4px;overflow-wrap:anywhere}.recrate-tab-rail:after,.recrate-tab-rail:before{content:"";height:34px;left:0;opacity:0;pointer-events:none;position:absolute;right:0;transition:opacity .12s ease;z-index:2}.recrate-tab-rail:before{background:linear-gradient(#fff,#fff0);top:53px}.recrate-tab-rail:after{background:linear-gradient(#fff0,#fff);bottom:0}.recrate-tab-rail-can-scroll-down:after,.recrate-tab-rail-can-scroll-up:before{opacity:1}.recrate-tab-rail-scroll-button{box-shadow:0 2px 8px #0f172a24;left:50%;position:absolute;transform:translateX(-50%);z-index:3}.recrate-tab-rail-scroll-button-up{top:58px}.recrate-tab-rail-scroll-button-down{bottom:8px}.recrate-add-property-drawer{z-index:6000}.recrate-add-property-title.ant-typography{font-size:22px;line-height:1.25;margin:0}.recrate-add-property-row{border:1px solid #0000;border-radius:6px;color:#111827;cursor:pointer;outline:none;padding:10px 12px 10px 14px;position:relative;transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease,transform .12s ease}.recrate-add-property-row:before{background:#0000;border-radius:999px;bottom:10px;content:"";left:0;position:absolute;top:10px;transition:background-color .12s ease;width:3px}.recrate-add-property-row:focus-visible,.recrate-add-property-row:hover{background:#f8fafc;border-color:#dbeafe;box-shadow:0 1px 4px #0f172a14}.recrate-add-property-row:active{transform:translateY(1px)}.recrate-add-property-row-selected{background:#eff6ff;border-color:#93c5fd;box-shadow:0 0 0 1px #2563eb1f}.recrate-add-property-row-selected:before{background:#2563eb}.recrate-add-property-row-header{color:#111827;min-width:0}.recrate-add-property-row-name{color:inherit;flex:0 1 auto;font-weight:600;min-width:0;overflow-wrap:anywhere}.recrate-add-property-row-type{color:#475569;overflow-wrap:anywhere}.recrate-add-property-row-help{color:#6b7280;display:block;line-height:1.45;margin-top:4px}.recrate-add-property-row-check{color:#2563eb;margin-left:auto}.recrate-quick-settings-header{align-items:center;backdrop-filter:blur(8px);background:#fffffff5;border-bottom:1px solid #dbe3ef;box-shadow:0 6px 14px #0f172a14;display:flex;gap:14px;margin:0 -12px 12px;padding:2px 12px 5px 18px;position:sticky;top:0;z-index:4}.recrate-quick-settings-actions{align-items:center;display:inline-flex;flex:0 0 auto;gap:6px}.recrate-quick-settings-filter{flex:1 1 260px;max-width:420px;min-width:160px}.recrate-property-compact .recrate-add-control{margin-bottom:0;margin-top:0;padding-bottom:0;padding-top:0}.recrate-property-name-with-ai{align-items:center;display:inline-flex;gap:6px;min-width:0}.recrate-ai-edited-icon{align-items:center;background:#effbf5;border-radius:50%;color:#087446;display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:800;height:18px;justify-content:center;line-height:1;width:18px}.recrate-ai-edited-filter-button.ant-btn{color:#087446;font-weight:800;min-width:32px;padding-inline:0}.recrate-ai-edited-filter-button.ant-btn-primary{background:#12a76c;border-color:#12a76c;color:#fff}.recrate-ai-entity-review-card{box-shadow:inset 0 0 0 1px #38c88a47,0 2px 8px #186f4a14}.recrate-ai-entity-delete-card{box-shadow:0 2px 8px #b91c1c14}.recrate-ai-entity-delete-card:hover{box-shadow:0 6px 18px #b91c1c24}.recrate-ai-entity-unlink-card{box-shadow:0 2px 8px #c2610014}.recrate-ai-entity-unlink-card:hover{box-shadow:0 6px 18px #c2610024}.recrate-ai-deleted-linked-entity-id{border-bottom:1px solid #0003;color:#00000073;display:block;font-size:.75rem;line-height:1.35;margin-bottom:4px;overflow-wrap:anywhere;padding-bottom:4px}.recrate-ai-deleted-linked-entity-name{color:#000000e0;font-weight:700;overflow-wrap:anywhere}.recrate-ai-entity-reviewed-card{position:relative}.recrate-ai-entity-edited-badge{bottom:14px;position:absolute;right:14px;z-index:1}.recrate-ai-entity-review-card .recrate-ai-entity-edited-badge{right:130px}.recrate-ai-entity-review-summary{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-top:10px}.recrate-ai-entity-review-meta{align-items:center;display:inline-flex;gap:8px;min-width:0}.recrate-ai-entity-review-count{color:#087446;font-size:13px;font-weight:800;white-space:nowrap}.recrate-ai-entity-inline-actions{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-top:18px}.recrate-ai-entity-inline-actions .recrate-ai-actions{gap:12px}.recrate-ai-entity-review-button.ant-btn{background:#57d8a3;border:0;border-radius:6px;box-shadow:0 1px 2px #00000024;color:#0d2d23;font-size:13px;font-weight:800;height:28px;padding:0 10px}.recrate-ai-entity-review-button.ant-btn:focus-visible,.recrate-ai-entity-review-button.ant-btn:hover{background:#45c991!important;color:#0d2d23!important}.recrate-ai-entity-diff-toggle.ant-btn{background:#ffffffd1;border-color:#1486553d;color:#047857;min-width:28px;padding:0;width:28px}.recrate-ai-entity-diff-toggle.ant-btn:focus-visible,.recrate-ai-entity-diff-toggle.ant-btn:hover{background:#ecfdf5!important;border-color:#14865573;color:#047857!important}.recrate-ai-entity-delete-card .recrate-ai-entity-review-count{color:#b91c1c}.recrate-ai-entity-delete-card .recrate-ai-entity-review-button.ant-btn{background:#ff5b63}.recrate-ai-entity-delete-card .recrate-ai-entity-review-button.ant-btn:focus-visible,.recrate-ai-entity-delete-card .recrate-ai-entity-review-button.ant-btn:hover{background:#f0444f!important;color:#111827!important}.recrate-ai-entity-delete-card .recrate-ai-action-approve.ant-btn{background:#ff5b63;border-color:#ff5b63}.recrate-ai-entity-delete-card .recrate-ai-action-approve.ant-btn:focus-visible,.recrate-ai-entity-delete-card .recrate-ai-action-approve.ant-btn:hover{background:#f0444f!important;border-color:#f0444f!important;color:#111827!important}.recrate-ai-entity-delete-card .recrate-ai-action-reject.ant-btn{background:#57d8a3;border-color:#57d8a3}.recrate-ai-entity-delete-card .recrate-ai-action-reject.ant-btn:focus-visible,.recrate-ai-entity-delete-card .recrate-ai-action-reject.ant-btn:hover{background:#45c991!important;border-color:#45c991!important;color:#111827!important}.recrate-ai-entity-unlink-card .recrate-ai-action-approve.ant-btn{background:#fb923c;border-color:#fb923c}.recrate-ai-entity-unlink-card .recrate-ai-action-approve.ant-btn:focus-visible,.recrate-ai-entity-unlink-card .recrate-ai-action-approve.ant-btn:hover{background:#f97316!important;border-color:#f97316!important;color:#111827!important}.recrate-ai-entity-unlink-card .recrate-ai-action-reject.ant-btn{background:#57d8a3;border-color:#57d8a3}.recrate-ai-entity-unlink-card .recrate-ai-action-reject.ant-btn:focus-visible,.recrate-ai-entity-unlink-card .recrate-ai-action-reject.ant-btn:hover{background:#45c991!important;border-color:#45c991!important;color:#111827!important}.recrate-ai-confirm-bar{align-items:center;background:linear-gradient(90deg,#f5fff9,#f9fbfd);border-bottom:1px solid #c8ded4;border-top:1px solid #e7eee9;box-shadow:inset 4px 0 0 #54d69d;color:#2d3b35;display:grid;gap:10px;grid-template-columns:minmax(220px,1fr) auto;min-height:40px;padding:5px 10px 5px 14px}.recrate-ai-confirm-message{align-items:center;display:flex;font-size:13px;font-weight:700;gap:10px;line-height:1.2;min-width:0;overflow:hidden}.recrate-ai-confirm-spark{color:#12a76c;font-size:17px;line-height:1}.recrate-ai-confirm-controls{align-items:center;display:flex;gap:6px;white-space:nowrap}.recrate-ai-confirm-bar-remaining{background:linear-gradient(90deg,#fff9eb,#f9fbfd);box-shadow:inset 4px 0 0 #f59e0b}.recrate-ai-confirm-bar-remaining .recrate-ai-confirm-spark{color:#b45309}.recrate-ai-review-next-entity.ant-btn{background:#fbbf24;border:0;border-radius:5px;box-shadow:0 1px 2px #0000001f;color:#1f1710;font-size:12px;font-weight:800;height:26px;padding:0 10px}.recrate-ai-review-next-entity.ant-btn:focus-visible,.recrate-ai-review-next-entity.ant-btn:hover{background:#f59e0b!important;color:#1f1710!important}.recrate-ai-bulk-action.ant-btn{border:0;border-radius:5px;box-shadow:0 1px 2px #0000001f;color:#14201b;font-size:12px;font-weight:800;height:26px;padding:0 9px}.recrate-ai-bulk-accept.ant-btn{background:#57d8a3}.recrate-ai-bulk-accept.ant-btn:focus-visible,.recrate-ai-bulk-accept.ant-btn:hover{background:#45c991!important;color:#14201b!important}.recrate-ai-bulk-reject.ant-btn{background:#ff6a71;color:#1f1717}.recrate-ai-bulk-reject.ant-btn:focus-visible,.recrate-ai-bulk-reject.ant-btn:hover{background:#f0444f!important;color:#1f1717!important}.recrate-ai-stepper{align-items:center;border-left:1px solid #cad7d1;color:#53625c;display:inline-flex;font-weight:800;gap:4px;margin-left:2px;padding-left:8px}.recrate-ai-stepper .ant-btn{border-radius:5px;color:#4a5a54;height:24px;width:24px}.recrate-ai-stepper .ant-btn:not(:disabled):focus-visible,.recrate-ai-stepper .ant-btn:not(:disabled):hover{background:#e6f4ec!important;color:#33443d!important}.recrate-ai-step-count{color:#34443d;font-size:13px;min-width:32px;text-align:center}.recrate-ai-review{border-radius:8px;margin-top:18px;padding-top:20px!important;position:relative}.recrate-ai-review-current .recrate-ai-suggestion,.recrate-ai-review-current.recrate-property,.recrate-ai-suggestion.recrate-ai-review-current{border-color:#12a76ce6!important;box-shadow:inset 4px 0 0 #12a76c,0 0 0 3px #12a76c1f,0 6px 18px #1969461f!important}.recrate-ai-delete.recrate-ai-review-current,.recrate-ai-review-current .recrate-ai-delete{border-color:#dc2626e0!important;box-shadow:inset 4px 0 0 #ef4444,0 0 0 3px #ef44441f,0 6px 18px #b91c1c1f!important}.recrate-ai-suggestion{background:linear-gradient(90deg,#22c55e1c,#22c55e0a 55%,#fff0);border:1px solid #22c55e6b;box-shadow:inset 4px 0 0 #22c55e,0 4px 14px #15803d14}.recrate-ai-delete{background:linear-gradient(90deg,#ef44441c,#ef44440a 55%,#fff0);border:1px solid #ef44446b;box-shadow:inset 4px 0 0 #ef4444,0 4px 14px #b91c1c14}.recrate-ai-suggestion:hover{background:linear-gradient(90deg,#22c55e26,#22c55e0d 55%,#fff0)}.recrate-ai-delete:hover{background:linear-gradient(90deg,#ef444426,#ef44440d 55%,#fff0)}.recrate-ai-deleted-entity-card{border-radius:8px;margin:18px;padding:26px 18px 18px;position:relative}.recrate-ai-deleted-entity-header{align-items:flex-start;display:flex;gap:18px;justify-content:space-between}.recrate-ai-deleted-entity-title{color:#7f1d1d;font-size:18px;font-weight:800;line-height:1.25;overflow-wrap:anywhere}.recrate-ai-deleted-entity-id{color:#991b1b;font-size:13px;font-weight:600;margin-top:4px;overflow-wrap:anywhere}.recrate-ai-deleted-entity-controls{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-top:14px}.recrate-ai-deleted-entity-controls .recrate-ai-actions{gap:8px}.recrate-ai-deleted-entity-controls .recrate-ai-actions .ant-btn{border-radius:6px;font-size:13px;height:28px;min-width:66px}.recrate-ai-deleted-entity-summary{align-items:center;color:#7f1d1d;display:inline-flex;font-size:14px;font-weight:700;gap:10px;min-width:0}.recrate-ai-deleted-entity-summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recrate-ai-entity-delete-details-toggle.ant-btn{background:#ffffffb8;border-color:#f8717175;color:#b91c1c;flex:0 0 auto;min-width:30px;padding:0;width:30px}.recrate-ai-entity-delete-details-toggle.ant-btn:focus-visible,.recrate-ai-entity-delete-details-toggle.ant-btn:hover,.recrate-ai-entity-delete-details-toggle.ant-btn[aria-pressed=true]{background:#ffe8e8!important;border-color:#f87171bd;color:#b91c1c!important}.recrate-ai-deleted-entity-fields{background:#f8717152;border:1px solid #f8717152;border-radius:8px;display:grid;gap:1px;grid-template-columns:minmax(120px,220px) minmax(0,1fr);margin-top:14px;overflow:hidden}.recrate-ai-deleted-entity-fields-inline{grid-template-columns:minmax(100px,170px) minmax(0,1fr);margin-top:10px}.recrate-ai-deleted-entity-field{display:contents}.recrate-ai-deleted-entity-field-name,.recrate-ai-deleted-entity-field-value{background:#ffffffb8;font-size:13px;min-width:0;overflow-wrap:anywhere;padding:8px 10px}.recrate-ai-deleted-entity-field-name{color:#7f1d1d;font-weight:800}.recrate-ai-deleted-entity-field-value{color:#450a0a}.recrate-ai-entity-diff-card{background:#f0fbf5;border:1px solid #38c88a8c;border-left:4px solid #38c88a;border-radius:8px;box-shadow:0 2px 8px #186f4a14;min-height:226px;overflow:hidden;position:relative}.recrate-ai-entity-diff-card-delete{background:#fff5f5;border-color:#dd505c7a #dd505c7a #dd505c7a #e24d5c;box-shadow:0 2px 8px #85242f14}.recrate-ai-entity-diff-card-unlink{background:#fff7ed;border-color:#f973167a #f973167a #f973167a #f97316;box-shadow:0 2px 8px #c2610014}.recrate-ai-entity-diff-head{align-items:center;background:#e4f7ed;border-bottom:1px solid #38c88a40;color:#087446;display:flex;font-size:13px;font-weight:900;gap:10px;justify-content:space-between;min-height:36px;padding:0 14px}.recrate-ai-entity-diff-card-delete .recrate-ai-entity-diff-head{background:#ffe8e8;border-bottom-color:#dd505c40;color:#9a1f29}.recrate-ai-entity-diff-card-unlink .recrate-ai-entity-diff-head{background:#ffedd5;border-bottom-color:#f9731640;color:#9a3412}.recrate-ai-entity-diff-close.ant-btn{color:currentColor;flex:0 0 auto}.recrate-ai-entity-diff-close.ant-btn:focus-visible,.recrate-ai-entity-diff-close.ant-btn:hover{background:#ffffff9e!important;color:currentColor!important}.recrate-ai-entity-diff-body{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;padding:10px 0 52px}.recrate-ai-entity-diff-line{align-items:center;border-bottom:1px solid #0000000a;display:grid;grid-template-columns:28px minmax(74px,96px) minmax(0,1fr);min-height:29px}.recrate-ai-entity-diff-line-context{background:#f7faf8}.recrate-ai-entity-diff-line-removed{background:#fff1f1}.recrate-ai-entity-diff-line-added{background:#effbf5}.recrate-ai-entity-diff-marker{align-self:stretch;display:grid;font-weight:900;place-items:center}.recrate-ai-entity-diff-line-context .recrate-ai-entity-diff-marker{background:#eef2f0;color:#738078}.recrate-ai-entity-diff-line-removed .recrate-ai-entity-diff-marker{background:#ffdede;color:#9a1f29}.recrate-ai-entity-diff-line-added .recrate-ai-entity-diff-marker{background:#d8f5e7;color:#087446}.recrate-ai-entity-diff-key{color:#5b7167;padding:0 8px}.recrate-ai-entity-diff-key,.recrate-ai-entity-diff-value{font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recrate-ai-entity-diff-value{color:#1e2732;padding-right:10px}.recrate-ai-entity-diff-actions{bottom:14px;display:flex;gap:7px;position:absolute;right:14px}.recrate-ai-entity-diff-button.ant-btn{background:#57d8a3;border:0;border-radius:6px;box-shadow:0 1px 2px #00000024;color:#0d2d23;font-size:13px;font-weight:900;height:31px;min-width:100px;padding:0 10px}.recrate-ai-entity-diff-button.ant-btn:focus-visible,.recrate-ai-entity-diff-button.ant-btn:hover{background:#45c991!important;color:#0d2d23!important}.recrate-ai-entity-diff-button-reject.ant-btn{background:#ff6a71;color:#171717}.recrate-ai-entity-diff-button-reject.ant-btn:focus-visible,.recrate-ai-entity-diff-button-reject.ant-btn:hover{background:#f0444f!important;color:#171717!important}.recrate-ai-suggestion-badge{align-items:center;background:#ecfdf5;border:1px solid #10b98161;border-radius:7px;box-shadow:0 1px 2px #0f764a14;color:#047857;display:inline-flex;font-size:13px;font-weight:700;gap:6px;height:30px;left:18px;line-height:1;padding:0 11px;position:absolute;top:-15px;z-index:1}.recrate-ai-delete .recrate-ai-suggestion-badge{background:#fef2f2;border-color:#f871716b;box-shadow:0 1px 2px #b91c1c14;color:#b91c1c}.recrate-ai-suggestion-badge-icon{color:#047857;font-size:14px;line-height:1}.recrate-ai-delete .recrate-ai-suggestion-badge-icon{color:#b91c1c}.recrate-ai-entity-status-badge{left:14px;top:-15px}.recrate-ai-entity-delete-card .recrate-ai-entity-status-badge{background:#fef2f2;border-color:#f871716b;box-shadow:0 1px 2px #b91c1c14;color:#b91c1c}.recrate-ai-entity-delete-card .recrate-ai-entity-status-badge .recrate-ai-suggestion-badge-icon{color:#b91c1c}.recrate-ai-entity-unlink-card .recrate-ai-entity-status-badge{background:#fff7ed;border-color:#fb923c73;box-shadow:0 1px 2px #c2610014;color:#9a3412}.recrate-ai-entity-unlink-card .recrate-ai-entity-status-badge .recrate-ai-suggestion-badge-icon{color:#c2410c}.recrate-ai-field-row{align-items:flex-start}.recrate-ai-field-control .ant-space-compact{width:100%}.recrate-ai-field-control .ant-input,.recrate-ai-field-control .ant-input-affix-wrapper,.recrate-ai-field-control .ant-input-number,.recrate-ai-field-control .ant-picker,.recrate-ai-field-control .ant-select-selector,.recrate-ai-field-control textarea.ant-input{background:#f0fdf4!important;border-color:#22c55e!important;box-shadow:inset 0 0 0 1px #22c55e2e,0 0 0 3px #22c55e1a!important}.recrate-ai-delete .recrate-ai-field-control .ant-input,.recrate-ai-delete .recrate-ai-field-control .ant-input-affix-wrapper,.recrate-ai-delete .recrate-ai-field-control .ant-input-number,.recrate-ai-delete .recrate-ai-field-control .ant-picker,.recrate-ai-delete .recrate-ai-field-control .ant-select-selector,.recrate-ai-delete .recrate-ai-field-control textarea.ant-input{background:#fef2f2!important;border-color:#ef4444!important;box-shadow:inset 0 0 0 1px #ef44442e,0 0 0 3px #ef44441a!important}.recrate-ai-field-control .ant-space-compact>.ant-input,.recrate-ai-field-control .ant-space-compact>.ant-input-affix-wrapper,.recrate-ai-field-control .ant-space-compact>textarea.ant-input{border-end-end-radius:8px!important;border-start-end-radius:8px!important}.recrate-ai-field-control .ant-space-compact>.ant-btn{display:none}.recrate-ai-field-diff{background:#fbfcfd;border:1px solid #d4ddd8;border-radius:7px;box-shadow:0 1px 2px #0000000d;font-size:15px;overflow:hidden;width:100%}.recrate-ai-field-diff-head{align-items:center;background:#f5f8f6;border-bottom:1px solid #dce5e0;color:#506158;display:flex;font-size:13px;font-weight:800;gap:10px;justify-content:space-between;min-height:31px;padding:0 10px}.recrate-ai-field-diff-chip{color:#087446;flex:0 0 auto;font-size:12px}.recrate-ai-field-diff-line{border-bottom:1px solid #0000000a;display:grid;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;grid-template-columns:28px minmax(0,1fr);min-height:36px}.recrate-ai-field-diff-line:last-child{border-bottom:0}.recrate-ai-field-diff-marker{align-self:stretch;display:grid;font-weight:900;place-items:center}.recrate-ai-field-diff-value{color:#27322d;margin:0;min-width:0;overflow:auto;overflow-wrap:anywhere;padding:7px 11px;white-space:pre-wrap}.recrate-ai-field-diff-line-removed{background:#fff1f1}.recrate-ai-field-diff-line-removed .recrate-ai-field-diff-marker{background:#ffdede;color:#9a1f29}.recrate-ai-field-diff-line-added{background:#effbf5}.recrate-ai-field-diff-line-added .recrate-ai-field-diff-marker{background:#d8f5e7;color:#087446}.recrate-ai-field-diff-empty{color:#7b8781;font-style:italic}.recrate-ai-actions{align-items:flex-start;display:flex;flex:0 0 auto;gap:18px}.recrate-ai-actions .ant-btn{border:0;border-radius:8px;box-shadow:0 2px 5px #0f172a2e;color:#111827;font-size:14px;font-weight:700;height:34px;min-width:82px}.recrate-ai-action-diff.ant-btn{background:#fff;border:1px solid #d4ddd8;color:#0f172a;min-width:36px;padding:0;width:36px}.recrate-ai-action-diff.ant-btn:focus-visible,.recrate-ai-action-diff.ant-btn:hover{background:#f5f8f6!important;border-color:#9bc7b3!important;color:#087446!important}.recrate-ai-action-diff.ant-btn[aria-pressed=true]{background:#d8f5e7;border-color:#9bc7b3;color:#087446}.recrate-ai-action-approve.ant-btn{background:#57d8a3;border-color:#57d8a3}.recrate-ai-action-approve.ant-btn:focus-visible,.recrate-ai-action-approve.ant-btn:hover{background:#45c991!important;border-color:#45c991!important;color:#111827!important}.recrate-ai-action-reject.ant-btn,.recrate-ai-delete .recrate-ai-action-approve.ant-btn{background:#ff5b63;border-color:#ff5b63}.recrate-ai-delete .recrate-ai-action-approve.ant-btn:focus-visible,.recrate-ai-delete .recrate-ai-action-approve.ant-btn:hover{background:#f0444f!important;border-color:#f0444f!important;color:#111827!important}.recrate-ai-delete .recrate-ai-action-reject.ant-btn{background:#57d8a3;border-color:#57d8a3}.recrate-ai-delete .recrate-ai-action-reject.ant-btn:focus-visible,.recrate-ai-delete .recrate-ai-action-reject.ant-btn:hover{background:#45c991!important;border-color:#45c991!important;color:#111827!important}.recrate-ai-action-reject.ant-btn:focus-visible,.recrate-ai-action-reject.ant-btn:hover{background:#f0444f!important;border-color:#f0444f!important;color:#111827!important}@media (max-width:900px){.recrate-ai-confirm-bar{grid-template-columns:1fr}.recrate-ai-confirm-controls{flex-wrap:wrap}.recrate-ai-stepper{border-left:0;margin-left:0;padding-left:0}.recrate-ai-field-row{flex-wrap:wrap}.recrate-ai-actions{justify-content:flex-start;width:100%}}@media (max-width:640px){.recrate-quick-settings-header{flex-wrap:wrap}.recrate-quick-settings-filter{flex-basis:100%;max-width:none}}.recrate,.recrate .recrate-ant{display:flex;flex-direction:column;height:100vh;min-height:100vh}.recrate .ant-tabs-left .ant-tabs-nav,.recrate .ant-tabs-right .ant-tabs-nav,.recrate-editor-scroll{height:100%}.recrate .ant-tabs-bottom .ant-tabs-nav-wrap,.recrate .ant-tabs-top .ant-tabs-nav-wrap{overflow-x:auto}
|
|
1
|
+
.el-tabs__item{height:unset}.el-select-dropdown__wrap{max-height:500px!important}.el-select-group__title{font-size:14px!important}.scrollbar{overflow:overlay}.scrollbar::-webkit-scrollbar{background-color:#0000;height:16px;width:16px;z-index:999999}.scrollbar::-webkit-scrollbar-track{background-color:#0000}.scrollbar::-webkit-scrollbar-thumb{background-color:#0000;border:0 solid #fff;border-radius:16px}.scrollbar::-webkit-scrollbar-button{display:none}.scrollbar:hover::-webkit-scrollbar-thumb{background-color:#a0a0a5;border:4px solid #fff}.scrollbar::-webkit-scrollbar-thumb:hover{background-color:#a0a0a5;border:4px solid #f4f4f4}.cm-editor{font-size:12px;height:auto;max-height:none}.recrate-tab-icon{align-items:center;display:flex;font-size:14px;font-weight:600;height:100%;justify-content:center;width:100%}.recrate-add-only-tabs .ant-tabs-nav,.recrate-add-only-tabs .ant-tabs-nav-wrap{height:100%}.recrate-add-only-tabs .ant-tabs-nav-list{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center}.recrate-add-only-tabs .ant-tabs-tab{justify-content:center}.recrate-tab-rail{background:#fff;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;position:relative}.recrate-tab-rail-actions{border-bottom:1px solid #e5e7eb;display:flex;flex:0 0 auto;gap:8px;justify-content:center;padding:10px 8px 8px}.recrate-tab-rail-actions-only .recrate-tab-rail-actions{border-bottom:0}.recrate-tab-rail-list{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;padding:8px 6px 16px;scrollbar-width:none}.recrate-tab-rail-list::-webkit-scrollbar{display:none}.recrate-tab-rail-item{border-radius:6px;color:#334155;cursor:pointer;display:block;margin:2px 0;outline:none;padding:12px 10px;position:relative;transition:background-color .12s ease,color .12s ease;width:100%}.recrate-tab-rail-item:focus-visible,.recrate-tab-rail-item:hover{background:#f1f5f9}.recrate-tab-rail-item-active{background:#eaf2ff;color:#1d4ed8}.recrate-tab-rail-item-active:before{background:#2563eb;border-radius:999px;bottom:10px;content:"";left:0;position:absolute;top:10px;width:3px}.recrate-tab-rail-item-icon{align-items:center;display:flex;justify-content:center;min-height:42px;padding:8px}.recrate-tab-rail-row{align-items:center;display:flex;gap:8px;justify-content:space-between}.recrate-tab-rail-title{font-size:15px;font-weight:600;line-height:1.35;min-width:0;overflow-wrap:anywhere}.recrate-tab-rail-status{align-items:center;display:inline-flex;flex:0 0 auto;gap:4px}.recrate-tab-rail-remove-button{flex:0 0 auto;transition:opacity .12s ease}.recrate-tab-rail-description{color:#64748b;font-size:12px;line-height:1.35;margin-top:4px;overflow-wrap:anywhere}.recrate-tab-rail:after,.recrate-tab-rail:before{content:"";height:34px;left:0;opacity:0;pointer-events:none;position:absolute;right:0;transition:opacity .12s ease;z-index:2}.recrate-tab-rail:before{background:linear-gradient(#fff,#fff0);top:53px}.recrate-tab-rail:after{background:linear-gradient(#fff0,#fff);bottom:0}.recrate-tab-rail-can-scroll-down:after,.recrate-tab-rail-can-scroll-up:before{opacity:1}.recrate-tab-rail-scroll-button{box-shadow:0 2px 8px #0f172a24;left:50%;position:absolute;transform:translateX(-50%);z-index:3}.recrate-tab-rail-scroll-button-up{top:58px}.recrate-tab-rail-scroll-button-down{bottom:8px}.recrate-add-property-drawer{z-index:6000}.recrate-add-property-title.ant-typography{font-size:22px;line-height:1.25;margin:0}.recrate-add-property-row{border:1px solid #0000;border-radius:6px;color:#111827;cursor:pointer;outline:none;padding:10px 12px 10px 14px;position:relative;transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease,transform .12s ease}.recrate-add-property-row:before{background:#0000;border-radius:999px;bottom:10px;content:"";left:0;position:absolute;top:10px;transition:background-color .12s ease;width:3px}.recrate-add-property-row:focus-visible,.recrate-add-property-row:hover{background:#f8fafc;border-color:#dbeafe;box-shadow:0 1px 4px #0f172a14}.recrate-add-property-row:active{transform:translateY(1px)}.recrate-add-property-row-selected{background:#eff6ff;border-color:#93c5fd;box-shadow:0 0 0 1px #2563eb1f}.recrate-add-property-row-selected:before{background:#2563eb}.recrate-add-property-row-header{color:#111827;min-width:0}.recrate-add-property-row-name{color:inherit;flex:0 1 auto;font-weight:600;min-width:0;overflow-wrap:anywhere}.recrate-add-property-row-type{color:#475569;overflow-wrap:anywhere}.recrate-add-property-row-help{color:#6b7280;display:block;line-height:1.45;margin-top:4px}.recrate-add-property-row-check{color:#2563eb;margin-left:auto}.recrate-quick-settings-header{align-items:center;backdrop-filter:blur(8px);background:#fffffff5;border-bottom:1px solid #dbe3ef;box-shadow:0 6px 14px #0f172a14;display:flex;gap:14px;margin:0 -12px 12px;padding:2px 12px 5px 18px;position:sticky;top:0;z-index:4}.recrate-quick-settings-actions{align-items:center;display:inline-flex;flex:0 0 auto;gap:6px}.recrate-quick-settings-filter{flex:1 1 260px;max-width:420px;min-width:160px}.recrate-property-compact .recrate-add-control{margin-bottom:0;margin-top:0;padding-bottom:0;padding-top:0}.recrate-property-name-with-ai{align-items:center;display:inline-flex;gap:6px;min-width:0}.recrate-ai-edited-icon{align-items:center;background:#effbf5;border-radius:50%;color:#087446;display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:800;height:18px;justify-content:center;line-height:1;width:18px}.recrate-ai-edited-filter-button.ant-btn{color:#087446;font-weight:800;min-width:32px;padding-inline:0}.recrate-ai-edited-filter-button.ant-btn-primary{background:#12a76c;border-color:#12a76c;color:#fff}.recrate-ai-entity-review-card{box-shadow:inset 0 0 0 1px #38c88a47,0 2px 8px #186f4a14}.recrate-ai-entity-delete-card{box-shadow:0 2px 8px #b91c1c14}.recrate-ai-entity-delete-card:hover{box-shadow:0 6px 18px #b91c1c24}.recrate-ai-entity-unlink-card{box-shadow:0 2px 8px #c2610014}.recrate-ai-entity-unlink-card:hover{box-shadow:0 6px 18px #c2610024}.recrate-ai-deleted-linked-entity-id{border-bottom:1px solid #0003;color:#00000073;display:block;font-size:.75rem;line-height:1.35;margin-bottom:4px;overflow-wrap:anywhere;padding-bottom:4px}.recrate-ai-deleted-linked-entity-name{color:#000000e0;font-weight:700;overflow-wrap:anywhere}.recrate-ai-entity-reviewed-card{position:relative}.recrate-ai-entity-edited-badge{bottom:14px;position:absolute;right:14px;z-index:1}.recrate-ai-entity-review-card .recrate-ai-entity-edited-badge{right:130px}.recrate-ai-entity-review-summary{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-top:10px}.recrate-ai-entity-review-meta{align-items:center;display:inline-flex;gap:8px;min-width:0}.recrate-ai-entity-review-count{color:#087446;font-size:13px;font-weight:800;white-space:nowrap}.recrate-ai-entity-inline-actions{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-top:18px}.recrate-ai-entity-inline-actions .recrate-ai-actions{gap:12px}.recrate-ai-entity-review-button.ant-btn{background:#57d8a3;border:0;border-radius:6px;box-shadow:0 1px 2px #00000024;color:#0d2d23;font-size:13px;font-weight:800;height:28px;padding:0 10px}.recrate-ai-entity-review-button.ant-btn:focus-visible,.recrate-ai-entity-review-button.ant-btn:hover{background:#45c991!important;color:#0d2d23!important}.recrate-ai-entity-diff-toggle.ant-btn{background:#ffffffd1;border-color:#1486553d;color:#047857;min-width:28px;padding:0;width:28px}.recrate-ai-entity-diff-toggle.ant-btn:focus-visible,.recrate-ai-entity-diff-toggle.ant-btn:hover{background:#ecfdf5!important;border-color:#14865573;color:#047857!important}.recrate-ai-entity-delete-card .recrate-ai-entity-review-count{color:#b91c1c}.recrate-ai-entity-delete-card .recrate-ai-entity-review-button.ant-btn{background:#ff5b63}.recrate-ai-entity-delete-card .recrate-ai-entity-review-button.ant-btn:focus-visible,.recrate-ai-entity-delete-card .recrate-ai-entity-review-button.ant-btn:hover{background:#f0444f!important;color:#111827!important}.recrate-ai-entity-delete-card .recrate-ai-action-approve.ant-btn{background:#ff5b63;border-color:#ff5b63}.recrate-ai-entity-delete-card .recrate-ai-action-approve.ant-btn:focus-visible,.recrate-ai-entity-delete-card .recrate-ai-action-approve.ant-btn:hover{background:#f0444f!important;border-color:#f0444f!important;color:#111827!important}.recrate-ai-entity-delete-card .recrate-ai-action-reject.ant-btn{background:#57d8a3;border-color:#57d8a3}.recrate-ai-entity-delete-card .recrate-ai-action-reject.ant-btn:focus-visible,.recrate-ai-entity-delete-card .recrate-ai-action-reject.ant-btn:hover{background:#45c991!important;border-color:#45c991!important;color:#111827!important}.recrate-ai-entity-unlink-card .recrate-ai-action-approve.ant-btn{background:#fb923c;border-color:#fb923c}.recrate-ai-entity-unlink-card .recrate-ai-action-approve.ant-btn:focus-visible,.recrate-ai-entity-unlink-card .recrate-ai-action-approve.ant-btn:hover{background:#f97316!important;border-color:#f97316!important;color:#111827!important}.recrate-ai-entity-unlink-card .recrate-ai-action-reject.ant-btn{background:#57d8a3;border-color:#57d8a3}.recrate-ai-entity-unlink-card .recrate-ai-action-reject.ant-btn:focus-visible,.recrate-ai-entity-unlink-card .recrate-ai-action-reject.ant-btn:hover{background:#45c991!important;border-color:#45c991!important;color:#111827!important}.recrate-ai-confirm-bar{align-items:center;background:linear-gradient(90deg,#f5fff9,#f9fbfd);border-bottom:1px solid #c8ded4;border-top:1px solid #e7eee9;box-shadow:inset 4px 0 0 #54d69d;color:#2d3b35;display:grid;gap:10px;grid-template-columns:minmax(220px,1fr) auto;min-height:40px;padding:5px 10px 5px 14px}.recrate-ai-confirm-message{align-items:center;display:flex;font-size:13px;font-weight:700;gap:10px;line-height:1.2;min-width:0;overflow:hidden}.recrate-ai-confirm-spark{color:#12a76c;font-size:17px;line-height:1}.recrate-ai-confirm-controls{align-items:center;display:flex;gap:6px;white-space:nowrap}.recrate-ai-confirm-bar-remaining{background:linear-gradient(90deg,#fff9eb,#f9fbfd);box-shadow:inset 4px 0 0 #f59e0b}.recrate-ai-confirm-bar-remaining .recrate-ai-confirm-spark{color:#b45309}.recrate-ai-review-next-entity.ant-btn{background:#fbbf24;border:0;border-radius:5px;box-shadow:0 1px 2px #0000001f;color:#1f1710;font-size:12px;font-weight:800;height:26px;padding:0 10px}.recrate-ai-review-next-entity.ant-btn:focus-visible,.recrate-ai-review-next-entity.ant-btn:hover{background:#f59e0b!important;color:#1f1710!important}.recrate-ai-bulk-action.ant-btn{border:0;border-radius:5px;box-shadow:0 1px 2px #0000001f;color:#14201b;font-size:12px;font-weight:800;height:26px;padding:0 9px}.recrate-ai-bulk-accept.ant-btn{background:#57d8a3}.recrate-ai-bulk-accept.ant-btn:focus-visible,.recrate-ai-bulk-accept.ant-btn:hover{background:#45c991!important;color:#14201b!important}.recrate-ai-bulk-reject.ant-btn{background:#ff6a71;color:#1f1717}.recrate-ai-bulk-reject.ant-btn:focus-visible,.recrate-ai-bulk-reject.ant-btn:hover{background:#f0444f!important;color:#1f1717!important}.recrate-ai-stepper{align-items:center;border-left:1px solid #cad7d1;color:#53625c;display:inline-flex;font-weight:800;gap:4px;margin-left:2px;padding-left:8px}.recrate-ai-stepper .ant-btn{border-radius:5px;color:#4a5a54;height:24px;width:24px}.recrate-ai-stepper .ant-btn:not(:disabled):focus-visible,.recrate-ai-stepper .ant-btn:not(:disabled):hover{background:#e6f4ec!important;color:#33443d!important}.recrate-ai-step-count{color:#34443d;font-size:13px;min-width:32px;text-align:center}.recrate-ai-review{border-radius:8px;margin-top:18px;padding-top:20px!important;position:relative}.recrate-ai-review-current .recrate-ai-suggestion,.recrate-ai-review-current.recrate-property,.recrate-ai-suggestion.recrate-ai-review-current{border-color:#12a76ce6!important;box-shadow:inset 4px 0 0 #12a76c,0 0 0 3px #12a76c1f,0 6px 18px #1969461f!important}.recrate-ai-delete.recrate-ai-review-current,.recrate-ai-review-current .recrate-ai-delete{border-color:#dc2626e0!important;box-shadow:inset 4px 0 0 #ef4444,0 0 0 3px #ef44441f,0 6px 18px #b91c1c1f!important}.recrate-ai-suggestion{background:linear-gradient(90deg,#22c55e1c,#22c55e0a 55%,#fff0);border:1px solid #22c55e6b;box-shadow:inset 4px 0 0 #22c55e,0 4px 14px #15803d14}.recrate-ai-delete{background:linear-gradient(90deg,#ef44441c,#ef44440a 55%,#fff0);border:1px solid #ef44446b;box-shadow:inset 4px 0 0 #ef4444,0 4px 14px #b91c1c14}.recrate-ai-suggestion:hover{background:linear-gradient(90deg,#22c55e26,#22c55e0d 55%,#fff0)}.recrate-ai-delete:hover{background:linear-gradient(90deg,#ef444426,#ef44440d 55%,#fff0)}.recrate-ai-deleted-entity-card{border-radius:8px;margin:18px;padding:26px 18px 18px;position:relative}.recrate-ai-deleted-entity-header{align-items:flex-start;display:flex;gap:18px;justify-content:space-between}.recrate-ai-deleted-entity-title{color:#7f1d1d;font-size:18px;font-weight:800;line-height:1.25;overflow-wrap:anywhere}.recrate-ai-deleted-entity-id{color:#991b1b;font-size:13px;font-weight:600;margin-top:4px;overflow-wrap:anywhere}.recrate-ai-deleted-entity-controls{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-top:14px}.recrate-ai-deleted-entity-controls .recrate-ai-actions{gap:8px}.recrate-ai-deleted-entity-controls .recrate-ai-actions .ant-btn{border-radius:6px;font-size:13px;height:28px;min-width:66px}.recrate-ai-deleted-entity-summary{align-items:center;color:#7f1d1d;display:inline-flex;font-size:14px;font-weight:700;gap:10px;min-width:0}.recrate-ai-deleted-entity-summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recrate-ai-entity-delete-details-toggle.ant-btn{background:#ffffffb8;border-color:#f8717175;color:#b91c1c;flex:0 0 auto;min-width:30px;padding:0;width:30px}.recrate-ai-entity-delete-details-toggle.ant-btn:focus-visible,.recrate-ai-entity-delete-details-toggle.ant-btn:hover,.recrate-ai-entity-delete-details-toggle.ant-btn[aria-pressed=true]{background:#ffe8e8!important;border-color:#f87171bd;color:#b91c1c!important}.recrate-ai-deleted-entity-fields{background:#f8717152;border:1px solid #f8717152;border-radius:8px;display:grid;gap:1px;grid-template-columns:minmax(120px,220px) minmax(0,1fr);margin-top:14px;overflow:hidden}.recrate-ai-deleted-entity-fields-inline{grid-template-columns:minmax(100px,170px) minmax(0,1fr);margin-top:10px}.recrate-ai-deleted-entity-field{display:contents}.recrate-ai-deleted-entity-field-name,.recrate-ai-deleted-entity-field-value{background:#ffffffb8;font-size:13px;min-width:0;overflow-wrap:anywhere;padding:8px 10px}.recrate-ai-deleted-entity-field-name{color:#7f1d1d;font-weight:800}.recrate-ai-deleted-entity-field-value{color:#450a0a}.recrate-ai-entity-diff-card{background:#f0fbf5;border:1px solid #38c88a8c;border-left:4px solid #38c88a;border-radius:8px;box-shadow:0 2px 8px #186f4a14;min-height:226px;overflow:hidden;position:relative}.recrate-ai-entity-diff-card-delete{background:#fff5f5;border-color:#dd505c7a #dd505c7a #dd505c7a #e24d5c;box-shadow:0 2px 8px #85242f14}.recrate-ai-entity-diff-card-unlink{background:#fff7ed;border-color:#f973167a #f973167a #f973167a #f97316;box-shadow:0 2px 8px #c2610014}.recrate-ai-entity-diff-head{align-items:center;background:#e4f7ed;border-bottom:1px solid #38c88a40;color:#087446;display:flex;font-size:13px;font-weight:900;gap:10px;justify-content:space-between;min-height:36px;padding:0 14px}.recrate-ai-entity-diff-card-delete .recrate-ai-entity-diff-head{background:#ffe8e8;border-bottom-color:#dd505c40;color:#9a1f29}.recrate-ai-entity-diff-card-unlink .recrate-ai-entity-diff-head{background:#ffedd5;border-bottom-color:#f9731640;color:#9a3412}.recrate-ai-entity-diff-close.ant-btn{color:currentColor;flex:0 0 auto}.recrate-ai-entity-diff-close.ant-btn:focus-visible,.recrate-ai-entity-diff-close.ant-btn:hover{background:#ffffff9e!important;color:currentColor!important}.recrate-ai-entity-diff-body{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;padding:10px 0 52px}.recrate-ai-entity-diff-line{align-items:center;border-bottom:1px solid #0000000a;display:grid;grid-template-columns:28px minmax(74px,96px) minmax(0,1fr);min-height:29px}.recrate-ai-entity-diff-line-context{background:#f7faf8}.recrate-ai-entity-diff-line-removed{background:#fff1f1}.recrate-ai-entity-diff-line-added{background:#effbf5}.recrate-ai-entity-diff-marker{align-self:stretch;display:grid;font-weight:900;place-items:center}.recrate-ai-entity-diff-line-context .recrate-ai-entity-diff-marker{background:#eef2f0;color:#738078}.recrate-ai-entity-diff-line-removed .recrate-ai-entity-diff-marker{background:#ffdede;color:#9a1f29}.recrate-ai-entity-diff-line-added .recrate-ai-entity-diff-marker{background:#d8f5e7;color:#087446}.recrate-ai-entity-diff-key{color:#5b7167;padding:0 8px}.recrate-ai-entity-diff-key,.recrate-ai-entity-diff-value{font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recrate-ai-entity-diff-value{color:#1e2732;padding-right:10px}.recrate-ai-entity-diff-actions{bottom:14px;display:flex;gap:7px;position:absolute;right:14px}.recrate-ai-entity-diff-button.ant-btn{background:#57d8a3;border:0;border-radius:6px;box-shadow:0 1px 2px #00000024;color:#0d2d23;font-size:13px;font-weight:900;height:31px;min-width:100px;padding:0 10px}.recrate-ai-entity-diff-button.ant-btn:focus-visible,.recrate-ai-entity-diff-button.ant-btn:hover{background:#45c991!important;color:#0d2d23!important}.recrate-ai-entity-diff-button-reject.ant-btn{background:#ff6a71;color:#171717}.recrate-ai-entity-diff-button-reject.ant-btn:focus-visible,.recrate-ai-entity-diff-button-reject.ant-btn:hover{background:#f0444f!important;color:#171717!important}.recrate-ai-suggestion-badge{align-items:center;background:#ecfdf5;border:1px solid #10b98161;border-radius:7px;box-shadow:0 1px 2px #0f764a14;color:#047857;display:inline-flex;font-size:13px;font-weight:700;gap:6px;height:30px;left:18px;line-height:1;padding:0 11px;position:absolute;top:-15px;z-index:1}.recrate-ai-delete .recrate-ai-suggestion-badge{background:#fef2f2;border-color:#f871716b;box-shadow:0 1px 2px #b91c1c14;color:#b91c1c}.recrate-ai-suggestion-badge-icon{color:#047857;font-size:14px;line-height:1}.recrate-ai-delete .recrate-ai-suggestion-badge-icon{color:#b91c1c}.recrate-ai-entity-status-badge{left:14px;top:-15px}.recrate-ai-entity-delete-card .recrate-ai-entity-status-badge{background:#fef2f2;border-color:#f871716b;box-shadow:0 1px 2px #b91c1c14;color:#b91c1c}.recrate-ai-entity-delete-card .recrate-ai-entity-status-badge .recrate-ai-suggestion-badge-icon{color:#b91c1c}.recrate-ai-entity-unlink-card .recrate-ai-entity-status-badge{background:#fff7ed;border-color:#fb923c73;box-shadow:0 1px 2px #c2610014;color:#9a3412}.recrate-ai-entity-unlink-card .recrate-ai-entity-status-badge .recrate-ai-suggestion-badge-icon{color:#c2410c}.recrate-ai-field-row{align-items:flex-start}.recrate-ai-field-control .ant-space-compact{width:100%}.recrate-ai-field-control .ant-input,.recrate-ai-field-control .ant-input-affix-wrapper,.recrate-ai-field-control .ant-input-number,.recrate-ai-field-control .ant-picker,.recrate-ai-field-control .ant-select-selector,.recrate-ai-field-control textarea.ant-input{background:#f0fdf4!important;border-color:#22c55e!important;box-shadow:inset 0 0 0 1px #22c55e2e,0 0 0 3px #22c55e1a!important}.recrate-ai-delete .recrate-ai-field-control .ant-input,.recrate-ai-delete .recrate-ai-field-control .ant-input-affix-wrapper,.recrate-ai-delete .recrate-ai-field-control .ant-input-number,.recrate-ai-delete .recrate-ai-field-control .ant-picker,.recrate-ai-delete .recrate-ai-field-control .ant-select-selector,.recrate-ai-delete .recrate-ai-field-control textarea.ant-input{background:#fef2f2!important;border-color:#ef4444!important;box-shadow:inset 0 0 0 1px #ef44442e,0 0 0 3px #ef44441a!important}.recrate-ai-field-control .ant-space-compact>.ant-input,.recrate-ai-field-control .ant-space-compact>.ant-input-affix-wrapper,.recrate-ai-field-control .ant-space-compact>textarea.ant-input{border-end-end-radius:8px!important;border-start-end-radius:8px!important}.recrate-ai-field-control .ant-space-compact>.ant-btn{display:none}.recrate-context-review-drawer .ant-drawer-content{overflow:hidden}.recrate-context-review-drawer .ant-drawer-body{display:flex;flex-direction:column;min-height:0}.recrate-context-review{display:flex;flex:1 1 auto;flex-direction:column;gap:14px;min-height:0;overflow:hidden;padding:18px 20px 0}.recrate-context-review-summary{align-items:flex-start;background:linear-gradient(90deg,#f0fbf5,#f8fbfd);border:1px solid #38c88a4d;border-radius:8px;box-shadow:inset 4px 0 0 #38c88a,0 2px 8px #186f4a14;display:flex;gap:12px;padding:12px 14px}.recrate-context-review-spark{background:#57d8a3;border-radius:999px;box-shadow:0 1px 2px #0f172a2e;color:#063f2a;display:grid;flex:0 0 auto;font-size:12px;font-weight:900;height:32px;line-height:1;place-items:center;width:32px}.recrate-context-review-description.ant-typography{color:#2d3b35;font-size:14px;font-weight:650;line-height:1.45;margin:0;min-width:0}.recrate-ai-context-diff{background:#f0fbf5;border:1px solid #38c88a8c;border-left:4px solid #38c88a;border-radius:8px;box-shadow:0 2px 8px #186f4a14;display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden}.recrate-ai-context-diff-head{align-items:center;background:#e4f7ed;border-bottom:1px solid #38c88a40;color:#087446;display:flex;font-size:13px;font-weight:900;gap:10px;justify-content:space-between;min-height:38px;padding:0 14px}.recrate-ai-context-diff-body{background:#fff;flex:1 1 auto;min-height:0;overflow:auto}.recrate-ai-context-diff-line{align-items:stretch;border-bottom:1px solid #0000000f;display:grid;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;grid-template-columns:32px 48px 48px minmax(0,1fr);line-height:1.45;min-width:0}.recrate-ai-context-diff-line:last-child{border-bottom:0}.recrate-ai-context-diff-marker{align-self:stretch;display:grid;font-size:16px;font-weight:900;place-items:center}.recrate-ai-context-diff-gutter{align-items:flex-start;background:#ffffff8a;border-right:1px solid #0000000d;color:#7b8781;display:flex;justify-content:flex-end;min-width:0;padding:7px 8px 7px 0;-webkit-user-select:none;user-select:none}.recrate-ai-context-diff-value{color:#1e2732;margin:0;min-width:0;overflow:visible;overflow-wrap:anywhere;padding:7px 12px;white-space:pre-wrap;word-break:break-word}.recrate-ai-context-diff-line-context{background:#fbfcfd}.recrate-ai-context-diff-line-removed{background:#fff1f1}.recrate-ai-context-diff-line-removed .recrate-ai-context-diff-marker{background:#ffdede;color:#9a1f29}.recrate-ai-context-diff-line-added{background:#effbf5}.recrate-ai-context-diff-line-added .recrate-ai-context-diff-marker{background:#d8f5e7;color:#087446}.recrate-ai-context-diff-line-omitted{background:#f7faf8;border:0;border-bottom:1px solid #0000000f;min-height:30px;text-align:left;width:100%}.recrate-ai-context-diff-line-omitted .recrate-ai-context-diff-marker{background:#eef2f0;color:#738078;font-size:12px}.recrate-ai-context-diff-line-omitted .recrate-ai-context-diff-gutter{background:#f7faf8}.recrate-ai-context-diff-omitted-button{cursor:pointer;outline:none}.recrate-ai-context-diff-omitted-button:hover{background:#eef8f2}.recrate-ai-context-diff-omitted-button:hover .recrate-ai-context-diff-gutter,.recrate-ai-context-diff-omitted-button:hover .recrate-ai-context-diff-marker{background:#e1f2e8}.recrate-ai-context-diff-omitted-button:focus-visible{box-shadow:inset 0 0 0 2px #12a76c8c}.recrate-ai-context-diff-omitted-label{align-items:center;color:#5b7167;display:flex;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:12px;font-weight:800;min-width:0;padding:6px 12px}.recrate-context-review-actions{background:#fff;border-top:1px solid #dce5e0;box-shadow:0 -6px 14px #0f172a0d;display:flex;flex:0 0 auto;gap:8px;justify-content:flex-end;padding:14px 20px 18px}.recrate-ai-field-diff{background:#fbfcfd;border:1px solid #d4ddd8;border-radius:7px;box-shadow:0 1px 2px #0000000d;font-size:15px;overflow:hidden;width:100%}.recrate-ai-field-diff-head{align-items:center;background:#f5f8f6;border-bottom:1px solid #dce5e0;color:#506158;display:flex;font-size:13px;font-weight:800;gap:10px;justify-content:space-between;min-height:31px;padding:0 10px}.recrate-ai-field-diff-chip{color:#087446;flex:0 0 auto;font-size:12px}.recrate-ai-field-diff-line{border-bottom:1px solid #0000000a;display:grid;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;grid-template-columns:28px minmax(0,1fr);min-height:36px}.recrate-ai-field-diff-line:last-child{border-bottom:0}.recrate-ai-field-diff-marker{align-self:stretch;display:grid;font-weight:900;place-items:center}.recrate-ai-field-diff-value{color:#27322d;margin:0;min-width:0;overflow:auto;overflow-wrap:anywhere;padding:7px 11px;white-space:pre-wrap}.recrate-ai-field-diff-line-removed{background:#fff1f1}.recrate-ai-field-diff-line-removed .recrate-ai-field-diff-marker{background:#ffdede;color:#9a1f29}.recrate-ai-field-diff-line-added{background:#effbf5}.recrate-ai-field-diff-line-added .recrate-ai-field-diff-marker{background:#d8f5e7;color:#087446}.recrate-ai-field-diff-empty{color:#7b8781;font-style:italic}.recrate-ai-actions{align-items:flex-start;display:flex;flex:0 0 auto;gap:18px}.recrate-ai-actions .ant-btn{border:0;border-radius:8px;box-shadow:0 2px 5px #0f172a2e;color:#111827;font-size:14px;font-weight:700;height:34px;min-width:82px}.recrate-ai-action-diff.ant-btn{background:#fff;border:1px solid #d4ddd8;color:#0f172a;min-width:36px;padding:0;width:36px}.recrate-ai-action-diff.ant-btn:focus-visible,.recrate-ai-action-diff.ant-btn:hover{background:#f5f8f6!important;border-color:#9bc7b3!important;color:#087446!important}.recrate-ai-action-diff.ant-btn[aria-pressed=true]{background:#d8f5e7;border-color:#9bc7b3;color:#087446}.recrate-ai-action-approve.ant-btn{background:#57d8a3;border-color:#57d8a3}.recrate-ai-action-approve.ant-btn:focus-visible,.recrate-ai-action-approve.ant-btn:hover{background:#45c991!important;border-color:#45c991!important;color:#111827!important}.recrate-ai-action-reject.ant-btn,.recrate-ai-delete .recrate-ai-action-approve.ant-btn{background:#ff5b63;border-color:#ff5b63}.recrate-ai-delete .recrate-ai-action-approve.ant-btn:focus-visible,.recrate-ai-delete .recrate-ai-action-approve.ant-btn:hover{background:#f0444f!important;border-color:#f0444f!important;color:#111827!important}.recrate-ai-delete .recrate-ai-action-reject.ant-btn{background:#57d8a3;border-color:#57d8a3}.recrate-ai-delete .recrate-ai-action-reject.ant-btn:focus-visible,.recrate-ai-delete .recrate-ai-action-reject.ant-btn:hover{background:#45c991!important;border-color:#45c991!important;color:#111827!important}.recrate-ai-action-reject.ant-btn:focus-visible,.recrate-ai-action-reject.ant-btn:hover{background:#f0444f!important;border-color:#f0444f!important;color:#111827!important}@media (max-width:900px){.recrate-ai-confirm-bar{grid-template-columns:1fr}.recrate-ai-confirm-controls{flex-wrap:wrap}.recrate-ai-stepper{border-left:0;margin-left:0;padding-left:0}.recrate-ai-field-row{flex-wrap:wrap}.recrate-ai-actions{justify-content:flex-start;width:100%}}@media (max-width:640px){.recrate-quick-settings-header{flex-wrap:wrap}.recrate-quick-settings-filter{flex-basis:100%;max-width:none}}.recrate,.recrate .recrate-ant{display:flex;flex-direction:column;height:100vh;min-height:100vh}.recrate .ant-tabs-left .ant-tabs-nav,.recrate .ant-tabs-right .ant-tabs-nav,.recrate-editor-scroll{height:100%}.recrate .ant-tabs-bottom .ant-tabs-nav-wrap,.recrate .ant-tabs-top .ant-tabs-nav-wrap{overflow-x:auto}
|
|
2
2
|
/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */@layer theme, base, components, utilities;@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-200:oklch(88.5% 0.062 18.334);--color-red-500:oklch(63.7% 0.237 25.331);--color-red-600:oklch(57.7% 0.245 27.325);--color-red-700:oklch(50.5% 0.213 27.518);--color-green-100:oklch(96.2% 0.044 156.743);--color-green-200:oklch(92.5% 0.084 155.995);--color-green-600:oklch(62.7% 0.194 149.214);--color-cyan-200:oklch(91.7% 0.08 205.041);--color-sky-100:oklch(95.1% 0.026 236.824);--color-sky-500:oklch(68.5% 0.169 237.323);--color-blue-200:oklch(88.2% 0.059 254.128);--color-blue-300:oklch(80.9% 0.105 251.813);--color-blue-500:oklch(62.3% 0.214 259.815);--color-blue-600:oklch(54.6% 0.245 262.881);--color-blue-700:oklch(48.8% 0.243 264.376);--color-indigo-200:oklch(87% 0.065 274.039);--color-purple-200:oklch(90.2% 0.063 306.703);--color-slate-200:oklch(92.9% 0.013 255.508);--color-slate-300:oklch(86.9% 0.022 252.894);--color-slate-700:oklch(37.2% 0.044 257.287);--color-gray-50:oklch(98.5% 0.002 247.839);--color-gray-200:oklch(92.8% 0.006 264.531);--color-gray-300:oklch(87.2% 0.01 258.338);--color-gray-400:oklch(70.7% 0.022 261.325);--color-gray-600:oklch(44.6% 0.03 256.802);--color-gray-700:oklch(37.3% 0.034 259.733);--color-gray-800:oklch(27.8% 0.033 256.848);--color-black:#000;--color-white:#fff;--spacing:0.25rem;--text-xs:0.75rem;--text-xs--line-height:1.33333;--text-sm:0.875rem;--text-sm--line-height:1.42857;--text-base:1rem;--text-base--line-height:1.5;--text-lg:1.125rem;--text-lg--line-height:1.55556;--font-weight-light:300;--font-weight-bold:700;--radius-lg:0.5rem;--animate-pulse:pulse 2s cubic-bezier(0.4,0,0.6,1) infinite;--default-transition-duration:150ms;--default-transition-timing-function:cubic-bezier(0.4,0,0.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,::file-selector-button,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:initial}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}::file-selector-button,button,input,optgroup,select,textarea{background-color:initial;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::placeholder{color:currentcolor;@supports (color:color-mix(in lab,red,red)){color:color-mix(in oklab,currentcolor 50%,#0000)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}::file-selector-button,button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-2{bottom:calc(var(--spacing)*2)}.left-0{left:calc(var(--spacing)*0)}.isolate{isolation:isolate}.z-50{z-index:50}.float-right{float:right}.container{width:100%;@media (width >= 40rem){max-width:40rem}@media (width >= 48rem){max-width:48rem}@media (width >= 64rem){max-width:64rem}@media (width >= 80rem){max-width:80rem}@media (width >= 96rem){max-width:96rem}}.m-1{margin:calc(var(--spacing)*1)}.m-2{margin:calc(var(--spacing)*2)}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-2{margin-left:calc(var(--spacing)*2)}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.h-1{height:calc(var(--spacing)*1)}.h-3{height:calc(var(--spacing)*3)}.h-8{height:calc(var(--spacing)*8)}.h-\[520px\]{height:520px}.h-full{height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.w-1{width:calc(var(--spacing)*1)}.w-1\/2{width:50%}.w-1\/3{width:33.33333%}.w-2\/3{width:66.66667%}.w-2\/6{width:33.33333%}.w-3{width:calc(var(--spacing)*3)}.w-4\/6{width:66.66667%}.w-6{width:calc(var(--spacing)*6)}.w-12{width:calc(var(--spacing)*12)}.w-\[600px\]{width:600px}.w-full{width:100%}.w-screen{width:100vw}.max-w-\[715px\]{max-width:715px}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-32{min-width:calc(var(--spacing)*32)}.min-w-72{min-width:calc(var(--spacing)*72)}.flex-1{flex:1}.flex-\[1_1_360px\]{flex:1 1 360px}.flex-grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-between{place-content:space-between}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.space-y-1{:where(&>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*1*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*1*var(--tw-space-y-reverse))}}.space-y-2{:where(&>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*2*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*2*var(--tw-space-y-reverse))}}.space-y-3{:where(&>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*3*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*3*var(--tw-space-y-reverse))}}.space-y-4{:where(&>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*4*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*4*var(--tw-space-y-reverse))}}.gap-x-1{column-gap:calc(var(--spacing)*1)}.gap-x-2{column-gap:calc(var(--spacing)*2)}.space-x-1{:where(&>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*1*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*1*var(--tw-space-x-reverse))}}.space-x-2{:where(&>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*2*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*2*var(--tw-space-x-reverse))}}.space-x-4{:where(&>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*4*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*4*var(--tw-space-x-reverse))}}.gap-y-2{row-gap:calc(var(--spacing)*2)}.divide-y{:where(&>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-bottom-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse))}}.divide-gray-300{:where(&>:not(:last-child)){border-color:var(--color-gray-300)}}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-solid{--tw-border-style:solid;border-style:solid}.border-black{border-color:var(--color-black)}.border-black\/20{border-color:color-mix(in srgb,#000 20%,#0000);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--color-black) 20%,#0000)}}.border-gray-400{border-color:var(--color-gray-400)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-700{border-color:var(--color-slate-700)}.bg-blue-200{background-color:var(--color-blue-200)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-200{background-color:var(--color-green-200)}.bg-indigo-200{background-color:var(--color-indigo-200)}.bg-purple-200{background-color:var(--color-purple-200)}.bg-red-200{background-color:var(--color-red-200)}.bg-red-500{background-color:var(--color-red-500)}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-700{background-color:var(--color-slate-700)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pr-1{padding-right:calc(var(--spacing)*1)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pl-1{padding-left:calc(var(--spacing)*1)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.whitespace-pre-wrap{white-space:pre-wrap}.text-blue-600{color:var(--color-blue-600)}.text-gray-400{color:var(--color-gray-400)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-green-600{color:var(--color-green-600)}.text-red-600{color:var(--color-red-600)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.opacity-0{opacity:0}.opacity-50{opacity:50%}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-colors{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-transform{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.duration-1000{--tw-duration:1000ms;transition-duration:1s}.group-hover\:opacity-100{&:is(:where(.group):hover *){@media (hover:hover){opacity:100%}}}.hover\:scale-105{&:hover{@media (hover:hover){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}.hover\:rounded-r-none{&:hover{@media (hover:hover){border-bottom-right-radius:0;border-top-right-radius:0}}}.hover\:bg-blue-300{&:hover{@media (hover:hover){background-color:var(--color-blue-300)}}}.hover\:bg-blue-700{&:hover{@media (hover:hover){background-color:var(--color-blue-700)}}}.hover\:bg-cyan-200{&:hover{@media (hover:hover){background-color:var(--color-cyan-200)}}}.hover\:bg-green-200{&:hover{@media (hover:hover){background-color:var(--color-green-200)}}}.hover\:bg-red-700{&:hover{@media (hover:hover){background-color:var(--color-red-700)}}}.hover\:bg-sky-100{&:hover{@media (hover:hover){background-color:var(--color-sky-100)}}}.hover\:text-black{&:hover{@media (hover:hover){color:var(--color-black)}}}.focus\:border-2{&:focus{border-style:var(--tw-border-style);border-width:2px}}.focus\:border-green-600{&:focus{border-color:var(--color-green-600)}}.focus\:outline-none{&:focus{--tw-outline-style:none;outline-style:none}}.focus-visible\:ring-2{&:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus-visible\:ring-sky-500{&:focus-visible{--tw-ring-color:var(--color-sky-500)}}.focus-visible\:outline-none{&:focus-visible{--tw-outline-style:none;outline-style:none}}.xl\:w-1\/5{@media (width >= 80rem){width:20%}}.xl\:w-4\/5{@media (width >= 80rem){width:80%}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes pulse{50%{opacity:.5}}@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}
|
|
3
3
|
.recrate{all:revert-layer}
|
package/dist/recrate.es.js
CHANGED
|
@@ -70454,14 +70454,14 @@ const EntityType = ({
|
|
|
70454
70454
|
] })
|
|
70455
70455
|
] });
|
|
70456
70456
|
};
|
|
70457
|
-
const valueIsEmpty = (value) => {
|
|
70457
|
+
const valueIsEmpty$1 = (value) => {
|
|
70458
70458
|
if (value === void 0 || value === null) return true;
|
|
70459
70459
|
if (typeof value === "string") return value.trim().length === 0;
|
|
70460
70460
|
if (Array.isArray(value)) return value.length === 0;
|
|
70461
70461
|
return false;
|
|
70462
70462
|
};
|
|
70463
70463
|
const formatValue = (value, emptyLabel) => {
|
|
70464
|
-
if (valueIsEmpty(value)) return emptyLabel;
|
|
70464
|
+
if (valueIsEmpty$1(value)) return emptyLabel;
|
|
70465
70465
|
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
70466
70466
|
return String(value);
|
|
70467
70467
|
}
|
|
@@ -70488,11 +70488,11 @@ const AiFieldDiffView = ({
|
|
|
70488
70488
|
] }),
|
|
70489
70489
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "recrate-ai-field-diff-line recrate-ai-field-diff-line-removed", children: [
|
|
70490
70490
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "recrate-ai-field-diff-marker", children: "-" }),
|
|
70491
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: `recrate-ai-field-diff-value ${valueIsEmpty(previousValue) ? "recrate-ai-field-diff-empty" : ""}`, children: removedValue })
|
|
70491
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: `recrate-ai-field-diff-value ${valueIsEmpty$1(previousValue) ? "recrate-ai-field-diff-empty" : ""}`, children: removedValue })
|
|
70492
70492
|
] }),
|
|
70493
70493
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "recrate-ai-field-diff-line recrate-ai-field-diff-line-added", children: [
|
|
70494
70494
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "recrate-ai-field-diff-marker", children: "+" }),
|
|
70495
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: `recrate-ai-field-diff-value ${valueIsEmpty(isDelete ? void 0 : currentValue) ? "recrate-ai-field-diff-empty" : ""}`, children: addedValue })
|
|
70495
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: `recrate-ai-field-diff-value ${valueIsEmpty$1(isDelete ? void 0 : currentValue) ? "recrate-ai-field-diff-empty" : ""}`, children: addedValue })
|
|
70496
70496
|
] })
|
|
70497
70497
|
] });
|
|
70498
70498
|
};
|
|
@@ -83046,6 +83046,7 @@ const LinkedEntityCard = ({
|
|
|
83046
83046
|
);
|
|
83047
83047
|
};
|
|
83048
83048
|
const approvalIsApproved = (approvalRecord) => (approvalRecord == null ? void 0 : approvalRecord.approved) === true || (approvalRecord == null ? void 0 : approvalRecord.approved) === "true";
|
|
83049
|
+
const CONTEXT_APPROVAL_PROPERTY_NAME = "@context";
|
|
83049
83050
|
const getApprovalEntities = (approvalData) => {
|
|
83050
83051
|
if (!approvalData) return [];
|
|
83051
83052
|
if (Array.isArray(approvalData)) return approvalData;
|
|
@@ -83170,6 +83171,18 @@ const getEntityApprovalRecords = (approvalData, entityId, property) => {
|
|
|
83170
83171
|
if (!Array.isArray(entityApproval == null ? void 0 : entityApproval.approval)) return [];
|
|
83171
83172
|
return entityApproval.approval.filter((approvalRecord) => (approvalRecord == null ? void 0 : approvalRecord.propertyName) === property);
|
|
83172
83173
|
};
|
|
83174
|
+
const getPendingEntityContextApprovalRecords = (approvalData, entityId) => {
|
|
83175
|
+
const entityApproval = getEntityApproval(approvalData, entityId);
|
|
83176
|
+
if (!Array.isArray(entityApproval == null ? void 0 : entityApproval.approval)) return [];
|
|
83177
|
+
const approvedContextExists = entityApproval.approval.some((approvalRecord) => (approvalRecord == null ? void 0 : approvalRecord.propertyName) === CONTEXT_APPROVAL_PROPERTY_NAME && approvalIsApproved(approvalRecord));
|
|
83178
|
+
if (approvedContextExists) return [];
|
|
83179
|
+
return entityApproval.approval.filter((approvalRecord) => (approvalRecord == null ? void 0 : approvalRecord.propertyName) === CONTEXT_APPROVAL_PROPERTY_NAME && !approvalIsApproved(approvalRecord));
|
|
83180
|
+
};
|
|
83181
|
+
const getPendingContextApprovalRecords = (approvalData) => getApprovalEntities(approvalData).flatMap((entityApproval) => {
|
|
83182
|
+
const entityId = entityApproval == null ? void 0 : entityApproval["@id"];
|
|
83183
|
+
if (!entityId) return [];
|
|
83184
|
+
return getPendingEntityContextApprovalRecords(approvalData, entityId).map((approvalRecord) => ({ entityId, approvalRecord }));
|
|
83185
|
+
});
|
|
83173
83186
|
const getReferenceId = (value) => {
|
|
83174
83187
|
if (typeof (value == null ? void 0 : value["@id"]) === "string" && value["@id"].length > 0) return value["@id"];
|
|
83175
83188
|
return void 0;
|
|
@@ -83202,12 +83215,12 @@ const getPendingEntityApprovalRecords = (approvalData, entityId) => {
|
|
|
83202
83215
|
const approvedPropertyNames = new Set(
|
|
83203
83216
|
entityApproval.approval.filter(approvalIsApproved).map((approvalRecord) => approvalRecord == null ? void 0 : approvalRecord.propertyName).filter((propertyName2) => typeof propertyName2 === "string" && propertyName2.length > 0)
|
|
83204
83217
|
);
|
|
83205
|
-
return entityApproval.approval.filter((approvalRecord) => (approvalRecord == null ? void 0 : approvalRecord.propertyName) && approvalRecord.propertyName !==
|
|
83218
|
+
return entityApproval.approval.filter((approvalRecord) => (approvalRecord == null ? void 0 : approvalRecord.propertyName) && approvalRecord.propertyName !== CONTEXT_APPROVAL_PROPERTY_NAME && !approvalIsApproved(approvalRecord) && !approvedPropertyNames.has(approvalRecord.propertyName));
|
|
83206
83219
|
};
|
|
83207
83220
|
const getPendingEntityApprovalFieldCount = (approvalData, entityId) => new Set(
|
|
83208
83221
|
getPendingEntityApprovalRecords(approvalData, entityId).map((approvalRecord) => approvalRecord == null ? void 0 : approvalRecord.propertyName).filter((propertyName2) => typeof propertyName2 === "string" && propertyName2.length > 0)
|
|
83209
83222
|
).size;
|
|
83210
|
-
const getPendingApprovalEntities = (approvalData) => getApprovalEntities(approvalData).filter((entityApproval) => getPendingEntityApprovalRecords(approvalData, entityApproval == null ? void 0 : entityApproval["@id"]).length > 0);
|
|
83223
|
+
const getPendingApprovalEntities = (approvalData) => getApprovalEntities(approvalData).filter((entityApproval) => getPendingEntityApprovalRecords(approvalData, entityApproval == null ? void 0 : entityApproval["@id"]).length > 0 || getPendingEntityContextApprovalRecords(approvalData, entityApproval == null ? void 0 : entityApproval["@id"]).length > 0);
|
|
83211
83224
|
const getApprovedEntityApprovalRecords = (approvalData, entityId) => {
|
|
83212
83225
|
const entityApproval = getEntityApproval(approvalData, entityId);
|
|
83213
83226
|
if (!Array.isArray(entityApproval == null ? void 0 : entityApproval.approval)) return [];
|
|
@@ -110865,24 +110878,152 @@ const oneDarkHighlightStyle = /* @__PURE__ */ HighlightStyle.define([
|
|
|
110865
110878
|
}
|
|
110866
110879
|
]);
|
|
110867
110880
|
const oneDark = [oneDarkTheme, /* @__PURE__ */ syntaxHighlighting(oneDarkHighlightStyle)];
|
|
110881
|
+
const valueIsEmpty = (value) => {
|
|
110882
|
+
if (value === void 0 || value === null) return true;
|
|
110883
|
+
if (typeof value === "string") return value.trim().length === 0;
|
|
110884
|
+
if (Array.isArray(value)) return value.length === 0;
|
|
110885
|
+
return false;
|
|
110886
|
+
};
|
|
110887
|
+
const formatContextValue = (value, emptyLabel) => {
|
|
110888
|
+
if (valueIsEmpty(value)) return emptyLabel;
|
|
110889
|
+
try {
|
|
110890
|
+
return JSON.stringify(value, null, 2);
|
|
110891
|
+
} catch {
|
|
110892
|
+
return String(value);
|
|
110893
|
+
}
|
|
110894
|
+
};
|
|
110895
|
+
const CONTEXT_DIFF_CONTEXT_RADIUS = 2;
|
|
110896
|
+
const splitContextLines = (value, emptyLabel) => {
|
|
110897
|
+
const formatted = formatContextValue(value, emptyLabel);
|
|
110898
|
+
return formatted.length > 0 ? formatted.split("\n") : [emptyLabel];
|
|
110899
|
+
};
|
|
110900
|
+
const buildRawContextDiffRows = (previousLines, currentLines) => {
|
|
110901
|
+
const previousCount = previousLines.length;
|
|
110902
|
+
const currentCount = currentLines.length;
|
|
110903
|
+
const lengths = Array.from(
|
|
110904
|
+
{ length: previousCount + 1 },
|
|
110905
|
+
() => Array(currentCount + 1).fill(0)
|
|
110906
|
+
);
|
|
110907
|
+
for (let previousIndex2 = previousCount - 1; previousIndex2 >= 0; previousIndex2 -= 1) {
|
|
110908
|
+
for (let currentIndex2 = currentCount - 1; currentIndex2 >= 0; currentIndex2 -= 1) {
|
|
110909
|
+
lengths[previousIndex2][currentIndex2] = previousLines[previousIndex2] === currentLines[currentIndex2] ? lengths[previousIndex2 + 1][currentIndex2 + 1] + 1 : Math.max(lengths[previousIndex2 + 1][currentIndex2], lengths[previousIndex2][currentIndex2 + 1]);
|
|
110910
|
+
}
|
|
110911
|
+
}
|
|
110912
|
+
const rows = [];
|
|
110913
|
+
let previousIndex = 0;
|
|
110914
|
+
let currentIndex = 0;
|
|
110915
|
+
while (previousIndex < previousCount || currentIndex < currentCount) {
|
|
110916
|
+
if (previousIndex < previousCount && currentIndex < currentCount && previousLines[previousIndex] === currentLines[currentIndex]) {
|
|
110917
|
+
rows.push({
|
|
110918
|
+
kind: "context",
|
|
110919
|
+
oldLine: previousIndex + 1,
|
|
110920
|
+
newLine: currentIndex + 1,
|
|
110921
|
+
text: previousLines[previousIndex],
|
|
110922
|
+
key: `context-${previousIndex}-${currentIndex}`
|
|
110923
|
+
});
|
|
110924
|
+
previousIndex += 1;
|
|
110925
|
+
currentIndex += 1;
|
|
110926
|
+
continue;
|
|
110927
|
+
}
|
|
110928
|
+
if (currentIndex >= currentCount || previousIndex < previousCount && lengths[previousIndex + 1][currentIndex] >= lengths[previousIndex][currentIndex + 1]) {
|
|
110929
|
+
rows.push({
|
|
110930
|
+
kind: "removed",
|
|
110931
|
+
oldLine: previousIndex + 1,
|
|
110932
|
+
text: previousLines[previousIndex],
|
|
110933
|
+
key: `removed-${previousIndex}-${currentIndex}`
|
|
110934
|
+
});
|
|
110935
|
+
previousIndex += 1;
|
|
110936
|
+
continue;
|
|
110937
|
+
}
|
|
110938
|
+
rows.push({
|
|
110939
|
+
kind: "added",
|
|
110940
|
+
newLine: currentIndex + 1,
|
|
110941
|
+
text: currentLines[currentIndex],
|
|
110942
|
+
key: `added-${previousIndex}-${currentIndex}`
|
|
110943
|
+
});
|
|
110944
|
+
currentIndex += 1;
|
|
110945
|
+
}
|
|
110946
|
+
return rows;
|
|
110947
|
+
};
|
|
110948
|
+
const compactContextDiffRows = (rows) => {
|
|
110949
|
+
const changedIndexes = rows.map((row, index2) => row.kind === "context" ? -1 : index2).filter((index2) => index2 >= 0);
|
|
110950
|
+
if (changedIndexes.length === 0) return rows;
|
|
110951
|
+
const keepIndexes = /* @__PURE__ */ new Set();
|
|
110952
|
+
changedIndexes.forEach((index2) => {
|
|
110953
|
+
for (let contextIndex = Math.max(0, index2 - CONTEXT_DIFF_CONTEXT_RADIUS); contextIndex <= Math.min(rows.length - 1, index2 + CONTEXT_DIFF_CONTEXT_RADIUS); contextIndex += 1) {
|
|
110954
|
+
keepIndexes.add(contextIndex);
|
|
110955
|
+
}
|
|
110956
|
+
});
|
|
110957
|
+
const compactRows = [];
|
|
110958
|
+
let omittedRows = [];
|
|
110959
|
+
rows.forEach((row, index2) => {
|
|
110960
|
+
if (!keepIndexes.has(index2)) {
|
|
110961
|
+
omittedRows.push(row);
|
|
110962
|
+
return;
|
|
110963
|
+
}
|
|
110964
|
+
if (omittedRows.length > 0) {
|
|
110965
|
+
compactRows.push({
|
|
110966
|
+
kind: "omitted",
|
|
110967
|
+
text: String(omittedRows.length),
|
|
110968
|
+
key: `omitted-${index2}-${omittedRows.length}`,
|
|
110969
|
+
rows: omittedRows
|
|
110970
|
+
});
|
|
110971
|
+
omittedRows = [];
|
|
110972
|
+
}
|
|
110973
|
+
compactRows.push(row);
|
|
110974
|
+
});
|
|
110975
|
+
if (omittedRows.length > 0) {
|
|
110976
|
+
compactRows.push({
|
|
110977
|
+
kind: "omitted",
|
|
110978
|
+
text: String(omittedRows.length),
|
|
110979
|
+
key: `omitted-end-${omittedRows.length}`,
|
|
110980
|
+
rows: omittedRows
|
|
110981
|
+
});
|
|
110982
|
+
}
|
|
110983
|
+
return compactRows;
|
|
110984
|
+
};
|
|
110985
|
+
const buildContextDiffRows = (previousValue, currentValue, emptyLabel) => {
|
|
110986
|
+
const previousLines = splitContextLines(previousValue, emptyLabel);
|
|
110987
|
+
const currentLines = splitContextLines(currentValue, emptyLabel);
|
|
110988
|
+
return compactContextDiffRows(buildRawContextDiffRows(previousLines, currentLines));
|
|
110989
|
+
};
|
|
110868
110990
|
const DialogEditContext = ({
|
|
110869
110991
|
onClose,
|
|
110870
110992
|
onUpdateContext,
|
|
110871
|
-
open
|
|
110993
|
+
open,
|
|
110994
|
+
approvalRecord,
|
|
110995
|
+
readonly = false,
|
|
110996
|
+
onAcceptAiContext,
|
|
110997
|
+
onRejectAiContext
|
|
110872
110998
|
}) => {
|
|
110873
110999
|
const { t: t2 } = useTranslation();
|
|
110874
111000
|
const crateManager = useContext(CrateManagerContext);
|
|
110875
111001
|
const [error2, setError] = useState(false);
|
|
110876
111002
|
const editorRef = useRef(void 0);
|
|
110877
111003
|
const containerRef = useRef(null);
|
|
111004
|
+
const isAiReview = Boolean(approvalRecord);
|
|
111005
|
+
const currentContext2 = React__default.useMemo(() => {
|
|
111006
|
+
var _a2;
|
|
111007
|
+
return (_a2 = crateManager == null ? void 0 : crateManager.getContext) == null ? void 0 : _a2.call(crateManager);
|
|
111008
|
+
}, [crateManager, open, approvalRecord]);
|
|
111009
|
+
const emptyLabel = String(t2("ai_empty_value"));
|
|
111010
|
+
const contextDiffRows = React__default.useMemo(() => buildContextDiffRows(approvalRecord == null ? void 0 : approvalRecord.previousValue, currentContext2, emptyLabel), [approvalRecord == null ? void 0 : approvalRecord.previousValue, currentContext2, emptyLabel]);
|
|
111011
|
+
const [expandedOmittedRows, setExpandedOmittedRows] = useState(() => /* @__PURE__ */ new Set());
|
|
110878
111012
|
useEffect(() => {
|
|
110879
|
-
|
|
111013
|
+
setExpandedOmittedRows(/* @__PURE__ */ new Set());
|
|
111014
|
+
}, [contextDiffRows]);
|
|
111015
|
+
useEffect(() => {
|
|
111016
|
+
if (open && !isAiReview) {
|
|
110880
111017
|
const timeout = setTimeout(() => {
|
|
110881
111018
|
if (containerRef.current) {
|
|
110882
|
-
const context = crateManager.getContext();
|
|
110883
111019
|
const initialState = EditorState2.create({
|
|
110884
|
-
doc: JSON.stringify(
|
|
110885
|
-
extensions: [
|
|
111020
|
+
doc: JSON.stringify(currentContext2, null, 2),
|
|
111021
|
+
extensions: [
|
|
111022
|
+
basicSetup,
|
|
111023
|
+
oneDark,
|
|
111024
|
+
javascript(),
|
|
111025
|
+
...readonly ? [EditorView.editable.of(false)] : []
|
|
111026
|
+
]
|
|
110886
111027
|
});
|
|
110887
111028
|
if (editorRef.current) {
|
|
110888
111029
|
editorRef.current.destroy();
|
|
@@ -110899,7 +111040,7 @@ const DialogEditContext = ({
|
|
|
110899
111040
|
(_a2 = editorRef.current) == null ? void 0 : _a2.destroy();
|
|
110900
111041
|
};
|
|
110901
111042
|
}
|
|
110902
|
-
}, [open, crateManager]);
|
|
111043
|
+
}, [open, crateManager, currentContext2, isAiReview, readonly]);
|
|
110903
111044
|
const handleSave = () => {
|
|
110904
111045
|
var _a2;
|
|
110905
111046
|
try {
|
|
@@ -110912,34 +111053,115 @@ const DialogEditContext = ({
|
|
|
110912
111053
|
setError(true);
|
|
110913
111054
|
}
|
|
110914
111055
|
};
|
|
111056
|
+
const toggleOmittedRows = (key) => {
|
|
111057
|
+
setExpandedOmittedRows((current) => {
|
|
111058
|
+
const next2 = new Set(current);
|
|
111059
|
+
if (next2.has(key)) {
|
|
111060
|
+
next2.delete(key);
|
|
111061
|
+
} else {
|
|
111062
|
+
next2.add(key);
|
|
111063
|
+
}
|
|
111064
|
+
return next2;
|
|
111065
|
+
});
|
|
111066
|
+
};
|
|
111067
|
+
const renderContextDiffRow = (row, keyOverride) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `recrate-ai-context-diff-line recrate-ai-context-diff-line-${row.kind}`, children: [
|
|
111068
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "recrate-ai-context-diff-marker", children: row.kind === "removed" ? "-" : row.kind === "added" ? "+" : "" }),
|
|
111069
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "recrate-ai-context-diff-gutter", children: row.oldLine ?? "" }),
|
|
111070
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "recrate-ai-context-diff-gutter", children: row.newLine ?? "" }),
|
|
111071
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: `recrate-ai-context-diff-value ${valueIsEmpty(row.text) ? "recrate-ai-field-diff-empty" : ""}`, children: row.text })
|
|
111072
|
+
] }, keyOverride ?? row.key);
|
|
110915
111073
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
110916
111074
|
Drawer2,
|
|
110917
111075
|
{
|
|
110918
|
-
title: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography.Title, { className: "m-2", level: 4, children: t2("edit_context") }),
|
|
111076
|
+
title: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography.Title, { className: "m-2", level: 4, children: isAiReview ? t2("ai_context_review_title") : t2("edit_context") }),
|
|
110919
111077
|
placement: "left",
|
|
110920
111078
|
onClose,
|
|
110921
111079
|
open,
|
|
110922
|
-
width: 600,
|
|
111080
|
+
width: isAiReview ? "min(820px, calc(100vw - 32px))" : 600,
|
|
111081
|
+
getContainer: false,
|
|
111082
|
+
rootStyle: { position: "absolute" },
|
|
111083
|
+
rootClassName: isAiReview ? "recrate-context-review-drawer" : void 0,
|
|
111084
|
+
className: isAiReview ? "recrate-context-review-drawer" : void 0,
|
|
111085
|
+
styles: isAiReview ? { body: { padding: 0, overflow: "hidden" } } : void 0,
|
|
110923
111086
|
children: [
|
|
110924
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
110925
|
-
|
|
110926
|
-
|
|
110927
|
-
|
|
110928
|
-
|
|
110929
|
-
|
|
110930
|
-
|
|
110931
|
-
|
|
110932
|
-
|
|
110933
|
-
|
|
110934
|
-
|
|
110935
|
-
|
|
110936
|
-
|
|
110937
|
-
|
|
110938
|
-
|
|
110939
|
-
|
|
110940
|
-
|
|
110941
|
-
|
|
110942
|
-
|
|
111087
|
+
isAiReview && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "recrate-context-review", children: [
|
|
111088
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "recrate-context-review-summary", children: [
|
|
111089
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "recrate-context-review-spark", children: "AI" }),
|
|
111090
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography.Paragraph, { className: "recrate-context-review-description", children: t2("ai_context_review_description") })
|
|
111091
|
+
] }),
|
|
111092
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "recrate-ai-context-diff", "aria-label": String(t2("ai_context_diff_aria")), children: [
|
|
111093
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "recrate-ai-context-diff-head", children: [
|
|
111094
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: t2("ai_context_diff_title") }),
|
|
111095
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "recrate-ai-field-diff-chip", children: t2("ai_edit_chip") })
|
|
111096
|
+
] }),
|
|
111097
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "recrate-ai-context-diff-body", children: contextDiffRows.map((row) => {
|
|
111098
|
+
var _a2;
|
|
111099
|
+
if (row.kind !== "omitted") {
|
|
111100
|
+
return renderContextDiffRow(row);
|
|
111101
|
+
}
|
|
111102
|
+
const expanded = expandedOmittedRows.has(row.key);
|
|
111103
|
+
const count = Number(row.text ?? 0);
|
|
111104
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(React__default.Fragment, { children: [
|
|
111105
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
111106
|
+
"button",
|
|
111107
|
+
{
|
|
111108
|
+
type: "button",
|
|
111109
|
+
className: "recrate-ai-context-diff-line recrate-ai-context-diff-line-omitted recrate-ai-context-diff-omitted-button",
|
|
111110
|
+
"aria-expanded": expanded,
|
|
111111
|
+
onClick: () => toggleOmittedRows(row.key),
|
|
111112
|
+
children: [
|
|
111113
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "recrate-ai-context-diff-marker", children: expanded ? "-" : "..." }),
|
|
111114
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "recrate-ai-context-diff-gutter" }),
|
|
111115
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "recrate-ai-context-diff-gutter" }),
|
|
111116
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "recrate-ai-context-diff-omitted-label", children: expanded ? t2("ai_context_diff_hide_omitted_lines", { count }) : t2("ai_context_diff_show_omitted_lines", { count }) })
|
|
111117
|
+
]
|
|
111118
|
+
}
|
|
111119
|
+
),
|
|
111120
|
+
expanded && ((_a2 = row.rows) == null ? void 0 : _a2.map((hiddenRow) => renderContextDiffRow(hiddenRow, `${row.key}-${hiddenRow.key}`)))
|
|
111121
|
+
] }, row.key);
|
|
111122
|
+
}) })
|
|
111123
|
+
] })
|
|
111124
|
+
] }),
|
|
111125
|
+
!isAiReview && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
111126
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Divider, { style: { margin: "16px 0" } }),
|
|
111127
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
111128
|
+
"div",
|
|
111129
|
+
{
|
|
111130
|
+
ref: containerRef,
|
|
111131
|
+
className: "cm-editor"
|
|
111132
|
+
}
|
|
111133
|
+
),
|
|
111134
|
+
error2 && /* @__PURE__ */ jsxRuntimeExports.jsx(Typography.Text, { type: "danger", children: "The context is not a valid JSON data structure." })
|
|
111135
|
+
] }),
|
|
111136
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Space, { className: isAiReview ? "recrate-context-review-actions" : void 0, style: isAiReview ? void 0 : { marginTop: "16px" }, children: [
|
|
111137
|
+
isAiReview && !readonly && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
111138
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
111139
|
+
Button$1,
|
|
111140
|
+
{
|
|
111141
|
+
onClick: onAcceptAiContext,
|
|
111142
|
+
className: "recrate-ai-entity-diff-button",
|
|
111143
|
+
children: t2("ai_accept")
|
|
111144
|
+
}
|
|
111145
|
+
),
|
|
111146
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
111147
|
+
Button$1,
|
|
111148
|
+
{
|
|
111149
|
+
onClick: onRejectAiContext,
|
|
111150
|
+
className: "recrate-ai-entity-diff-button recrate-ai-entity-diff-button-reject",
|
|
111151
|
+
children: t2("ai_reject")
|
|
111152
|
+
}
|
|
111153
|
+
)
|
|
111154
|
+
] }),
|
|
111155
|
+
!readonly && !isAiReview && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
111156
|
+
Button$1,
|
|
111157
|
+
{
|
|
111158
|
+
onClick: handleSave,
|
|
111159
|
+
type: "primary",
|
|
111160
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$2, {}),
|
|
111161
|
+
children: t2("save_label")
|
|
111162
|
+
}
|
|
111163
|
+
)
|
|
111164
|
+
] })
|
|
110943
111165
|
]
|
|
110944
111166
|
}
|
|
110945
111167
|
);
|
|
@@ -112794,6 +113016,7 @@ const useEntityMutationHandlers = ({
|
|
|
112794
113016
|
if (isURL(data.value) && ((_a2 = state.configuration) == null ? void 0 : _a2.enableUrlMarkup)) {
|
|
112795
113017
|
handleCreateEntity({
|
|
112796
113018
|
property: data.property,
|
|
113019
|
+
propertyId: data.propertyId,
|
|
112797
113020
|
json: {
|
|
112798
113021
|
"@id": data.value,
|
|
112799
113022
|
"@type": "URL",
|
|
@@ -112955,10 +113178,11 @@ const useEntityNavigationState = ({
|
|
|
112955
113178
|
if (!source) return [];
|
|
112956
113179
|
return Array.from(source.querySelectorAll(selector)).map((node2) => node2.getAttribute(dataAttribute)).filter((value) => Boolean(value));
|
|
112957
113180
|
}, [activeContentRef]);
|
|
112958
|
-
const captureViewContext = useCallback((tabName = activeTab, explicitScrollTop) => {
|
|
113181
|
+
const captureViewContext = useCallback((tabName = activeTab, explicitScrollTop, options = {}) => {
|
|
112959
113182
|
var _a2, _b, _c, _d, _e2, _f, _g, _h;
|
|
112960
113183
|
const entityId = contextEntity == null ? void 0 : contextEntity["@id"];
|
|
112961
113184
|
if (!entityId) return;
|
|
113185
|
+
const updateActiveTab = options.updateActiveTab !== false;
|
|
112962
113186
|
if (restoreInProgressRef.current && typeof explicitScrollTop !== "number") {
|
|
112963
113187
|
debugScroll("capture.skipped-during-restore", {
|
|
112964
113188
|
entityId,
|
|
@@ -112980,6 +113204,7 @@ const useEntityNavigationState = ({
|
|
|
112980
113204
|
latestId: (_e2 = state.editorState.latest()) == null ? void 0 : _e2.id,
|
|
112981
113205
|
explicitScrollTop,
|
|
112982
113206
|
scrollTop,
|
|
113207
|
+
updateActiveTab,
|
|
112983
113208
|
previousScrollTop: ((_g = (_f = previous.tabStates) == null ? void 0 : _f[tabName]) == null ? void 0 : _g.scrollTop) ?? null,
|
|
112984
113209
|
viewport: activeContentRef.current ? {
|
|
112985
113210
|
clientHeight: activeContentRef.current.clientHeight,
|
|
@@ -112988,7 +113213,7 @@ const useEntityNavigationState = ({
|
|
|
112988
113213
|
} : null
|
|
112989
113214
|
});
|
|
112990
113215
|
const navigationState = {
|
|
112991
|
-
activeTab: tabName,
|
|
113216
|
+
...updateActiveTab ? { activeTab: tabName } : {},
|
|
112992
113217
|
tabStates: { [tabName]: nextTabState },
|
|
112993
113218
|
uiState: {
|
|
112994
113219
|
showAddPanel,
|
|
@@ -113145,7 +113370,7 @@ const useEntityScrollRestoration = ({
|
|
|
113145
113370
|
restoreInProgressRef.current = false;
|
|
113146
113371
|
viewport.style.scrollBehavior = previousInlineScrollBehavior;
|
|
113147
113372
|
if (navigationRestoreReadyRef.current && !isAiScrollRestoreSuppressed()) {
|
|
113148
|
-
captureViewContext(activeTab, viewport.scrollTop);
|
|
113373
|
+
captureViewContext(activeTab, viewport.scrollTop, { updateActiveTab: false });
|
|
113149
113374
|
}
|
|
113150
113375
|
viewport.removeEventListener("scroll", handleScroll);
|
|
113151
113376
|
window.cancelAnimationFrame(rafId);
|
|
@@ -113849,7 +114074,7 @@ const buildAiApprovalNavigationKey = (entityId, approvalRecord) => {
|
|
|
113849
114074
|
return `${entityId}:${propertyName2}:${operation}:${timestamp}:${previousValue}`;
|
|
113850
114075
|
};
|
|
113851
114076
|
const RenderEntity = forwardRef((props, ref) => {
|
|
113852
|
-
var _a2, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k;
|
|
114077
|
+
var _a2, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l;
|
|
113853
114078
|
const {
|
|
113854
114079
|
entity,
|
|
113855
114080
|
onLoadEntity,
|
|
@@ -113893,6 +114118,8 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
113893
114118
|
const [hideEmptyFields, setHideEmptyFields] = useState(false);
|
|
113894
114119
|
const [showAiEditedFields, setShowAiEditedFields] = useState(false);
|
|
113895
114120
|
const [selectedAiApprovalIndex, setSelectedAiApprovalIndex] = useState(0);
|
|
114121
|
+
const [contextReviewDialogOpen, setContextReviewDialogOpen] = useState(false);
|
|
114122
|
+
const [contextReviewEntityId, setContextReviewEntityId] = useState(void 0);
|
|
113896
114123
|
const [iconView, setIconView] = useState(false);
|
|
113897
114124
|
const [hoveredTabKey, setHoveredTabKey] = useState(null);
|
|
113898
114125
|
const initialTabPaneWidth = useMemo$1(() => {
|
|
@@ -114012,9 +114239,25 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114012
114239
|
)), [approvedAiApprovals]);
|
|
114013
114240
|
const selectedAiApproval = pendingAiApprovals[selectedAiApprovalIndex] ?? pendingAiApprovals[0];
|
|
114014
114241
|
const selectedAiApprovalProperty = (selectedAiApproval == null ? void 0 : selectedAiApproval.propertyName) ?? pendingDeletedEntityReviewProperties[0];
|
|
114242
|
+
const pendingContextApprovalItems = useMemo$1(() => getPendingContextApprovalRecords(approvalContext == null ? void 0 : approvalContext.roCrateApproval), [approvalContext == null ? void 0 : approvalContext.roCrateApproval]);
|
|
114243
|
+
const currentContextApprovalItem = useMemo$1(() => {
|
|
114244
|
+
if (contextReviewEntityId) {
|
|
114245
|
+
const approvalRecord = getPendingEntityContextApprovalRecords(
|
|
114246
|
+
approvalContext == null ? void 0 : approvalContext.roCrateApproval,
|
|
114247
|
+
contextReviewEntityId
|
|
114248
|
+
)[0];
|
|
114249
|
+
if (approvalRecord) {
|
|
114250
|
+
return { entityId: contextReviewEntityId, approvalRecord };
|
|
114251
|
+
}
|
|
114252
|
+
}
|
|
114253
|
+
return pendingContextApprovalItems[0];
|
|
114254
|
+
}, [approvalContext == null ? void 0 : approvalContext.roCrateApproval, contextReviewEntityId, pendingContextApprovalItems]);
|
|
114015
114255
|
const canReviewAiApprovalEntity = useCallback((entityApproval) => {
|
|
114016
114256
|
const entityId = entityApproval == null ? void 0 : entityApproval["@id"];
|
|
114017
114257
|
if (!entityId) return false;
|
|
114258
|
+
if (getPendingEntityContextApprovalRecords(approvalContext == null ? void 0 : approvalContext.roCrateApproval, entityId).length > 0) {
|
|
114259
|
+
return true;
|
|
114260
|
+
}
|
|
114018
114261
|
if (isPendingEntityDeleteApproval(entityApproval)) {
|
|
114019
114262
|
const reviewTarget = getDeletedEntityReviewTarget(entityApproval);
|
|
114020
114263
|
if (!(reviewTarget == null ? void 0 : reviewTarget.entityId)) return false;
|
|
@@ -114029,16 +114272,28 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114029
114272
|
link: false,
|
|
114030
114273
|
materialise: false
|
|
114031
114274
|
}));
|
|
114032
|
-
}, [crateManager]);
|
|
114275
|
+
}, [approvalContext == null ? void 0 : approvalContext.roCrateApproval, crateManager]);
|
|
114033
114276
|
const pendingOtherAiApprovalEntities = useMemo$1(() => getPendingApprovalEntities(approvalContext == null ? void 0 : approvalContext.roCrateApproval).filter((entityApproval) => !entityIdsMatch(entityApproval == null ? void 0 : entityApproval["@id"], contextEntity == null ? void 0 : contextEntity["@id"]) && canReviewAiApprovalEntity(entityApproval)), [approvalContext == null ? void 0 : approvalContext.roCrateApproval, canReviewAiApprovalEntity, contextEntity == null ? void 0 : contextEntity["@id"]]);
|
|
114034
|
-
const pendingOtherAiApprovalFieldCount = useMemo$1(() => pendingOtherAiApprovalEntities.reduce((count, entityApproval) =>
|
|
114035
|
-
|
|
114036
|
-
|
|
114037
|
-
|
|
114277
|
+
const pendingOtherAiApprovalFieldCount = useMemo$1(() => pendingOtherAiApprovalEntities.reduce((count, entityApproval) => {
|
|
114278
|
+
const entityId = entityApproval == null ? void 0 : entityApproval["@id"];
|
|
114279
|
+
const contextFieldCount = getPendingEntityContextApprovalRecords(
|
|
114280
|
+
approvalContext == null ? void 0 : approvalContext.roCrateApproval,
|
|
114281
|
+
entityId
|
|
114282
|
+
).length > 0 ? 1 : 0;
|
|
114283
|
+
return count + getPendingEntityApprovalFieldCount(
|
|
114284
|
+
approvalContext == null ? void 0 : approvalContext.roCrateApproval,
|
|
114285
|
+
entityId
|
|
114286
|
+
) + contextFieldCount;
|
|
114287
|
+
}, 0), [approvalContext == null ? void 0 : approvalContext.roCrateApproval, pendingOtherAiApprovalEntities]);
|
|
114038
114288
|
const handleReviewNextAiApprovalEntity = useCallback(() => {
|
|
114039
114289
|
for (const entityApproval of pendingOtherAiApprovalEntities) {
|
|
114040
114290
|
const nextEntityId = entityApproval == null ? void 0 : entityApproval["@id"];
|
|
114041
114291
|
if (!nextEntityId) continue;
|
|
114292
|
+
if (getPendingEntityContextApprovalRecords(approvalContext == null ? void 0 : approvalContext.roCrateApproval, nextEntityId).length > 0) {
|
|
114293
|
+
setContextReviewEntityId(nextEntityId);
|
|
114294
|
+
setContextReviewDialogOpen(true);
|
|
114295
|
+
return;
|
|
114296
|
+
}
|
|
114042
114297
|
if (isPendingEntityDeleteApproval(entityApproval)) {
|
|
114043
114298
|
const reviewTarget = getDeletedEntityReviewTarget(entityApproval);
|
|
114044
114299
|
if (!reviewTarget) continue;
|
|
@@ -114059,7 +114314,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114059
114314
|
onLoadEntity({ id: nextEntityId });
|
|
114060
114315
|
return;
|
|
114061
114316
|
}
|
|
114062
|
-
}, [crateManager, hideEmptyFields, onLoadEntity, pendingOtherAiApprovalEntities]);
|
|
114317
|
+
}, [approvalContext == null ? void 0 : approvalContext.roCrateApproval, crateManager, hideEmptyFields, onLoadEntity, pendingOtherAiApprovalEntities]);
|
|
114063
114318
|
useImperativeHandle(ref, () => ({
|
|
114064
114319
|
setTab: (tabName) => {
|
|
114065
114320
|
setActiveTab(tabName);
|
|
@@ -114127,7 +114382,8 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114127
114382
|
const fallbackTab = tabNames.includes("about") ? "about" : tabNames[0] ?? "about";
|
|
114128
114383
|
const currentTabStillValid = layout.renderTabs && (contextEntity == null ? void 0 : contextEntity["@id"]) === entity2["@id"] && tabNames.includes(activeTab);
|
|
114129
114384
|
const savedActiveTab = (navState == null ? void 0 : navState.activeTab) ?? (isCurrentHistoryEntity ? latestEntry == null ? void 0 : latestEntry.tab : void 0);
|
|
114130
|
-
const
|
|
114385
|
+
const savedTabStillValid = layout.renderTabs && typeof savedActiveTab === "string" && tabNames.includes(savedActiveTab);
|
|
114386
|
+
const restoredTab = savedTabStillValid ? savedActiveTab : currentTabStillValid ? activeTab : fallbackTab;
|
|
114131
114387
|
const pendingAddedProfileSelection = pendingAddedProfileSelectionRef.current;
|
|
114132
114388
|
const pendingAddedProfileTabKeys = Array.isArray((_a3 = navState == null ? void 0 : navState.uiState) == null ? void 0 : _a3.pendingAddedProfileTabKeys) ? navState.uiState.pendingAddedProfileTabKeys : readPendingAddedProfileTabKeys(entity2["@id"]);
|
|
114133
114389
|
let nextActiveTab = restoredTab;
|
|
@@ -114181,6 +114437,9 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114181
114437
|
isCurrentHistoryEntity,
|
|
114182
114438
|
renderTabs: layout.renderTabs,
|
|
114183
114439
|
tabNames,
|
|
114440
|
+
savedActiveTab,
|
|
114441
|
+
savedTabStillValid,
|
|
114442
|
+
currentTabStillValid,
|
|
114184
114443
|
restoredTab,
|
|
114185
114444
|
nextActiveTab,
|
|
114186
114445
|
navState
|
|
@@ -114329,6 +114588,49 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114329
114588
|
onWarning,
|
|
114330
114589
|
onError
|
|
114331
114590
|
});
|
|
114591
|
+
useEffect(() => {
|
|
114592
|
+
if (!contextReviewDialogOpen) return;
|
|
114593
|
+
if (currentContextApprovalItem) return;
|
|
114594
|
+
setContextReviewDialogOpen(false);
|
|
114595
|
+
setContextReviewEntityId(void 0);
|
|
114596
|
+
}, [contextReviewDialogOpen, currentContextApprovalItem]);
|
|
114597
|
+
const handleCloseContextReviewDialog = () => {
|
|
114598
|
+
setContextReviewDialogOpen(false);
|
|
114599
|
+
setContextReviewEntityId(void 0);
|
|
114600
|
+
};
|
|
114601
|
+
const handleAcceptAiContext = () => {
|
|
114602
|
+
var _a3, _b2;
|
|
114603
|
+
const approvalItem = currentContextApprovalItem;
|
|
114604
|
+
if (!approvalItem) return;
|
|
114605
|
+
(_b2 = approvalContext == null ? void 0 : approvalContext.markApprovalPropertyApproved) == null ? void 0 : _b2.call(approvalContext, {
|
|
114606
|
+
entityId: approvalItem.entityId,
|
|
114607
|
+
propertyName: CONTEXT_APPROVAL_PROPERTY_NAME,
|
|
114608
|
+
decision: "accept",
|
|
114609
|
+
value: (_a3 = crateManager == null ? void 0 : crateManager.getContext) == null ? void 0 : _a3.call(crateManager)
|
|
114610
|
+
});
|
|
114611
|
+
handleCloseContextReviewDialog();
|
|
114612
|
+
};
|
|
114613
|
+
const handleRejectAiContext = () => {
|
|
114614
|
+
var _a3, _b2;
|
|
114615
|
+
try {
|
|
114616
|
+
const approvalItem = currentContextApprovalItem;
|
|
114617
|
+
if (!approvalItem) return;
|
|
114618
|
+
const previousContext = (_a3 = approvalItem.approvalRecord) == null ? void 0 : _a3.previousValue;
|
|
114619
|
+
if (propertyValueHasContent(previousContext)) {
|
|
114620
|
+
handleUpdateContext(previousContext);
|
|
114621
|
+
}
|
|
114622
|
+
(_b2 = approvalContext == null ? void 0 : approvalContext.markApprovalPropertyApproved) == null ? void 0 : _b2.call(approvalContext, {
|
|
114623
|
+
entityId: approvalItem.entityId,
|
|
114624
|
+
propertyName: CONTEXT_APPROVAL_PROPERTY_NAME,
|
|
114625
|
+
decision: "reject",
|
|
114626
|
+
value: previousContext
|
|
114627
|
+
});
|
|
114628
|
+
handleCloseContextReviewDialog();
|
|
114629
|
+
} catch (error2) {
|
|
114630
|
+
console.error(error2);
|
|
114631
|
+
onError();
|
|
114632
|
+
}
|
|
114633
|
+
};
|
|
114332
114634
|
const toggleIconView = () => {
|
|
114333
114635
|
if (!iconView) {
|
|
114334
114636
|
labelTabPaneWidthRef.current = clampLabelTabPaneWidth(tabPaneWidth);
|
|
@@ -115078,6 +115380,18 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
115078
115380
|
persistTabWidth(width);
|
|
115079
115381
|
}
|
|
115080
115382
|
}
|
|
115383
|
+
),
|
|
115384
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
115385
|
+
DialogEditContext,
|
|
115386
|
+
{
|
|
115387
|
+
open: contextReviewDialogOpen,
|
|
115388
|
+
onClose: handleCloseContextReviewDialog,
|
|
115389
|
+
onUpdateContext: handleUpdateContext,
|
|
115390
|
+
approvalRecord: currentContextApprovalItem == null ? void 0 : currentContextApprovalItem.approvalRecord,
|
|
115391
|
+
readonly: (_l = state.configuration) == null ? void 0 : _l.readonly,
|
|
115392
|
+
onAcceptAiContext: handleAcceptAiContext,
|
|
115393
|
+
onRejectAiContext: handleRejectAiContext
|
|
115394
|
+
}
|
|
115081
115395
|
)
|
|
115082
115396
|
] }),
|
|
115083
115397
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -116697,7 +117011,7 @@ class CrateManager {
|
|
|
116697
117011
|
return this.warnings;
|
|
116698
117012
|
}
|
|
116699
117013
|
__updateContext({ name: name2, id: id2 }) {
|
|
116700
|
-
if (id2 &&
|
|
117014
|
+
if (id2 && this.localContext[name2] !== id2) {
|
|
116701
117015
|
this.contextDefinitions[id2] = true;
|
|
116702
117016
|
this.localContext[name2] = id2;
|
|
116703
117017
|
}
|
|
@@ -122371,6 +122685,18 @@ const en = {
|
|
|
122371
122685
|
filter_attribute_set: "Filter the attribute set",
|
|
122372
122686
|
// DialogEditContext.tsx
|
|
122373
122687
|
save_label: "Save",
|
|
122688
|
+
ai_context_review_title: "Review context change",
|
|
122689
|
+
ai_context_review_description: "The crate context was changed by AI. Review the diff before accepting or restoring the previous context.",
|
|
122690
|
+
ai_context_diff_aria: "AI context diff",
|
|
122691
|
+
ai_context_diff_title: "Proposed context change",
|
|
122692
|
+
ai_previous_context: "Previous context",
|
|
122693
|
+
ai_current_context: "Current context",
|
|
122694
|
+
ai_context_diff_omitted_lines_one: "{{count}} unchanged line hidden",
|
|
122695
|
+
ai_context_diff_omitted_lines_other: "{{count}} unchanged lines hidden",
|
|
122696
|
+
ai_context_diff_show_omitted_lines_one: "Show {{count}} unchanged line",
|
|
122697
|
+
ai_context_diff_show_omitted_lines_other: "Show {{count}} unchanged lines",
|
|
122698
|
+
ai_context_diff_hide_omitted_lines_one: "Hide {{count}} unchanged line",
|
|
122699
|
+
ai_context_diff_hide_omitted_lines_other: "Hide {{count}} unchanged lines",
|
|
122374
122700
|
// DialogPreviewCrate.tsx
|
|
122375
122701
|
preview_loading: "loading ...",
|
|
122376
122702
|
// DialogBrowseEntities.tsx
|
|
@@ -122589,6 +122915,18 @@ const hu = {
|
|
|
122589
122915
|
filter_attribute_set: "Attribútumok szűrése",
|
|
122590
122916
|
// DialogEditContext.tsx
|
|
122591
122917
|
save_label: "Mentés",
|
|
122918
|
+
ai_context_review_title: "Kontextusmódosítás ellenőrzése",
|
|
122919
|
+
ai_context_review_description: "Az adatcsomag kontextusát AI módosította. Ellenőrizze az eltérést mielőtt elfogadná, vagy elutasítaná azt.",
|
|
122920
|
+
ai_context_diff_aria: "AI kontextuseltérés",
|
|
122921
|
+
ai_context_diff_title: "Javasolt kontextusmódosítás",
|
|
122922
|
+
ai_previous_context: "Előző kontextus",
|
|
122923
|
+
ai_current_context: "Jelenlegi kontextus",
|
|
122924
|
+
ai_context_diff_omitted_lines_one: "{{count}} változatlan sor elrejtve",
|
|
122925
|
+
ai_context_diff_omitted_lines_other: "{{count}} változatlan sor elrejtve",
|
|
122926
|
+
ai_context_diff_show_omitted_lines_one: "{{count}} változatlan sor megjelenítése",
|
|
122927
|
+
ai_context_diff_show_omitted_lines_other: "{{count}} változatlan sor megjelenítése",
|
|
122928
|
+
ai_context_diff_hide_omitted_lines_one: "{{count}} változatlan sor elrejtése",
|
|
122929
|
+
ai_context_diff_hide_omitted_lines_other: "{{count}} változatlan sor elrejtése",
|
|
122592
122930
|
// DialogPreviewCrate.tsx
|
|
122593
122931
|
preview_loading: "betöltés ...",
|
|
122594
122932
|
// DialogBrowseEntities.tsx
|
|
@@ -123642,7 +123980,7 @@ var EmotionCacheContext = /* @__PURE__ */ React.createContext(
|
|
|
123642
123980
|
}) : null
|
|
123643
123981
|
);
|
|
123644
123982
|
var CacheProvider = EmotionCacheContext.Provider;
|
|
123645
|
-
const version = "0.1.
|
|
123983
|
+
const version = "0.1.37";
|
|
123646
123984
|
const pkg = {
|
|
123647
123985
|
version
|
|
123648
123986
|
};
|