superdoc 2.4.0-next.7 → 2.4.0-next.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{FindReplaceSurface-C-I4GcRE.cjs → FindReplaceSurface-9VkPw_-X.cjs} +1 -2
- package/dist/chunks/{FindReplaceSurface-B_1Ksbr0.es.js → FindReplaceSurface-BuvaIrQ5.es.js} +1 -2
- package/dist/collaboration-upgrade-engine.cjs +1 -1
- package/dist/collaboration-upgrade-engine.es.js +1 -1
- package/dist/style.css +40 -40
- package/dist/style.layered.css +40 -40
- package/dist/superdoc/src/core/types/index.d.ts +105 -3
- package/dist/superdoc/src/public/index.d.cts +6 -0
- package/dist/superdoc/src/public/index.d.ts +3 -0
- package/dist/superdoc.cjs +2 -2
- package/dist/superdoc.es.js +2 -2
- package/dist-cdn/style.layered.css +1 -1
- package/dist-cdn/superdoc.min.css +1 -1
- package/dist-cdn/superdoc.min.js +3 -3
- package/package.json +2 -2
|
@@ -160,7 +160,6 @@ var _sfc_main = {
|
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
(0, vue.onMounted)(() => {
|
|
163
|
-
findInputRef.value?.focus();
|
|
164
163
|
props.findReplace.registerFocusFn(focusFindInput);
|
|
165
164
|
});
|
|
166
165
|
return (_ctx, _cache) => {
|
|
@@ -342,5 +341,5 @@ var _sfc_main = {
|
|
|
342
341
|
};
|
|
343
342
|
}
|
|
344
343
|
};
|
|
345
|
-
var FindReplaceSurface_default = /* @__PURE__ */ require__plugin_vue_export_helper.__plugin_vue_export_helper_default(_sfc_main, [["__scopeId", "data-v-
|
|
344
|
+
var FindReplaceSurface_default = /* @__PURE__ */ require__plugin_vue_export_helper.__plugin_vue_export_helper_default(_sfc_main, [["__scopeId", "data-v-41f37c29"]]);
|
|
346
345
|
exports.default = FindReplaceSurface_default;
|
|
@@ -159,7 +159,6 @@ var FindReplaceSurface_default = /* @__PURE__ */ __plugin_vue_export_helper_defa
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
onMounted(() => {
|
|
162
|
-
findInputRef.value?.focus();
|
|
163
162
|
props.findReplace.registerFocusFn(focusFindInput);
|
|
164
163
|
});
|
|
165
164
|
return (_ctx, _cache) => {
|
|
@@ -340,5 +339,5 @@ var FindReplaceSurface_default = /* @__PURE__ */ __plugin_vue_export_helper_defa
|
|
|
340
339
|
], 40, _hoisted_1);
|
|
341
340
|
};
|
|
342
341
|
}
|
|
343
|
-
}, [["__scopeId", "data-v-
|
|
342
|
+
}, [["__scopeId", "data-v-41f37c29"]]);
|
|
344
343
|
export { FindReplaceSurface_default as default };
|
|
@@ -7,7 +7,7 @@ const COLLABORATION_UPGRADE_ENGINE_MINIMUM_NODE_MAJOR = 20;
|
|
|
7
7
|
var PRIVATE_ENGINE_INFO = (0, __superdoc_docx_engine_collaboration_upgrade_engine.getCollaborationUpgradeEngineInfo)();
|
|
8
8
|
var ENGINE_INFO = Object.freeze({
|
|
9
9
|
...PRIVATE_ENGINE_INFO,
|
|
10
|
-
superdocVersion: "2.4.0-next.
|
|
10
|
+
superdocVersion: "2.4.0-next.8",
|
|
11
11
|
roomSchemaVersion: Object.freeze({ ...PRIVATE_ENGINE_INFO.roomSchemaVersion }),
|
|
12
12
|
supportedBundleVersions: SUPPORTED_COLLABORATION_UPGRADE_BUNDLE_VERSIONS,
|
|
13
13
|
supportedV1ReaderContractVersions: SUPPORTED_V1_READER_CONTRACT_VERSIONS
|
|
@@ -6,7 +6,7 @@ const COLLABORATION_UPGRADE_ENGINE_MINIMUM_NODE_MAJOR = 20;
|
|
|
6
6
|
var PRIVATE_ENGINE_INFO = getCollaborationUpgradeEngineInfo$1();
|
|
7
7
|
var ENGINE_INFO = Object.freeze({
|
|
8
8
|
...PRIVATE_ENGINE_INFO,
|
|
9
|
-
superdocVersion: "2.4.0-next.
|
|
9
|
+
superdocVersion: "2.4.0-next.8",
|
|
10
10
|
roomSchemaVersion: Object.freeze({ ...PRIVATE_ENGINE_INFO.roomSchemaVersion }),
|
|
11
11
|
supportedBundleVersions: SUPPORTED_COLLABORATION_UPGRADE_BUNDLE_VERSIONS,
|
|
12
12
|
supportedV1ReaderContractVersions: SUPPORTED_V1_READER_CONTRACT_VERSIONS
|
package/dist/style.css
CHANGED
|
@@ -2921,7 +2921,7 @@ img[data-v-c95b2073] {
|
|
|
2921
2921
|
background: var(--sd-ui-password-prompt-submit-hover-bg, var(--sd-ui-action-hover));
|
|
2922
2922
|
}
|
|
2923
2923
|
|
|
2924
|
-
.sd-find-replace[data-v-
|
|
2924
|
+
.sd-find-replace[data-v-41f37c29] {
|
|
2925
2925
|
display: flex;
|
|
2926
2926
|
flex-direction: column;
|
|
2927
2927
|
gap: var(--sd-ui-find-replace-gap, 6px);
|
|
@@ -2929,7 +2929,7 @@ img[data-v-c95b2073] {
|
|
|
2929
2929
|
so it needs room to breathe before the query starts truncating. */
|
|
2930
2930
|
min-width: var(--sd-ui-find-replace-min-width, 380px);
|
|
2931
2931
|
}
|
|
2932
|
-
.sd-find-replace__row[data-v-
|
|
2932
|
+
.sd-find-replace__row[data-v-41f37c29] {
|
|
2933
2933
|
display: flex;
|
|
2934
2934
|
align-items: center;
|
|
2935
2935
|
gap: var(--sd-ui-find-replace-gap, 6px);
|
|
@@ -2937,13 +2937,13 @@ img[data-v-c95b2073] {
|
|
|
2937
2937
|
|
|
2938
2938
|
/* Mirrors the expander's footprint so the replace field and the error line
|
|
2939
2939
|
align with the find field. */
|
|
2940
|
-
.sd-find-replace__row-indent[data-v-
|
|
2940
|
+
.sd-find-replace__row-indent[data-v-41f37c29] {
|
|
2941
2941
|
flex: 0 0 var(--sd-ui-find-replace-expander-size, 24px);
|
|
2942
2942
|
}
|
|
2943
2943
|
|
|
2944
2944
|
/* The field carries the border; the input inside is naked so the count and
|
|
2945
2945
|
the query toggles sit visually inside the control. */
|
|
2946
|
-
.sd-find-replace__field[data-v-
|
|
2946
|
+
.sd-find-replace__field[data-v-41f37c29] {
|
|
2947
2947
|
flex: 1;
|
|
2948
2948
|
min-width: 0;
|
|
2949
2949
|
display: flex;
|
|
@@ -2958,24 +2958,24 @@ img[data-v-c95b2073] {
|
|
|
2958
2958
|
border-color 0.12s ease-out,
|
|
2959
2959
|
box-shadow 0.12s ease-out;
|
|
2960
2960
|
}
|
|
2961
|
-
.sd-find-replace__field[data-v-
|
|
2961
|
+
.sd-find-replace__field[data-v-41f37c29]:focus-within {
|
|
2962
2962
|
border-color: var(--sd-ui-find-replace-input-focus-border, var(--sd-ui-action));
|
|
2963
2963
|
box-shadow: 0 0 0 3px
|
|
2964
2964
|
var(--sd-ui-find-replace-input-focus-ring, color-mix(in srgb, var(--sd-ui-action) 15%, transparent));
|
|
2965
2965
|
}
|
|
2966
|
-
.sd-find-replace__field--error[data-v-
|
|
2967
|
-
.sd-find-replace__field--error[data-v-
|
|
2966
|
+
.sd-find-replace__field--error[data-v-41f37c29],
|
|
2967
|
+
.sd-find-replace__field--error[data-v-41f37c29]:focus-within {
|
|
2968
2968
|
border-color: var(--sd-ui-find-replace-error-color, #b3261e);
|
|
2969
2969
|
}
|
|
2970
|
-
.sd-find-replace__field--error[data-v-
|
|
2970
|
+
.sd-find-replace__field--error[data-v-41f37c29]:focus-within {
|
|
2971
2971
|
box-shadow: 0 0 0 3px color-mix(in srgb, var(--sd-ui-find-replace-error-color, #b3261e) 12%, transparent);
|
|
2972
2972
|
}
|
|
2973
|
-
.sd-find-replace__search-icon[data-v-
|
|
2973
|
+
.sd-find-replace__search-icon[data-v-41f37c29] {
|
|
2974
2974
|
color: var(--sd-ui-find-replace-search-icon-color, #9ca3af);
|
|
2975
2975
|
flex-shrink: 0;
|
|
2976
2976
|
margin-right: 6px;
|
|
2977
2977
|
}
|
|
2978
|
-
.sd-find-replace__input[data-v-
|
|
2978
|
+
.sd-find-replace__input[data-v-41f37c29] {
|
|
2979
2979
|
flex: 1;
|
|
2980
2980
|
min-width: 0;
|
|
2981
2981
|
height: 100%;
|
|
@@ -2987,7 +2987,7 @@ img[data-v-c95b2073] {
|
|
|
2987
2987
|
border: none;
|
|
2988
2988
|
outline: none;
|
|
2989
2989
|
}
|
|
2990
|
-
.sd-find-replace__count[data-v-
|
|
2990
|
+
.sd-find-replace__count[data-v-41f37c29] {
|
|
2991
2991
|
font-size: var(--sd-ui-find-replace-count-font-size, 12px);
|
|
2992
2992
|
color: var(--sd-ui-find-replace-count-color, #6b7280);
|
|
2993
2993
|
pointer-events: none;
|
|
@@ -2997,23 +2997,23 @@ img[data-v-c95b2073] {
|
|
|
2997
2997
|
padding: 0 5px 0 4px;
|
|
2998
2998
|
flex-shrink: 0;
|
|
2999
2999
|
}
|
|
3000
|
-
.sd-find-replace__divider[data-v-
|
|
3000
|
+
.sd-find-replace__divider[data-v-41f37c29] {
|
|
3001
3001
|
width: 1px;
|
|
3002
3002
|
height: 16px;
|
|
3003
3003
|
margin: 0 4px;
|
|
3004
3004
|
background: var(--sd-ui-find-replace-input-border, var(--sd-ui-border));
|
|
3005
3005
|
flex-shrink: 0;
|
|
3006
3006
|
}
|
|
3007
|
-
.sd-find-replace__nav[data-v-
|
|
3007
|
+
.sd-find-replace__nav[data-v-41f37c29] {
|
|
3008
3008
|
display: flex;
|
|
3009
3009
|
align-items: center;
|
|
3010
3010
|
gap: var(--sd-ui-find-replace-nav-gap, 2px);
|
|
3011
3011
|
flex-shrink: 0;
|
|
3012
3012
|
}
|
|
3013
|
-
.sd-find-replace__nav--actions[data-v-
|
|
3013
|
+
.sd-find-replace__nav--actions[data-v-41f37c29] {
|
|
3014
3014
|
gap: var(--sd-ui-find-replace-gap, 6px);
|
|
3015
3015
|
}
|
|
3016
|
-
.sd-find-replace__btn[data-v-
|
|
3016
|
+
.sd-find-replace__btn[data-v-41f37c29] {
|
|
3017
3017
|
display: inline-flex;
|
|
3018
3018
|
align-items: center;
|
|
3019
3019
|
justify-content: center;
|
|
@@ -3028,47 +3028,47 @@ img[data-v-c95b2073] {
|
|
|
3028
3028
|
border-color 0.12s ease-out,
|
|
3029
3029
|
transform 90ms ease-out;
|
|
3030
3030
|
}
|
|
3031
|
-
.sd-find-replace__btn[data-v-
|
|
3031
|
+
.sd-find-replace__btn[data-v-41f37c29]:active:not(:disabled) {
|
|
3032
3032
|
transform: scale(0.96);
|
|
3033
3033
|
}
|
|
3034
|
-
.sd-find-replace__btn[data-v-
|
|
3034
|
+
.sd-find-replace__btn[data-v-41f37c29]:focus-visible {
|
|
3035
3035
|
outline: 2px solid var(--sd-ui-action);
|
|
3036
3036
|
outline-offset: 1px;
|
|
3037
3037
|
}
|
|
3038
|
-
.sd-find-replace__btn[data-v-
|
|
3038
|
+
.sd-find-replace__btn[data-v-41f37c29]:disabled {
|
|
3039
3039
|
opacity: var(--sd-ui-find-replace-btn-disabled-opacity, 0.4);
|
|
3040
3040
|
cursor: not-allowed;
|
|
3041
3041
|
}
|
|
3042
|
-
.sd-find-replace__btn--icon[data-v-
|
|
3042
|
+
.sd-find-replace__btn--icon[data-v-41f37c29] {
|
|
3043
3043
|
width: var(--sd-ui-find-replace-btn-size, 28px);
|
|
3044
3044
|
height: var(--sd-ui-find-replace-btn-size, 28px);
|
|
3045
3045
|
border-radius: var(--sd-ui-find-replace-btn-radius, 6px);
|
|
3046
3046
|
color: var(--sd-ui-find-replace-btn-color, #4b5563);
|
|
3047
3047
|
}
|
|
3048
|
-
.sd-find-replace__btn--icon[data-v-
|
|
3048
|
+
.sd-find-replace__btn--icon[data-v-41f37c29]:hover:not(:disabled) {
|
|
3049
3049
|
background: var(--sd-ui-find-replace-btn-hover-bg, color-mix(in srgb, currentColor 8%, transparent));
|
|
3050
3050
|
}
|
|
3051
|
-
.sd-find-replace__btn--expander[data-v-
|
|
3051
|
+
.sd-find-replace__btn--expander[data-v-41f37c29] {
|
|
3052
3052
|
width: var(--sd-ui-find-replace-expander-size, 24px);
|
|
3053
3053
|
height: var(--sd-ui-find-replace-expander-size, 24px);
|
|
3054
3054
|
border-radius: var(--sd-ui-find-replace-btn-radius, 6px);
|
|
3055
3055
|
color: var(--sd-ui-find-replace-count-color, #6b7280);
|
|
3056
3056
|
flex-shrink: 0;
|
|
3057
3057
|
}
|
|
3058
|
-
.sd-find-replace__btn--expander[data-v-
|
|
3058
|
+
.sd-find-replace__btn--expander[data-v-41f37c29]:hover:not(:disabled) {
|
|
3059
3059
|
background: var(--sd-ui-find-replace-btn-hover-bg, color-mix(in srgb, currentColor 8%, transparent));
|
|
3060
3060
|
color: var(--sd-ui-find-replace-btn-color, var(--sd-ui-text));
|
|
3061
3061
|
}
|
|
3062
|
-
.sd-find-replace__btn--expander svg[data-v-
|
|
3062
|
+
.sd-find-replace__btn--expander svg[data-v-41f37c29] {
|
|
3063
3063
|
transition: transform 0.16s ease-out;
|
|
3064
3064
|
}
|
|
3065
|
-
.sd-find-replace__btn--expander-open svg[data-v-
|
|
3065
|
+
.sd-find-replace__btn--expander-open svg[data-v-41f37c29] {
|
|
3066
3066
|
transform: rotate(90deg);
|
|
3067
3067
|
}
|
|
3068
3068
|
|
|
3069
3069
|
/* Query-scoped toggles inside the field (match case / diacritics / regex).
|
|
3070
3070
|
Kept compact so they never crowd the query text. */
|
|
3071
|
-
.sd-find-replace__btn--toggle[data-v-
|
|
3071
|
+
.sd-find-replace__btn--toggle[data-v-41f37c29] {
|
|
3072
3072
|
height: 20px;
|
|
3073
3073
|
min-width: 20px;
|
|
3074
3074
|
padding: var(--sd-ui-find-replace-btn-toggle-padding, 0 3px);
|
|
@@ -3079,15 +3079,15 @@ img[data-v-c95b2073] {
|
|
|
3079
3079
|
color: var(--sd-ui-find-replace-count-color, #6b7280);
|
|
3080
3080
|
flex-shrink: 0;
|
|
3081
3081
|
}
|
|
3082
|
-
.sd-find-replace__btn--toggle + .sd-find-replace__btn--toggle[data-v-
|
|
3082
|
+
.sd-find-replace__btn--toggle + .sd-find-replace__btn--toggle[data-v-41f37c29] {
|
|
3083
3083
|
margin-left: 1px;
|
|
3084
3084
|
}
|
|
3085
|
-
.sd-find-replace__btn--toggle[data-v-
|
|
3085
|
+
.sd-find-replace__btn--toggle[data-v-41f37c29]:hover:not(:disabled) {
|
|
3086
3086
|
background: var(--sd-ui-find-replace-btn-hover-bg, color-mix(in srgb, currentColor 8%, transparent));
|
|
3087
3087
|
color: var(--sd-ui-find-replace-btn-color, var(--sd-ui-text));
|
|
3088
3088
|
}
|
|
3089
|
-
.sd-find-replace__btn--active[data-v-
|
|
3090
|
-
.sd-find-replace__btn--active[data-v-
|
|
3089
|
+
.sd-find-replace__btn--active[data-v-41f37c29],
|
|
3090
|
+
.sd-find-replace__btn--active[data-v-41f37c29]:hover:not(:disabled) {
|
|
3091
3091
|
background: var(--sd-ui-find-replace-toggle-active-bg, color-mix(in srgb, var(--sd-ui-action) 12%, transparent));
|
|
3092
3092
|
border-color: var(
|
|
3093
3093
|
--sd-ui-find-replace-toggle-active-border,
|
|
@@ -3095,7 +3095,7 @@ img[data-v-c95b2073] {
|
|
|
3095
3095
|
);
|
|
3096
3096
|
color: var(--sd-ui-find-replace-toggle-active-color, var(--sd-ui-action));
|
|
3097
3097
|
}
|
|
3098
|
-
.sd-find-replace__btn--action[data-v-
|
|
3098
|
+
.sd-find-replace__btn--action[data-v-41f37c29] {
|
|
3099
3099
|
height: var(--sd-ui-find-replace-btn-size, 28px);
|
|
3100
3100
|
padding: var(--sd-ui-find-replace-action-btn-padding, 0 12px);
|
|
3101
3101
|
font-size: var(--sd-ui-find-replace-count-font-size, 13px);
|
|
@@ -3104,13 +3104,13 @@ img[data-v-c95b2073] {
|
|
|
3104
3104
|
background: var(--sd-ui-find-replace-action-btn-bg, var(--sd-ui-action));
|
|
3105
3105
|
color: var(--sd-ui-find-replace-action-btn-color, #fff);
|
|
3106
3106
|
}
|
|
3107
|
-
.sd-find-replace__btn--action[data-v-
|
|
3107
|
+
.sd-find-replace__btn--action[data-v-41f37c29]:hover:not(:disabled) {
|
|
3108
3108
|
background: var(
|
|
3109
3109
|
--sd-ui-find-replace-action-btn-hover-bg,
|
|
3110
3110
|
color-mix(in srgb, var(--sd-ui-find-replace-action-btn-bg, var(--sd-ui-action)) 88%, #000)
|
|
3111
3111
|
);
|
|
3112
3112
|
}
|
|
3113
|
-
.sd-find-replace__error[data-v-
|
|
3113
|
+
.sd-find-replace__error[data-v-41f37c29] {
|
|
3114
3114
|
display: flex;
|
|
3115
3115
|
align-items: center;
|
|
3116
3116
|
gap: var(--sd-ui-find-replace-gap, 6px);
|
|
@@ -3118,12 +3118,12 @@ img[data-v-c95b2073] {
|
|
|
3118
3118
|
font-size: var(--sd-ui-find-replace-error-font-size, 12px);
|
|
3119
3119
|
letter-spacing: 0.01em;
|
|
3120
3120
|
padding: var(--sd-ui-find-replace-error-padding, 0 2px);
|
|
3121
|
-
animation: sd-find-replace-error-in-
|
|
3121
|
+
animation: sd-find-replace-error-in-41f37c29 0.16s ease-out;
|
|
3122
3122
|
}
|
|
3123
|
-
.sd-find-replace__error-text[data-v-
|
|
3123
|
+
.sd-find-replace__error-text[data-v-41f37c29] {
|
|
3124
3124
|
padding-left: 4px;
|
|
3125
3125
|
}
|
|
3126
|
-
@keyframes sd-find-replace-error-in-
|
|
3126
|
+
@keyframes sd-find-replace-error-in-41f37c29 {
|
|
3127
3127
|
from {
|
|
3128
3128
|
opacity: 0;
|
|
3129
3129
|
transform: translateY(-2px);
|
|
@@ -3134,15 +3134,15 @@ to {
|
|
|
3134
3134
|
}
|
|
3135
3135
|
}
|
|
3136
3136
|
@media (prefers-reduced-motion: reduce) {
|
|
3137
|
-
.sd-find-replace__field[data-v-
|
|
3138
|
-
.sd-find-replace__btn[data-v-
|
|
3139
|
-
.sd-find-replace__btn--expander svg[data-v-
|
|
3137
|
+
.sd-find-replace__field[data-v-41f37c29],
|
|
3138
|
+
.sd-find-replace__btn[data-v-41f37c29],
|
|
3139
|
+
.sd-find-replace__btn--expander svg[data-v-41f37c29] {
|
|
3140
3140
|
transition: none;
|
|
3141
3141
|
}
|
|
3142
|
-
.sd-find-replace__btn[data-v-
|
|
3142
|
+
.sd-find-replace__btn[data-v-41f37c29]:active:not(:disabled) {
|
|
3143
3143
|
transform: none;
|
|
3144
3144
|
}
|
|
3145
|
-
.sd-find-replace__error[data-v-
|
|
3145
|
+
.sd-find-replace__error[data-v-41f37c29] {
|
|
3146
3146
|
animation: none;
|
|
3147
3147
|
}
|
|
3148
3148
|
}
|
package/dist/style.layered.css
CHANGED
|
@@ -2921,7 +2921,7 @@ img[data-v-c95b2073] {
|
|
|
2921
2921
|
background: var(--sd-ui-password-prompt-submit-hover-bg, var(--sd-ui-action-hover));
|
|
2922
2922
|
}
|
|
2923
2923
|
|
|
2924
|
-
.sd-find-replace[data-v-
|
|
2924
|
+
.sd-find-replace[data-v-41f37c29] {
|
|
2925
2925
|
display: flex;
|
|
2926
2926
|
flex-direction: column;
|
|
2927
2927
|
gap: var(--sd-ui-find-replace-gap, 6px);
|
|
@@ -2929,7 +2929,7 @@ img[data-v-c95b2073] {
|
|
|
2929
2929
|
so it needs room to breathe before the query starts truncating. */
|
|
2930
2930
|
min-width: var(--sd-ui-find-replace-min-width, 380px);
|
|
2931
2931
|
}
|
|
2932
|
-
.sd-find-replace__row[data-v-
|
|
2932
|
+
.sd-find-replace__row[data-v-41f37c29] {
|
|
2933
2933
|
display: flex;
|
|
2934
2934
|
align-items: center;
|
|
2935
2935
|
gap: var(--sd-ui-find-replace-gap, 6px);
|
|
@@ -2937,13 +2937,13 @@ img[data-v-c95b2073] {
|
|
|
2937
2937
|
|
|
2938
2938
|
/* Mirrors the expander's footprint so the replace field and the error line
|
|
2939
2939
|
align with the find field. */
|
|
2940
|
-
.sd-find-replace__row-indent[data-v-
|
|
2940
|
+
.sd-find-replace__row-indent[data-v-41f37c29] {
|
|
2941
2941
|
flex: 0 0 var(--sd-ui-find-replace-expander-size, 24px);
|
|
2942
2942
|
}
|
|
2943
2943
|
|
|
2944
2944
|
/* The field carries the border; the input inside is naked so the count and
|
|
2945
2945
|
the query toggles sit visually inside the control. */
|
|
2946
|
-
.sd-find-replace__field[data-v-
|
|
2946
|
+
.sd-find-replace__field[data-v-41f37c29] {
|
|
2947
2947
|
flex: 1;
|
|
2948
2948
|
min-width: 0;
|
|
2949
2949
|
display: flex;
|
|
@@ -2958,24 +2958,24 @@ img[data-v-c95b2073] {
|
|
|
2958
2958
|
border-color 0.12s ease-out,
|
|
2959
2959
|
box-shadow 0.12s ease-out;
|
|
2960
2960
|
}
|
|
2961
|
-
.sd-find-replace__field[data-v-
|
|
2961
|
+
.sd-find-replace__field[data-v-41f37c29]:focus-within {
|
|
2962
2962
|
border-color: var(--sd-ui-find-replace-input-focus-border, var(--sd-ui-action));
|
|
2963
2963
|
box-shadow: 0 0 0 3px
|
|
2964
2964
|
var(--sd-ui-find-replace-input-focus-ring, color-mix(in srgb, var(--sd-ui-action) 15%, transparent));
|
|
2965
2965
|
}
|
|
2966
|
-
.sd-find-replace__field--error[data-v-
|
|
2967
|
-
.sd-find-replace__field--error[data-v-
|
|
2966
|
+
.sd-find-replace__field--error[data-v-41f37c29],
|
|
2967
|
+
.sd-find-replace__field--error[data-v-41f37c29]:focus-within {
|
|
2968
2968
|
border-color: var(--sd-ui-find-replace-error-color, #b3261e);
|
|
2969
2969
|
}
|
|
2970
|
-
.sd-find-replace__field--error[data-v-
|
|
2970
|
+
.sd-find-replace__field--error[data-v-41f37c29]:focus-within {
|
|
2971
2971
|
box-shadow: 0 0 0 3px color-mix(in srgb, var(--sd-ui-find-replace-error-color, #b3261e) 12%, transparent);
|
|
2972
2972
|
}
|
|
2973
|
-
.sd-find-replace__search-icon[data-v-
|
|
2973
|
+
.sd-find-replace__search-icon[data-v-41f37c29] {
|
|
2974
2974
|
color: var(--sd-ui-find-replace-search-icon-color, #9ca3af);
|
|
2975
2975
|
flex-shrink: 0;
|
|
2976
2976
|
margin-right: 6px;
|
|
2977
2977
|
}
|
|
2978
|
-
.sd-find-replace__input[data-v-
|
|
2978
|
+
.sd-find-replace__input[data-v-41f37c29] {
|
|
2979
2979
|
flex: 1;
|
|
2980
2980
|
min-width: 0;
|
|
2981
2981
|
height: 100%;
|
|
@@ -2987,7 +2987,7 @@ img[data-v-c95b2073] {
|
|
|
2987
2987
|
border: none;
|
|
2988
2988
|
outline: none;
|
|
2989
2989
|
}
|
|
2990
|
-
.sd-find-replace__count[data-v-
|
|
2990
|
+
.sd-find-replace__count[data-v-41f37c29] {
|
|
2991
2991
|
font-size: var(--sd-ui-find-replace-count-font-size, 12px);
|
|
2992
2992
|
color: var(--sd-ui-find-replace-count-color, #6b7280);
|
|
2993
2993
|
pointer-events: none;
|
|
@@ -2997,23 +2997,23 @@ img[data-v-c95b2073] {
|
|
|
2997
2997
|
padding: 0 5px 0 4px;
|
|
2998
2998
|
flex-shrink: 0;
|
|
2999
2999
|
}
|
|
3000
|
-
.sd-find-replace__divider[data-v-
|
|
3000
|
+
.sd-find-replace__divider[data-v-41f37c29] {
|
|
3001
3001
|
width: 1px;
|
|
3002
3002
|
height: 16px;
|
|
3003
3003
|
margin: 0 4px;
|
|
3004
3004
|
background: var(--sd-ui-find-replace-input-border, var(--sd-ui-border));
|
|
3005
3005
|
flex-shrink: 0;
|
|
3006
3006
|
}
|
|
3007
|
-
.sd-find-replace__nav[data-v-
|
|
3007
|
+
.sd-find-replace__nav[data-v-41f37c29] {
|
|
3008
3008
|
display: flex;
|
|
3009
3009
|
align-items: center;
|
|
3010
3010
|
gap: var(--sd-ui-find-replace-nav-gap, 2px);
|
|
3011
3011
|
flex-shrink: 0;
|
|
3012
3012
|
}
|
|
3013
|
-
.sd-find-replace__nav--actions[data-v-
|
|
3013
|
+
.sd-find-replace__nav--actions[data-v-41f37c29] {
|
|
3014
3014
|
gap: var(--sd-ui-find-replace-gap, 6px);
|
|
3015
3015
|
}
|
|
3016
|
-
.sd-find-replace__btn[data-v-
|
|
3016
|
+
.sd-find-replace__btn[data-v-41f37c29] {
|
|
3017
3017
|
display: inline-flex;
|
|
3018
3018
|
align-items: center;
|
|
3019
3019
|
justify-content: center;
|
|
@@ -3028,47 +3028,47 @@ img[data-v-c95b2073] {
|
|
|
3028
3028
|
border-color 0.12s ease-out,
|
|
3029
3029
|
transform 90ms ease-out;
|
|
3030
3030
|
}
|
|
3031
|
-
.sd-find-replace__btn[data-v-
|
|
3031
|
+
.sd-find-replace__btn[data-v-41f37c29]:active:not(:disabled) {
|
|
3032
3032
|
transform: scale(0.96);
|
|
3033
3033
|
}
|
|
3034
|
-
.sd-find-replace__btn[data-v-
|
|
3034
|
+
.sd-find-replace__btn[data-v-41f37c29]:focus-visible {
|
|
3035
3035
|
outline: 2px solid var(--sd-ui-action);
|
|
3036
3036
|
outline-offset: 1px;
|
|
3037
3037
|
}
|
|
3038
|
-
.sd-find-replace__btn[data-v-
|
|
3038
|
+
.sd-find-replace__btn[data-v-41f37c29]:disabled {
|
|
3039
3039
|
opacity: var(--sd-ui-find-replace-btn-disabled-opacity, 0.4);
|
|
3040
3040
|
cursor: not-allowed;
|
|
3041
3041
|
}
|
|
3042
|
-
.sd-find-replace__btn--icon[data-v-
|
|
3042
|
+
.sd-find-replace__btn--icon[data-v-41f37c29] {
|
|
3043
3043
|
width: var(--sd-ui-find-replace-btn-size, 28px);
|
|
3044
3044
|
height: var(--sd-ui-find-replace-btn-size, 28px);
|
|
3045
3045
|
border-radius: var(--sd-ui-find-replace-btn-radius, 6px);
|
|
3046
3046
|
color: var(--sd-ui-find-replace-btn-color, #4b5563);
|
|
3047
3047
|
}
|
|
3048
|
-
.sd-find-replace__btn--icon[data-v-
|
|
3048
|
+
.sd-find-replace__btn--icon[data-v-41f37c29]:hover:not(:disabled) {
|
|
3049
3049
|
background: var(--sd-ui-find-replace-btn-hover-bg, color-mix(in srgb, currentColor 8%, transparent));
|
|
3050
3050
|
}
|
|
3051
|
-
.sd-find-replace__btn--expander[data-v-
|
|
3051
|
+
.sd-find-replace__btn--expander[data-v-41f37c29] {
|
|
3052
3052
|
width: var(--sd-ui-find-replace-expander-size, 24px);
|
|
3053
3053
|
height: var(--sd-ui-find-replace-expander-size, 24px);
|
|
3054
3054
|
border-radius: var(--sd-ui-find-replace-btn-radius, 6px);
|
|
3055
3055
|
color: var(--sd-ui-find-replace-count-color, #6b7280);
|
|
3056
3056
|
flex-shrink: 0;
|
|
3057
3057
|
}
|
|
3058
|
-
.sd-find-replace__btn--expander[data-v-
|
|
3058
|
+
.sd-find-replace__btn--expander[data-v-41f37c29]:hover:not(:disabled) {
|
|
3059
3059
|
background: var(--sd-ui-find-replace-btn-hover-bg, color-mix(in srgb, currentColor 8%, transparent));
|
|
3060
3060
|
color: var(--sd-ui-find-replace-btn-color, var(--sd-ui-text));
|
|
3061
3061
|
}
|
|
3062
|
-
.sd-find-replace__btn--expander svg[data-v-
|
|
3062
|
+
.sd-find-replace__btn--expander svg[data-v-41f37c29] {
|
|
3063
3063
|
transition: transform 0.16s ease-out;
|
|
3064
3064
|
}
|
|
3065
|
-
.sd-find-replace__btn--expander-open svg[data-v-
|
|
3065
|
+
.sd-find-replace__btn--expander-open svg[data-v-41f37c29] {
|
|
3066
3066
|
transform: rotate(90deg);
|
|
3067
3067
|
}
|
|
3068
3068
|
|
|
3069
3069
|
/* Query-scoped toggles inside the field (match case / diacritics / regex).
|
|
3070
3070
|
Kept compact so they never crowd the query text. */
|
|
3071
|
-
.sd-find-replace__btn--toggle[data-v-
|
|
3071
|
+
.sd-find-replace__btn--toggle[data-v-41f37c29] {
|
|
3072
3072
|
height: 20px;
|
|
3073
3073
|
min-width: 20px;
|
|
3074
3074
|
padding: var(--sd-ui-find-replace-btn-toggle-padding, 0 3px);
|
|
@@ -3079,15 +3079,15 @@ img[data-v-c95b2073] {
|
|
|
3079
3079
|
color: var(--sd-ui-find-replace-count-color, #6b7280);
|
|
3080
3080
|
flex-shrink: 0;
|
|
3081
3081
|
}
|
|
3082
|
-
.sd-find-replace__btn--toggle + .sd-find-replace__btn--toggle[data-v-
|
|
3082
|
+
.sd-find-replace__btn--toggle + .sd-find-replace__btn--toggle[data-v-41f37c29] {
|
|
3083
3083
|
margin-left: 1px;
|
|
3084
3084
|
}
|
|
3085
|
-
.sd-find-replace__btn--toggle[data-v-
|
|
3085
|
+
.sd-find-replace__btn--toggle[data-v-41f37c29]:hover:not(:disabled) {
|
|
3086
3086
|
background: var(--sd-ui-find-replace-btn-hover-bg, color-mix(in srgb, currentColor 8%, transparent));
|
|
3087
3087
|
color: var(--sd-ui-find-replace-btn-color, var(--sd-ui-text));
|
|
3088
3088
|
}
|
|
3089
|
-
.sd-find-replace__btn--active[data-v-
|
|
3090
|
-
.sd-find-replace__btn--active[data-v-
|
|
3089
|
+
.sd-find-replace__btn--active[data-v-41f37c29],
|
|
3090
|
+
.sd-find-replace__btn--active[data-v-41f37c29]:hover:not(:disabled) {
|
|
3091
3091
|
background: var(--sd-ui-find-replace-toggle-active-bg, color-mix(in srgb, var(--sd-ui-action) 12%, transparent));
|
|
3092
3092
|
border-color: var(
|
|
3093
3093
|
--sd-ui-find-replace-toggle-active-border,
|
|
@@ -3095,7 +3095,7 @@ img[data-v-c95b2073] {
|
|
|
3095
3095
|
);
|
|
3096
3096
|
color: var(--sd-ui-find-replace-toggle-active-color, var(--sd-ui-action));
|
|
3097
3097
|
}
|
|
3098
|
-
.sd-find-replace__btn--action[data-v-
|
|
3098
|
+
.sd-find-replace__btn--action[data-v-41f37c29] {
|
|
3099
3099
|
height: var(--sd-ui-find-replace-btn-size, 28px);
|
|
3100
3100
|
padding: var(--sd-ui-find-replace-action-btn-padding, 0 12px);
|
|
3101
3101
|
font-size: var(--sd-ui-find-replace-count-font-size, 13px);
|
|
@@ -3104,13 +3104,13 @@ img[data-v-c95b2073] {
|
|
|
3104
3104
|
background: var(--sd-ui-find-replace-action-btn-bg, var(--sd-ui-action));
|
|
3105
3105
|
color: var(--sd-ui-find-replace-action-btn-color, #fff);
|
|
3106
3106
|
}
|
|
3107
|
-
.sd-find-replace__btn--action[data-v-
|
|
3107
|
+
.sd-find-replace__btn--action[data-v-41f37c29]:hover:not(:disabled) {
|
|
3108
3108
|
background: var(
|
|
3109
3109
|
--sd-ui-find-replace-action-btn-hover-bg,
|
|
3110
3110
|
color-mix(in srgb, var(--sd-ui-find-replace-action-btn-bg, var(--sd-ui-action)) 88%, #000)
|
|
3111
3111
|
);
|
|
3112
3112
|
}
|
|
3113
|
-
.sd-find-replace__error[data-v-
|
|
3113
|
+
.sd-find-replace__error[data-v-41f37c29] {
|
|
3114
3114
|
display: flex;
|
|
3115
3115
|
align-items: center;
|
|
3116
3116
|
gap: var(--sd-ui-find-replace-gap, 6px);
|
|
@@ -3118,12 +3118,12 @@ img[data-v-c95b2073] {
|
|
|
3118
3118
|
font-size: var(--sd-ui-find-replace-error-font-size, 12px);
|
|
3119
3119
|
letter-spacing: 0.01em;
|
|
3120
3120
|
padding: var(--sd-ui-find-replace-error-padding, 0 2px);
|
|
3121
|
-
animation: sd-find-replace-error-in-
|
|
3121
|
+
animation: sd-find-replace-error-in-41f37c29 0.16s ease-out;
|
|
3122
3122
|
}
|
|
3123
|
-
.sd-find-replace__error-text[data-v-
|
|
3123
|
+
.sd-find-replace__error-text[data-v-41f37c29] {
|
|
3124
3124
|
padding-left: 4px;
|
|
3125
3125
|
}
|
|
3126
|
-
@keyframes sd-find-replace-error-in-
|
|
3126
|
+
@keyframes sd-find-replace-error-in-41f37c29 {
|
|
3127
3127
|
from {
|
|
3128
3128
|
opacity: 0;
|
|
3129
3129
|
transform: translateY(-2px);
|
|
@@ -3134,15 +3134,15 @@ to {
|
|
|
3134
3134
|
}
|
|
3135
3135
|
}
|
|
3136
3136
|
@media (prefers-reduced-motion: reduce) {
|
|
3137
|
-
.sd-find-replace__field[data-v-
|
|
3138
|
-
.sd-find-replace__btn[data-v-
|
|
3139
|
-
.sd-find-replace__btn--expander svg[data-v-
|
|
3137
|
+
.sd-find-replace__field[data-v-41f37c29],
|
|
3138
|
+
.sd-find-replace__btn[data-v-41f37c29],
|
|
3139
|
+
.sd-find-replace__btn--expander svg[data-v-41f37c29] {
|
|
3140
3140
|
transition: none;
|
|
3141
3141
|
}
|
|
3142
|
-
.sd-find-replace__btn[data-v-
|
|
3142
|
+
.sd-find-replace__btn[data-v-41f37c29]:active:not(:disabled) {
|
|
3143
3143
|
transform: none;
|
|
3144
3144
|
}
|
|
3145
|
-
.sd-find-replace__error[data-v-
|
|
3145
|
+
.sd-find-replace__error[data-v-41f37c29] {
|
|
3146
3146
|
animation: none;
|
|
3147
3147
|
}
|
|
3148
3148
|
}
|
|
@@ -843,6 +843,97 @@ export type LinkPopoverResolution = {
|
|
|
843
843
|
* default popover.
|
|
844
844
|
*/
|
|
845
845
|
export type LinkPopoverResolver = (ctx: LinkPopoverContext) => LinkPopoverResolution | null | undefined;
|
|
846
|
+
/**
|
|
847
|
+
* Canonical presentation settings for the built-in comments UI.
|
|
848
|
+
*
|
|
849
|
+
* Presentation only, and deliberately not the whole of `modules.comments`.
|
|
850
|
+
* That block also carries `readOnly` and `allowResolve`, which resolve through
|
|
851
|
+
* `interaction.comments`, and `permissionResolver`, which is read off
|
|
852
|
+
* `modules.comments` or the top-level `Config`. All three are stripped from
|
|
853
|
+
* this bag: policy outlives the built-in UI, so an application drawing its own
|
|
854
|
+
* comment surface still has to honor it. See the fields themselves, which are
|
|
855
|
+
* rejected by name with the spelling that applies to each.
|
|
856
|
+
*
|
|
857
|
+
* Open on purpose, for the same reason `modules.comments` is: the runtime
|
|
858
|
+
* merges this bag over that block and spreads the result through the comments
|
|
859
|
+
* store, which accepts pass-through keys. Closing it would reject working
|
|
860
|
+
* configurations, which is a worse failure than the missing autocomplete it
|
|
861
|
+
* would buy. The named fields are the ones the shell reads.
|
|
862
|
+
*/
|
|
863
|
+
export type CommentsConfig = {
|
|
864
|
+
/** How comments present themselves as the surface narrows. */
|
|
865
|
+
displayMode?: 'auto' | 'sidebar' | 'inline';
|
|
866
|
+
/** CSS selector for an explicit width measurement target in `auto` mode. */
|
|
867
|
+
compactMeasurementSelector?: string;
|
|
868
|
+
/** Fixed compact-mode breakpoint override, in pixels. */
|
|
869
|
+
compactBreakpointPx?: number;
|
|
870
|
+
/** Comment highlight colors (internal/external and active overrides). */
|
|
871
|
+
highlightColors?: {
|
|
872
|
+
/** Base highlight color for internal comments. */
|
|
873
|
+
internal?: string;
|
|
874
|
+
/** Base highlight color for external comments. */
|
|
875
|
+
external?: string;
|
|
876
|
+
/** Active highlight color override for internal comments. */
|
|
877
|
+
activeInternal?: string;
|
|
878
|
+
/** Active highlight color override for external comments. */
|
|
879
|
+
activeExternal?: string;
|
|
880
|
+
};
|
|
881
|
+
/** Comment highlight opacity, active and inactive. */
|
|
882
|
+
highlightOpacity?: {
|
|
883
|
+
/** Opacity for the active comment highlight. */
|
|
884
|
+
active?: number;
|
|
885
|
+
/** Opacity for inactive comment highlights. */
|
|
886
|
+
inactive?: number;
|
|
887
|
+
};
|
|
888
|
+
/** Highlight color used while hovering a comment. */
|
|
889
|
+
highlightHoverColor?: string;
|
|
890
|
+
/** Tracked-change highlight colors. */
|
|
891
|
+
trackChangeHighlightColors?: TrackChangeHighlightColors;
|
|
892
|
+
/** Active tracked-change highlight colors (defaults to the above). */
|
|
893
|
+
trackChangeActiveHighlightColors?: TrackChangeHighlightColors;
|
|
894
|
+
/**
|
|
895
|
+
* Policy, not presentation. `normalizeUiConfig` strips all three from this
|
|
896
|
+
* bag before anything reads it, so accepting them here would advertise a
|
|
897
|
+
* setting that is silently discarded.
|
|
898
|
+
*
|
|
899
|
+
* `readOnly` and `allowResolve` belong on `interaction.comments`, where they
|
|
900
|
+
* resolve and keep applying to an application drawing its own comment
|
|
901
|
+
* surface.
|
|
902
|
+
*
|
|
903
|
+
* `permissionResolver` is collaboration wiring rather than policy, and has
|
|
904
|
+
* no `ui` spelling at all. `pickResolver` takes the first of
|
|
905
|
+
* `modules.comments.permissionResolver` and the top-level
|
|
906
|
+
* `Config.permissionResolver`, in that order, so either works and the
|
|
907
|
+
* comments-scoped one wins.
|
|
908
|
+
*/
|
|
909
|
+
readOnly?: never;
|
|
910
|
+
allowResolve?: never;
|
|
911
|
+
permissionResolver?: never;
|
|
912
|
+
} & Record<string, unknown>;
|
|
913
|
+
/** Border and background colors for one tracked-change highlight state. */
|
|
914
|
+
export interface TrackChangeHighlightColors {
|
|
915
|
+
/** Border color for inserted text. */
|
|
916
|
+
insertBorder?: string;
|
|
917
|
+
/** Background color for inserted text. */
|
|
918
|
+
insertBackground?: string;
|
|
919
|
+
/** Border color for deleted text. */
|
|
920
|
+
deleteBorder?: string;
|
|
921
|
+
/** Background color for deleted text. */
|
|
922
|
+
deleteBackground?: string;
|
|
923
|
+
/** Border color for a format change. */
|
|
924
|
+
formatBorder?: string;
|
|
925
|
+
}
|
|
926
|
+
/**
|
|
927
|
+
* Canonical configuration for the chrome drawn around content controls.
|
|
928
|
+
*
|
|
929
|
+
* `chrome` is the whole option bag this surface has. `'default'` and `'none'`
|
|
930
|
+
* are the only values the painter and the v2 host accept; anything else is
|
|
931
|
+
* coerced back to `'default'`.
|
|
932
|
+
*/
|
|
933
|
+
export interface ContentControlsConfig {
|
|
934
|
+
/** Whether SuperDoc draws its own chrome around each content control. */
|
|
935
|
+
chrome?: 'default' | 'none';
|
|
936
|
+
}
|
|
846
937
|
/**
|
|
847
938
|
* Canonical configuration for the built-in link popover.
|
|
848
939
|
*
|
|
@@ -1664,6 +1755,17 @@ export interface FindReplaceConfig {
|
|
|
1664
1755
|
width?: number | string;
|
|
1665
1756
|
maxWidth?: number | string;
|
|
1666
1757
|
maxHeight?: number | string;
|
|
1758
|
+
/**
|
|
1759
|
+
* Focus the find input when the surface opens. Defaults to `true`; set
|
|
1760
|
+
* `false` to leave focus wherever the user had it.
|
|
1761
|
+
*
|
|
1762
|
+
* Honored but undeclared until #1094: `useFindReplace` spreads this whole
|
|
1763
|
+
* bag into the surface request, and `SurfaceManager` applies it last, over
|
|
1764
|
+
* the `modules.surfaces.floating` defaults.
|
|
1765
|
+
*/
|
|
1766
|
+
autoFocus?: boolean;
|
|
1767
|
+
/** Close the surface on a pointer press outside it. Defaults to `false`. */
|
|
1768
|
+
closeOnOutsidePointerDown?: boolean;
|
|
1667
1769
|
};
|
|
1668
1770
|
}
|
|
1669
1771
|
/**
|
|
@@ -2668,7 +2770,7 @@ export interface UIConfig {
|
|
|
2668
2770
|
showTableOfContentsButton?: boolean;
|
|
2669
2771
|
};
|
|
2670
2772
|
/** Built-in comments UI. Enabled by default. */
|
|
2671
|
-
comments?: boolean |
|
|
2773
|
+
comments?: boolean | CommentsConfig;
|
|
2672
2774
|
/** Built-in right-click and slash context menu. Enabled by default. */
|
|
2673
2775
|
contextMenu?: boolean | ContextMenuConfig;
|
|
2674
2776
|
/**
|
|
@@ -2676,7 +2778,7 @@ export interface UIConfig {
|
|
|
2676
2778
|
* SuperDoc intercept Cmd+F / Ctrl+F; `editor.ui.search` stays available to
|
|
2677
2779
|
* custom UI either way.
|
|
2678
2780
|
*/
|
|
2679
|
-
search?: boolean |
|
|
2781
|
+
search?: boolean | FindReplaceConfig;
|
|
2680
2782
|
/**
|
|
2681
2783
|
* Built-in popover shown when a link is clicked. It renders by default;
|
|
2682
2784
|
* pass `false` (or `ui: false`) to suppress it. Supplying a
|
|
@@ -2689,7 +2791,7 @@ export interface UIConfig {
|
|
|
2689
2791
|
container?: string | HTMLElement;
|
|
2690
2792
|
};
|
|
2691
2793
|
/** Built-in chrome drawn around content controls. Enabled by default. */
|
|
2692
|
-
contentControls?: boolean |
|
|
2794
|
+
contentControls?: boolean | ContentControlsConfig;
|
|
2693
2795
|
}
|
|
2694
2796
|
/**
|
|
2695
2797
|
* What the user is permitted to do, as distinct from what SuperDoc draws.
|