@arpproject/recrate 0.1.32-test → 0.1.32-test3

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.
@@ -1,8 +1,10 @@
1
1
  import { default as React } from 'react';
2
+ export type AiEditedFieldBadgeVariant = 'edited' | 'deleted';
2
3
  interface AiEditedFieldBadgeProps {
3
4
  className?: string;
4
5
  title?: string;
5
6
  ariaLabel?: string;
7
+ variant?: AiEditedFieldBadgeVariant;
6
8
  }
7
9
  declare const AiEditedFieldBadge: React.FC<AiEditedFieldBadgeProps>;
8
10
  export default AiEditedFieldBadge;
@@ -8,7 +8,7 @@ interface AiEntityDiffRow {
8
8
  interface AiEntityDiffViewProps {
9
9
  entityId: string;
10
10
  rows: AiEntityDiffRow[];
11
- operation?: 'edit' | 'delete';
11
+ operation?: 'edit' | 'delete' | 'unlink';
12
12
  readonly?: boolean;
13
13
  onClose?: () => void;
14
14
  onAccept?: () => void;
@@ -1,9 +1,11 @@
1
1
  import { default as React } from 'react';
2
+ import { AiEditedFieldBadgeVariant } from './AiEditedFieldBadge';
2
3
  interface DisplayPropertyNameProps {
3
4
  property: string;
4
5
  label?: string;
5
6
  className?: string;
6
7
  aiEdited?: boolean;
8
+ aiEditedVariant?: AiEditedFieldBadgeVariant;
7
9
  }
8
10
  declare const DisplayPropertyName: React.FC<DisplayPropertyNameProps>;
9
11
  export default DisplayPropertyName;
@@ -1,4 +1,5 @@
1
1
  import { default as React } from 'react';
2
+ import { AiEditedFieldBadgeVariant } from './AiEditedFieldBadge';
2
3
  interface EntityIdProps {
3
4
  entity: {
4
5
  '@id': string;
@@ -9,6 +10,7 @@ interface EntityIdProps {
9
10
  value: string;
10
11
  }) => void;
11
12
  aiEdited?: boolean;
13
+ aiEditedVariant?: AiEditedFieldBadgeVariant;
12
14
  }
13
15
  export declare const EntityId: React.FC<EntityIdProps>;
14
16
  export default EntityId;
@@ -1,4 +1,5 @@
1
1
  import { default as React } from 'react';
2
+ import { AiEditedFieldBadgeVariant } from './AiEditedFieldBadge';
2
3
  interface EntityNameProps {
3
4
  entity: {
4
5
  name: string;
@@ -10,6 +11,7 @@ interface EntityNameProps {
10
11
  }) => void;
11
12
  showHelp?: boolean;
12
13
  aiEdited?: boolean;
14
+ aiEditedVariant?: AiEditedFieldBadgeVariant;
13
15
  aiReview?: {
14
16
  operation?: string;
15
17
  previousValue?: any;
@@ -1,4 +1,5 @@
1
1
  import { default as React } from 'react';
2
+ import { AiEditedFieldBadgeVariant } from './AiEditedFieldBadge';
2
3
  interface EntityPropertyProps {
3
4
  entity: any;
4
5
  property: string;
@@ -7,6 +8,7 @@ interface EntityPropertyProps {
7
8
  savedProperty?: boolean;
8
9
  showHelp?: boolean;
9
10
  aiEdited?: boolean;
11
+ aiEditedVariant?: AiEditedFieldBadgeVariant;
10
12
  onLoadEntity: (data: {
11
13
  id: string;
12
14
  }) => void;
@@ -20,6 +22,16 @@ interface EntityPropertyProps {
20
22
  onRestoreAiDeletedEntity?: (entity: any) => void;
21
23
  onAcceptAiEntityEdit?: (entity: any) => void;
22
24
  onRejectAiEntityEdit?: (entity: any) => void;
25
+ onAcceptAiEntityUnlink?: (data: {
26
+ sourceEntityId: string;
27
+ property: string;
28
+ targetEntityId: string;
29
+ }) => void;
30
+ onRejectAiEntityUnlink?: (data: {
31
+ sourceEntityId: string;
32
+ property: string;
33
+ targetEntityId: string;
34
+ }) => void;
23
35
  }
24
36
  export declare const EntityProperty: React.FC<EntityPropertyProps>;
25
37
  export default EntityProperty;
@@ -1,4 +1,5 @@
1
1
  import { default as React } from 'react';
2
+ import { AiEditedFieldBadgeVariant } from './AiEditedFieldBadge';
2
3
  interface EntityTypeProps {
3
4
  entity: {
4
5
  '@type': string[];
@@ -8,6 +9,7 @@ interface EntityTypeProps {
8
9
  value: string[];
9
10
  }) => void;
10
11
  aiEdited?: boolean;
12
+ aiEditedVariant?: AiEditedFieldBadgeVariant;
11
13
  }
12
14
  export declare const EntityType: React.FC<EntityTypeProps>;
13
15
  export default EntityType;
@@ -23,6 +23,16 @@ interface PaginateLinkedEntitiesProps {
23
23
  onRestoreAiDeletedEntity?: (entity: any) => void;
24
24
  onAcceptAiEntityEdit?: (entity: any) => void;
25
25
  onRejectAiEntityEdit?: (entity: any) => void;
26
+ onAcceptAiEntityUnlink?: (data: {
27
+ sourceEntityId: string;
28
+ property: string;
29
+ targetEntityId: string;
30
+ }) => void;
31
+ onRejectAiEntityUnlink?: (data: {
32
+ sourceEntityId: string;
33
+ property: string;
34
+ targetEntityId: string;
35
+ }) => void;
26
36
  }
27
37
  declare const PaginateLinkedEntities: React.FC<PaginateLinkedEntitiesProps>;
28
38
  export default PaginateLinkedEntities;
@@ -19,6 +19,16 @@ interface RenderLinkedItemProps {
19
19
  onRestoreAiDeletedEntity?: (entity: any) => void;
20
20
  onAcceptAiEntityEdit?: (entity: any) => void;
21
21
  onRejectAiEntityEdit?: (entity: any) => void;
22
+ onAcceptAiEntityUnlink?: (data: {
23
+ sourceEntityId: string;
24
+ property: string;
25
+ targetEntityId: string;
26
+ }) => void;
27
+ onRejectAiEntityUnlink?: (data: {
28
+ sourceEntityId: string;
29
+ property: string;
30
+ targetEntityId: string;
31
+ }) => void;
22
32
  }
23
33
  declare const RenderLinkedItem: React.FC<RenderLinkedItemProps>;
24
34
  export default RenderLinkedItem;
@@ -0,0 +1,30 @@
1
+ import { default as React } from 'react';
2
+ interface UnlinkedLinkedEntityCardProps {
3
+ entity: {
4
+ '@id': string;
5
+ [key: string]: any;
6
+ };
7
+ displayEntity: {
8
+ '@id': string;
9
+ '@type': string[];
10
+ name: string;
11
+ };
12
+ property: string;
13
+ sourceEntityId: string;
14
+ readonly: boolean;
15
+ onLoadEntity: (entity: {
16
+ id: string;
17
+ }) => void;
18
+ onAcceptUnlink?: (data: {
19
+ sourceEntityId: string;
20
+ property: string;
21
+ targetEntityId: string;
22
+ }) => void;
23
+ onRejectUnlink?: (data: {
24
+ sourceEntityId: string;
25
+ property: string;
26
+ targetEntityId: string;
27
+ }) => void;
28
+ }
29
+ declare const UnlinkedLinkedEntityCard: React.FC<UnlinkedLinkedEntityCardProps>;
30
+ export default UnlinkedLinkedEntityCard;
@@ -13,6 +13,14 @@ export declare const getDeletedEntityReviewTarget: (entityApproval: any) => {
13
13
  export declare const getPendingDeletedEntityReversePropertiesForSource: (approvalData: any, sourceEntityId: string | undefined) => string[];
14
14
  export declare const getEntityApproval: (approvalData: any, entityId: string | undefined) => any | undefined;
15
15
  export declare const getEntityApprovalRecords: (approvalData: any, entityId: string | undefined, property: string) => any[];
16
+ export declare const getReferenceId: (value: any) => string | undefined;
17
+ export declare const getReferenceValues: (value: any) => any[];
18
+ export declare const getRemovedReferenceValues: (previousValue: any, currentValue: any) => any[];
19
+ export declare const getPendingUnlinkedReferenceApprovals: (approvalData: any, sourceEntityId: string | undefined, property: string, currentValue: any) => Array<{
20
+ approvalRecord: any;
21
+ reference: any;
22
+ targetEntityId: string;
23
+ }>;
16
24
  export declare const getPendingEntityApprovalRecords: (approvalData: any, entityId: string | undefined) => any[];
17
25
  export declare const getPendingEntityApprovalFieldCount: (approvalData: any, entityId: string | undefined) => number;
18
26
  export declare const getPendingApprovalEntities: (approvalData: any) => any[];
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}.describo-tab-icon{align-items:center;display:flex;font-size:14px;font-weight:600;height:100%;justify-content:center;width:100%}.describo-add-only-tabs .ant-tabs-nav,.describo-add-only-tabs .ant-tabs-nav-wrap{height:100%}.describo-add-only-tabs .ant-tabs-nav-list{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center}.describo-add-only-tabs .ant-tabs-tab{justify-content:center}.describo-tab-rail{background:#fff;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;position:relative}.describo-tab-rail-actions{border-bottom:1px solid #e5e7eb;display:flex;flex:0 0 auto;gap:8px;justify-content:center;padding:10px 8px 8px}.describo-tab-rail-actions-only .describo-tab-rail-actions{border-bottom:0}.describo-tab-rail-list{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;padding:8px 6px 16px;scrollbar-width:none}.describo-tab-rail-list::-webkit-scrollbar{display:none}.describo-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%}.describo-tab-rail-item:focus-visible,.describo-tab-rail-item:hover{background:#f1f5f9}.describo-tab-rail-item-active{background:#eaf2ff;color:#1d4ed8}.describo-tab-rail-item-active:before{background:#2563eb;border-radius:999px;bottom:10px;content:"";left:0;position:absolute;top:10px;width:3px}.describo-tab-rail-item-icon{align-items:center;display:flex;justify-content:center;min-height:42px;padding:8px}.describo-tab-rail-row{align-items:center;display:flex;gap:8px;justify-content:space-between}.describo-tab-rail-title{font-size:15px;font-weight:600;line-height:1.35;min-width:0;overflow-wrap:anywhere}.describo-tab-rail-status{align-items:center;display:inline-flex;flex:0 0 auto;gap:4px}.describo-tab-rail-remove-button{flex:0 0 auto;transition:opacity .12s ease}.describo-tab-rail-description{color:#64748b;font-size:12px;line-height:1.35;margin-top:4px;overflow-wrap:anywhere}.describo-tab-rail:after,.describo-tab-rail:before{content:"";height:34px;left:0;opacity:0;pointer-events:none;position:absolute;right:0;transition:opacity .12s ease;z-index:2}.describo-tab-rail:before{background:linear-gradient(#fff,#fff0);top:53px}.describo-tab-rail:after{background:linear-gradient(#fff0,#fff);bottom:0}.describo-tab-rail-can-scroll-down:after,.describo-tab-rail-can-scroll-up:before{opacity:1}.describo-tab-rail-scroll-button{box-shadow:0 2px 8px #0f172a24;left:50%;position:absolute;transform:translateX(-50%);z-index:3}.describo-tab-rail-scroll-button-up{top:58px}.describo-tab-rail-scroll-button-down{bottom:8px}.describo-add-property-drawer{z-index:6000}.describo-add-property-title.ant-typography{font-size:22px;line-height:1.25;margin:0}.describo-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}.describo-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}.describo-add-property-row:focus-visible,.describo-add-property-row:hover{background:#f8fafc;border-color:#dbeafe;box-shadow:0 1px 4px #0f172a14}.describo-add-property-row:active{transform:translateY(1px)}.describo-add-property-row-selected{background:#eff6ff;border-color:#93c5fd;box-shadow:0 0 0 1px #2563eb1f}.describo-add-property-row-selected:before{background:#2563eb}.describo-add-property-row-header{color:#111827;min-width:0}.describo-add-property-row-name{color:inherit;flex:0 1 auto;font-weight:600;min-width:0;overflow-wrap:anywhere}.describo-add-property-row-type{color:#475569;overflow-wrap:anywhere}.describo-add-property-row-help{color:#6b7280;display:block;line-height:1.45;margin-top:4px}.describo-add-property-row-check{color:#2563eb;margin-left:auto}.describo-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}.describo-quick-settings-actions{align-items:center;display:inline-flex;flex:0 0 auto;gap:6px}.describo-quick-settings-filter{flex:1 1 260px;max-width:420px;min-width:160px}.describo-property-compact .describo-add-control{margin-bottom:0;margin-top:0;padding-bottom:0;padding-top:0}.describo-property-name-with-ai{align-items:center;display:inline-flex;gap:6px;min-width:0}.describo-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}.describo-ai-edited-filter-button.ant-btn{color:#087446;font-weight:800;min-width:32px;padding-inline:0}.describo-ai-edited-filter-button.ant-btn-primary{background:#12a76c;border-color:#12a76c;color:#fff}.describo-ai-entity-review-card{box-shadow:inset 0 0 0 1px #38c88a47,0 2px 8px #186f4a14}.describo-ai-entity-delete-card{box-shadow:0 2px 8px #b91c1c14}.describo-ai-entity-delete-card:hover{box-shadow:0 6px 18px #b91c1c24}.describo-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}.describo-ai-deleted-linked-entity-name{color:#000000e0;font-weight:700;overflow-wrap:anywhere}.describo-ai-entity-reviewed-card{position:relative}.describo-ai-entity-edited-badge{bottom:14px;position:absolute;right:14px;z-index:1}.describo-ai-entity-review-card .describo-ai-entity-edited-badge{right:130px}.describo-ai-entity-review-summary{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-top:10px}.describo-ai-entity-review-meta{align-items:center;display:inline-flex;gap:8px;min-width:0}.describo-ai-entity-review-count{color:#087446;font-size:13px;font-weight:800;white-space:nowrap}.describo-ai-entity-inline-actions{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-top:18px}.describo-ai-entity-inline-actions .describo-ai-actions{gap:12px}.describo-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}.describo-ai-entity-review-button.ant-btn:focus-visible,.describo-ai-entity-review-button.ant-btn:hover{background:#45c991!important;color:#0d2d23!important}.describo-ai-entity-diff-toggle.ant-btn{background:#ffffffd1;border-color:#1486553d;color:#047857;min-width:28px;padding:0;width:28px}.describo-ai-entity-diff-toggle.ant-btn:focus-visible,.describo-ai-entity-diff-toggle.ant-btn:hover{background:#ecfdf5!important;border-color:#14865573;color:#047857!important}.describo-ai-entity-delete-card .describo-ai-entity-review-count{color:#b91c1c}.describo-ai-entity-delete-card .describo-ai-entity-review-button.ant-btn{background:#ff5b63}.describo-ai-entity-delete-card .describo-ai-entity-review-button.ant-btn:focus-visible,.describo-ai-entity-delete-card .describo-ai-entity-review-button.ant-btn:hover{background:#f0444f!important;color:#111827!important}.describo-ai-entity-delete-card .describo-ai-action-approve.ant-btn{background:#ff5b63;border-color:#ff5b63}.describo-ai-entity-delete-card .describo-ai-action-approve.ant-btn:focus-visible,.describo-ai-entity-delete-card .describo-ai-action-approve.ant-btn:hover{background:#f0444f!important;border-color:#f0444f!important;color:#111827!important}.describo-ai-entity-delete-card .describo-ai-action-reject.ant-btn{background:#57d8a3;border-color:#57d8a3}.describo-ai-entity-delete-card .describo-ai-action-reject.ant-btn:focus-visible,.describo-ai-entity-delete-card .describo-ai-action-reject.ant-btn:hover{background:#45c991!important;border-color:#45c991!important;color:#111827!important}.describo-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}.describo-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}.describo-ai-confirm-spark{color:#12a76c;font-size:17px;line-height:1}.describo-ai-confirm-controls{align-items:center;display:flex;gap:6px;white-space:nowrap}.describo-ai-confirm-bar-remaining{background:linear-gradient(90deg,#fff9eb,#f9fbfd);box-shadow:inset 4px 0 0 #f59e0b}.describo-ai-confirm-bar-remaining .describo-ai-confirm-spark{color:#b45309}.describo-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}.describo-ai-review-next-entity.ant-btn:focus-visible,.describo-ai-review-next-entity.ant-btn:hover{background:#f59e0b!important;color:#1f1710!important}.describo-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}.describo-ai-bulk-accept.ant-btn{background:#57d8a3}.describo-ai-bulk-accept.ant-btn:focus-visible,.describo-ai-bulk-accept.ant-btn:hover{background:#45c991!important;color:#14201b!important}.describo-ai-bulk-reject.ant-btn{background:#ff6a71;color:#1f1717}.describo-ai-bulk-reject.ant-btn:focus-visible,.describo-ai-bulk-reject.ant-btn:hover{background:#f0444f!important;color:#1f1717!important}.describo-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}.describo-ai-stepper .ant-btn{border-radius:5px;color:#4a5a54;height:24px;width:24px}.describo-ai-stepper .ant-btn:not(:disabled):focus-visible,.describo-ai-stepper .ant-btn:not(:disabled):hover{background:#e6f4ec!important;color:#33443d!important}.describo-ai-step-count{color:#34443d;font-size:13px;min-width:32px;text-align:center}.describo-ai-review{border-radius:8px;margin-top:18px;padding-top:20px!important;position:relative}.describo-ai-review-current .describo-ai-suggestion,.describo-ai-review-current.describo-property,.describo-ai-suggestion.describo-ai-review-current{border-color:#12a76ce6!important;box-shadow:inset 4px 0 0 #12a76c,0 0 0 3px #12a76c1f,0 6px 18px #1969461f!important}.describo-ai-delete.describo-ai-review-current,.describo-ai-review-current .describo-ai-delete{border-color:#dc2626e0!important;box-shadow:inset 4px 0 0 #ef4444,0 0 0 3px #ef44441f,0 6px 18px #b91c1c1f!important}.describo-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}.describo-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}.describo-ai-suggestion:hover{background:linear-gradient(90deg,#22c55e26,#22c55e0d 55%,#fff0)}.describo-ai-delete:hover{background:linear-gradient(90deg,#ef444426,#ef44440d 55%,#fff0)}.describo-ai-deleted-entity-card{border-radius:8px;margin:18px;padding:26px 18px 18px;position:relative}.describo-ai-deleted-entity-header{align-items:flex-start;display:flex;gap:18px;justify-content:space-between}.describo-ai-deleted-entity-title{color:#7f1d1d;font-size:18px;font-weight:800;line-height:1.25;overflow-wrap:anywhere}.describo-ai-deleted-entity-id{color:#991b1b;font-size:13px;font-weight:600;margin-top:4px;overflow-wrap:anywhere}.describo-ai-deleted-entity-controls{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-top:14px}.describo-ai-deleted-entity-controls .describo-ai-actions{gap:8px}.describo-ai-deleted-entity-controls .describo-ai-actions .ant-btn{border-radius:6px;font-size:13px;height:28px;min-width:66px}.describo-ai-deleted-entity-summary{align-items:center;color:#7f1d1d;display:inline-flex;font-size:14px;font-weight:700;gap:10px;min-width:0}.describo-ai-deleted-entity-summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.describo-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}.describo-ai-entity-delete-details-toggle.ant-btn:focus-visible,.describo-ai-entity-delete-details-toggle.ant-btn:hover,.describo-ai-entity-delete-details-toggle.ant-btn[aria-pressed=true]{background:#ffe8e8!important;border-color:#f87171bd;color:#b91c1c!important}.describo-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}.describo-ai-deleted-entity-fields-inline{grid-template-columns:minmax(100px,170px) minmax(0,1fr);margin-top:10px}.describo-ai-deleted-entity-field{display:contents}.describo-ai-deleted-entity-field-name,.describo-ai-deleted-entity-field-value{background:#ffffffb8;font-size:13px;min-width:0;overflow-wrap:anywhere;padding:8px 10px}.describo-ai-deleted-entity-field-name{color:#7f1d1d;font-weight:800}.describo-ai-deleted-entity-field-value{color:#450a0a}.describo-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}.describo-ai-entity-diff-card-delete{background:#fff5f5;border-color:#dd505c7a #dd505c7a #dd505c7a #e24d5c;box-shadow:0 2px 8px #85242f14}.describo-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}.describo-ai-entity-diff-card-delete .describo-ai-entity-diff-head{background:#ffe8e8;border-bottom-color:#dd505c40;color:#9a1f29}.describo-ai-entity-diff-close.ant-btn{color:currentColor;flex:0 0 auto}.describo-ai-entity-diff-close.ant-btn:focus-visible,.describo-ai-entity-diff-close.ant-btn:hover{background:#ffffff9e!important;color:currentColor!important}.describo-ai-entity-diff-body{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;padding:10px 0 52px}.describo-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}.describo-ai-entity-diff-line-context{background:#f7faf8}.describo-ai-entity-diff-line-removed{background:#fff1f1}.describo-ai-entity-diff-line-added{background:#effbf5}.describo-ai-entity-diff-marker{align-self:stretch;display:grid;font-weight:900;place-items:center}.describo-ai-entity-diff-line-context .describo-ai-entity-diff-marker{background:#eef2f0;color:#738078}.describo-ai-entity-diff-line-removed .describo-ai-entity-diff-marker{background:#ffdede;color:#9a1f29}.describo-ai-entity-diff-line-added .describo-ai-entity-diff-marker{background:#d8f5e7;color:#087446}.describo-ai-entity-diff-key{color:#5b7167;padding:0 8px}.describo-ai-entity-diff-key,.describo-ai-entity-diff-value{font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.describo-ai-entity-diff-value{color:#1e2732;padding-right:10px}.describo-ai-entity-diff-actions{bottom:14px;display:flex;gap:7px;position:absolute;right:14px}.describo-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}.describo-ai-entity-diff-button.ant-btn:focus-visible,.describo-ai-entity-diff-button.ant-btn:hover{background:#45c991!important;color:#0d2d23!important}.describo-ai-entity-diff-button-reject.ant-btn{background:#ff6a71;color:#171717}.describo-ai-entity-diff-button-reject.ant-btn:focus-visible,.describo-ai-entity-diff-button-reject.ant-btn:hover{background:#f0444f!important;color:#171717!important}.describo-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}.describo-ai-delete .describo-ai-suggestion-badge{background:#fef2f2;border-color:#f871716b;box-shadow:0 1px 2px #b91c1c14;color:#b91c1c}.describo-ai-suggestion-badge-icon{color:#047857;font-size:14px;line-height:1}.describo-ai-delete .describo-ai-suggestion-badge-icon{color:#b91c1c}.describo-ai-entity-status-badge{left:14px;top:-15px}.describo-ai-entity-delete-card .describo-ai-entity-status-badge{background:#fef2f2;border-color:#f871716b;box-shadow:0 1px 2px #b91c1c14;color:#b91c1c}.describo-ai-entity-delete-card .describo-ai-entity-status-badge .describo-ai-suggestion-badge-icon{color:#b91c1c}.describo-ai-field-row{align-items:flex-start}.describo-ai-field-control .ant-space-compact{width:100%}.describo-ai-field-control .ant-input,.describo-ai-field-control .ant-input-affix-wrapper,.describo-ai-field-control .ant-input-number,.describo-ai-field-control .ant-picker,.describo-ai-field-control .ant-select-selector,.describo-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}.describo-ai-delete .describo-ai-field-control .ant-input,.describo-ai-delete .describo-ai-field-control .ant-input-affix-wrapper,.describo-ai-delete .describo-ai-field-control .ant-input-number,.describo-ai-delete .describo-ai-field-control .ant-picker,.describo-ai-delete .describo-ai-field-control .ant-select-selector,.describo-ai-delete .describo-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}.describo-ai-field-control .ant-space-compact>.ant-input,.describo-ai-field-control .ant-space-compact>.ant-input-affix-wrapper,.describo-ai-field-control .ant-space-compact>textarea.ant-input{border-end-end-radius:8px!important;border-start-end-radius:8px!important}.describo-ai-field-control .ant-space-compact>.ant-btn{display:none}.describo-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%}.describo-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}.describo-ai-field-diff-chip{color:#087446;flex:0 0 auto;font-size:12px}.describo-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}.describo-ai-field-diff-line:last-child{border-bottom:0}.describo-ai-field-diff-marker{align-self:stretch;display:grid;font-weight:900;place-items:center}.describo-ai-field-diff-value{color:#27322d;margin:0;min-width:0;overflow:auto;overflow-wrap:anywhere;padding:7px 11px;white-space:pre-wrap}.describo-ai-field-diff-line-removed{background:#fff1f1}.describo-ai-field-diff-line-removed .describo-ai-field-diff-marker{background:#ffdede;color:#9a1f29}.describo-ai-field-diff-line-added{background:#effbf5}.describo-ai-field-diff-line-added .describo-ai-field-diff-marker{background:#d8f5e7;color:#087446}.describo-ai-field-diff-empty{color:#7b8781;font-style:italic}.describo-ai-actions{align-items:flex-start;display:flex;flex:0 0 auto;gap:18px}.describo-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}.describo-ai-action-diff.ant-btn{background:#fff;border:1px solid #d4ddd8;color:#0f172a;min-width:36px;padding:0;width:36px}.describo-ai-action-diff.ant-btn:focus-visible,.describo-ai-action-diff.ant-btn:hover{background:#f5f8f6!important;border-color:#9bc7b3!important;color:#087446!important}.describo-ai-action-diff.ant-btn[aria-pressed=true]{background:#d8f5e7;border-color:#9bc7b3;color:#087446}.describo-ai-action-approve.ant-btn{background:#57d8a3;border-color:#57d8a3}.describo-ai-action-approve.ant-btn:focus-visible,.describo-ai-action-approve.ant-btn:hover{background:#45c991!important;border-color:#45c991!important;color:#111827!important}.describo-ai-action-reject.ant-btn,.describo-ai-delete .describo-ai-action-approve.ant-btn{background:#ff5b63;border-color:#ff5b63}.describo-ai-delete .describo-ai-action-approve.ant-btn:focus-visible,.describo-ai-delete .describo-ai-action-approve.ant-btn:hover{background:#f0444f!important;border-color:#f0444f!important;color:#111827!important}.describo-ai-delete .describo-ai-action-reject.ant-btn{background:#57d8a3;border-color:#57d8a3}.describo-ai-delete .describo-ai-action-reject.ant-btn:focus-visible,.describo-ai-delete .describo-ai-action-reject.ant-btn:hover{background:#45c991!important;border-color:#45c991!important;color:#111827!important}.describo-ai-action-reject.ant-btn:focus-visible,.describo-ai-action-reject.ant-btn:hover{background:#f0444f!important;border-color:#f0444f!important;color:#111827!important}@media (max-width:900px){.describo-ai-confirm-bar{grid-template-columns:1fr}.describo-ai-confirm-controls{flex-wrap:wrap}.describo-ai-stepper{border-left:0;margin-left:0;padding-left:0}.describo-ai-field-row{flex-wrap:wrap}.describo-ai-actions{justify-content:flex-start;width:100%}}@media (max-width:640px){.describo-quick-settings-header{flex-wrap:wrap}.describo-quick-settings-filter{flex-basis:100%;max-width:none}}.recrate,.recrate .recrate-ant{display:flex;flex-direction:column;height:100vh;min-height:100vh}.describo-editor-scroll,.recrate .ant-tabs-left .ant-tabs-nav,.recrate .ant-tabs-right .ant-tabs-nav{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}.describo-tab-icon{align-items:center;display:flex;font-size:14px;font-weight:600;height:100%;justify-content:center;width:100%}.describo-add-only-tabs .ant-tabs-nav,.describo-add-only-tabs .ant-tabs-nav-wrap{height:100%}.describo-add-only-tabs .ant-tabs-nav-list{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center}.describo-add-only-tabs .ant-tabs-tab{justify-content:center}.describo-tab-rail{background:#fff;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;position:relative}.describo-tab-rail-actions{border-bottom:1px solid #e5e7eb;display:flex;flex:0 0 auto;gap:8px;justify-content:center;padding:10px 8px 8px}.describo-tab-rail-actions-only .describo-tab-rail-actions{border-bottom:0}.describo-tab-rail-list{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;padding:8px 6px 16px;scrollbar-width:none}.describo-tab-rail-list::-webkit-scrollbar{display:none}.describo-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%}.describo-tab-rail-item:focus-visible,.describo-tab-rail-item:hover{background:#f1f5f9}.describo-tab-rail-item-active{background:#eaf2ff;color:#1d4ed8}.describo-tab-rail-item-active:before{background:#2563eb;border-radius:999px;bottom:10px;content:"";left:0;position:absolute;top:10px;width:3px}.describo-tab-rail-item-icon{align-items:center;display:flex;justify-content:center;min-height:42px;padding:8px}.describo-tab-rail-row{align-items:center;display:flex;gap:8px;justify-content:space-between}.describo-tab-rail-title{font-size:15px;font-weight:600;line-height:1.35;min-width:0;overflow-wrap:anywhere}.describo-tab-rail-status{align-items:center;display:inline-flex;flex:0 0 auto;gap:4px}.describo-tab-rail-remove-button{flex:0 0 auto;transition:opacity .12s ease}.describo-tab-rail-description{color:#64748b;font-size:12px;line-height:1.35;margin-top:4px;overflow-wrap:anywhere}.describo-tab-rail:after,.describo-tab-rail:before{content:"";height:34px;left:0;opacity:0;pointer-events:none;position:absolute;right:0;transition:opacity .12s ease;z-index:2}.describo-tab-rail:before{background:linear-gradient(#fff,#fff0);top:53px}.describo-tab-rail:after{background:linear-gradient(#fff0,#fff);bottom:0}.describo-tab-rail-can-scroll-down:after,.describo-tab-rail-can-scroll-up:before{opacity:1}.describo-tab-rail-scroll-button{box-shadow:0 2px 8px #0f172a24;left:50%;position:absolute;transform:translateX(-50%);z-index:3}.describo-tab-rail-scroll-button-up{top:58px}.describo-tab-rail-scroll-button-down{bottom:8px}.describo-add-property-drawer{z-index:6000}.describo-add-property-title.ant-typography{font-size:22px;line-height:1.25;margin:0}.describo-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}.describo-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}.describo-add-property-row:focus-visible,.describo-add-property-row:hover{background:#f8fafc;border-color:#dbeafe;box-shadow:0 1px 4px #0f172a14}.describo-add-property-row:active{transform:translateY(1px)}.describo-add-property-row-selected{background:#eff6ff;border-color:#93c5fd;box-shadow:0 0 0 1px #2563eb1f}.describo-add-property-row-selected:before{background:#2563eb}.describo-add-property-row-header{color:#111827;min-width:0}.describo-add-property-row-name{color:inherit;flex:0 1 auto;font-weight:600;min-width:0;overflow-wrap:anywhere}.describo-add-property-row-type{color:#475569;overflow-wrap:anywhere}.describo-add-property-row-help{color:#6b7280;display:block;line-height:1.45;margin-top:4px}.describo-add-property-row-check{color:#2563eb;margin-left:auto}.describo-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}.describo-quick-settings-actions{align-items:center;display:inline-flex;flex:0 0 auto;gap:6px}.describo-quick-settings-filter{flex:1 1 260px;max-width:420px;min-width:160px}.describo-property-compact .describo-add-control{margin-bottom:0;margin-top:0;padding-bottom:0;padding-top:0}.describo-property-name-with-ai{align-items:center;display:inline-flex;gap:6px;min-width:0}.describo-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}.describo-ai-edited-filter-button.ant-btn{color:#087446;font-weight:800;min-width:32px;padding-inline:0}.describo-ai-edited-filter-button.ant-btn-primary{background:#12a76c;border-color:#12a76c;color:#fff}.describo-ai-entity-review-card{box-shadow:inset 0 0 0 1px #38c88a47,0 2px 8px #186f4a14}.describo-ai-entity-delete-card{box-shadow:0 2px 8px #b91c1c14}.describo-ai-entity-delete-card:hover{box-shadow:0 6px 18px #b91c1c24}.describo-ai-entity-unlink-card{box-shadow:0 2px 8px #c2610014}.describo-ai-entity-unlink-card:hover{box-shadow:0 6px 18px #c2610024}.describo-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}.describo-ai-deleted-linked-entity-name{color:#000000e0;font-weight:700;overflow-wrap:anywhere}.describo-ai-entity-reviewed-card{position:relative}.describo-ai-entity-edited-badge{bottom:14px;position:absolute;right:14px;z-index:1}.describo-ai-entity-review-card .describo-ai-entity-edited-badge{right:130px}.describo-ai-entity-review-summary{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-top:10px}.describo-ai-entity-review-meta{align-items:center;display:inline-flex;gap:8px;min-width:0}.describo-ai-entity-review-count{color:#087446;font-size:13px;font-weight:800;white-space:nowrap}.describo-ai-entity-inline-actions{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-top:18px}.describo-ai-entity-inline-actions .describo-ai-actions{gap:12px}.describo-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}.describo-ai-entity-review-button.ant-btn:focus-visible,.describo-ai-entity-review-button.ant-btn:hover{background:#45c991!important;color:#0d2d23!important}.describo-ai-entity-diff-toggle.ant-btn{background:#ffffffd1;border-color:#1486553d;color:#047857;min-width:28px;padding:0;width:28px}.describo-ai-entity-diff-toggle.ant-btn:focus-visible,.describo-ai-entity-diff-toggle.ant-btn:hover{background:#ecfdf5!important;border-color:#14865573;color:#047857!important}.describo-ai-entity-delete-card .describo-ai-entity-review-count{color:#b91c1c}.describo-ai-entity-delete-card .describo-ai-entity-review-button.ant-btn{background:#ff5b63}.describo-ai-entity-delete-card .describo-ai-entity-review-button.ant-btn:focus-visible,.describo-ai-entity-delete-card .describo-ai-entity-review-button.ant-btn:hover{background:#f0444f!important;color:#111827!important}.describo-ai-entity-delete-card .describo-ai-action-approve.ant-btn{background:#ff5b63;border-color:#ff5b63}.describo-ai-entity-delete-card .describo-ai-action-approve.ant-btn:focus-visible,.describo-ai-entity-delete-card .describo-ai-action-approve.ant-btn:hover{background:#f0444f!important;border-color:#f0444f!important;color:#111827!important}.describo-ai-entity-delete-card .describo-ai-action-reject.ant-btn{background:#57d8a3;border-color:#57d8a3}.describo-ai-entity-delete-card .describo-ai-action-reject.ant-btn:focus-visible,.describo-ai-entity-delete-card .describo-ai-action-reject.ant-btn:hover{background:#45c991!important;border-color:#45c991!important;color:#111827!important}.describo-ai-entity-unlink-card .describo-ai-action-approve.ant-btn{background:#fb923c;border-color:#fb923c}.describo-ai-entity-unlink-card .describo-ai-action-approve.ant-btn:focus-visible,.describo-ai-entity-unlink-card .describo-ai-action-approve.ant-btn:hover{background:#f97316!important;border-color:#f97316!important;color:#111827!important}.describo-ai-entity-unlink-card .describo-ai-action-reject.ant-btn{background:#57d8a3;border-color:#57d8a3}.describo-ai-entity-unlink-card .describo-ai-action-reject.ant-btn:focus-visible,.describo-ai-entity-unlink-card .describo-ai-action-reject.ant-btn:hover{background:#45c991!important;border-color:#45c991!important;color:#111827!important}.describo-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}.describo-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}.describo-ai-confirm-spark{color:#12a76c;font-size:17px;line-height:1}.describo-ai-confirm-controls{align-items:center;display:flex;gap:6px;white-space:nowrap}.describo-ai-confirm-bar-remaining{background:linear-gradient(90deg,#fff9eb,#f9fbfd);box-shadow:inset 4px 0 0 #f59e0b}.describo-ai-confirm-bar-remaining .describo-ai-confirm-spark{color:#b45309}.describo-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}.describo-ai-review-next-entity.ant-btn:focus-visible,.describo-ai-review-next-entity.ant-btn:hover{background:#f59e0b!important;color:#1f1710!important}.describo-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}.describo-ai-bulk-accept.ant-btn{background:#57d8a3}.describo-ai-bulk-accept.ant-btn:focus-visible,.describo-ai-bulk-accept.ant-btn:hover{background:#45c991!important;color:#14201b!important}.describo-ai-bulk-reject.ant-btn{background:#ff6a71;color:#1f1717}.describo-ai-bulk-reject.ant-btn:focus-visible,.describo-ai-bulk-reject.ant-btn:hover{background:#f0444f!important;color:#1f1717!important}.describo-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}.describo-ai-stepper .ant-btn{border-radius:5px;color:#4a5a54;height:24px;width:24px}.describo-ai-stepper .ant-btn:not(:disabled):focus-visible,.describo-ai-stepper .ant-btn:not(:disabled):hover{background:#e6f4ec!important;color:#33443d!important}.describo-ai-step-count{color:#34443d;font-size:13px;min-width:32px;text-align:center}.describo-ai-review{border-radius:8px;margin-top:18px;padding-top:20px!important;position:relative}.describo-ai-review-current .describo-ai-suggestion,.describo-ai-review-current.describo-property,.describo-ai-suggestion.describo-ai-review-current{border-color:#12a76ce6!important;box-shadow:inset 4px 0 0 #12a76c,0 0 0 3px #12a76c1f,0 6px 18px #1969461f!important}.describo-ai-delete.describo-ai-review-current,.describo-ai-review-current .describo-ai-delete{border-color:#dc2626e0!important;box-shadow:inset 4px 0 0 #ef4444,0 0 0 3px #ef44441f,0 6px 18px #b91c1c1f!important}.describo-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}.describo-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}.describo-ai-suggestion:hover{background:linear-gradient(90deg,#22c55e26,#22c55e0d 55%,#fff0)}.describo-ai-delete:hover{background:linear-gradient(90deg,#ef444426,#ef44440d 55%,#fff0)}.describo-ai-deleted-entity-card{border-radius:8px;margin:18px;padding:26px 18px 18px;position:relative}.describo-ai-deleted-entity-header{align-items:flex-start;display:flex;gap:18px;justify-content:space-between}.describo-ai-deleted-entity-title{color:#7f1d1d;font-size:18px;font-weight:800;line-height:1.25;overflow-wrap:anywhere}.describo-ai-deleted-entity-id{color:#991b1b;font-size:13px;font-weight:600;margin-top:4px;overflow-wrap:anywhere}.describo-ai-deleted-entity-controls{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-top:14px}.describo-ai-deleted-entity-controls .describo-ai-actions{gap:8px}.describo-ai-deleted-entity-controls .describo-ai-actions .ant-btn{border-radius:6px;font-size:13px;height:28px;min-width:66px}.describo-ai-deleted-entity-summary{align-items:center;color:#7f1d1d;display:inline-flex;font-size:14px;font-weight:700;gap:10px;min-width:0}.describo-ai-deleted-entity-summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.describo-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}.describo-ai-entity-delete-details-toggle.ant-btn:focus-visible,.describo-ai-entity-delete-details-toggle.ant-btn:hover,.describo-ai-entity-delete-details-toggle.ant-btn[aria-pressed=true]{background:#ffe8e8!important;border-color:#f87171bd;color:#b91c1c!important}.describo-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}.describo-ai-deleted-entity-fields-inline{grid-template-columns:minmax(100px,170px) minmax(0,1fr);margin-top:10px}.describo-ai-deleted-entity-field{display:contents}.describo-ai-deleted-entity-field-name,.describo-ai-deleted-entity-field-value{background:#ffffffb8;font-size:13px;min-width:0;overflow-wrap:anywhere;padding:8px 10px}.describo-ai-deleted-entity-field-name{color:#7f1d1d;font-weight:800}.describo-ai-deleted-entity-field-value{color:#450a0a}.describo-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}.describo-ai-entity-diff-card-delete{background:#fff5f5;border-color:#dd505c7a #dd505c7a #dd505c7a #e24d5c;box-shadow:0 2px 8px #85242f14}.describo-ai-entity-diff-card-unlink{background:#fff7ed;border-color:#f973167a #f973167a #f973167a #f97316;box-shadow:0 2px 8px #c2610014}.describo-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}.describo-ai-entity-diff-card-delete .describo-ai-entity-diff-head{background:#ffe8e8;border-bottom-color:#dd505c40;color:#9a1f29}.describo-ai-entity-diff-card-unlink .describo-ai-entity-diff-head{background:#ffedd5;border-bottom-color:#f9731640;color:#9a3412}.describo-ai-entity-diff-close.ant-btn{color:currentColor;flex:0 0 auto}.describo-ai-entity-diff-close.ant-btn:focus-visible,.describo-ai-entity-diff-close.ant-btn:hover{background:#ffffff9e!important;color:currentColor!important}.describo-ai-entity-diff-body{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;padding:10px 0 52px}.describo-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}.describo-ai-entity-diff-line-context{background:#f7faf8}.describo-ai-entity-diff-line-removed{background:#fff1f1}.describo-ai-entity-diff-line-added{background:#effbf5}.describo-ai-entity-diff-marker{align-self:stretch;display:grid;font-weight:900;place-items:center}.describo-ai-entity-diff-line-context .describo-ai-entity-diff-marker{background:#eef2f0;color:#738078}.describo-ai-entity-diff-line-removed .describo-ai-entity-diff-marker{background:#ffdede;color:#9a1f29}.describo-ai-entity-diff-line-added .describo-ai-entity-diff-marker{background:#d8f5e7;color:#087446}.describo-ai-entity-diff-key{color:#5b7167;padding:0 8px}.describo-ai-entity-diff-key,.describo-ai-entity-diff-value{font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.describo-ai-entity-diff-value{color:#1e2732;padding-right:10px}.describo-ai-entity-diff-actions{bottom:14px;display:flex;gap:7px;position:absolute;right:14px}.describo-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}.describo-ai-entity-diff-button.ant-btn:focus-visible,.describo-ai-entity-diff-button.ant-btn:hover{background:#45c991!important;color:#0d2d23!important}.describo-ai-entity-diff-button-reject.ant-btn{background:#ff6a71;color:#171717}.describo-ai-entity-diff-button-reject.ant-btn:focus-visible,.describo-ai-entity-diff-button-reject.ant-btn:hover{background:#f0444f!important;color:#171717!important}.describo-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}.describo-ai-delete .describo-ai-suggestion-badge{background:#fef2f2;border-color:#f871716b;box-shadow:0 1px 2px #b91c1c14;color:#b91c1c}.describo-ai-suggestion-badge-icon{color:#047857;font-size:14px;line-height:1}.describo-ai-delete .describo-ai-suggestion-badge-icon{color:#b91c1c}.describo-ai-entity-status-badge{left:14px;top:-15px}.describo-ai-entity-delete-card .describo-ai-entity-status-badge{background:#fef2f2;border-color:#f871716b;box-shadow:0 1px 2px #b91c1c14;color:#b91c1c}.describo-ai-entity-delete-card .describo-ai-entity-status-badge .describo-ai-suggestion-badge-icon{color:#b91c1c}.describo-ai-entity-unlink-card .describo-ai-entity-status-badge{background:#fff7ed;border-color:#fb923c73;box-shadow:0 1px 2px #c2610014;color:#9a3412}.describo-ai-entity-unlink-card .describo-ai-entity-status-badge .describo-ai-suggestion-badge-icon{color:#c2410c}.describo-ai-field-row{align-items:flex-start}.describo-ai-field-control .ant-space-compact{width:100%}.describo-ai-field-control .ant-input,.describo-ai-field-control .ant-input-affix-wrapper,.describo-ai-field-control .ant-input-number,.describo-ai-field-control .ant-picker,.describo-ai-field-control .ant-select-selector,.describo-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}.describo-ai-delete .describo-ai-field-control .ant-input,.describo-ai-delete .describo-ai-field-control .ant-input-affix-wrapper,.describo-ai-delete .describo-ai-field-control .ant-input-number,.describo-ai-delete .describo-ai-field-control .ant-picker,.describo-ai-delete .describo-ai-field-control .ant-select-selector,.describo-ai-delete .describo-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}.describo-ai-field-control .ant-space-compact>.ant-input,.describo-ai-field-control .ant-space-compact>.ant-input-affix-wrapper,.describo-ai-field-control .ant-space-compact>textarea.ant-input{border-end-end-radius:8px!important;border-start-end-radius:8px!important}.describo-ai-field-control .ant-space-compact>.ant-btn{display:none}.describo-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%}.describo-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}.describo-ai-field-diff-chip{color:#087446;flex:0 0 auto;font-size:12px}.describo-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}.describo-ai-field-diff-line:last-child{border-bottom:0}.describo-ai-field-diff-marker{align-self:stretch;display:grid;font-weight:900;place-items:center}.describo-ai-field-diff-value{color:#27322d;margin:0;min-width:0;overflow:auto;overflow-wrap:anywhere;padding:7px 11px;white-space:pre-wrap}.describo-ai-field-diff-line-removed{background:#fff1f1}.describo-ai-field-diff-line-removed .describo-ai-field-diff-marker{background:#ffdede;color:#9a1f29}.describo-ai-field-diff-line-added{background:#effbf5}.describo-ai-field-diff-line-added .describo-ai-field-diff-marker{background:#d8f5e7;color:#087446}.describo-ai-field-diff-empty{color:#7b8781;font-style:italic}.describo-ai-actions{align-items:flex-start;display:flex;flex:0 0 auto;gap:18px}.describo-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}.describo-ai-action-diff.ant-btn{background:#fff;border:1px solid #d4ddd8;color:#0f172a;min-width:36px;padding:0;width:36px}.describo-ai-action-diff.ant-btn:focus-visible,.describo-ai-action-diff.ant-btn:hover{background:#f5f8f6!important;border-color:#9bc7b3!important;color:#087446!important}.describo-ai-action-diff.ant-btn[aria-pressed=true]{background:#d8f5e7;border-color:#9bc7b3;color:#087446}.describo-ai-action-approve.ant-btn{background:#57d8a3;border-color:#57d8a3}.describo-ai-action-approve.ant-btn:focus-visible,.describo-ai-action-approve.ant-btn:hover{background:#45c991!important;border-color:#45c991!important;color:#111827!important}.describo-ai-action-reject.ant-btn,.describo-ai-delete .describo-ai-action-approve.ant-btn{background:#ff5b63;border-color:#ff5b63}.describo-ai-delete .describo-ai-action-approve.ant-btn:focus-visible,.describo-ai-delete .describo-ai-action-approve.ant-btn:hover{background:#f0444f!important;border-color:#f0444f!important;color:#111827!important}.describo-ai-delete .describo-ai-action-reject.ant-btn{background:#57d8a3;border-color:#57d8a3}.describo-ai-delete .describo-ai-action-reject.ant-btn:focus-visible,.describo-ai-delete .describo-ai-action-reject.ant-btn:hover{background:#45c991!important;border-color:#45c991!important;color:#111827!important}.describo-ai-action-reject.ant-btn:focus-visible,.describo-ai-action-reject.ant-btn:hover{background:#f0444f!important;border-color:#f0444f!important;color:#111827!important}@media (max-width:900px){.describo-ai-confirm-bar{grid-template-columns:1fr}.describo-ai-confirm-controls{flex-wrap:wrap}.describo-ai-stepper{border-left:0;margin-left:0;padding-left:0}.describo-ai-field-row{flex-wrap:wrap}.describo-ai-actions{justify-content:flex-start;width:100%}}@media (max-width:640px){.describo-quick-settings-header{flex-wrap:wrap}.describo-quick-settings-filter{flex-basis:100%;max-width:none}}.recrate,.recrate .recrate-ant{display:flex;flex-direction:column;height:100vh;min-height:100vh}.describo-editor-scroll,.recrate .ant-tabs-left .ant-tabs-nav,.recrate .ant-tabs-right .ant-tabs-nav{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}.table-cell{display:table-cell}.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}
@@ -67666,10 +67666,19 @@ const useStateStore = () => {
67666
67666
  };
67667
67667
  const AiEditedFieldBadge = ({
67668
67668
  className = "",
67669
- title = "Edited by AI",
67670
- ariaLabel = "Edited by AI"
67671
- }) => /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `describo-ai-edited-icon ${className}`, "aria-label": ariaLabel, children: "✦" }) });
67672
- const EntityId = ({ entity, onUpdate, aiEdited = false }) => {
67669
+ title,
67670
+ ariaLabel,
67671
+ variant = "edited"
67672
+ }) => {
67673
+ const label = variant === "deleted" ? "Deleted by AI" : "Edited by AI";
67674
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: title ?? label, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `describo-ai-edited-icon ${className}`, "aria-label": ariaLabel ?? label, children: "✦" }) });
67675
+ };
67676
+ const EntityId = ({
67677
+ entity,
67678
+ onUpdate,
67679
+ aiEdited = false,
67680
+ aiEditedVariant = "edited"
67681
+ }) => {
67673
67682
  var _a2;
67674
67683
  const state = useStateStore();
67675
67684
  const handleSave = async (data) => {
@@ -67685,7 +67694,7 @@ const EntityId = ({ entity, onUpdate, aiEdited = false }) => {
67685
67694
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-row", children: [
67686
67695
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "min-w-32 w-1/3 xl:w-1/5 describo-property-name describo-property-name-with-ai", children: [
67687
67696
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "@id" }),
67688
- aiEdited && /* @__PURE__ */ jsxRuntimeExports.jsx(AiEditedFieldBadge, {})
67697
+ aiEdited && /* @__PURE__ */ jsxRuntimeExports.jsx(AiEditedFieldBadge, { variant: aiEditedVariant })
67689
67698
  ] }),
67690
67699
  !((_a2 = state.configuration) == null ? void 0 : _a2.readonly) ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "w-2/3 xl:w-4/5 flex flex-row describo-property-value", children: [
67691
67700
  isURL(entity["@id"]) && /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -67712,7 +67721,12 @@ const EntityId = ({ entity, onUpdate, aiEdited = false }) => {
67712
67721
  ] }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: entity["@id"] }) })
67713
67722
  ] });
67714
67723
  };
67715
- const EntityType = ({ entity, onUpdateEntity, aiEdited = false }) => {
67724
+ const EntityType = ({
67725
+ entity,
67726
+ onUpdateEntity,
67727
+ aiEdited = false,
67728
+ aiEditedVariant = "edited"
67729
+ }) => {
67716
67730
  var _a2;
67717
67731
  const [selectedClass, setSelectedClass] = useState(void 0);
67718
67732
  const profileManager = useContext(ProfileManagerContext);
@@ -67749,7 +67763,7 @@ const EntityType = ({ entity, onUpdateEntity, aiEdited = false }) => {
67749
67763
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Flex, { className: "flex-row", children: [
67750
67764
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "min-w-32 w-1/3 xl:w-1/5 describo-property-name describo-property-name-with-ai", children: [
67751
67765
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "@type" }),
67752
- aiEdited && /* @__PURE__ */ jsxRuntimeExports.jsx(AiEditedFieldBadge, {})
67766
+ aiEdited && /* @__PURE__ */ jsxRuntimeExports.jsx(AiEditedFieldBadge, { variant: aiEditedVariant })
67753
67767
  ] }),
67754
67768
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Flex, { className: "w-2/3 xl:w-4/5 flex-row flex-wrap", children: [
67755
67769
  types2.map((etype) => /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -67828,6 +67842,7 @@ const EntityName = ({
67828
67842
  onUpdate,
67829
67843
  showHelp = true,
67830
67844
  aiEdited = false,
67845
+ aiEditedVariant = "edited",
67831
67846
  aiReview
67832
67847
  }) => {
67833
67848
  var _a2;
@@ -67851,7 +67866,7 @@ const EntityName = ({
67851
67866
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "min-w-32 w-1/3 xl:w-1/5 flex flex-col", children: [
67852
67867
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-property-name describo-property-name-with-ai", children: [
67853
67868
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: t2("name_field_label") }),
67854
- aiEdited && /* @__PURE__ */ jsxRuntimeExports.jsx(AiEditedFieldBadge, {})
67869
+ aiEdited && /* @__PURE__ */ jsxRuntimeExports.jsx(AiEditedFieldBadge, { variant: aiEditedVariant })
67855
67870
  ] }),
67856
67871
  showHelp && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-gray-600 font-light text-xs pr-1 describo-property-help", children: t2("name_field_help") })
67857
67872
  ] }),
@@ -79840,9 +79855,11 @@ const AiEntityDiffView = ({
79840
79855
  onReject
79841
79856
  }) => {
79842
79857
  const isDelete = operation === "delete";
79843
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `describo-ai-entity-diff-card ${isDelete ? "describo-ai-entity-diff-card-delete" : ""}`, children: [
79858
+ const isUnlink = operation === "unlink";
79859
+ const title = isDelete ? `AI deleted entity: ${entityId}` : isUnlink ? `AI unlinked entity: ${entityId}` : `AI edited entity: ${entityId}`;
79860
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `describo-ai-entity-diff-card ${isDelete ? "describo-ai-entity-diff-card-delete" : ""} ${isUnlink ? "describo-ai-entity-diff-card-unlink" : ""}`, children: [
79844
79861
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-entity-diff-head", children: [
79845
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: isDelete ? `AI deleted entity: ${entityId}` : `AI edited entity: ${entityId}` }),
79862
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: title }),
79846
79863
  onClose && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: "Hide entity diff", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
79847
79864
  Button$1,
79848
79865
  {
@@ -79871,7 +79888,7 @@ const AiEntityDiffView = ({
79871
79888
  `${row.kind}-${row.propertyName}-${index2}`
79872
79889
  )) }),
79873
79890
  !readonly && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-entity-diff-actions", children: [
79874
- /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: isDelete ? "Approve this AI deletion" : "Accept every AI edit for this entity", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
79891
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: isDelete ? "Approve this AI deletion" : isUnlink ? "Approve this AI unlink" : "Accept every AI edit for this entity", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
79875
79892
  Button$1,
79876
79893
  {
79877
79894
  size: "middle",
@@ -79880,10 +79897,10 @@ const AiEntityDiffView = ({
79880
79897
  event.stopPropagation();
79881
79898
  onAccept == null ? void 0 : onAccept();
79882
79899
  },
79883
- children: isDelete ? "Delete entity" : "Accept edit"
79900
+ children: isDelete ? "Delete entity" : isUnlink ? "Unlink entity" : "Accept edit"
79884
79901
  }
79885
79902
  ) }),
79886
- /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: isDelete ? "Restore this entity and mark the deletion reviewed" : "Restore previous values for this entity", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
79903
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: isDelete ? "Restore this entity and mark the deletion reviewed" : isUnlink ? "Restore this link and mark the unlink reviewed" : "Restore previous values for this entity", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
79887
79904
  Button$1,
79888
79905
  {
79889
79906
  size: "middle",
@@ -79892,7 +79909,7 @@ const AiEntityDiffView = ({
79892
79909
  event.stopPropagation();
79893
79910
  onReject == null ? void 0 : onReject();
79894
79911
  },
79895
- children: isDelete ? "Keep entity" : "Reject edit"
79912
+ children: isDelete ? "Keep entity" : isUnlink ? "Restore link" : "Reject edit"
79896
79913
  }
79897
79914
  ) })
79898
79915
  ] })
@@ -80087,6 +80104,117 @@ const DeletedLinkedEntityCard = ({
80087
80104
  }
80088
80105
  );
80089
80106
  };
80107
+ const UnlinkedLinkedEntityCard = ({
80108
+ entity,
80109
+ displayEntity,
80110
+ property,
80111
+ sourceEntityId,
80112
+ readonly,
80113
+ onLoadEntity,
80114
+ onAcceptUnlink,
80115
+ onRejectUnlink
80116
+ }) => {
80117
+ const [showDiff, setShowDiff] = useState(false);
80118
+ const targetEntityId = entity["@id"];
80119
+ const diffRows = [
80120
+ {
80121
+ kind: "context",
80122
+ propertyName: "@id",
80123
+ label: "entity",
80124
+ value: targetEntityId
80125
+ },
80126
+ {
80127
+ kind: "context",
80128
+ propertyName: "source",
80129
+ label: "linked from",
80130
+ value: sourceEntityId
80131
+ },
80132
+ {
80133
+ kind: "removed",
80134
+ propertyName: property,
80135
+ label: property,
80136
+ value: { "@id": targetEntityId }
80137
+ }
80138
+ ];
80139
+ if (showDiff) {
80140
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
80141
+ AiEntityDiffView,
80142
+ {
80143
+ entityId: targetEntityId,
80144
+ rows: diffRows,
80145
+ operation: "unlink",
80146
+ readonly,
80147
+ onClose: () => setShowDiff(false),
80148
+ onAccept: () => onAcceptUnlink == null ? void 0 : onAcceptUnlink({ sourceEntityId, property, targetEntityId }),
80149
+ onReject: () => onRejectUnlink == null ? void 0 : onRejectUnlink({ sourceEntityId, property, targetEntityId })
80150
+ }
80151
+ );
80152
+ }
80153
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
80154
+ Card,
80155
+ {
80156
+ className: "describo-ai-entity-unlink-card describo-ai-entity-reviewed-card",
80157
+ style: {
80158
+ backgroundColor: "#fff7ed",
80159
+ cursor: "pointer",
80160
+ transition: "background-color 0.2s",
80161
+ borderLeft: "3px solid #f97316"
80162
+ },
80163
+ styles: { body: { padding: "22px 12px 8px" } },
80164
+ hoverable: true,
80165
+ onClick: () => onLoadEntity({ id: targetEntityId }),
80166
+ children: [
80167
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-suggestion-badge describo-ai-entity-status-badge", children: [
80168
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "describo-ai-suggestion-badge-icon", children: "✦" }),
80169
+ "AI unlink"
80170
+ ] }),
80171
+ /* @__PURE__ */ jsxRuntimeExports.jsx(LinkedEntityCardHeader, { entity: displayEntity }),
80172
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-deleted-entity-controls", children: [
80173
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "describo-ai-deleted-entity-summary", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: showDiff ? "Hide unlink diff" : "Show unlink diff", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
80174
+ Button$1,
80175
+ {
80176
+ size: "small",
80177
+ className: "describo-ai-entity-delete-details-toggle",
80178
+ icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$7, {}),
80179
+ "aria-label": showDiff ? "Hide AI unlink diff" : "Show AI unlink diff",
80180
+ "aria-pressed": showDiff,
80181
+ onClick: (event) => {
80182
+ event.stopPropagation();
80183
+ setShowDiff((visible) => !visible);
80184
+ }
80185
+ }
80186
+ ) }) }),
80187
+ !readonly && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-actions", children: [
80188
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: "Approve this AI unlink", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
80189
+ Button$1,
80190
+ {
80191
+ size: "small",
80192
+ className: "describo-ai-action-approve",
80193
+ onClick: (event) => {
80194
+ event.stopPropagation();
80195
+ onAcceptUnlink == null ? void 0 : onAcceptUnlink({ sourceEntityId, property, targetEntityId });
80196
+ },
80197
+ children: "Unlink"
80198
+ }
80199
+ ) }),
80200
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: "Restore this link and mark the unlink reviewed", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
80201
+ Button$1,
80202
+ {
80203
+ size: "small",
80204
+ className: "describo-ai-action-reject",
80205
+ onClick: (event) => {
80206
+ event.stopPropagation();
80207
+ onRejectUnlink == null ? void 0 : onRejectUnlink({ sourceEntityId, property, targetEntityId });
80208
+ },
80209
+ children: "Restore"
80210
+ }
80211
+ ) })
80212
+ ] })
80213
+ ] })
80214
+ ]
80215
+ }
80216
+ );
80217
+ };
80090
80218
  const LinkedEntityAssociations = ({
80091
80219
  associations,
80092
80220
  onLoadEntity
@@ -80271,6 +80399,11 @@ const getDeletedEntityFromApproval = (entityApproval) => {
80271
80399
  }
80272
80400
  return deletedEntity;
80273
80401
  };
80402
+ const getPendingDeletedEntityFromApproval = (approvalData, entityId) => {
80403
+ if (!entityId) return void 0;
80404
+ const entityApproval = getApprovalEntities(approvalData).find((item) => entityIdsMatch(item == null ? void 0 : item["@id"], entityId));
80405
+ return getDeletedEntityFromApproval(entityApproval);
80406
+ };
80274
80407
  const getPendingDeletedEntitiesForReverseProperty = (approvalData, sourceEntityId, property) => {
80275
80408
  if (!sourceEntityId || !property) return [];
80276
80409
  return getApprovalEntities(approvalData).map(getDeletedEntityFromApproval).filter(Boolean).filter((deletedEntity) => {
@@ -80311,6 +80444,23 @@ const getEntityApprovalRecords = (approvalData, entityId, property) => {
80311
80444
  if (!Array.isArray(entityApproval == null ? void 0 : entityApproval.approval)) return [];
80312
80445
  return entityApproval.approval.filter((approvalRecord) => (approvalRecord == null ? void 0 : approvalRecord.propertyName) === property);
80313
80446
  };
80447
+ const getReferenceId = (value) => {
80448
+ if (typeof (value == null ? void 0 : value["@id"]) === "string" && value["@id"].length > 0) return value["@id"];
80449
+ return void 0;
80450
+ };
80451
+ const getReferenceValues = (value) => {
80452
+ if (Array.isArray(value)) return value.filter((item) => getReferenceId(item));
80453
+ return getReferenceId(value) ? [value] : [];
80454
+ };
80455
+ const getRemovedReferenceValues = (previousValue, currentValue) => {
80456
+ const currentIds = getReferenceValues(currentValue).map(getReferenceId).filter((id2) => typeof id2 === "string");
80457
+ return getReferenceValues(previousValue).filter((previousReference) => !currentIds.some((currentId) => entityIdsMatch(currentId, getReferenceId(previousReference))));
80458
+ };
80459
+ const getPendingUnlinkedReferenceApprovals = (approvalData, sourceEntityId, property, currentValue) => getEntityApprovalRecords(approvalData, sourceEntityId, property).filter((approvalRecord) => !approvalIsApproved(approvalRecord) && ["update", "delete", "remove"].includes(String(approvalRecord == null ? void 0 : approvalRecord.operation))).flatMap((approvalRecord) => getRemovedReferenceValues(approvalRecord == null ? void 0 : approvalRecord.previousValue, currentValue).map((reference) => ({
80460
+ approvalRecord,
80461
+ reference,
80462
+ targetEntityId: getReferenceId(reference) || ""
80463
+ })).filter((item) => item.targetEntityId));
80314
80464
  const getPendingEntityApprovalRecords = (approvalData, entityId) => {
80315
80465
  const entityApproval = getEntityApproval(approvalData, entityId);
80316
80466
  if (!Array.isArray(entityApproval == null ? void 0 : entityApproval.approval)) return [];
@@ -80365,15 +80515,19 @@ const RenderLinkedItem = ({
80365
80515
  onAcceptAiEntityDelete,
80366
80516
  onRestoreAiDeletedEntity,
80367
80517
  onAcceptAiEntityEdit,
80368
- onRejectAiEntityEdit
80518
+ onRejectAiEntityEdit,
80519
+ onAcceptAiEntityUnlink,
80520
+ onRejectAiEntityUnlink
80369
80521
  }) => {
80370
- var _a2, _b, _c, _d;
80522
+ var _a2, _b, _c, _d, _e2;
80371
80523
  const state = useStateStore();
80372
80524
  const crateManager = useContext(CrateManagerContext);
80373
80525
  const profileManager = useContext(ProfileManagerContext);
80374
80526
  const approvalContext = useContext(RoCrateApprovalContext);
80375
80527
  const [associations, setAssociations] = useState([]);
80376
80528
  const [showAiEntityDiff, setShowAiEntityDiff] = useState(false);
80529
+ const aiUnlinkSourceEntityId = typeof (entity == null ? void 0 : entity.__aiUnlinkSourceEntityId) === "string" ? entity.__aiUnlinkSourceEntityId : void 0;
80530
+ const isPendingAiEntityUnlink = Boolean((entity == null ? void 0 : entity.__aiUnlinkedEntity) && aiUnlinkSourceEntityId);
80377
80531
  const effectiveEntity = useMemo$1(() => {
80378
80532
  const hasTypes = Boolean(entity == null ? void 0 : entity["@type"]);
80379
80533
  const hasName = Boolean(entity == null ? void 0 : entity.name);
@@ -80576,6 +80730,18 @@ const RenderLinkedItem = ({
80576
80730
  onAcceptDelete: onAcceptAiEntityDelete,
80577
80731
  onRestore: onRestoreAiDeletedEntity
80578
80732
  }
80733
+ ) : isPendingAiEntityUnlink && aiUnlinkSourceEntityId ? /* @__PURE__ */ jsxRuntimeExports.jsx(
80734
+ UnlinkedLinkedEntityCard,
80735
+ {
80736
+ entity,
80737
+ displayEntity: linkDisplayEntity,
80738
+ property,
80739
+ sourceEntityId: aiUnlinkSourceEntityId,
80740
+ readonly: Boolean(((_d = state.configuration) == null ? void 0 : _d.readonly) || readonly),
80741
+ onLoadEntity: handleLoadEntity,
80742
+ onAcceptUnlink: onAcceptAiEntityUnlink,
80743
+ onRejectUnlink: onRejectAiEntityUnlink
80744
+ }
80579
80745
  ) : /* @__PURE__ */ jsxRuntimeExports.jsx(
80580
80746
  LinkedEntityCard,
80581
80747
  {
@@ -80584,7 +80750,7 @@ const RenderLinkedItem = ({
80584
80750
  hasPendingAiReview,
80585
80751
  hasAiTouchedEntity,
80586
80752
  pendingAiReviewFieldCount,
80587
- readonly: Boolean(((_d = state.configuration) == null ? void 0 : _d.readonly) || readonly),
80753
+ readonly: Boolean(((_e2 = state.configuration) == null ? void 0 : _e2.readonly) || readonly),
80588
80754
  onLoadEntity: handleLoadEntity,
80589
80755
  onUnlinkEntity: handleUnlinkEntity,
80590
80756
  onShowEntityDiff: () => setShowAiEntityDiff(true)
@@ -80612,7 +80778,9 @@ const PaginateLinkedEntities = ({
80612
80778
  onAcceptAiEntityDelete,
80613
80779
  onRestoreAiDeletedEntity,
80614
80780
  onAcceptAiEntityEdit,
80615
- onRejectAiEntityEdit
80781
+ onRejectAiEntityEdit,
80782
+ onAcceptAiEntityUnlink,
80783
+ onRejectAiEntityUnlink
80616
80784
  }) => {
80617
80785
  var _a2, _b;
80618
80786
  const { t: t2 } = useTranslation();
@@ -80705,7 +80873,9 @@ const PaginateLinkedEntities = ({
80705
80873
  onAcceptAiEntityDelete,
80706
80874
  onRestoreAiDeletedEntity,
80707
80875
  onAcceptAiEntityEdit,
80708
- onRejectAiEntityEdit
80876
+ onRejectAiEntityEdit,
80877
+ onAcceptAiEntityUnlink,
80878
+ onRejectAiEntityUnlink
80709
80879
  }
80710
80880
  ) }, entity.value["@id"])) }),
80711
80881
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-row justify-center pt-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -82332,11 +82502,12 @@ const DisplayPropertyName = ({
82332
82502
  label,
82333
82503
  className = "",
82334
82504
  // Default to empty string
82335
- aiEdited = false
82505
+ aiEdited = false,
82506
+ aiEditedVariant = "edited"
82336
82507
  }) => {
82337
82508
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `describo-property-name describo-property-name-with-ai ${className}`, children: [
82338
82509
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: label || property }),
82339
- aiEdited && /* @__PURE__ */ jsxRuntimeExports.jsx(AiEditedFieldBadge, {})
82510
+ aiEdited && /* @__PURE__ */ jsxRuntimeExports.jsx(AiEditedFieldBadge, { variant: aiEditedVariant })
82340
82511
  ] });
82341
82512
  };
82342
82513
  const EntityProperty = ({
@@ -82347,6 +82518,7 @@ const EntityProperty = ({
82347
82518
  savedProperty = false,
82348
82519
  showHelp = true,
82349
82520
  aiEdited = false,
82521
+ aiEditedVariant = "edited",
82350
82522
  onLoadEntity,
82351
82523
  onCreateProperty,
82352
82524
  onCreateEntity,
@@ -82357,7 +82529,9 @@ const EntityProperty = ({
82357
82529
  onAcceptAiEntityDelete,
82358
82530
  onRestoreAiDeletedEntity,
82359
82531
  onAcceptAiEntityEdit,
82360
- onRejectAiEntityEdit
82532
+ onRejectAiEntityEdit,
82533
+ onAcceptAiEntityUnlink,
82534
+ onRejectAiEntityUnlink
82361
82535
  }) => {
82362
82536
  var _a2, _b;
82363
82537
  const { t: t2 } = useTranslation();
@@ -82399,7 +82573,13 @@ const EntityProperty = ({
82399
82573
  entity == null ? void 0 : entity["@id"],
82400
82574
  property
82401
82575
  );
82402
- if (!deletedEntities.length) return linkInstances;
82576
+ const unlinkedApprovals = getPendingUnlinkedReferenceApprovals(
82577
+ approvalContext == null ? void 0 : approvalContext.roCrateApproval,
82578
+ entity == null ? void 0 : entity["@id"],
82579
+ property,
82580
+ (entity == null ? void 0 : entity[property]) ?? values
82581
+ );
82582
+ if (!deletedEntities.length && !unlinkedApprovals.length) return linkInstances;
82403
82583
  const linkedEntityIds = linkInstances.map((instance2) => {
82404
82584
  var _a3;
82405
82585
  return (_a3 = instance2.value) == null ? void 0 : _a3["@id"];
@@ -82408,14 +82588,33 @@ const EntityProperty = ({
82408
82588
  idx: -1 - idx,
82409
82589
  value: deletedEntity
82410
82590
  }));
82591
+ const unlinkedLinkInstances = unlinkedApprovals.filter(({ targetEntityId }) => !linkedEntityIds.some((linkedEntityId) => entityIdsMatch(linkedEntityId, targetEntityId)) && !getPendingDeletedEntityFromApproval(approvalContext == null ? void 0 : approvalContext.roCrateApproval, targetEntityId)).map(({ reference, targetEntityId }, idx) => {
82592
+ const resolvedEntity = crateManager == null ? void 0 : crateManager.getEntity({
82593
+ id: targetEntityId,
82594
+ link: false,
82595
+ materialise: false
82596
+ });
82597
+ const linkedEntity = resolvedEntity ?? reference;
82598
+ return {
82599
+ idx: -1001 - idx,
82600
+ value: {
82601
+ ...linkedEntity,
82602
+ "@id": targetEntityId,
82603
+ "@type": (linkedEntity == null ? void 0 : linkedEntity["@type"]) ?? ["Thing"],
82604
+ name: (linkedEntity == null ? void 0 : linkedEntity.name) ?? targetEntityId,
82605
+ __aiUnlinkedEntity: true,
82606
+ __aiUnlinkSourceEntityId: entity == null ? void 0 : entity["@id"]
82607
+ }
82608
+ };
82609
+ });
82411
82610
  return lodashExports.orderBy(
82412
- [...linkInstances, ...deletedLinkInstances],
82611
+ [...linkInstances, ...deletedLinkInstances, ...unlinkedLinkInstances],
82413
82612
  [(instance2) => {
82414
- var _a3;
82415
- return ((_a3 = instance2.value) == null ? void 0 : _a3.__aiDeletedEntity) ? 0 : 1;
82613
+ var _a3, _b2;
82614
+ return ((_a3 = instance2.value) == null ? void 0 : _a3.__aiDeletedEntity) || ((_b2 = instance2.value) == null ? void 0 : _b2.__aiUnlinkedEntity) ? 0 : 1;
82416
82615
  }, "value.@id"]
82417
82616
  );
82418
- }, [approvalContext == null ? void 0 : approvalContext.roCrateApproval, entity, linkInstances, property]);
82617
+ }, [approvalContext == null ? void 0 : approvalContext.roCrateApproval, crateManager, entity, linkInstances, property, values]);
82419
82618
  const scrollToPropertyTop = useCallback(() => {
82420
82619
  var _a3;
82421
82620
  (_a3 = propertyRef.current) == null ? void 0 : _a3.scrollIntoView({
@@ -82426,9 +82625,13 @@ const EntityProperty = ({
82426
82625
  const approvalRecords = useMemo$1(() => getEntityApprovalRecords(approvalContext == null ? void 0 : approvalContext.roCrateApproval, entity == null ? void 0 : entity["@id"], property), [approvalContext == null ? void 0 : approvalContext.roCrateApproval, entity, property]);
82427
82626
  const unapprovedApprovalRecord = approvalRecords.find((approvalRecord) => !approvalIsApproved(approvalRecord));
82428
82627
  const isAiDelete = (unapprovedApprovalRecord == null ? void 0 : unapprovedApprovalRecord.operation) === "delete";
82628
+ const isAiReferenceUnlink = Boolean(
82629
+ unapprovedApprovalRecord && ["update", "delete", "remove"].includes(String(unapprovedApprovalRecord == null ? void 0 : unapprovedApprovalRecord.operation)) && getReferenceValues(unapprovedApprovalRecord == null ? void 0 : unapprovedApprovalRecord.previousValue).length > 0
82630
+ );
82429
82631
  const hasDeletedPreviousValue = isAiDelete && (unapprovedApprovalRecord == null ? void 0 : unapprovedApprovalRecord.previousValue) !== void 0;
82430
82632
  const hasCurrentPropertyValue = entityHasPropertyValue(entity, property);
82431
82633
  const renderedSimpleInstances = useMemo$1(() => {
82634
+ if (isAiReferenceUnlink) return simpleInstances;
82432
82635
  if (isAiDelete && !hasCurrentPropertyValue && hasDeletedPreviousValue) {
82433
82636
  if (Array.isArray(unapprovedApprovalRecord == null ? void 0 : unapprovedApprovalRecord.previousValue) && (propertyDefinition == null ? void 0 : propertyDefinition.handlesMultipleValues) !== true) {
82434
82637
  return unapprovedApprovalRecord.previousValue.map((value, idx) => ({ idx, value }));
@@ -82445,11 +82648,12 @@ const EntityProperty = ({
82445
82648
  hasDeletedPreviousValue,
82446
82649
  hasCurrentPropertyValue,
82447
82650
  isAiDelete,
82651
+ isAiReferenceUnlink,
82448
82652
  propertyDefinition == null ? void 0 : propertyDefinition.handlesMultipleValues,
82449
82653
  simpleInstances,
82450
82654
  unapprovedApprovalRecord == null ? void 0 : unapprovedApprovalRecord.previousValue
82451
82655
  ]);
82452
- const showAiReview = Boolean(unapprovedApprovalRecord && renderedSimpleInstances.length > 0);
82656
+ const showAiReview = Boolean(unapprovedApprovalRecord && !isAiReferenceUnlink && renderedSimpleInstances.length > 0);
82453
82657
  const previousValueDiffers = showAiReview && !valuesAreEqual(unapprovedApprovalRecord == null ? void 0 : unapprovedApprovalRecord.previousValue, entity == null ? void 0 : entity[property]);
82454
82658
  const showAiDiffToggle = Boolean(showAiReview && previousValueDiffers);
82455
82659
  const showAddControl = !showAiReview && !(propertyDefinition == null ? void 0 : propertyDefinition.readonly) && ((propertyDefinition == null ? void 0 : propertyDefinition.multiple) || !(values == null ? void 0 : values.length));
@@ -82464,7 +82668,7 @@ const EntityProperty = ({
82464
82668
  }, [approvalContext, entity, property]);
82465
82669
  const handleSaveProperty = useCallback((data) => {
82466
82670
  var _a3;
82467
- if (unapprovedApprovalRecord) {
82671
+ if (approvalRecords.length > 0) {
82468
82672
  (_a3 = approvalContext == null ? void 0 : approvalContext.markApprovalPropertyApproved) == null ? void 0 : _a3.call(approvalContext, {
82469
82673
  entityId: entity == null ? void 0 : entity["@id"],
82470
82674
  propertyName: property,
@@ -82477,7 +82681,7 @@ const EntityProperty = ({
82477
82681
  return;
82478
82682
  }
82479
82683
  onSaveProperty(data);
82480
- }, [approvalContext, entity, hasCurrentPropertyValue, isAiDelete, onCreateProperty, onSaveProperty, property, unapprovedApprovalRecord]);
82684
+ }, [approvalContext, approvalRecords.length, entity, hasCurrentPropertyValue, isAiDelete, onCreateProperty, onSaveProperty, property]);
82481
82685
  const handleApproveAiSuggestion = useCallback(() => {
82482
82686
  markAiSuggestionApproved();
82483
82687
  }, [markAiSuggestionApproved]);
@@ -82521,7 +82725,8 @@ const EntityProperty = ({
82521
82725
  property,
82522
82726
  label: propertyDefinition == null ? void 0 : propertyDefinition.label,
82523
82727
  className: `inline-block ${isRequired && !isValid ? "text-red-600" : ""}`,
82524
- aiEdited
82728
+ aiEdited,
82729
+ aiEditedVariant
82525
82730
  }
82526
82731
  ),
82527
82732
  isRequired && !isValid && /* @__PURE__ */ jsxRuntimeExports.jsx(Badge, { status: "error", dot: true, className: "animate-pulse ml-2" })
@@ -82610,7 +82815,9 @@ const EntityProperty = ({
82610
82815
  onAcceptAiEntityDelete,
82611
82816
  onRestoreAiDeletedEntity,
82612
82817
  onAcceptAiEntityEdit,
82613
- onRejectAiEntityEdit
82818
+ onRejectAiEntityEdit,
82819
+ onAcceptAiEntityUnlink,
82820
+ onRejectAiEntityUnlink
82614
82821
  }
82615
82822
  ),
82616
82823
  showAddControl && !((_b = state.configuration) == null ? void 0 : _b.readonly) && /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -113066,6 +113273,47 @@ const RenderEntity = forwardRef((props, ref) => {
113066
113273
  onError();
113067
113274
  }
113068
113275
  };
113276
+ const handleAcceptAiEntityUnlink = (data) => {
113277
+ var _a3, _b2;
113278
+ (_b2 = approvalContext == null ? void 0 : approvalContext.markApprovalPropertyApproved) == null ? void 0 : _b2.call(approvalContext, {
113279
+ entityId: data.sourceEntityId,
113280
+ propertyName: data.property,
113281
+ decision: "accept",
113282
+ value: (_a3 = crateManager.getEntity({
113283
+ id: data.sourceEntityId,
113284
+ link: false,
113285
+ materialise: false
113286
+ })) == null ? void 0 : _a3[data.property]
113287
+ });
113288
+ };
113289
+ const handleRejectAiEntityUnlink = (data) => {
113290
+ var _a3, _b2;
113291
+ try {
113292
+ crateManager.setProperty({
113293
+ id: data.sourceEntityId,
113294
+ property: data.property,
113295
+ value: { "@id": data.targetEntityId }
113296
+ });
113297
+ if (entityIdsMatch(data.sourceEntityId, entity == null ? void 0 : entity["@id"])) {
113298
+ refresh();
113299
+ }
113300
+ saveCratePreservingView();
113301
+ (_b2 = approvalContext == null ? void 0 : approvalContext.markApprovalPropertyApproved) == null ? void 0 : _b2.call(approvalContext, {
113302
+ entityId: data.sourceEntityId,
113303
+ propertyName: data.property,
113304
+ decision: "reject",
113305
+ value: (_a3 = crateManager.getEntity({
113306
+ id: data.sourceEntityId,
113307
+ link: false,
113308
+ materialise: false
113309
+ })) == null ? void 0 : _a3[data.property]
113310
+ });
113311
+ notifySave(data.property);
113312
+ } catch (error2) {
113313
+ console.error(error2);
113314
+ onError();
113315
+ }
113316
+ };
113069
113317
  const handleDeleteEntity = (data) => {
113070
113318
  try {
113071
113319
  crateManager.deleteEntity({ id: data.id });
@@ -113448,6 +113696,7 @@ const RenderEntity = forwardRef((props, ref) => {
113448
113696
  });
113449
113697
  };
113450
113698
  const getPendingApprovalForProperty = (property) => pendingAiApprovals.find((approvalRecord) => (approvalRecord == null ? void 0 : approvalRecord.propertyName) === property);
113699
+ const propertyHasApprovalRecord = (property) => pendingAiApprovalProperties.includes(property) || approvedAiApprovalProperties.includes(property);
113451
113700
  const handleApproveAiProperty = (property) => {
113452
113701
  var _a3;
113453
113702
  (_a3 = approvalContext == null ? void 0 : approvalContext.markApprovalPropertyApproved) == null ? void 0 : _a3.call(approvalContext, {
@@ -113482,8 +113731,7 @@ const RenderEntity = forwardRef((props, ref) => {
113482
113731
  };
113483
113732
  const handleUpdateCoreProperty = (data) => {
113484
113733
  var _a3;
113485
- const approvalRecord = getPendingApprovalForProperty(data.property);
113486
- if (approvalRecord) {
113734
+ if (propertyHasApprovalRecord(data.property)) {
113487
113735
  (_a3 = approvalContext == null ? void 0 : approvalContext.markApprovalPropertyApproved) == null ? void 0 : _a3.call(approvalContext, {
113488
113736
  entityId: entity["@id"],
113489
113737
  propertyName: data.property,
@@ -113675,6 +113923,7 @@ const RenderEntity = forwardRef((props, ref) => {
113675
113923
  };
113676
113924
  const fieldHasPendingAiApproval = (property) => pendingAiApprovalProperties.includes(property) || pendingDeletedEntityReviewProperties.includes(property);
113677
113925
  const fieldWasAiEdited = (property) => approvedAiApprovalProperties.includes(property);
113926
+ const fieldAiEditedVariant = (property) => approvedAiApprovals.some((approvalRecord) => (approvalRecord == null ? void 0 : approvalRecord.propertyName) === property && (approvalRecord == null ? void 0 : approvalRecord.operation) === "delete") ? "deleted" : "edited";
113678
113927
  const getFieldTitle = (property, label) => {
113679
113928
  var _a3, _b2;
113680
113929
  if (label) return label;
@@ -113820,7 +114069,15 @@ const RenderEntity = forwardRef((props, ref) => {
113820
114069
  {
113821
114070
  "data-recrate-property": "@id",
113822
114071
  className: `flex-grow describo-property describo-property-name-id ${savedProperty === "@id" ? "bg-green-200 rounded p-1 my-1" : ""} ${selectedAiApprovalProperty === "@id" ? "describo-ai-review-current" : ""}`,
113823
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(EntityId, { entity: contextEntity, onUpdate: handleUpdateEntity, aiEdited: fieldWasAiEdited("@id") })
114072
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
114073
+ EntityId,
114074
+ {
114075
+ entity: contextEntity,
114076
+ onUpdate: handleUpdateCoreProperty,
114077
+ aiEdited: fieldWasAiEdited("@id"),
114078
+ aiEditedVariant: fieldAiEditedVariant("@id")
114079
+ }
114080
+ )
113824
114081
  }
113825
114082
  ),
113826
114083
  !((_g = state.configuration) == null ? void 0 : _g.readonly) && missingRequiredData && /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -113843,7 +114100,15 @@ const RenderEntity = forwardRef((props, ref) => {
113843
114100
  }
113844
114101
  )
113845
114102
  ] }),
113846
- shouldRenderCoreField("@type") && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-recrate-property": "@type", className: `my-2 p-2 describo-property describo-property-name-type ${selectedAiApprovalProperty === "@type" ? "describo-ai-review-current" : ""}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(EntityType, { entity: contextEntity, onUpdateEntity: handleUpdateEntity, aiEdited: fieldWasAiEdited("@type") }) }),
114103
+ shouldRenderCoreField("@type") && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-recrate-property": "@type", className: `my-2 p-2 describo-property describo-property-name-type ${selectedAiApprovalProperty === "@type" ? "describo-ai-review-current" : ""}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
114104
+ EntityType,
114105
+ {
114106
+ entity: contextEntity,
114107
+ onUpdateEntity: handleUpdateCoreProperty,
114108
+ aiEdited: fieldWasAiEdited("@type"),
114109
+ aiEditedVariant: fieldAiEditedVariant("@type")
114110
+ }
114111
+ ) }),
113847
114112
  shouldRenderCoreField("name") && /* @__PURE__ */ jsxRuntimeExports.jsx(
113848
114113
  "div",
113849
114114
  {
@@ -113856,6 +114121,7 @@ const RenderEntity = forwardRef((props, ref) => {
113856
114121
  onUpdate: handleUpdateCoreProperty,
113857
114122
  showHelp: showFieldHelp,
113858
114123
  aiEdited: fieldWasAiEdited("name"),
114124
+ aiEditedVariant: fieldAiEditedVariant("name"),
113859
114125
  aiReview: getCoreAiReviewProps("name")
113860
114126
  }
113861
114127
  )
@@ -113878,6 +114144,7 @@ const RenderEntity = forwardRef((props, ref) => {
113878
114144
  savedProperty: savedProperty === property,
113879
114145
  showHelp: showFieldHelp,
113880
114146
  aiEdited: fieldWasAiEdited(property),
114147
+ aiEditedVariant: fieldAiEditedVariant(property),
113881
114148
  onLoadEntity: handleLoadEntityWithContext,
113882
114149
  onCreateEntity: handleCreateEntity,
113883
114150
  onLinkEntity: handleLinkEntity,
@@ -113888,7 +114155,9 @@ const RenderEntity = forwardRef((props, ref) => {
113888
114155
  onAcceptAiEntityDelete: (deletedEntity) => handleAcceptAiEntityDelete(deletedEntity),
113889
114156
  onRestoreAiDeletedEntity: (deletedEntity) => handleRestoreAiDeletedEntity(deletedEntity),
113890
114157
  onAcceptAiEntityEdit: (editedEntity) => handleAcceptAiEntityEdit(editedEntity),
113891
- onRejectAiEntityEdit: (editedEntity) => handleRejectAiEntityEdit(editedEntity)
114158
+ onRejectAiEntityEdit: (editedEntity) => handleRejectAiEntityEdit(editedEntity),
114159
+ onAcceptAiEntityUnlink: handleAcceptAiEntityUnlink,
114160
+ onRejectAiEntityUnlink: handleRejectAiEntityUnlink
113892
114161
  }
113893
114162
  )
113894
114163
  },
@@ -113926,7 +114195,15 @@ const RenderEntity = forwardRef((props, ref) => {
113926
114195
  {
113927
114196
  "data-recrate-property": "@id",
113928
114197
  className: `flex-grow describo-property describo-property-name-id ${savedProperty === "@id" ? "bg-green-200 rounded p-1 my-1" : ""} ${selectedAiApprovalProperty === "@id" ? "describo-ai-review-current" : ""}`,
113929
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(EntityId, { entity: contextEntity, onUpdate: handleUpdateEntity, aiEdited: fieldWasAiEdited("@id") })
114198
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
114199
+ EntityId,
114200
+ {
114201
+ entity: contextEntity,
114202
+ onUpdate: handleUpdateCoreProperty,
114203
+ aiEdited: fieldWasAiEdited("@id"),
114204
+ aiEditedVariant: fieldAiEditedVariant("@id")
114205
+ }
114206
+ )
113930
114207
  }
113931
114208
  ),
113932
114209
  !((_k = state.configuration) == null ? void 0 : _k.readonly) && missingRequiredData && /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -113949,7 +114226,15 @@ const RenderEntity = forwardRef((props, ref) => {
113949
114226
  }
113950
114227
  )
113951
114228
  ] }),
113952
- shouldRenderCoreField("@type") && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-recrate-property": "@type", className: `my-2 p-2 describo-property describo-property-name-type ${selectedAiApprovalProperty === "@type" ? "describo-ai-review-current" : ""}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(EntityType, { entity: contextEntity, onUpdateEntity: handleUpdateEntity, aiEdited: fieldWasAiEdited("@type") }) }),
114229
+ shouldRenderCoreField("@type") && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-recrate-property": "@type", className: `my-2 p-2 describo-property describo-property-name-type ${selectedAiApprovalProperty === "@type" ? "describo-ai-review-current" : ""}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
114230
+ EntityType,
114231
+ {
114232
+ entity: contextEntity,
114233
+ onUpdateEntity: handleUpdateCoreProperty,
114234
+ aiEdited: fieldWasAiEdited("@type"),
114235
+ aiEditedVariant: fieldAiEditedVariant("@type")
114236
+ }
114237
+ ) }),
113953
114238
  shouldRenderCoreField("name") && /* @__PURE__ */ jsxRuntimeExports.jsx(
113954
114239
  "div",
113955
114240
  {
@@ -113962,6 +114247,7 @@ const RenderEntity = forwardRef((props, ref) => {
113962
114247
  onUpdate: handleUpdateCoreProperty,
113963
114248
  showHelp: showFieldHelp,
113964
114249
  aiEdited: fieldWasAiEdited("name"),
114250
+ aiEditedVariant: fieldAiEditedVariant("name"),
113965
114251
  aiReview: getCoreAiReviewProps("name")
113966
114252
  }
113967
114253
  )
@@ -113984,6 +114270,7 @@ const RenderEntity = forwardRef((props, ref) => {
113984
114270
  savedProperty: savedProperty === property,
113985
114271
  showHelp: showFieldHelp,
113986
114272
  aiEdited: fieldWasAiEdited(property),
114273
+ aiEditedVariant: fieldAiEditedVariant(property),
113987
114274
  onLoadEntity: handleLoadEntityWithContext,
113988
114275
  onCreateEntity: handleCreateEntity,
113989
114276
  onLinkEntity: handleLinkEntity,
@@ -113994,7 +114281,9 @@ const RenderEntity = forwardRef((props, ref) => {
113994
114281
  onAcceptAiEntityDelete: (deletedEntity) => handleAcceptAiEntityDelete(deletedEntity),
113995
114282
  onRestoreAiDeletedEntity: (deletedEntity) => handleRestoreAiDeletedEntity(deletedEntity),
113996
114283
  onAcceptAiEntityEdit: (editedEntity) => handleAcceptAiEntityEdit(editedEntity),
113997
- onRejectAiEntityEdit: (editedEntity) => handleRejectAiEntityEdit(editedEntity)
114284
+ onRejectAiEntityEdit: (editedEntity) => handleRejectAiEntityEdit(editedEntity),
114285
+ onAcceptAiEntityUnlink: handleAcceptAiEntityUnlink,
114286
+ onRejectAiEntityUnlink: handleRejectAiEntityUnlink
113998
114287
  }
113999
114288
  )
114000
114289
  },
@@ -114031,10 +114320,26 @@ const RenderEntity = forwardRef((props, ref) => {
114031
114320
  {
114032
114321
  "data-recrate-property": "@id",
114033
114322
  className: `p-2 describo-property describo-property-name-id ${savedProperty === "@id" ? "bg-green-200 rounded" : ""} ${selectedAiApprovalProperty === "@id" ? "describo-ai-review-current" : ""}`,
114034
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(EntityId, { entity: contextEntity, onUpdate: handleUpdateEntity, aiEdited: fieldWasAiEdited("@id") })
114323
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
114324
+ EntityId,
114325
+ {
114326
+ entity: contextEntity,
114327
+ onUpdate: handleUpdateCoreProperty,
114328
+ aiEdited: fieldWasAiEdited("@id"),
114329
+ aiEditedVariant: fieldAiEditedVariant("@id")
114330
+ }
114331
+ )
114035
114332
  }
114036
114333
  ),
114037
- shouldRenderCoreField("@type") && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-recrate-property": "@type", className: `p-2 describo-property describo-property-name-type ${selectedAiApprovalProperty === "@type" ? "describo-ai-review-current" : ""}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(EntityType, { entity: contextEntity, onUpdateEntity: handleUpdateEntity, aiEdited: fieldWasAiEdited("@type") }) }),
114334
+ shouldRenderCoreField("@type") && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-recrate-property": "@type", className: `p-2 describo-property describo-property-name-type ${selectedAiApprovalProperty === "@type" ? "describo-ai-review-current" : ""}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
114335
+ EntityType,
114336
+ {
114337
+ entity: contextEntity,
114338
+ onUpdateEntity: handleUpdateCoreProperty,
114339
+ aiEdited: fieldWasAiEdited("@type"),
114340
+ aiEditedVariant: fieldAiEditedVariant("@type")
114341
+ }
114342
+ ) }),
114038
114343
  shouldRenderCoreField("name") && /* @__PURE__ */ jsxRuntimeExports.jsx(
114039
114344
  "div",
114040
114345
  {
@@ -114047,6 +114352,7 @@ const RenderEntity = forwardRef((props, ref) => {
114047
114352
  onUpdate: handleUpdateCoreProperty,
114048
114353
  showHelp: showFieldHelp,
114049
114354
  aiEdited: fieldWasAiEdited("name"),
114355
+ aiEditedVariant: fieldAiEditedVariant("name"),
114050
114356
  aiReview: getCoreAiReviewProps("name")
114051
114357
  }
114052
114358
  )
@@ -114069,6 +114375,7 @@ const RenderEntity = forwardRef((props, ref) => {
114069
114375
  savedProperty: savedProperty === input.name,
114070
114376
  showHelp: showFieldHelp,
114071
114377
  aiEdited: fieldWasAiEdited(input.name),
114378
+ aiEditedVariant: fieldAiEditedVariant(input.name),
114072
114379
  onLoadEntity: handleLoadEntityWithContext,
114073
114380
  onCreateEntity: handleCreateEntity,
114074
114381
  onLinkEntity: handleLinkEntity,
@@ -114079,7 +114386,9 @@ const RenderEntity = forwardRef((props, ref) => {
114079
114386
  onAcceptAiEntityDelete: (deletedEntity) => handleAcceptAiEntityDelete(deletedEntity),
114080
114387
  onRestoreAiDeletedEntity: (deletedEntity) => handleRestoreAiDeletedEntity(deletedEntity),
114081
114388
  onAcceptAiEntityEdit: (editedEntity) => handleAcceptAiEntityEdit(editedEntity),
114082
- onRejectAiEntityEdit: (editedEntity) => handleRejectAiEntityEdit(editedEntity)
114389
+ onRejectAiEntityEdit: (editedEntity) => handleRejectAiEntityEdit(editedEntity),
114390
+ onAcceptAiEntityUnlink: handleAcceptAiEntityUnlink,
114391
+ onRejectAiEntityUnlink: handleRejectAiEntityUnlink
114083
114392
  }
114084
114393
  )
114085
114394
  },
@@ -114108,6 +114417,7 @@ const RenderEntity = forwardRef((props, ref) => {
114108
114417
  savedProperty: savedProperty === input.name,
114109
114418
  showHelp: showFieldHelp,
114110
114419
  aiEdited: fieldWasAiEdited(input.name),
114420
+ aiEditedVariant: fieldAiEditedVariant(input.name),
114111
114421
  onLoadEntity: handleLoadEntityWithContext,
114112
114422
  onCreateEntity: handleCreateEntity,
114113
114423
  onLinkEntity: handleLinkEntity,
@@ -114118,7 +114428,9 @@ const RenderEntity = forwardRef((props, ref) => {
114118
114428
  onAcceptAiEntityDelete: (deletedEntity) => handleAcceptAiEntityDelete(deletedEntity),
114119
114429
  onRestoreAiDeletedEntity: (deletedEntity) => handleRestoreAiDeletedEntity(deletedEntity),
114120
114430
  onAcceptAiEntityEdit: (editedEntity) => handleAcceptAiEntityEdit(editedEntity),
114121
- onRejectAiEntityEdit: (editedEntity) => handleRejectAiEntityEdit(editedEntity)
114431
+ onRejectAiEntityEdit: (editedEntity) => handleRejectAiEntityEdit(editedEntity),
114432
+ onAcceptAiEntityUnlink: handleAcceptAiEntityUnlink,
114433
+ onRejectAiEntityUnlink: handleRejectAiEntityUnlink
114122
114434
  }
114123
114435
  )
114124
114436
  },
@@ -122481,29 +122793,36 @@ var EmotionCacheContext = /* @__PURE__ */ React.createContext(
122481
122793
  }) : null
122482
122794
  );
122483
122795
  var CacheProvider = EmotionCacheContext.Provider;
122484
- const version = "0.1.32-test";
122796
+ const version = "0.1.32-test3";
122485
122797
  const pkg = {
122486
122798
  version
122487
122799
  };
122488
122800
  const antdCache = createScopedCache("recrate");
122489
- const markApprovalRecordsApproved = (approvalState, entityId, propertyName2) => {
122801
+ const markApprovalRecordsApproved = (approvalState, entityId, propertyName2, decision) => {
122490
122802
  const approvalRecords = [];
122491
122803
  let changed = false;
122804
+ const shouldRemove = decision === "reject" || decision === "manual-edit";
122805
+ const hasApprovalRecords = (entityApproval) => Array.isArray(entityApproval == null ? void 0 : entityApproval.approval) && entityApproval.approval.length > 0;
122492
122806
  const updateEntityApproval = (entityApproval) => {
122493
122807
  if (!entityApproval || !entityIdsMatch(entityApproval["@id"], entityId) || !Array.isArray(entityApproval.approval)) {
122494
122808
  return entityApproval;
122495
122809
  }
122496
122810
  let entityChanged = false;
122497
- const nextApprovalRecords = entityApproval.approval.map((approvalRecord) => {
122811
+ const nextApprovalRecords = entityApproval.approval.flatMap((approvalRecord) => {
122498
122812
  if ((approvalRecord == null ? void 0 : approvalRecord.propertyName) !== propertyName2) {
122499
- return approvalRecord;
122813
+ return [approvalRecord];
122814
+ }
122815
+ if (shouldRemove) {
122816
+ approvalRecords.push(approvalRecord);
122817
+ entityChanged = true;
122818
+ return [];
122500
122819
  }
122501
122820
  const nextApprovalRecord = { ...approvalRecord, approved: true };
122502
122821
  approvalRecords.push(nextApprovalRecord);
122503
122822
  if (approvalRecord.approved !== true) {
122504
122823
  entityChanged = true;
122505
122824
  }
122506
- return nextApprovalRecord;
122825
+ return [nextApprovalRecord];
122507
122826
  });
122508
122827
  if (!entityChanged) return entityApproval;
122509
122828
  changed = true;
@@ -122513,19 +122832,20 @@ const markApprovalRecordsApproved = (approvalState, entityId, propertyName2) =>
122513
122832
  };
122514
122833
  };
122515
122834
  if (Array.isArray(approvalState)) {
122516
- const nextApprovalState = approvalState.map(updateEntityApproval);
122835
+ const nextApprovalState = approvalState.map(updateEntityApproval).filter(hasApprovalRecords);
122517
122836
  return { nextApprovalState, approvalRecords, changed };
122518
122837
  }
122519
122838
  if (approvalState && typeof approvalState === "object") {
122520
122839
  if (Array.isArray(approvalState.approval)) {
122840
+ const nextApprovalState = updateEntityApproval(approvalState);
122521
122841
  return {
122522
- nextApprovalState: updateEntityApproval(approvalState),
122842
+ nextApprovalState: hasApprovalRecords(nextApprovalState) ? nextApprovalState : void 0,
122523
122843
  approvalRecords,
122524
122844
  changed
122525
122845
  };
122526
122846
  }
122527
122847
  if (Array.isArray(approvalState.items)) {
122528
- const nextItems = approvalState.items.map(updateEntityApproval);
122848
+ const nextItems = approvalState.items.map(updateEntityApproval).filter(hasApprovalRecords);
122529
122849
  return {
122530
122850
  nextApprovalState: changed ? { ...approvalState, items: nextItems } : approvalState,
122531
122851
  approvalRecords,
@@ -122535,22 +122855,29 @@ const markApprovalRecordsApproved = (approvalState, entityId, propertyName2) =>
122535
122855
  }
122536
122856
  return { nextApprovalState: approvalState, approvalRecords, changed };
122537
122857
  };
122538
- const markEntityApprovalRecordsApproved = (approvalState, entityId) => {
122858
+ const markEntityApprovalRecordsApproved = (approvalState, entityId, decision) => {
122539
122859
  const approvalRecords = [];
122540
122860
  let changed = false;
122861
+ const shouldRemove = decision === "reject" || decision === "manual-edit";
122862
+ const hasApprovalRecords = (entityApproval) => Array.isArray(entityApproval == null ? void 0 : entityApproval.approval) && entityApproval.approval.length > 0;
122541
122863
  const updateEntityApproval = (entityApproval) => {
122542
122864
  if (!entityApproval || !entityIdsMatch(entityApproval["@id"], entityId) || !Array.isArray(entityApproval.approval)) {
122543
122865
  return entityApproval;
122544
122866
  }
122545
122867
  let entityChanged = false;
122546
- const nextApprovalRecords = entityApproval.approval.map((approvalRecord) => {
122868
+ const nextApprovalRecords = entityApproval.approval.flatMap((approvalRecord) => {
122547
122869
  if ((approvalRecord == null ? void 0 : approvalRecord.approved) === true || (approvalRecord == null ? void 0 : approvalRecord.approved) === "true") {
122548
- return approvalRecord;
122870
+ return [approvalRecord];
122871
+ }
122872
+ if (shouldRemove) {
122873
+ approvalRecords.push(approvalRecord);
122874
+ entityChanged = true;
122875
+ return [];
122549
122876
  }
122550
122877
  const nextApprovalRecord = { ...approvalRecord, approved: true };
122551
122878
  approvalRecords.push(nextApprovalRecord);
122552
122879
  entityChanged = true;
122553
- return nextApprovalRecord;
122880
+ return [nextApprovalRecord];
122554
122881
  });
122555
122882
  if (!entityChanged) return entityApproval;
122556
122883
  changed = true;
@@ -122560,19 +122887,20 @@ const markEntityApprovalRecordsApproved = (approvalState, entityId) => {
122560
122887
  };
122561
122888
  };
122562
122889
  if (Array.isArray(approvalState)) {
122563
- const nextApprovalState = approvalState.map(updateEntityApproval);
122890
+ const nextApprovalState = approvalState.map(updateEntityApproval).filter(hasApprovalRecords);
122564
122891
  return { nextApprovalState, approvalRecords, changed };
122565
122892
  }
122566
122893
  if (approvalState && typeof approvalState === "object") {
122567
122894
  if (Array.isArray(approvalState.approval)) {
122895
+ const nextApprovalState = updateEntityApproval(approvalState);
122568
122896
  return {
122569
- nextApprovalState: updateEntityApproval(approvalState),
122897
+ nextApprovalState: hasApprovalRecords(nextApprovalState) ? nextApprovalState : void 0,
122570
122898
  approvalRecords,
122571
122899
  changed
122572
122900
  };
122573
122901
  }
122574
122902
  if (Array.isArray(approvalState.items)) {
122575
- const nextItems = approvalState.items.map(updateEntityApproval);
122903
+ const nextItems = approvalState.items.map(updateEntityApproval).filter(hasApprovalRecords);
122576
122904
  return {
122577
122905
  nextApprovalState: changed ? { ...approvalState, items: nextItems } : approvalState,
122578
122906
  approvalRecords,
@@ -122644,7 +122972,8 @@ function DescriboCrateBuilderInner(props) {
122644
122972
  const { nextApprovalState, approvalRecords, changed } = markApprovalRecordsApproved(
122645
122973
  approvalState,
122646
122974
  entityId2,
122647
- propertyName2
122975
+ propertyName2,
122976
+ decision
122648
122977
  );
122649
122978
  if (!changed && approvalRecords.length === 0) return;
122650
122979
  setApprovalState(nextApprovalState);
@@ -122662,7 +122991,8 @@ function DescriboCrateBuilderInner(props) {
122662
122991
  if (!entityId2) return;
122663
122992
  const { nextApprovalState, approvalRecords, changed } = markEntityApprovalRecordsApproved(
122664
122993
  approvalState,
122665
- entityId2
122994
+ entityId2,
122995
+ decision
122666
122996
  );
122667
122997
  if (!changed && approvalRecords.length === 0) return;
122668
122998
  setApprovalState(nextApprovalState);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arpproject/recrate",
3
- "version": "0.1.32-test",
3
+ "version": "0.1.32-test3",
4
4
  "type": "module",
5
5
  "main": "./dist/recrate.es.js",
6
6
  "module": "./dist/recrate.es.js",