@mmlogic/components 0.5.1 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/cjs/cell-renderer-7KX9Qbml.js +983 -0
  2. package/dist/cjs/{client-layout-RZ3Ix-4a.js → client-layout-CqVuJumR.js} +9 -0
  3. package/dist/cjs/{index-DzRfoAPz.js → index-DVbdkYO3.js} +468 -6
  4. package/dist/cjs/index.cjs.js +4 -1
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/mosterdcomponents.cjs.js +2 -2
  7. package/dist/cjs/{mrd-boolean-field_23.cjs.entry.js → mrd-boolean-field_25.cjs.entry.js} +3017 -951
  8. package/dist/cjs/mrd-merge-view.cjs.entry.js +273 -0
  9. package/dist/collection/collection-manifest.json +3 -0
  10. package/dist/collection/components/documents/mrd-document-view/mrd-document-view.js +7 -8
  11. package/dist/collection/components/email/mrd-email-view/mrd-email-view.css +126 -0
  12. package/dist/collection/components/email/mrd-email-view/mrd-email-view.js +247 -0
  13. package/dist/collection/components/fields/file-upload-common.js +23 -7
  14. package/dist/collection/components/fields/mrd-boolean-field/mrd-boolean-field.js +1 -1
  15. package/dist/collection/components/fields/mrd-currency-field/mrd-currency-field.js +1 -1
  16. package/dist/collection/components/fields/mrd-date-field/mrd-date-field.js +1 -1
  17. package/dist/collection/components/fields/mrd-datetime-field/mrd-datetime-field.js +1 -1
  18. package/dist/collection/components/fields/mrd-email-field/mrd-email-field.js +1 -1
  19. package/dist/collection/components/fields/mrd-file-field/mrd-file-field.css +20 -1
  20. package/dist/collection/components/fields/mrd-file-field/mrd-file-field.js +108 -47
  21. package/dist/collection/components/fields/mrd-image-field/mrd-image-field.css +44 -0
  22. package/dist/collection/components/fields/mrd-image-field/mrd-image-field.js +126 -58
  23. package/dist/collection/components/fields/mrd-longtext-field/mrd-longtext-field.js +1 -1
  24. package/dist/collection/components/fields/mrd-number-field/mrd-number-field.js +1 -1
  25. package/dist/collection/components/fields/mrd-secret-field/mrd-secret-field.js +2 -2
  26. package/dist/collection/components/fields/mrd-text-field/mrd-text-field.js +1 -1
  27. package/dist/collection/components/fields/mrd-textarea-field/mrd-textarea-field.js +9 -5
  28. package/dist/collection/components/fields/mrd-time-field/mrd-time-field.js +1 -1
  29. package/dist/collection/components/form/mrd-field/mrd-field.js +5 -5
  30. package/dist/collection/components/form/mrd-form/mrd-form.js +55 -6
  31. package/dist/collection/components/invoice/mrd-invoice-view/mrd-invoice-view.css +145 -0
  32. package/dist/collection/components/invoice/mrd-invoice-view/mrd-invoice-view.js +281 -0
  33. package/dist/collection/components/layout/mrd-layout-section/field-value.js +5 -1
  34. package/dist/collection/components/layout/mrd-layout-section/mrd-layout-section.css +10 -0
  35. package/dist/collection/components/layout/mrd-layout-section/mrd-layout-section.js +38 -8
  36. package/dist/collection/components/merge/mrd-merge-view/merge-diff.js +99 -0
  37. package/dist/collection/components/merge/mrd-merge-view/merge-parts.js +44 -0
  38. package/dist/collection/components/merge/mrd-merge-view/mrd-merge-view.css +244 -0
  39. package/dist/collection/components/merge/mrd-merge-view/mrd-merge-view.js +397 -0
  40. package/dist/collection/dev/api.js +41 -2
  41. package/dist/collection/dev/app.js +135 -17
  42. package/dist/collection/dev/example-data.js +126 -2
  43. package/dist/collection/types/client-layout.js +6 -0
  44. package/dist/collection/utils/cell-renderer.js +6 -1
  45. package/dist/collection/utils/document-attachments.js +27 -14
  46. package/dist/collection/utils/i18n.js +224 -0
  47. package/dist/components/cell-renderer.js +1 -0
  48. package/dist/components/client-layout.js +1 -1
  49. package/dist/components/document-attachments.js +1 -1
  50. package/dist/components/file-upload-common.js +1 -1
  51. package/dist/components/format.js +1 -1
  52. package/dist/components/i18n.js +1 -1
  53. package/dist/components/index.js +1 -1
  54. package/dist/components/mrd-boolean-field2.js +1 -1
  55. package/dist/components/mrd-currency-field2.js +1 -1
  56. package/dist/components/mrd-date-field2.js +1 -1
  57. package/dist/components/mrd-datetime-field2.js +1 -1
  58. package/dist/components/mrd-document-view2.js +1 -1
  59. package/dist/components/mrd-email-field2.js +1 -1
  60. package/dist/components/mrd-email-view.d.ts +11 -0
  61. package/dist/components/mrd-email-view.js +1 -0
  62. package/dist/components/mrd-email-view2.js +1 -0
  63. package/dist/components/mrd-field2.js +1 -1
  64. package/dist/components/mrd-file-field2.js +1 -1
  65. package/dist/components/mrd-form.js +1 -1
  66. package/dist/components/mrd-image-field2.js +1 -1
  67. package/dist/components/mrd-invoice-view.d.ts +11 -0
  68. package/dist/components/mrd-invoice-view.js +1 -0
  69. package/dist/components/mrd-invoice-view2.js +1 -0
  70. package/dist/components/mrd-layout-section.js +1 -1
  71. package/dist/components/mrd-longtext-field2.js +1 -1
  72. package/dist/components/mrd-merge-view.d.ts +11 -0
  73. package/dist/components/mrd-merge-view.js +1 -0
  74. package/dist/components/mrd-number-field2.js +1 -1
  75. package/dist/components/mrd-secret-field2.js +1 -1
  76. package/dist/components/mrd-table2.js +1 -1
  77. package/dist/components/mrd-text-field2.js +1 -1
  78. package/dist/components/mrd-textarea-field2.js +1 -1
  79. package/dist/components/mrd-time-field2.js +1 -1
  80. package/dist/components/purify.es.js +2 -0
  81. package/dist/esm/cell-renderer-DIsNX9D7.js +974 -0
  82. package/dist/esm/{client-layout-DCOAAH92.js → client-layout-Bc42CfJB.js} +7 -1
  83. package/dist/esm/{index-DiSe6vjv.js → index-CDiBvvJU.js} +468 -6
  84. package/dist/esm/index.js +1 -1
  85. package/dist/esm/loader.js +3 -3
  86. package/dist/esm/mosterdcomponents.js +3 -3
  87. package/dist/esm/{mrd-boolean-field_23.entry.js → mrd-boolean-field_25.entry.js} +2949 -885
  88. package/dist/esm/mrd-merge-view.entry.js +271 -0
  89. package/dist/mosterdcomponents/index.esm.js +1 -1
  90. package/dist/mosterdcomponents/mosterdcomponents.esm.js +1 -1
  91. package/dist/mosterdcomponents/p-4e061416.entry.js +1 -0
  92. package/dist/mosterdcomponents/p-910ebfee.entry.js +3 -0
  93. package/dist/mosterdcomponents/{p-DCOAAH92.js → p-Bc42CfJB.js} +1 -1
  94. package/dist/mosterdcomponents/p-CDiBvvJU.js +2 -0
  95. package/dist/mosterdcomponents/p-Ce2QDq0t.js +1 -0
  96. package/dist/types/components/documents/mrd-document-view/mrd-document-view.d.ts +2 -2
  97. package/dist/types/components/email/mrd-email-view/mrd-email-view.d.ts +52 -0
  98. package/dist/types/components/fields/file-upload-common.d.ts +19 -1
  99. package/dist/types/components/fields/mrd-file-field/mrd-file-field.d.ts +24 -10
  100. package/dist/types/components/fields/mrd-image-field/mrd-image-field.d.ts +27 -11
  101. package/dist/types/components/fields/mrd-textarea-field/mrd-textarea-field.d.ts +1 -0
  102. package/dist/types/components/form/mrd-form/mrd-form.d.ts +16 -1
  103. package/dist/types/components/invoice/mrd-invoice-view/mrd-invoice-view.d.ts +60 -0
  104. package/dist/types/components/layout/mrd-layout-section/mrd-layout-section.d.ts +13 -0
  105. package/dist/types/components/merge/mrd-merge-view/merge-diff.d.ts +43 -0
  106. package/dist/types/components/merge/mrd-merge-view/merge-parts.d.ts +37 -0
  107. package/dist/types/components/merge/mrd-merge-view/mrd-merge-view.d.ts +68 -0
  108. package/dist/types/components.d.ts +445 -19
  109. package/dist/types/types/client-layout.d.ts +6 -0
  110. package/dist/types/utils/document-attachments.d.ts +12 -5
  111. package/package.json +2 -1
  112. package/dist/mosterdcomponents/p-DiSe6vjv.js +0 -2
  113. package/dist/mosterdcomponents/p-cdecc698.entry.js +0 -1
@@ -0,0 +1,44 @@
1
+ import { h } from "@stencil/core";
2
+ import { CellRenderer } from "../../../utils/cell-renderer";
3
+ import { t } from "../../../utils/i18n";
4
+ import { formatDate } from "../../../utils/format";
5
+ import { candidateLabel } from "./merge-diff";
6
+ /** History-enabled fields carry `{ current, history: [...] }` — this is the legal record itself (e.g. past company names), not an audit log. */
7
+ function getHistory(item, record) {
8
+ var _a, _b;
9
+ if (!item.historyEnabled || !item.name)
10
+ return [];
11
+ return (_b = (_a = record === null || record === void 0 ? void 0 : record[item.name]) === null || _a === void 0 ? void 0 : _a.history) !== null && _b !== void 0 ? _b : [];
12
+ }
13
+ /** Small clock badge + popover listing past values for a history-enabled field — same UX as mrd-layout-section's field view. */
14
+ const HistoryBadge = ({ locale, history, isOpen, onToggle }) => {
15
+ if (history.length === 0)
16
+ return null;
17
+ const sorted = [...history].sort((a, b) => b.until.localeCompare(a.until));
18
+ return (h("span", { class: "mrd-merge-view__history-wrap" }, h("button", { type: "button", class: "mrd-merge-view__history-btn", title: t('history_badge_tooltip', locale), "aria-label": t('history_badge_tooltip', locale), onClick: (e) => { e.stopPropagation(); onToggle(); } }, h("svg", { class: "mrd-merge-view__history-icon", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true" }, h("path", { "fill-rule": "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm.75-13a.75.75 0 00-1.5 0v5c0 .207.085.394.22.53l2.5 2.5a.75.75 0 101.06-1.06L10.75 9.69V5z", "clip-rule": "evenodd" }))), isOpen && (h("div", { class: "mrd-merge-view__history-popover", role: "listbox" }, sorted.map((entry, i) => (h("div", { key: String(i), class: "mrd-merge-view__history-entry" }, entry.value, " (", t('history_until', locale), " ", formatDate(entry.until, locale), ")")))))));
19
+ };
20
+ export const MergeSearchStep = ({ locale, searchQuery, searchResults, isLoading, onSearchInput, onSelect }) => (h("div", { class: "mrd-merge-view__search-step" }, h("p", { class: "mrd-merge-view__hint" }, t('merge_search_hint', locale)), h("div", { class: "mrd-merge-view__search-wrapper" }, h("input", { class: "mrd-merge-view__search", type: "text", value: searchQuery, placeholder: t('search_placeholder', locale), onInput: (e) => onSearchInput(e.target.value) }), isLoading && h("span", { class: "mrd-merge-view__spinner", "aria-label": t('loading', locale) })), searchQuery.trim().length >= 2 && !isLoading && (h("div", { class: "mrd-merge-view__results" }, searchResults.length === 0 ? (h("div", { class: "mrd-merge-view__no-results" }, t('no_results', locale))) : (searchResults.map(record => {
21
+ var _a, _b, _c;
22
+ return (h("div", { key: (_c = (_b = (_a = record === null || record === void 0 ? void 0 : record._links) === null || _a === void 0 ? void 0 : _a.self) === null || _b === void 0 ? void 0 : _b.href) !== null && _c !== void 0 ? _c : candidateLabel(record), class: "mrd-merge-view__result-item" }, h("span", { class: "mrd-merge-view__result-label" }, candidateLabel(record)), h("button", { type: "button", class: "mrd-merge-view__btn mrd-merge-view__btn--secondary", onClick: () => onSelect(record) }, t('merge_select', locale))));
23
+ }))))));
24
+ export const MergeCompareStep = ({ locale, currentLabel, candidateLabel: bLabel, conflicts, autoFilled, recordA, recordB, resolutions, openHistoryKey, onResolve, onToggleHistory, onChangeCandidate, onContinue }) => (h("div", { class: "mrd-merge-view__compare-step" }, h("h3", { class: "mrd-merge-view__heading" }, t('merge_compare_heading', locale)), conflicts.length === 0 ? (h("p", { class: "mrd-merge-view__no-conflicts" }, t('merge_no_conflicts', locale))) : (h("table", { class: "mrd-merge-view__table" }, h("thead", null, h("tr", null, h("th", { class: "mrd-merge-view__header" }), h("th", { class: "mrd-merge-view__header" }, t('merge_column_a', locale), h("span", { class: "mrd-merge-view__header-name" }, currentLabel)), h("th", { class: "mrd-merge-view__header" }, t('merge_column_b', locale), h("span", { class: "mrd-merge-view__header-name" }, bLabel)))), h("tbody", null, conflicts.map(({ item }) => {
25
+ var _a, _b, _c;
26
+ const name = (_a = item.name) !== null && _a !== void 0 ? _a : '';
27
+ const resolution = (_b = resolutions[name]) !== null && _b !== void 0 ? _b : 'A';
28
+ const historyA = getHistory(item, recordA);
29
+ const historyB = getHistory(item, recordB);
30
+ const keyA = `${name}:A`;
31
+ const keyB = `${name}:B`;
32
+ return (h("tr", { key: name, class: "mrd-merge-view__row" }, h("td", { class: "mrd-merge-view__cell mrd-merge-view__cell--label" }, (_c = item.label) !== null && _c !== void 0 ? _c : name), h("td", { class: "mrd-merge-view__cell" }, h("label", { class: "mrd-merge-view__option" }, h("input", { type: "radio", name: `merge-${name}`, checked: resolution === 'A', onChange: () => onResolve(name, 'A') }), h("span", null, CellRenderer.render(item, recordA, locale) || '—')), h(HistoryBadge, { locale: locale, history: historyA, isOpen: openHistoryKey === keyA, onToggle: () => onToggleHistory(openHistoryKey === keyA ? null : keyA) })), h("td", { class: "mrd-merge-view__cell" }, h("label", { class: "mrd-merge-view__option" }, h("input", { type: "radio", name: `merge-${name}`, checked: resolution === 'B', onChange: () => onResolve(name, 'B') }), h("span", null, CellRenderer.render(item, recordB, locale) || '—')), h(HistoryBadge, { locale: locale, history: historyB, isOpen: openHistoryKey === keyB, onToggle: () => onToggleHistory(openHistoryKey === keyB ? null : keyB) }))));
33
+ })))), autoFilled.length > 0 && (h("div", { class: "mrd-merge-view__auto-note" }, h("p", null, t('merge_auto_heading', locale)), h("ul", null, autoFilled.map(({ item }) => { var _a; return h("li", { key: item.name }, (_a = item.label) !== null && _a !== void 0 ? _a : item.name); })))), h("div", { class: "mrd-merge-view__actions" }, h("button", { type: "button", class: "mrd-merge-view__btn mrd-merge-view__btn--secondary", onClick: onChangeCandidate }, t('merge_back', locale)), h("button", { type: "button", class: "mrd-merge-view__btn mrd-merge-view__btn--primary", onClick: onContinue }, t('merge_continue', locale)))));
34
+ export const MergeConfirmStep = ({ locale, candidateLabel: bLabel, conflicts, autoFilled, resolutions, recordB, openHistoryKey, onToggleHistory, onBack, onConfirm }) => {
35
+ const changed = [
36
+ ...autoFilled,
37
+ ...conflicts.filter(({ item }) => { var _a; return resolutions[(_a = item.name) !== null && _a !== void 0 ? _a : ''] === 'B'; }),
38
+ ];
39
+ return (h("div", { class: "mrd-merge-view__confirm-step" }, h("h3", { class: "mrd-merge-view__heading" }, t('merge_confirm_heading', locale)), changed.length === 0 ? (h("p", { class: "mrd-merge-view__no-conflicts" }, t('merge_no_conflicts', locale))) : (h("ul", { class: "mrd-merge-view__summary-list" }, changed.map(({ item }) => {
40
+ var _a;
41
+ const key = `${item.name}:confirm`;
42
+ return (h("li", { key: item.name }, (_a = item.label) !== null && _a !== void 0 ? _a : item.name, ": ", CellRenderer.render(item, recordB, locale) || '—', h(HistoryBadge, { locale: locale, history: getHistory(item, recordB), isOpen: openHistoryKey === key, onToggle: () => onToggleHistory(openHistoryKey === key ? null : key) })));
43
+ }))), h("p", { class: "mrd-merge-view__warning" }, t('merge_confirm_warning', locale), " (", bLabel, ")"), h("div", { class: "mrd-merge-view__actions" }, h("button", { type: "button", class: "mrd-merge-view__btn mrd-merge-view__btn--secondary", onClick: onBack }, t('merge_back', locale)), h("button", { type: "button", class: "mrd-merge-view__btn mrd-merge-view__btn--danger", onClick: onConfirm }, t('merge_confirm_button', locale)))));
44
+ };
@@ -0,0 +1,244 @@
1
+ :host {
2
+ display: block;
3
+ width: 100%;
4
+ }
5
+
6
+ .mrd-merge-view {
7
+ font-family: var(--mrd-font-family);
8
+ font-size: var(--mrd-font-size-sm);
9
+ color: var(--mrd-color-neutral-900);
10
+ }
11
+ .mrd-merge-view__hint {
12
+ margin: 0 0 var(--mrd-space-4);
13
+ color: var(--mrd-color-neutral-600);
14
+ }
15
+ .mrd-merge-view__heading {
16
+ margin: 0 0 var(--mrd-space-4);
17
+ font-size: var(--mrd-font-size-lg);
18
+ font-weight: var(--mrd-font-weight-semibold);
19
+ }
20
+ .mrd-merge-view__search-wrapper {
21
+ position: relative;
22
+ display: flex;
23
+ align-items: center;
24
+ }
25
+ .mrd-merge-view__search {
26
+ width: 100%;
27
+ height: var(--mrd-input-height);
28
+ padding: var(--mrd-input-padding-y) var(--mrd-input-padding-x);
29
+ border: var(--mrd-border-width) solid var(--mrd-border-color);
30
+ border-radius: var(--mrd-border-radius);
31
+ background: var(--mrd-input-bg);
32
+ color: var(--mrd-input-color);
33
+ font-size: var(--mrd-font-size-sm);
34
+ }
35
+ .mrd-merge-view__search:focus {
36
+ outline: none;
37
+ border-color: var(--mrd-border-color-focus);
38
+ box-shadow: var(--mrd-shadow-focus);
39
+ }
40
+ .mrd-merge-view__spinner {
41
+ position: absolute;
42
+ right: var(--mrd-space-3);
43
+ width: 1rem;
44
+ height: 1rem;
45
+ border: 2px solid var(--mrd-color-neutral-300);
46
+ border-top-color: var(--mrd-color-primary);
47
+ border-radius: var(--mrd-border-radius-full);
48
+ animation: mrd-merge-view-spin var(--mrd-transition-slow) linear infinite;
49
+ }
50
+ .mrd-merge-view__results {
51
+ margin-top: var(--mrd-space-2);
52
+ border: var(--mrd-border-width) solid var(--mrd-border-color);
53
+ border-radius: var(--mrd-border-radius);
54
+ overflow: hidden;
55
+ }
56
+ .mrd-merge-view__no-results {
57
+ padding: var(--mrd-space-3) var(--mrd-space-4);
58
+ color: var(--mrd-color-neutral-500);
59
+ }
60
+ .mrd-merge-view__result-item {
61
+ display: flex;
62
+ align-items: center;
63
+ justify-content: space-between;
64
+ gap: var(--mrd-space-3);
65
+ padding: var(--mrd-space-2) var(--mrd-space-4);
66
+ }
67
+ .mrd-merge-view__result-item:not(:last-child) {
68
+ border-bottom: var(--mrd-border-width) solid var(--mrd-border-color);
69
+ }
70
+ .mrd-merge-view__result-label {
71
+ font-weight: var(--mrd-font-weight-medium);
72
+ }
73
+ .mrd-merge-view__no-conflicts {
74
+ color: var(--mrd-color-neutral-600);
75
+ }
76
+ .mrd-merge-view__table {
77
+ width: 100%;
78
+ border-collapse: collapse;
79
+ margin-bottom: var(--mrd-space-4);
80
+ }
81
+ .mrd-merge-view__header {
82
+ text-align: left;
83
+ padding: var(--mrd-space-2) var(--mrd-space-3);
84
+ border-bottom: 2px solid var(--mrd-border-color);
85
+ font-size: var(--mrd-font-size-xs);
86
+ text-transform: uppercase;
87
+ letter-spacing: 0.04em;
88
+ color: var(--mrd-color-neutral-600);
89
+ }
90
+ .mrd-merge-view__header-name {
91
+ display: block;
92
+ text-transform: none;
93
+ letter-spacing: normal;
94
+ font-size: var(--mrd-font-size-sm);
95
+ font-weight: var(--mrd-font-weight-medium);
96
+ color: var(--mrd-color-neutral-900);
97
+ margin-top: var(--mrd-space-1);
98
+ }
99
+ .mrd-merge-view__row:nth-child(even) {
100
+ background: var(--mrd-color-neutral-50);
101
+ }
102
+ .mrd-merge-view__cell {
103
+ padding: var(--mrd-space-2) var(--mrd-space-3);
104
+ border-bottom: var(--mrd-border-width) solid var(--mrd-border-color);
105
+ vertical-align: top;
106
+ }
107
+ .mrd-merge-view__cell--label {
108
+ font-weight: var(--mrd-font-weight-medium);
109
+ white-space: nowrap;
110
+ }
111
+ .mrd-merge-view__option {
112
+ display: flex;
113
+ align-items: flex-start;
114
+ gap: var(--mrd-space-2);
115
+ cursor: pointer;
116
+ }
117
+ .mrd-merge-view__option input[type=radio] {
118
+ margin-top: 0.2em;
119
+ }
120
+ .mrd-merge-view__history-wrap {
121
+ position: relative;
122
+ display: inline-flex;
123
+ align-items: center;
124
+ margin-left: var(--mrd-space-1);
125
+ }
126
+ .mrd-merge-view__history-btn {
127
+ display: inline-flex;
128
+ align-items: center;
129
+ justify-content: center;
130
+ width: 1.25rem;
131
+ height: 1.25rem;
132
+ padding: 0;
133
+ background: transparent;
134
+ border: none;
135
+ border-radius: var(--mrd-border-radius-sm);
136
+ color: var(--mrd-color-neutral-400);
137
+ cursor: pointer;
138
+ flex-shrink: 0;
139
+ transition: color var(--mrd-transition-fast), background-color var(--mrd-transition-fast);
140
+ }
141
+ .mrd-merge-view__history-btn:hover {
142
+ color: var(--mrd-color-neutral-700);
143
+ background-color: var(--mrd-color-neutral-100);
144
+ }
145
+ .mrd-merge-view__history-btn:focus {
146
+ outline: none;
147
+ box-shadow: var(--mrd-shadow-focus);
148
+ }
149
+ .mrd-merge-view__history-icon {
150
+ width: 0.875rem;
151
+ height: 0.875rem;
152
+ }
153
+ .mrd-merge-view__history-popover {
154
+ position: absolute;
155
+ top: calc(100% + 0.25rem);
156
+ left: 0;
157
+ min-width: 18rem;
158
+ max-width: 18rem;
159
+ background-color: var(--mrd-color-white);
160
+ border: var(--mrd-border-width) solid var(--mrd-border-color);
161
+ border-radius: var(--mrd-border-radius-md);
162
+ box-shadow: var(--mrd-shadow-md);
163
+ padding: var(--mrd-space-1) 0;
164
+ z-index: var(--mrd-z-dropdown);
165
+ }
166
+ .mrd-merge-view__history-entry {
167
+ font-size: var(--mrd-font-size-sm);
168
+ color: var(--mrd-color-neutral-700);
169
+ padding: var(--mrd-space-2) var(--mrd-space-3);
170
+ line-height: var(--mrd-line-height-normal);
171
+ }
172
+ .mrd-merge-view__history-entry:not(:last-child) {
173
+ border-bottom: var(--mrd-border-width) solid var(--mrd-color-neutral-100);
174
+ }
175
+ .mrd-merge-view__auto-note {
176
+ margin-bottom: var(--mrd-space-4);
177
+ padding: var(--mrd-space-3) var(--mrd-space-4);
178
+ background: var(--mrd-color-neutral-50);
179
+ border: var(--mrd-border-width) solid var(--mrd-border-color);
180
+ border-radius: var(--mrd-border-radius);
181
+ color: var(--mrd-color-neutral-700);
182
+ }
183
+ .mrd-merge-view__auto-note p {
184
+ margin: 0 0 var(--mrd-space-1);
185
+ font-weight: var(--mrd-font-weight-medium);
186
+ }
187
+ .mrd-merge-view__auto-note ul {
188
+ margin: 0;
189
+ padding-left: var(--mrd-space-5);
190
+ }
191
+ .mrd-merge-view__summary-list {
192
+ margin: 0 0 var(--mrd-space-4);
193
+ padding-left: var(--mrd-space-5);
194
+ }
195
+ .mrd-merge-view__warning {
196
+ padding: var(--mrd-space-3) var(--mrd-space-4);
197
+ background: var(--mrd-color-danger-light);
198
+ border: var(--mrd-border-width) solid var(--mrd-color-danger);
199
+ border-radius: var(--mrd-border-radius);
200
+ color: var(--mrd-color-danger-dark);
201
+ margin-bottom: var(--mrd-space-4);
202
+ }
203
+ .mrd-merge-view__actions {
204
+ display: flex;
205
+ gap: var(--mrd-space-3);
206
+ }
207
+ .mrd-merge-view__btn {
208
+ height: var(--mrd-input-height-sm);
209
+ padding: 0 var(--mrd-space-4);
210
+ border-radius: var(--mrd-border-radius);
211
+ border: var(--mrd-border-width) solid transparent;
212
+ font-size: var(--mrd-font-size-sm);
213
+ font-weight: var(--mrd-font-weight-medium);
214
+ cursor: pointer;
215
+ transition: background-color var(--mrd-transition-fast), border-color var(--mrd-transition-fast);
216
+ }
217
+ .mrd-merge-view__btn--primary {
218
+ background: var(--mrd-color-primary);
219
+ color: var(--mrd-color-white);
220
+ }
221
+ .mrd-merge-view__btn--primary:hover {
222
+ background: var(--mrd-color-primary-hover);
223
+ }
224
+ .mrd-merge-view__btn--secondary {
225
+ background: var(--mrd-color-white);
226
+ border-color: var(--mrd-border-color);
227
+ color: var(--mrd-color-neutral-700);
228
+ }
229
+ .mrd-merge-view__btn--secondary:hover {
230
+ background: var(--mrd-color-neutral-50);
231
+ }
232
+ .mrd-merge-view__btn--danger {
233
+ background: var(--mrd-color-danger);
234
+ color: var(--mrd-color-white);
235
+ }
236
+ .mrd-merge-view__btn--danger:hover {
237
+ background: var(--mrd-color-danger-dark);
238
+ }
239
+
240
+ @keyframes mrd-merge-view-spin {
241
+ to {
242
+ transform: rotate(360deg);
243
+ }
244
+ }