react-grab 0.1.11 → 0.1.13

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/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import {o}from'./chunk-FP2224XW.js';export{j as DEFAULT_THEME,g as captureElementScreenshot,f as combineBounds,n as commentPlugin,l as copyHtmlPlugin,h as copyImageToClipboard,c as formatElementInfo,e as generateSnippet,b as getStack,o as init,a as isInstrumentationActive,i as isScreenshotSupported,m as openPlugin,k as screenshotPlugin}from'./chunk-FP2224XW.js';/**
1
+ import {o}from'./chunk-VR2ILUMN.js';export{j as DEFAULT_THEME,g as captureElementScreenshot,f as combineBounds,n as commentPlugin,l as copyHtmlPlugin,h as copyImageToClipboard,c as formatElementInfo,e as generateSnippet,b as getStack,o as init,a as isInstrumentationActive,i as isScreenshotSupported,m as openPlugin,k as screenshotPlugin}from'./chunk-VR2ILUMN.js';/**
2
2
  * @license MIT
3
3
  *
4
4
  * Copyright (c) 2025 Aiden Bai
package/dist/react.cjs CHANGED
@@ -2148,11 +2148,11 @@ var init_store = __esm({
2148
2148
  });
2149
2149
 
2150
2150
  // src/constants.ts
2151
- var VERSION, VIEWPORT_MARGIN_PX, OFFSCREEN_POSITION, SELECTION_LERP_FACTOR, FEEDBACK_DURATION_MS, FADE_DURATION_MS, FADE_COMPLETE_BUFFER_MS, DISMISS_ANIMATION_BUFFER_MS, KEYDOWN_SPAM_TIMEOUT_MS, BLUR_DEACTIVATION_THRESHOLD_MS, INPUT_FOCUS_ACTIVATION_DELAY_MS, INPUT_TEXT_SELECTION_ACTIVATION_DELAY_MS, DEFAULT_KEY_HOLD_DURATION_MS, MIN_HOLD_FOR_ACTIVATION_AFTER_COPY_MS, RECENT_THRESHOLD_MS, ACTION_CYCLE_IDLE_TRIGGER_MS, ACTION_CYCLE_INPUT_THROTTLE_MS, ACTION_CYCLE_SCROLL_THRESHOLD_PX, ACTION_CYCLE_SCROLL_LINE_HEIGHT_PX, ACTION_CYCLE_ACTION_IDS, DRAG_THRESHOLD_PX, ELEMENT_DETECTION_THROTTLE_MS, COMPONENT_NAME_DEBOUNCE_MS, DRAG_PREVIEW_DEBOUNCE_MS, BOUNDS_CACHE_TTL_MS, BOUNDS_RECALC_INTERVAL_MS, AUTO_SCROLL_EDGE_THRESHOLD_PX, AUTO_SCROLL_SPEED_PX, Z_INDEX_LABEL, Z_INDEX_OVERLAY_CANVAS, DRAG_LERP_FACTOR, LERP_CONVERGENCE_THRESHOLD_PX, FADE_OUT_BUFFER_MS, MIN_DEVICE_PIXEL_RATIO, GRAB_PURPLE_RGB, OVERLAY_CROSSHAIR_COLOR, OVERLAY_BORDER_COLOR_DRAG, OVERLAY_FILL_COLOR_DRAG, OVERLAY_BORDER_COLOR_DEFAULT, OVERLAY_FILL_COLOR_DEFAULT, FROZEN_GLOW_COLOR, FROZEN_GLOW_EDGE_PX, ARROW_HEIGHT_PX, ARROW_CENTER_PERCENT, LABEL_GAP_PX, PREVIEW_ATTR_VALUE_MAX_LENGTH, PREVIEW_MAX_ATTRS, PREVIEW_PRIORITY_ATTRS, SCREENSHOT_CAPTURE_DELAY_MS, VIDEO_METADATA_TIMEOUT_MS, VIDEO_READY_POLL_INTERVAL_MS, VIDEO_READY_TIMEOUT_MS, MODIFIER_KEYS, ARROW_KEYS, FROZEN_ELEMENT_ATTRIBUTE, USER_IGNORE_ATTRIBUTE, VIEWPORT_COVERAGE_THRESHOLD, OVERLAY_Z_INDEX_THRESHOLD, DEV_TOOLS_OVERLAY_Z_INDEX_THRESHOLD, TOOLTIP_DELAY_MS, TOOLTIP_GRACE_PERIOD_MS, TOOLBAR_SNAP_MARGIN_PX, TOOLBAR_FADE_IN_DELAY_MS, TOOLBAR_SNAP_ANIMATION_DURATION_MS, TOOLBAR_DRAG_THRESHOLD_PX, TOOLBAR_VELOCITY_MULTIPLIER_MS, TOOLBAR_COLLAPSED_WIDTH_PX, TOOLBAR_COLLAPSED_HEIGHT_PX, TOOLBAR_COLLAPSE_ANIMATION_DURATION_MS, TOOLBAR_DEFAULT_WIDTH_PX, TOOLBAR_DEFAULT_HEIGHT_PX, TOOLBAR_SHAKE_TOOLTIP_DURATION_MS, DRAG_SELECTION_COVERAGE_THRESHOLD, DRAG_SELECTION_SAMPLE_SPACING_PX, DRAG_SELECTION_MIN_SAMPLES_PER_AXIS, DRAG_SELECTION_MAX_SAMPLES_PER_AXIS, DRAG_SELECTION_MAX_TOTAL_SAMPLE_POINTS, DRAG_SELECTION_EDGE_INSET_PX, MAX_TRANSFORM_ANCESTOR_DEPTH, TRANSFORM_EARLY_BAIL_DEPTH, ELEMENT_POSITION_CACHE_DISTANCE_THRESHOLD_PX, ELEMENT_POSITION_THROTTLE_MS, VISIBILITY_CACHE_TTL_MS, ZOOM_DETECTION_THRESHOLD, MOUNT_ROOT_RECHECK_DELAY_MS, PANEL_STYLES, LOGO_SVG;
2151
+ var VERSION, VIEWPORT_MARGIN_PX, OFFSCREEN_POSITION, SELECTION_LERP_FACTOR, FEEDBACK_DURATION_MS, FADE_DURATION_MS, FADE_COMPLETE_BUFFER_MS, DISMISS_ANIMATION_BUFFER_MS, KEYDOWN_SPAM_TIMEOUT_MS, BLUR_DEACTIVATION_THRESHOLD_MS, INPUT_FOCUS_ACTIVATION_DELAY_MS, INPUT_TEXT_SELECTION_ACTIVATION_DELAY_MS, DEFAULT_KEY_HOLD_DURATION_MS, MIN_HOLD_FOR_ACTIVATION_AFTER_COPY_MS, RECENT_THRESHOLD_MS, ACTION_CYCLE_IDLE_TRIGGER_MS, ACTION_CYCLE_INPUT_THROTTLE_MS, ACTION_CYCLE_SCROLL_THRESHOLD_PX, ACTION_CYCLE_SCROLL_LINE_HEIGHT_PX, ACTION_CYCLE_ACTION_IDS, DRAG_THRESHOLD_PX, ELEMENT_DETECTION_THROTTLE_MS, COMPONENT_NAME_DEBOUNCE_MS, DRAG_PREVIEW_DEBOUNCE_MS, BOUNDS_CACHE_TTL_MS, BOUNDS_RECALC_INTERVAL_MS, AUTO_SCROLL_EDGE_THRESHOLD_PX, AUTO_SCROLL_SPEED_PX, Z_INDEX_LABEL, Z_INDEX_OVERLAY_CANVAS, DRAG_LERP_FACTOR, LERP_CONVERGENCE_THRESHOLD_PX, FADE_OUT_BUFFER_MS, MIN_DEVICE_PIXEL_RATIO, GRAB_PURPLE_RGB, OVERLAY_CROSSHAIR_COLOR, OVERLAY_BORDER_COLOR_DRAG, OVERLAY_FILL_COLOR_DRAG, OVERLAY_BORDER_COLOR_DEFAULT, OVERLAY_FILL_COLOR_DEFAULT, FROZEN_GLOW_COLOR, FROZEN_GLOW_EDGE_PX, ARROW_HEIGHT_PX, ARROW_CENTER_PERCENT, LABEL_GAP_PX, PREVIEW_ATTR_VALUE_MAX_LENGTH, PREVIEW_MAX_ATTRS, PREVIEW_PRIORITY_ATTRS, SCREENSHOT_CAPTURE_DELAY_MS, VIDEO_METADATA_TIMEOUT_MS, VIDEO_READY_POLL_INTERVAL_MS, VIDEO_READY_TIMEOUT_MS, MODIFIER_KEYS, ARROW_KEYS, FROZEN_ELEMENT_ATTRIBUTE, USER_IGNORE_ATTRIBUTE, VIEWPORT_COVERAGE_THRESHOLD, OVERLAY_Z_INDEX_THRESHOLD, DEV_TOOLS_OVERLAY_Z_INDEX_THRESHOLD, TOOLTIP_DELAY_MS, TOOLTIP_GRACE_PERIOD_MS, TOOLBAR_SNAP_MARGIN_PX, TOOLBAR_FADE_IN_DELAY_MS, TOOLBAR_SNAP_ANIMATION_DURATION_MS, TOOLBAR_DRAG_THRESHOLD_PX, TOOLBAR_VELOCITY_MULTIPLIER_MS, TOOLBAR_COLLAPSED_SHORT_PX, TOOLBAR_COLLAPSED_LONG_PX, TOOLBAR_COLLAPSE_ANIMATION_DURATION_MS, TOOLBAR_DEFAULT_WIDTH_PX, TOOLBAR_DEFAULT_HEIGHT_PX, TOOLBAR_SHAKE_TOOLTIP_DURATION_MS, DRAG_SELECTION_COVERAGE_THRESHOLD, DRAG_SELECTION_SAMPLE_SPACING_PX, DRAG_SELECTION_MIN_SAMPLES_PER_AXIS, DRAG_SELECTION_MAX_SAMPLES_PER_AXIS, DRAG_SELECTION_MAX_TOTAL_SAMPLE_POINTS, DRAG_SELECTION_EDGE_INSET_PX, MAX_TRANSFORM_ANCESTOR_DEPTH, TRANSFORM_EARLY_BAIL_DEPTH, ELEMENT_POSITION_CACHE_DISTANCE_THRESHOLD_PX, ELEMENT_POSITION_THROTTLE_MS, VISIBILITY_CACHE_TTL_MS, ZOOM_DETECTION_THRESHOLD, MOUNT_ROOT_RECHECK_DELAY_MS, PANEL_STYLES, LOGO_SVG;
2152
2152
  var init_constants = __esm({
2153
2153
  "src/constants.ts"() {
2154
2154
  "use strict";
2155
- VERSION = "0.1.11";
2155
+ VERSION = "0.1.13";
2156
2156
  VIEWPORT_MARGIN_PX = 8;
2157
2157
  OFFSCREEN_POSITION = -1e3;
2158
2158
  SELECTION_LERP_FACTOR = 0.95;
@@ -2242,8 +2242,8 @@ var init_constants = __esm({
2242
2242
  TOOLBAR_SNAP_ANIMATION_DURATION_MS = 300;
2243
2243
  TOOLBAR_DRAG_THRESHOLD_PX = 5;
2244
2244
  TOOLBAR_VELOCITY_MULTIPLIER_MS = 150;
2245
- TOOLBAR_COLLAPSED_WIDTH_PX = 14;
2246
- TOOLBAR_COLLAPSED_HEIGHT_PX = 14;
2245
+ TOOLBAR_COLLAPSED_SHORT_PX = 14;
2246
+ TOOLBAR_COLLAPSED_LONG_PX = 28;
2247
2247
  TOOLBAR_COLLAPSE_ANIMATION_DURATION_MS = 150;
2248
2248
  TOOLBAR_DEFAULT_WIDTH_PX = 78;
2249
2249
  TOOLBAR_DEFAULT_HEIGHT_PX = 28;
@@ -8697,8 +8697,8 @@ var init_toolbar = __esm({
8697
8697
  height: TOOLBAR_DEFAULT_HEIGHT_PX
8698
8698
  };
8699
8699
  const [collapsedDimensions, setCollapsedDimensions] = createSignal({
8700
- width: TOOLBAR_COLLAPSED_WIDTH_PX,
8701
- height: TOOLBAR_COLLAPSED_HEIGHT_PX
8700
+ width: TOOLBAR_COLLAPSED_SHORT_PX,
8701
+ height: TOOLBAR_COLLAPSED_SHORT_PX
8702
8702
  });
8703
8703
  const clampToViewport = (value, min, max) => Math.max(min, Math.min(value, max));
8704
8704
  const getVisualViewport = () => {
@@ -8727,8 +8727,8 @@ var init_toolbar = __esm({
8727
8727
  height: expandedHeight
8728
8728
  } = expandedDimensions;
8729
8729
  const actualRect = containerRef?.getBoundingClientRect();
8730
- const actualCollapsedWidth = actualRect?.width ?? TOOLBAR_COLLAPSED_WIDTH_PX;
8731
- const actualCollapsedHeight = actualRect?.height ?? TOOLBAR_COLLAPSED_HEIGHT_PX;
8730
+ const actualCollapsedWidth = actualRect?.width ?? TOOLBAR_COLLAPSED_SHORT_PX;
8731
+ const actualCollapsedHeight = actualRect?.height ?? TOOLBAR_COLLAPSED_SHORT_PX;
8732
8732
  let newPosition;
8733
8733
  if (edge === "top" || edge === "bottom") {
8734
8734
  const xOffset = (expandedWidth - actualCollapsedWidth) / 2;
@@ -8794,9 +8794,7 @@ var init_toolbar = __esm({
8794
8794
  return Math.max(0, Math.min(1, (positionY - viewport.offsetTop - TOOLBAR_SNAP_MARGIN_PX) / availableHeight));
8795
8795
  };
8796
8796
  const recalculatePosition = () => {
8797
- const rect = containerRef?.getBoundingClientRect();
8798
- if (!rect) return;
8799
- const newPosition = getPositionFromEdgeAndRatio(snapEdge(), positionRatio(), rect.width, rect.height);
8797
+ const newPosition = getPositionFromEdgeAndRatio(snapEdge(), positionRatio(), expandedDimensions.width, expandedDimensions.height);
8800
8798
  setPosition(newPosition);
8801
8799
  };
8802
8800
  let didDragOccur = false;
@@ -9048,17 +9046,14 @@ var init_toolbar = __esm({
9048
9046
  }
9049
9047
  resizeTimeout = setTimeout(() => {
9050
9048
  setIsResizing(false);
9051
- const rect = containerRef?.getBoundingClientRect();
9052
- if (rect) {
9053
- const newRatio = getRatioFromPosition(snapEdge(), position().x, position().y, rect.width, rect.height);
9054
- setPositionRatio(newRatio);
9055
- saveAndNotify({
9056
- edge: snapEdge(),
9057
- ratio: newRatio,
9058
- collapsed: isCollapsed(),
9059
- enabled: props.enabled ?? true
9060
- });
9061
- }
9049
+ const newRatio = getRatioFromPosition(snapEdge(), position().x, position().y, expandedDimensions.width, expandedDimensions.height);
9050
+ setPositionRatio(newRatio);
9051
+ saveAndNotify({
9052
+ edge: snapEdge(),
9053
+ ratio: newRatio,
9054
+ collapsed: isCollapsed(),
9055
+ enabled: props.enabled ?? true
9056
+ });
9062
9057
  }, TOOLBAR_FADE_IN_DELAY_MS);
9063
9058
  };
9064
9059
  const saveAndNotify = (state) => {
@@ -9072,26 +9067,22 @@ var init_toolbar = __esm({
9072
9067
  if (savedState) {
9073
9068
  setSnapEdge(savedState.edge);
9074
9069
  setPositionRatio(savedState.ratio);
9075
- setIsCollapsed(savedState.collapsed);
9076
9070
  if (rect) {
9077
9071
  expandedDimensions = {
9078
9072
  width: rect.width,
9079
9073
  height: rect.height
9080
9074
  };
9081
9075
  }
9082
- const newPosition = getPositionFromEdgeAndRatio(savedState.edge, savedState.ratio, expandedDimensions.width, expandedDimensions.height);
9083
- setPosition(newPosition);
9084
9076
  if (savedState.collapsed) {
9085
- requestAnimationFrame(() => {
9086
- const collapsedRect = containerRef?.getBoundingClientRect();
9087
- if (collapsedRect) {
9088
- setCollapsedDimensions({
9089
- width: collapsedRect.width,
9090
- height: collapsedRect.height
9091
- });
9092
- }
9077
+ const isHorizontalEdge = savedState.edge === "top" || savedState.edge === "bottom";
9078
+ setCollapsedDimensions({
9079
+ width: isHorizontalEdge ? TOOLBAR_COLLAPSED_LONG_PX : TOOLBAR_COLLAPSED_SHORT_PX,
9080
+ height: isHorizontalEdge ? TOOLBAR_COLLAPSED_SHORT_PX : TOOLBAR_COLLAPSED_LONG_PX
9093
9081
  });
9094
9082
  }
9083
+ setIsCollapsed(savedState.collapsed);
9084
+ const newPosition = getPositionFromEdgeAndRatio(savedState.edge, savedState.ratio, expandedDimensions.width, expandedDimensions.height);
9085
+ setPosition(newPosition);
9095
9086
  } else if (rect) {
9096
9087
  expandedDimensions = {
9097
9088
  width: rect.width,
@@ -12950,7 +12941,7 @@ var init_log_intro = __esm({
12950
12941
  init_is_extension_context();
12951
12942
  logIntro = () => {
12952
12943
  try {
12953
- const version = "0.1.11";
12944
+ const version = "0.1.13";
12954
12945
  const logoDataUri = `data:image/svg+xml;base64,${btoa(LOGO_SVG)}`;
12955
12946
  console.log(
12956
12947
  `%cReact Grab${version ? ` v${version}` : ""}%c
package/dist/react.js CHANGED
@@ -2136,11 +2136,11 @@ var init_store = __esm({
2136
2136
  });
2137
2137
 
2138
2138
  // src/constants.ts
2139
- var VERSION, VIEWPORT_MARGIN_PX, OFFSCREEN_POSITION, SELECTION_LERP_FACTOR, FEEDBACK_DURATION_MS, FADE_DURATION_MS, FADE_COMPLETE_BUFFER_MS, DISMISS_ANIMATION_BUFFER_MS, KEYDOWN_SPAM_TIMEOUT_MS, BLUR_DEACTIVATION_THRESHOLD_MS, INPUT_FOCUS_ACTIVATION_DELAY_MS, INPUT_TEXT_SELECTION_ACTIVATION_DELAY_MS, DEFAULT_KEY_HOLD_DURATION_MS, MIN_HOLD_FOR_ACTIVATION_AFTER_COPY_MS, RECENT_THRESHOLD_MS, ACTION_CYCLE_IDLE_TRIGGER_MS, ACTION_CYCLE_INPUT_THROTTLE_MS, ACTION_CYCLE_SCROLL_THRESHOLD_PX, ACTION_CYCLE_SCROLL_LINE_HEIGHT_PX, ACTION_CYCLE_ACTION_IDS, DRAG_THRESHOLD_PX, ELEMENT_DETECTION_THROTTLE_MS, COMPONENT_NAME_DEBOUNCE_MS, DRAG_PREVIEW_DEBOUNCE_MS, BOUNDS_CACHE_TTL_MS, BOUNDS_RECALC_INTERVAL_MS, AUTO_SCROLL_EDGE_THRESHOLD_PX, AUTO_SCROLL_SPEED_PX, Z_INDEX_LABEL, Z_INDEX_OVERLAY_CANVAS, DRAG_LERP_FACTOR, LERP_CONVERGENCE_THRESHOLD_PX, FADE_OUT_BUFFER_MS, MIN_DEVICE_PIXEL_RATIO, GRAB_PURPLE_RGB, OVERLAY_CROSSHAIR_COLOR, OVERLAY_BORDER_COLOR_DRAG, OVERLAY_FILL_COLOR_DRAG, OVERLAY_BORDER_COLOR_DEFAULT, OVERLAY_FILL_COLOR_DEFAULT, FROZEN_GLOW_COLOR, FROZEN_GLOW_EDGE_PX, ARROW_HEIGHT_PX, ARROW_CENTER_PERCENT, LABEL_GAP_PX, PREVIEW_ATTR_VALUE_MAX_LENGTH, PREVIEW_MAX_ATTRS, PREVIEW_PRIORITY_ATTRS, SCREENSHOT_CAPTURE_DELAY_MS, VIDEO_METADATA_TIMEOUT_MS, VIDEO_READY_POLL_INTERVAL_MS, VIDEO_READY_TIMEOUT_MS, MODIFIER_KEYS, ARROW_KEYS, FROZEN_ELEMENT_ATTRIBUTE, USER_IGNORE_ATTRIBUTE, VIEWPORT_COVERAGE_THRESHOLD, OVERLAY_Z_INDEX_THRESHOLD, DEV_TOOLS_OVERLAY_Z_INDEX_THRESHOLD, TOOLTIP_DELAY_MS, TOOLTIP_GRACE_PERIOD_MS, TOOLBAR_SNAP_MARGIN_PX, TOOLBAR_FADE_IN_DELAY_MS, TOOLBAR_SNAP_ANIMATION_DURATION_MS, TOOLBAR_DRAG_THRESHOLD_PX, TOOLBAR_VELOCITY_MULTIPLIER_MS, TOOLBAR_COLLAPSED_WIDTH_PX, TOOLBAR_COLLAPSED_HEIGHT_PX, TOOLBAR_COLLAPSE_ANIMATION_DURATION_MS, TOOLBAR_DEFAULT_WIDTH_PX, TOOLBAR_DEFAULT_HEIGHT_PX, TOOLBAR_SHAKE_TOOLTIP_DURATION_MS, DRAG_SELECTION_COVERAGE_THRESHOLD, DRAG_SELECTION_SAMPLE_SPACING_PX, DRAG_SELECTION_MIN_SAMPLES_PER_AXIS, DRAG_SELECTION_MAX_SAMPLES_PER_AXIS, DRAG_SELECTION_MAX_TOTAL_SAMPLE_POINTS, DRAG_SELECTION_EDGE_INSET_PX, MAX_TRANSFORM_ANCESTOR_DEPTH, TRANSFORM_EARLY_BAIL_DEPTH, ELEMENT_POSITION_CACHE_DISTANCE_THRESHOLD_PX, ELEMENT_POSITION_THROTTLE_MS, VISIBILITY_CACHE_TTL_MS, ZOOM_DETECTION_THRESHOLD, MOUNT_ROOT_RECHECK_DELAY_MS, PANEL_STYLES, LOGO_SVG;
2139
+ var VERSION, VIEWPORT_MARGIN_PX, OFFSCREEN_POSITION, SELECTION_LERP_FACTOR, FEEDBACK_DURATION_MS, FADE_DURATION_MS, FADE_COMPLETE_BUFFER_MS, DISMISS_ANIMATION_BUFFER_MS, KEYDOWN_SPAM_TIMEOUT_MS, BLUR_DEACTIVATION_THRESHOLD_MS, INPUT_FOCUS_ACTIVATION_DELAY_MS, INPUT_TEXT_SELECTION_ACTIVATION_DELAY_MS, DEFAULT_KEY_HOLD_DURATION_MS, MIN_HOLD_FOR_ACTIVATION_AFTER_COPY_MS, RECENT_THRESHOLD_MS, ACTION_CYCLE_IDLE_TRIGGER_MS, ACTION_CYCLE_INPUT_THROTTLE_MS, ACTION_CYCLE_SCROLL_THRESHOLD_PX, ACTION_CYCLE_SCROLL_LINE_HEIGHT_PX, ACTION_CYCLE_ACTION_IDS, DRAG_THRESHOLD_PX, ELEMENT_DETECTION_THROTTLE_MS, COMPONENT_NAME_DEBOUNCE_MS, DRAG_PREVIEW_DEBOUNCE_MS, BOUNDS_CACHE_TTL_MS, BOUNDS_RECALC_INTERVAL_MS, AUTO_SCROLL_EDGE_THRESHOLD_PX, AUTO_SCROLL_SPEED_PX, Z_INDEX_LABEL, Z_INDEX_OVERLAY_CANVAS, DRAG_LERP_FACTOR, LERP_CONVERGENCE_THRESHOLD_PX, FADE_OUT_BUFFER_MS, MIN_DEVICE_PIXEL_RATIO, GRAB_PURPLE_RGB, OVERLAY_CROSSHAIR_COLOR, OVERLAY_BORDER_COLOR_DRAG, OVERLAY_FILL_COLOR_DRAG, OVERLAY_BORDER_COLOR_DEFAULT, OVERLAY_FILL_COLOR_DEFAULT, FROZEN_GLOW_COLOR, FROZEN_GLOW_EDGE_PX, ARROW_HEIGHT_PX, ARROW_CENTER_PERCENT, LABEL_GAP_PX, PREVIEW_ATTR_VALUE_MAX_LENGTH, PREVIEW_MAX_ATTRS, PREVIEW_PRIORITY_ATTRS, SCREENSHOT_CAPTURE_DELAY_MS, VIDEO_METADATA_TIMEOUT_MS, VIDEO_READY_POLL_INTERVAL_MS, VIDEO_READY_TIMEOUT_MS, MODIFIER_KEYS, ARROW_KEYS, FROZEN_ELEMENT_ATTRIBUTE, USER_IGNORE_ATTRIBUTE, VIEWPORT_COVERAGE_THRESHOLD, OVERLAY_Z_INDEX_THRESHOLD, DEV_TOOLS_OVERLAY_Z_INDEX_THRESHOLD, TOOLTIP_DELAY_MS, TOOLTIP_GRACE_PERIOD_MS, TOOLBAR_SNAP_MARGIN_PX, TOOLBAR_FADE_IN_DELAY_MS, TOOLBAR_SNAP_ANIMATION_DURATION_MS, TOOLBAR_DRAG_THRESHOLD_PX, TOOLBAR_VELOCITY_MULTIPLIER_MS, TOOLBAR_COLLAPSED_SHORT_PX, TOOLBAR_COLLAPSED_LONG_PX, TOOLBAR_COLLAPSE_ANIMATION_DURATION_MS, TOOLBAR_DEFAULT_WIDTH_PX, TOOLBAR_DEFAULT_HEIGHT_PX, TOOLBAR_SHAKE_TOOLTIP_DURATION_MS, DRAG_SELECTION_COVERAGE_THRESHOLD, DRAG_SELECTION_SAMPLE_SPACING_PX, DRAG_SELECTION_MIN_SAMPLES_PER_AXIS, DRAG_SELECTION_MAX_SAMPLES_PER_AXIS, DRAG_SELECTION_MAX_TOTAL_SAMPLE_POINTS, DRAG_SELECTION_EDGE_INSET_PX, MAX_TRANSFORM_ANCESTOR_DEPTH, TRANSFORM_EARLY_BAIL_DEPTH, ELEMENT_POSITION_CACHE_DISTANCE_THRESHOLD_PX, ELEMENT_POSITION_THROTTLE_MS, VISIBILITY_CACHE_TTL_MS, ZOOM_DETECTION_THRESHOLD, MOUNT_ROOT_RECHECK_DELAY_MS, PANEL_STYLES, LOGO_SVG;
2140
2140
  var init_constants = __esm({
2141
2141
  "src/constants.ts"() {
2142
2142
  "use strict";
2143
- VERSION = "0.1.11";
2143
+ VERSION = "0.1.13";
2144
2144
  VIEWPORT_MARGIN_PX = 8;
2145
2145
  OFFSCREEN_POSITION = -1e3;
2146
2146
  SELECTION_LERP_FACTOR = 0.95;
@@ -2230,8 +2230,8 @@ var init_constants = __esm({
2230
2230
  TOOLBAR_SNAP_ANIMATION_DURATION_MS = 300;
2231
2231
  TOOLBAR_DRAG_THRESHOLD_PX = 5;
2232
2232
  TOOLBAR_VELOCITY_MULTIPLIER_MS = 150;
2233
- TOOLBAR_COLLAPSED_WIDTH_PX = 14;
2234
- TOOLBAR_COLLAPSED_HEIGHT_PX = 14;
2233
+ TOOLBAR_COLLAPSED_SHORT_PX = 14;
2234
+ TOOLBAR_COLLAPSED_LONG_PX = 28;
2235
2235
  TOOLBAR_COLLAPSE_ANIMATION_DURATION_MS = 150;
2236
2236
  TOOLBAR_DEFAULT_WIDTH_PX = 78;
2237
2237
  TOOLBAR_DEFAULT_HEIGHT_PX = 28;
@@ -8685,8 +8685,8 @@ var init_toolbar = __esm({
8685
8685
  height: TOOLBAR_DEFAULT_HEIGHT_PX
8686
8686
  };
8687
8687
  const [collapsedDimensions, setCollapsedDimensions] = createSignal({
8688
- width: TOOLBAR_COLLAPSED_WIDTH_PX,
8689
- height: TOOLBAR_COLLAPSED_HEIGHT_PX
8688
+ width: TOOLBAR_COLLAPSED_SHORT_PX,
8689
+ height: TOOLBAR_COLLAPSED_SHORT_PX
8690
8690
  });
8691
8691
  const clampToViewport = (value, min, max) => Math.max(min, Math.min(value, max));
8692
8692
  const getVisualViewport = () => {
@@ -8715,8 +8715,8 @@ var init_toolbar = __esm({
8715
8715
  height: expandedHeight
8716
8716
  } = expandedDimensions;
8717
8717
  const actualRect = containerRef?.getBoundingClientRect();
8718
- const actualCollapsedWidth = actualRect?.width ?? TOOLBAR_COLLAPSED_WIDTH_PX;
8719
- const actualCollapsedHeight = actualRect?.height ?? TOOLBAR_COLLAPSED_HEIGHT_PX;
8718
+ const actualCollapsedWidth = actualRect?.width ?? TOOLBAR_COLLAPSED_SHORT_PX;
8719
+ const actualCollapsedHeight = actualRect?.height ?? TOOLBAR_COLLAPSED_SHORT_PX;
8720
8720
  let newPosition;
8721
8721
  if (edge === "top" || edge === "bottom") {
8722
8722
  const xOffset = (expandedWidth - actualCollapsedWidth) / 2;
@@ -8782,9 +8782,7 @@ var init_toolbar = __esm({
8782
8782
  return Math.max(0, Math.min(1, (positionY - viewport.offsetTop - TOOLBAR_SNAP_MARGIN_PX) / availableHeight));
8783
8783
  };
8784
8784
  const recalculatePosition = () => {
8785
- const rect = containerRef?.getBoundingClientRect();
8786
- if (!rect) return;
8787
- const newPosition = getPositionFromEdgeAndRatio(snapEdge(), positionRatio(), rect.width, rect.height);
8785
+ const newPosition = getPositionFromEdgeAndRatio(snapEdge(), positionRatio(), expandedDimensions.width, expandedDimensions.height);
8788
8786
  setPosition(newPosition);
8789
8787
  };
8790
8788
  let didDragOccur = false;
@@ -9036,17 +9034,14 @@ var init_toolbar = __esm({
9036
9034
  }
9037
9035
  resizeTimeout = setTimeout(() => {
9038
9036
  setIsResizing(false);
9039
- const rect = containerRef?.getBoundingClientRect();
9040
- if (rect) {
9041
- const newRatio = getRatioFromPosition(snapEdge(), position().x, position().y, rect.width, rect.height);
9042
- setPositionRatio(newRatio);
9043
- saveAndNotify({
9044
- edge: snapEdge(),
9045
- ratio: newRatio,
9046
- collapsed: isCollapsed(),
9047
- enabled: props.enabled ?? true
9048
- });
9049
- }
9037
+ const newRatio = getRatioFromPosition(snapEdge(), position().x, position().y, expandedDimensions.width, expandedDimensions.height);
9038
+ setPositionRatio(newRatio);
9039
+ saveAndNotify({
9040
+ edge: snapEdge(),
9041
+ ratio: newRatio,
9042
+ collapsed: isCollapsed(),
9043
+ enabled: props.enabled ?? true
9044
+ });
9050
9045
  }, TOOLBAR_FADE_IN_DELAY_MS);
9051
9046
  };
9052
9047
  const saveAndNotify = (state) => {
@@ -9060,26 +9055,22 @@ var init_toolbar = __esm({
9060
9055
  if (savedState) {
9061
9056
  setSnapEdge(savedState.edge);
9062
9057
  setPositionRatio(savedState.ratio);
9063
- setIsCollapsed(savedState.collapsed);
9064
9058
  if (rect) {
9065
9059
  expandedDimensions = {
9066
9060
  width: rect.width,
9067
9061
  height: rect.height
9068
9062
  };
9069
9063
  }
9070
- const newPosition = getPositionFromEdgeAndRatio(savedState.edge, savedState.ratio, expandedDimensions.width, expandedDimensions.height);
9071
- setPosition(newPosition);
9072
9064
  if (savedState.collapsed) {
9073
- requestAnimationFrame(() => {
9074
- const collapsedRect = containerRef?.getBoundingClientRect();
9075
- if (collapsedRect) {
9076
- setCollapsedDimensions({
9077
- width: collapsedRect.width,
9078
- height: collapsedRect.height
9079
- });
9080
- }
9065
+ const isHorizontalEdge = savedState.edge === "top" || savedState.edge === "bottom";
9066
+ setCollapsedDimensions({
9067
+ width: isHorizontalEdge ? TOOLBAR_COLLAPSED_LONG_PX : TOOLBAR_COLLAPSED_SHORT_PX,
9068
+ height: isHorizontalEdge ? TOOLBAR_COLLAPSED_SHORT_PX : TOOLBAR_COLLAPSED_LONG_PX
9081
9069
  });
9082
9070
  }
9071
+ setIsCollapsed(savedState.collapsed);
9072
+ const newPosition = getPositionFromEdgeAndRatio(savedState.edge, savedState.ratio, expandedDimensions.width, expandedDimensions.height);
9073
+ setPosition(newPosition);
9083
9074
  } else if (rect) {
9084
9075
  expandedDimensions = {
9085
9076
  width: rect.width,
@@ -12938,7 +12929,7 @@ var init_log_intro = __esm({
12938
12929
  init_is_extension_context();
12939
12930
  logIntro = () => {
12940
12931
  try {
12941
- const version = "0.1.11";
12932
+ const version = "0.1.13";
12942
12933
  const logoDataUri = `data:image/svg+xml;base64,${btoa(LOGO_SVG)}`;
12943
12934
  console.log(
12944
12935
  `%cReact Grab${version ? ` v${version}` : ""}%c
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-grab",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "description": "Select context for coding agents directly from your website",
5
5
  "keywords": [
6
6
  "agent",