superdoc 2.4.0-next.7 → 2.4.0-next.9

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.
@@ -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-fed15bd3"]]);
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-fed15bd3"]]);
342
+ }, [["__scopeId", "data-v-41f37c29"]]);
344
343
  export { FindReplaceSurface_default as default };
@@ -8229,10 +8229,14 @@ function createSuperDocUI(options) {
8229
8229
  const op = commentsApi?.create;
8230
8230
  if (typeof op !== "function") return failedReceipt("comments.create is unavailable.");
8231
8231
  const fallback = failedReceipt("comments.create failed.");
8232
- return safeCall(() => settleWorkflowReceipt(op.call(commentsApi, {
8233
- target: capture.target ?? capture.selectionTarget,
8234
- text: input.text
8235
- }), fallback), fallback);
8232
+ return safeCall(() => {
8233
+ const target = capture && typeof capture === "object" ? capture.target ?? capture.selectionTarget : null;
8234
+ if (target == null) return failedReceipt("A range selection is required to comment.", "NO_SELECTION");
8235
+ return settleWorkflowReceipt(op.call(commentsApi, {
8236
+ target,
8237
+ text: input.text
8238
+ }), fallback);
8239
+ }, fallback);
8236
8240
  },
8237
8241
  createFromSelection: (input) => {
8238
8242
  const refusal = commentWriteRefusal();
@@ -8264,6 +8268,18 @@ function createSuperDocUI(options) {
8264
8268
  text: input.text
8265
8269
  }), fallback), fallback);
8266
8270
  },
8271
+ edit: (commentId, input) => {
8272
+ const refusal = commentWriteRefusal();
8273
+ if (refusal) return refusal;
8274
+ const commentsApi = getDoc()?.comments;
8275
+ const op = commentsApi?.patch;
8276
+ if (typeof op !== "function") return failedReceipt("comments.patch is unavailable.");
8277
+ const fallback = failedReceipt("comments.patch failed.");
8278
+ return safeCall(() => settleWorkflowReceipt(op.call(commentsApi, {
8279
+ commentId,
8280
+ text: input.text
8281
+ }), fallback), fallback);
8282
+ },
8267
8283
  resolve: (commentId) => patchCommentStatus(commentId, "resolved"),
8268
8284
  reopen: (commentId) => patchCommentStatus(commentId, "active"),
8269
8285
  delete: (commentId) => {
@@ -8007,10 +8007,14 @@ function createSuperDocUI(options) {
8007
8007
  const op = commentsApi?.create;
8008
8008
  if (typeof op !== "function") return failedReceipt("comments.create is unavailable.");
8009
8009
  const fallback = failedReceipt("comments.create failed.");
8010
- return safeCall(() => settleWorkflowReceipt(op.call(commentsApi, {
8011
- target: capture.target ?? capture.selectionTarget,
8012
- text: input.text
8013
- }), fallback), fallback);
8010
+ return safeCall(() => {
8011
+ const target = capture && typeof capture === "object" ? capture.target ?? capture.selectionTarget : null;
8012
+ if (target == null) return failedReceipt("A range selection is required to comment.", "NO_SELECTION");
8013
+ return settleWorkflowReceipt(op.call(commentsApi, {
8014
+ target,
8015
+ text: input.text
8016
+ }), fallback);
8017
+ }, fallback);
8014
8018
  },
8015
8019
  createFromSelection: (input) => {
8016
8020
  const refusal = commentWriteRefusal();
@@ -8042,6 +8046,18 @@ function createSuperDocUI(options) {
8042
8046
  text: input.text
8043
8047
  }), fallback), fallback);
8044
8048
  },
8049
+ edit: (commentId, input) => {
8050
+ const refusal = commentWriteRefusal();
8051
+ if (refusal) return refusal;
8052
+ const commentsApi = getDoc()?.comments;
8053
+ const op = commentsApi?.patch;
8054
+ if (typeof op !== "function") return failedReceipt("comments.patch is unavailable.");
8055
+ const fallback = failedReceipt("comments.patch failed.");
8056
+ return safeCall(() => settleWorkflowReceipt(op.call(commentsApi, {
8057
+ commentId,
8058
+ text: input.text
8059
+ }), fallback), fallback);
8060
+ },
8045
8061
  resolve: (commentId) => patchCommentStatus(commentId, "resolved"),
8046
8062
  reopen: (commentId) => patchCommentStatus(commentId, "active"),
8047
8063
  delete: (commentId) => {
@@ -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.7",
10
+ superdocVersion: "2.4.0-next.9",
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.7",
9
+ superdocVersion: "2.4.0-next.9",
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
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_rolldown_runtime = require("../chunks/rolldown-runtime-1Y-nnZJ3.cjs");
3
- const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-sMXbYzhs.cjs");
3
+ const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-ByvmsAAG.cjs");
4
4
  let react = require("react");
5
5
  var SuperDocUIContext = (0, react.createContext)(null);
6
6
  function disposeOwnedUi(ref) {
@@ -1,4 +1,4 @@
1
- import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-BquF8bnZ.es.js";
1
+ import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-DBXOhHdW.es.js";
2
2
  import { createContext, createElement, useCallback, useContext, useEffect, useRef, useState } from "react";
3
3
  var SuperDocUIContext = createContext(null);
4
4
  function disposeOwnedUi(ref) {
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-sMXbYzhs.cjs");
2
+ const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-ByvmsAAG.cjs");
3
3
  exports.BUILT_IN_COMMAND_IDS = require_create_super_doc_ui.BUILT_IN_COMMAND_IDS;
4
4
  exports.createSuperDocUI = require_create_super_doc_ui.createSuperDocUI;
5
5
  exports.shallowEqual = require_create_super_doc_ui.shallowEqual;
@@ -1,2 +1,2 @@
1
- import { n as shallowEqual, r as BUILT_IN_COMMAND_IDS, t as createSuperDocUI } from "../chunks/create-super-doc-ui-BquF8bnZ.es.js";
1
+ import { n as shallowEqual, r as BUILT_IN_COMMAND_IDS, t as createSuperDocUI } from "../chunks/create-super-doc-ui-DBXOhHdW.es.js";
2
2
  export { BUILT_IN_COMMAND_IDS, createSuperDocUI, shallowEqual };
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3]:focus-within {
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-fed15bd3],
2967
- .sd-find-replace__field--error[data-v-fed15bd3]:focus-within {
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-fed15bd3]:focus-within {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3]:active:not(:disabled) {
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-fed15bd3]:focus-visible {
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-fed15bd3]:disabled {
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-fed15bd3] {
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-fed15bd3]:hover:not(:disabled) {
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-fed15bd3] {
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-fed15bd3]:hover:not(:disabled) {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3]:hover:not(:disabled) {
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-fed15bd3],
3090
- .sd-find-replace__btn--active[data-v-fed15bd3]:hover:not(:disabled) {
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-fed15bd3] {
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-fed15bd3]:hover:not(:disabled) {
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-fed15bd3] {
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-fed15bd3 0.16s ease-out;
3121
+ animation: sd-find-replace-error-in-41f37c29 0.16s ease-out;
3122
3122
  }
3123
- .sd-find-replace__error-text[data-v-fed15bd3] {
3123
+ .sd-find-replace__error-text[data-v-41f37c29] {
3124
3124
  padding-left: 4px;
3125
3125
  }
3126
- @keyframes sd-find-replace-error-in-fed15bd3 {
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-fed15bd3],
3138
- .sd-find-replace__btn[data-v-fed15bd3],
3139
- .sd-find-replace__btn--expander svg[data-v-fed15bd3] {
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-fed15bd3]:active:not(:disabled) {
3142
+ .sd-find-replace__btn[data-v-41f37c29]:active:not(:disabled) {
3143
3143
  transform: none;
3144
3144
  }
3145
- .sd-find-replace__error[data-v-fed15bd3] {
3145
+ .sd-find-replace__error[data-v-41f37c29] {
3146
3146
  animation: none;
3147
3147
  }
3148
3148
  }
@@ -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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3]:focus-within {
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-fed15bd3],
2967
- .sd-find-replace__field--error[data-v-fed15bd3]:focus-within {
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-fed15bd3]:focus-within {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3]:active:not(:disabled) {
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-fed15bd3]:focus-visible {
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-fed15bd3]:disabled {
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-fed15bd3] {
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-fed15bd3]:hover:not(:disabled) {
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-fed15bd3] {
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-fed15bd3]:hover:not(:disabled) {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3] {
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-fed15bd3]:hover:not(:disabled) {
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-fed15bd3],
3090
- .sd-find-replace__btn--active[data-v-fed15bd3]:hover:not(:disabled) {
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-fed15bd3] {
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-fed15bd3]:hover:not(:disabled) {
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-fed15bd3] {
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-fed15bd3 0.16s ease-out;
3121
+ animation: sd-find-replace-error-in-41f37c29 0.16s ease-out;
3122
3122
  }
3123
- .sd-find-replace__error-text[data-v-fed15bd3] {
3123
+ .sd-find-replace__error-text[data-v-41f37c29] {
3124
3124
  padding-left: 4px;
3125
3125
  }
3126
- @keyframes sd-find-replace-error-in-fed15bd3 {
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-fed15bd3],
3138
- .sd-find-replace__btn[data-v-fed15bd3],
3139
- .sd-find-replace__btn--expander svg[data-v-fed15bd3] {
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-fed15bd3]:active:not(:disabled) {
3142
+ .sd-find-replace__btn[data-v-41f37c29]:active:not(:disabled) {
3143
3143
  transform: none;
3144
3144
  }
3145
- .sd-find-replace__error[data-v-fed15bd3] {
3145
+ .sd-find-replace__error[data-v-41f37c29] {
3146
3146
  animation: none;
3147
3147
  }
3148
3148
  }