@arpproject/recrate 0.1.35 → 0.1.36
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/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 +382 -45
- 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[];
|
|
@@ -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
|
);
|
|
@@ -112955,10 +113177,11 @@ const useEntityNavigationState = ({
|
|
|
112955
113177
|
if (!source) return [];
|
|
112956
113178
|
return Array.from(source.querySelectorAll(selector)).map((node2) => node2.getAttribute(dataAttribute)).filter((value) => Boolean(value));
|
|
112957
113179
|
}, [activeContentRef]);
|
|
112958
|
-
const captureViewContext = useCallback((tabName = activeTab, explicitScrollTop) => {
|
|
113180
|
+
const captureViewContext = useCallback((tabName = activeTab, explicitScrollTop, options = {}) => {
|
|
112959
113181
|
var _a2, _b, _c, _d, _e2, _f, _g, _h;
|
|
112960
113182
|
const entityId = contextEntity == null ? void 0 : contextEntity["@id"];
|
|
112961
113183
|
if (!entityId) return;
|
|
113184
|
+
const updateActiveTab = options.updateActiveTab !== false;
|
|
112962
113185
|
if (restoreInProgressRef.current && typeof explicitScrollTop !== "number") {
|
|
112963
113186
|
debugScroll("capture.skipped-during-restore", {
|
|
112964
113187
|
entityId,
|
|
@@ -112980,6 +113203,7 @@ const useEntityNavigationState = ({
|
|
|
112980
113203
|
latestId: (_e2 = state.editorState.latest()) == null ? void 0 : _e2.id,
|
|
112981
113204
|
explicitScrollTop,
|
|
112982
113205
|
scrollTop,
|
|
113206
|
+
updateActiveTab,
|
|
112983
113207
|
previousScrollTop: ((_g = (_f = previous.tabStates) == null ? void 0 : _f[tabName]) == null ? void 0 : _g.scrollTop) ?? null,
|
|
112984
113208
|
viewport: activeContentRef.current ? {
|
|
112985
113209
|
clientHeight: activeContentRef.current.clientHeight,
|
|
@@ -112988,7 +113212,7 @@ const useEntityNavigationState = ({
|
|
|
112988
113212
|
} : null
|
|
112989
113213
|
});
|
|
112990
113214
|
const navigationState = {
|
|
112991
|
-
activeTab: tabName,
|
|
113215
|
+
...updateActiveTab ? { activeTab: tabName } : {},
|
|
112992
113216
|
tabStates: { [tabName]: nextTabState },
|
|
112993
113217
|
uiState: {
|
|
112994
113218
|
showAddPanel,
|
|
@@ -113145,7 +113369,7 @@ const useEntityScrollRestoration = ({
|
|
|
113145
113369
|
restoreInProgressRef.current = false;
|
|
113146
113370
|
viewport.style.scrollBehavior = previousInlineScrollBehavior;
|
|
113147
113371
|
if (navigationRestoreReadyRef.current && !isAiScrollRestoreSuppressed()) {
|
|
113148
|
-
captureViewContext(activeTab, viewport.scrollTop);
|
|
113372
|
+
captureViewContext(activeTab, viewport.scrollTop, { updateActiveTab: false });
|
|
113149
113373
|
}
|
|
113150
113374
|
viewport.removeEventListener("scroll", handleScroll);
|
|
113151
113375
|
window.cancelAnimationFrame(rafId);
|
|
@@ -113849,7 +114073,7 @@ const buildAiApprovalNavigationKey = (entityId, approvalRecord) => {
|
|
|
113849
114073
|
return `${entityId}:${propertyName2}:${operation}:${timestamp}:${previousValue}`;
|
|
113850
114074
|
};
|
|
113851
114075
|
const RenderEntity = forwardRef((props, ref) => {
|
|
113852
|
-
var _a2, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k;
|
|
114076
|
+
var _a2, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l;
|
|
113853
114077
|
const {
|
|
113854
114078
|
entity,
|
|
113855
114079
|
onLoadEntity,
|
|
@@ -113893,6 +114117,8 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
113893
114117
|
const [hideEmptyFields, setHideEmptyFields] = useState(false);
|
|
113894
114118
|
const [showAiEditedFields, setShowAiEditedFields] = useState(false);
|
|
113895
114119
|
const [selectedAiApprovalIndex, setSelectedAiApprovalIndex] = useState(0);
|
|
114120
|
+
const [contextReviewDialogOpen, setContextReviewDialogOpen] = useState(false);
|
|
114121
|
+
const [contextReviewEntityId, setContextReviewEntityId] = useState(void 0);
|
|
113896
114122
|
const [iconView, setIconView] = useState(false);
|
|
113897
114123
|
const [hoveredTabKey, setHoveredTabKey] = useState(null);
|
|
113898
114124
|
const initialTabPaneWidth = useMemo$1(() => {
|
|
@@ -114012,9 +114238,25 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114012
114238
|
)), [approvedAiApprovals]);
|
|
114013
114239
|
const selectedAiApproval = pendingAiApprovals[selectedAiApprovalIndex] ?? pendingAiApprovals[0];
|
|
114014
114240
|
const selectedAiApprovalProperty = (selectedAiApproval == null ? void 0 : selectedAiApproval.propertyName) ?? pendingDeletedEntityReviewProperties[0];
|
|
114241
|
+
const pendingContextApprovalItems = useMemo$1(() => getPendingContextApprovalRecords(approvalContext == null ? void 0 : approvalContext.roCrateApproval), [approvalContext == null ? void 0 : approvalContext.roCrateApproval]);
|
|
114242
|
+
const currentContextApprovalItem = useMemo$1(() => {
|
|
114243
|
+
if (contextReviewEntityId) {
|
|
114244
|
+
const approvalRecord = getPendingEntityContextApprovalRecords(
|
|
114245
|
+
approvalContext == null ? void 0 : approvalContext.roCrateApproval,
|
|
114246
|
+
contextReviewEntityId
|
|
114247
|
+
)[0];
|
|
114248
|
+
if (approvalRecord) {
|
|
114249
|
+
return { entityId: contextReviewEntityId, approvalRecord };
|
|
114250
|
+
}
|
|
114251
|
+
}
|
|
114252
|
+
return pendingContextApprovalItems[0];
|
|
114253
|
+
}, [approvalContext == null ? void 0 : approvalContext.roCrateApproval, contextReviewEntityId, pendingContextApprovalItems]);
|
|
114015
114254
|
const canReviewAiApprovalEntity = useCallback((entityApproval) => {
|
|
114016
114255
|
const entityId = entityApproval == null ? void 0 : entityApproval["@id"];
|
|
114017
114256
|
if (!entityId) return false;
|
|
114257
|
+
if (getPendingEntityContextApprovalRecords(approvalContext == null ? void 0 : approvalContext.roCrateApproval, entityId).length > 0) {
|
|
114258
|
+
return true;
|
|
114259
|
+
}
|
|
114018
114260
|
if (isPendingEntityDeleteApproval(entityApproval)) {
|
|
114019
114261
|
const reviewTarget = getDeletedEntityReviewTarget(entityApproval);
|
|
114020
114262
|
if (!(reviewTarget == null ? void 0 : reviewTarget.entityId)) return false;
|
|
@@ -114029,16 +114271,28 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114029
114271
|
link: false,
|
|
114030
114272
|
materialise: false
|
|
114031
114273
|
}));
|
|
114032
|
-
}, [crateManager]);
|
|
114274
|
+
}, [approvalContext == null ? void 0 : approvalContext.roCrateApproval, crateManager]);
|
|
114033
114275
|
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
|
-
|
|
114276
|
+
const pendingOtherAiApprovalFieldCount = useMemo$1(() => pendingOtherAiApprovalEntities.reduce((count, entityApproval) => {
|
|
114277
|
+
const entityId = entityApproval == null ? void 0 : entityApproval["@id"];
|
|
114278
|
+
const contextFieldCount = getPendingEntityContextApprovalRecords(
|
|
114279
|
+
approvalContext == null ? void 0 : approvalContext.roCrateApproval,
|
|
114280
|
+
entityId
|
|
114281
|
+
).length > 0 ? 1 : 0;
|
|
114282
|
+
return count + getPendingEntityApprovalFieldCount(
|
|
114283
|
+
approvalContext == null ? void 0 : approvalContext.roCrateApproval,
|
|
114284
|
+
entityId
|
|
114285
|
+
) + contextFieldCount;
|
|
114286
|
+
}, 0), [approvalContext == null ? void 0 : approvalContext.roCrateApproval, pendingOtherAiApprovalEntities]);
|
|
114038
114287
|
const handleReviewNextAiApprovalEntity = useCallback(() => {
|
|
114039
114288
|
for (const entityApproval of pendingOtherAiApprovalEntities) {
|
|
114040
114289
|
const nextEntityId = entityApproval == null ? void 0 : entityApproval["@id"];
|
|
114041
114290
|
if (!nextEntityId) continue;
|
|
114291
|
+
if (getPendingEntityContextApprovalRecords(approvalContext == null ? void 0 : approvalContext.roCrateApproval, nextEntityId).length > 0) {
|
|
114292
|
+
setContextReviewEntityId(nextEntityId);
|
|
114293
|
+
setContextReviewDialogOpen(true);
|
|
114294
|
+
return;
|
|
114295
|
+
}
|
|
114042
114296
|
if (isPendingEntityDeleteApproval(entityApproval)) {
|
|
114043
114297
|
const reviewTarget = getDeletedEntityReviewTarget(entityApproval);
|
|
114044
114298
|
if (!reviewTarget) continue;
|
|
@@ -114059,7 +114313,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114059
114313
|
onLoadEntity({ id: nextEntityId });
|
|
114060
114314
|
return;
|
|
114061
114315
|
}
|
|
114062
|
-
}, [crateManager, hideEmptyFields, onLoadEntity, pendingOtherAiApprovalEntities]);
|
|
114316
|
+
}, [approvalContext == null ? void 0 : approvalContext.roCrateApproval, crateManager, hideEmptyFields, onLoadEntity, pendingOtherAiApprovalEntities]);
|
|
114063
114317
|
useImperativeHandle(ref, () => ({
|
|
114064
114318
|
setTab: (tabName) => {
|
|
114065
114319
|
setActiveTab(tabName);
|
|
@@ -114127,7 +114381,8 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114127
114381
|
const fallbackTab = tabNames.includes("about") ? "about" : tabNames[0] ?? "about";
|
|
114128
114382
|
const currentTabStillValid = layout.renderTabs && (contextEntity == null ? void 0 : contextEntity["@id"]) === entity2["@id"] && tabNames.includes(activeTab);
|
|
114129
114383
|
const savedActiveTab = (navState == null ? void 0 : navState.activeTab) ?? (isCurrentHistoryEntity ? latestEntry == null ? void 0 : latestEntry.tab : void 0);
|
|
114130
|
-
const
|
|
114384
|
+
const savedTabStillValid = layout.renderTabs && typeof savedActiveTab === "string" && tabNames.includes(savedActiveTab);
|
|
114385
|
+
const restoredTab = savedTabStillValid ? savedActiveTab : currentTabStillValid ? activeTab : fallbackTab;
|
|
114131
114386
|
const pendingAddedProfileSelection = pendingAddedProfileSelectionRef.current;
|
|
114132
114387
|
const pendingAddedProfileTabKeys = Array.isArray((_a3 = navState == null ? void 0 : navState.uiState) == null ? void 0 : _a3.pendingAddedProfileTabKeys) ? navState.uiState.pendingAddedProfileTabKeys : readPendingAddedProfileTabKeys(entity2["@id"]);
|
|
114133
114388
|
let nextActiveTab = restoredTab;
|
|
@@ -114181,6 +114436,9 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114181
114436
|
isCurrentHistoryEntity,
|
|
114182
114437
|
renderTabs: layout.renderTabs,
|
|
114183
114438
|
tabNames,
|
|
114439
|
+
savedActiveTab,
|
|
114440
|
+
savedTabStillValid,
|
|
114441
|
+
currentTabStillValid,
|
|
114184
114442
|
restoredTab,
|
|
114185
114443
|
nextActiveTab,
|
|
114186
114444
|
navState
|
|
@@ -114329,6 +114587,49 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114329
114587
|
onWarning,
|
|
114330
114588
|
onError
|
|
114331
114589
|
});
|
|
114590
|
+
useEffect(() => {
|
|
114591
|
+
if (!contextReviewDialogOpen) return;
|
|
114592
|
+
if (currentContextApprovalItem) return;
|
|
114593
|
+
setContextReviewDialogOpen(false);
|
|
114594
|
+
setContextReviewEntityId(void 0);
|
|
114595
|
+
}, [contextReviewDialogOpen, currentContextApprovalItem]);
|
|
114596
|
+
const handleCloseContextReviewDialog = () => {
|
|
114597
|
+
setContextReviewDialogOpen(false);
|
|
114598
|
+
setContextReviewEntityId(void 0);
|
|
114599
|
+
};
|
|
114600
|
+
const handleAcceptAiContext = () => {
|
|
114601
|
+
var _a3, _b2;
|
|
114602
|
+
const approvalItem = currentContextApprovalItem;
|
|
114603
|
+
if (!approvalItem) return;
|
|
114604
|
+
(_b2 = approvalContext == null ? void 0 : approvalContext.markApprovalPropertyApproved) == null ? void 0 : _b2.call(approvalContext, {
|
|
114605
|
+
entityId: approvalItem.entityId,
|
|
114606
|
+
propertyName: CONTEXT_APPROVAL_PROPERTY_NAME,
|
|
114607
|
+
decision: "accept",
|
|
114608
|
+
value: (_a3 = crateManager == null ? void 0 : crateManager.getContext) == null ? void 0 : _a3.call(crateManager)
|
|
114609
|
+
});
|
|
114610
|
+
handleCloseContextReviewDialog();
|
|
114611
|
+
};
|
|
114612
|
+
const handleRejectAiContext = () => {
|
|
114613
|
+
var _a3, _b2;
|
|
114614
|
+
try {
|
|
114615
|
+
const approvalItem = currentContextApprovalItem;
|
|
114616
|
+
if (!approvalItem) return;
|
|
114617
|
+
const previousContext = (_a3 = approvalItem.approvalRecord) == null ? void 0 : _a3.previousValue;
|
|
114618
|
+
if (propertyValueHasContent(previousContext)) {
|
|
114619
|
+
handleUpdateContext(previousContext);
|
|
114620
|
+
}
|
|
114621
|
+
(_b2 = approvalContext == null ? void 0 : approvalContext.markApprovalPropertyApproved) == null ? void 0 : _b2.call(approvalContext, {
|
|
114622
|
+
entityId: approvalItem.entityId,
|
|
114623
|
+
propertyName: CONTEXT_APPROVAL_PROPERTY_NAME,
|
|
114624
|
+
decision: "reject",
|
|
114625
|
+
value: previousContext
|
|
114626
|
+
});
|
|
114627
|
+
handleCloseContextReviewDialog();
|
|
114628
|
+
} catch (error2) {
|
|
114629
|
+
console.error(error2);
|
|
114630
|
+
onError();
|
|
114631
|
+
}
|
|
114632
|
+
};
|
|
114332
114633
|
const toggleIconView = () => {
|
|
114333
114634
|
if (!iconView) {
|
|
114334
114635
|
labelTabPaneWidthRef.current = clampLabelTabPaneWidth(tabPaneWidth);
|
|
@@ -115078,6 +115379,18 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
115078
115379
|
persistTabWidth(width);
|
|
115079
115380
|
}
|
|
115080
115381
|
}
|
|
115382
|
+
),
|
|
115383
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
115384
|
+
DialogEditContext,
|
|
115385
|
+
{
|
|
115386
|
+
open: contextReviewDialogOpen,
|
|
115387
|
+
onClose: handleCloseContextReviewDialog,
|
|
115388
|
+
onUpdateContext: handleUpdateContext,
|
|
115389
|
+
approvalRecord: currentContextApprovalItem == null ? void 0 : currentContextApprovalItem.approvalRecord,
|
|
115390
|
+
readonly: (_l = state.configuration) == null ? void 0 : _l.readonly,
|
|
115391
|
+
onAcceptAiContext: handleAcceptAiContext,
|
|
115392
|
+
onRejectAiContext: handleRejectAiContext
|
|
115393
|
+
}
|
|
115081
115394
|
)
|
|
115082
115395
|
] }),
|
|
115083
115396
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -122371,6 +122684,18 @@ const en = {
|
|
|
122371
122684
|
filter_attribute_set: "Filter the attribute set",
|
|
122372
122685
|
// DialogEditContext.tsx
|
|
122373
122686
|
save_label: "Save",
|
|
122687
|
+
ai_context_review_title: "Review context change",
|
|
122688
|
+
ai_context_review_description: "The crate context was changed by AI. Review the diff before accepting or restoring the previous context.",
|
|
122689
|
+
ai_context_diff_aria: "AI context diff",
|
|
122690
|
+
ai_context_diff_title: "Proposed context change",
|
|
122691
|
+
ai_previous_context: "Previous context",
|
|
122692
|
+
ai_current_context: "Current context",
|
|
122693
|
+
ai_context_diff_omitted_lines_one: "{{count}} unchanged line hidden",
|
|
122694
|
+
ai_context_diff_omitted_lines_other: "{{count}} unchanged lines hidden",
|
|
122695
|
+
ai_context_diff_show_omitted_lines_one: "Show {{count}} unchanged line",
|
|
122696
|
+
ai_context_diff_show_omitted_lines_other: "Show {{count}} unchanged lines",
|
|
122697
|
+
ai_context_diff_hide_omitted_lines_one: "Hide {{count}} unchanged line",
|
|
122698
|
+
ai_context_diff_hide_omitted_lines_other: "Hide {{count}} unchanged lines",
|
|
122374
122699
|
// DialogPreviewCrate.tsx
|
|
122375
122700
|
preview_loading: "loading ...",
|
|
122376
122701
|
// DialogBrowseEntities.tsx
|
|
@@ -122589,6 +122914,18 @@ const hu = {
|
|
|
122589
122914
|
filter_attribute_set: "Attribútumok szűrése",
|
|
122590
122915
|
// DialogEditContext.tsx
|
|
122591
122916
|
save_label: "Mentés",
|
|
122917
|
+
ai_context_review_title: "Kontextusmódosítás ellenőrzése",
|
|
122918
|
+
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.",
|
|
122919
|
+
ai_context_diff_aria: "AI kontextuseltérés",
|
|
122920
|
+
ai_context_diff_title: "Javasolt kontextusmódosítás",
|
|
122921
|
+
ai_previous_context: "Előző kontextus",
|
|
122922
|
+
ai_current_context: "Jelenlegi kontextus",
|
|
122923
|
+
ai_context_diff_omitted_lines_one: "{{count}} változatlan sor elrejtve",
|
|
122924
|
+
ai_context_diff_omitted_lines_other: "{{count}} változatlan sor elrejtve",
|
|
122925
|
+
ai_context_diff_show_omitted_lines_one: "{{count}} változatlan sor megjelenítése",
|
|
122926
|
+
ai_context_diff_show_omitted_lines_other: "{{count}} változatlan sor megjelenítése",
|
|
122927
|
+
ai_context_diff_hide_omitted_lines_one: "{{count}} változatlan sor elrejtése",
|
|
122928
|
+
ai_context_diff_hide_omitted_lines_other: "{{count}} változatlan sor elrejtése",
|
|
122592
122929
|
// DialogPreviewCrate.tsx
|
|
122593
122930
|
preview_loading: "betöltés ...",
|
|
122594
122931
|
// DialogBrowseEntities.tsx
|
|
@@ -123642,7 +123979,7 @@ var EmotionCacheContext = /* @__PURE__ */ React.createContext(
|
|
|
123642
123979
|
}) : null
|
|
123643
123980
|
);
|
|
123644
123981
|
var CacheProvider = EmotionCacheContext.Provider;
|
|
123645
|
-
const version = "0.1.
|
|
123982
|
+
const version = "0.1.36";
|
|
123646
123983
|
const pkg = {
|
|
123647
123984
|
version
|
|
123648
123985
|
};
|