Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
707c21c
feat: better non-distracting highlighting on element hover/click
devvaannsh Feb 23, 2026
c3325f1
refactor: move colors as global variables
devvaannsh Feb 23, 2026
eb1fdaa
chore: export redraw highlights function
devvaannsh Feb 23, 2026
d359288
fix: stale outline remains when selected element is clicked multiple …
devvaannsh Feb 24, 2026
f073404
feat: add new insert element strings
devvaannsh Feb 24, 2026
ebe043d
fix: prevent hot corner from coming up when live preview panel is res…
devvaannsh Feb 25, 2026
3399020
feat: add quick styles strings
devvaannsh Feb 26, 2026
e5bd7d3
feat: add all styles panel string
devvaannsh Feb 26, 2026
a0483cf
feat: add setting for spacing handles in live preview
devvaannsh Feb 28, 2026
f8b98e0
refactor: better live preview toolbar icons positioning
devvaannsh Feb 28, 2026
98cac3d
fix: element highlighting disappears when setting is modified
devvaannsh Mar 1, 2026
0bc4df7
feat: add hover box support in preview
devvaannsh Mar 2, 2026
ed88ddb
refactor: remove quick styles strings from styles panel
devvaannsh Mar 2, 2026
05c9ad5
feat: export redraw everything function for internal use
devvaannsh Mar 2, 2026
8fa87f5
feat: add setting to sync the preview and the editor
devvaannsh Mar 3, 2026
e35a2aa
feat: show only applicable options in the dropdown
devvaannsh Mar 3, 2026
54e6137
feat: add info inline editing strings
devvaannsh Mar 4, 2026
346a5f0
feat: add link string
devvaannsh Mar 6, 2026
a81b881
feat: don’t show the interactive controls when user selects an elemen…
devvaannsh Mar 6, 2026
75aa85a
chore: localize styler row strings
devvaannsh Mar 6, 2026
2ec0d91
fix: consecutive info box editing doesn’t work as data brackets id ge…
devvaannsh Mar 6, 2026
f1f84b5
fix: prevent * from highlighting the whole page
devvaannsh Mar 7, 2026
5d12c0b
fix: outline not appearing when element selected via css selector
devvaannsh Mar 7, 2026
c877f20
fix: dont remove the element highlighting when selected from a css se…
devvaannsh Mar 7, 2026
61dc2ee
chore: auto update api docs
devvaannsh Mar 7, 2026
c89fb78
fix: element highlighting improvements for better multi selection sup…
devvaannsh Mar 8, 2026
2f5a07c
chore: live preview spacing strings
devvaannsh Mar 8, 2026
4854814
feat: add styler row drill in strings
devvaannsh Mar 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 31 additions & 12 deletions docs/API-Reference/view/PanelView.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ Determines if the panel is visible
<a name="Panel+registerCanBeShownHandler"></a>

### panel.registerCanBeShownHandler(canShowHandlerFn) ⇒ <code>boolean</code>
Registers a call back function that will be called just before panel is shown. The handler should return trueif the panel can be shown, else return false and the panel will not be shown.
Registers a call back function that will be called just before panel is shown. The handler should return true
if the panel can be shown, else return false and the panel will not be shown.

**Kind**: instance method of [<code>Panel</code>](#Panel)
**Returns**: <code>boolean</code> - true if visible, false if not
Expand All @@ -70,7 +71,8 @@ Returns true if th panel can be shown, else false.
<a name="Panel+registerOnCloseRequestedHandler"></a>

### panel.registerOnCloseRequestedHandler(handler)
Registers an async handler that is called before the panel is closed via user interaction (e.g. clicking thetab close button). The handler should return `true` to allow the close, or `false` to prevent it.
Registers an async handler that is called before the panel is closed via user interaction (e.g. clicking the
tab close button). The handler should return `true` to allow the close, or `false` to prevent it.

**Kind**: instance method of [<code>Panel</code>](#Panel)

Expand All @@ -81,7 +83,9 @@ Registers an async handler that is called before the panel is closed via user in
<a name="Panel+requestClose"></a>

### panel.requestClose() ⇒ <code>Promise.&lt;boolean&gt;</code>
Requests the panel to hide, invoking the registered onCloseRequested handler first (if any).If the handler returns false, the panel stays open. If it returns true or no handler isregistered, `hide()` is called.
Requests the panel to hide, invoking the registered onCloseRequested handler first (if any).
If the handler returns false, the panel stays open. If it returns true or no handler is
registered, `hide()` is called.

**Kind**: instance method of [<code>Panel</code>](#Panel)
**Returns**: <code>Promise.&lt;boolean&gt;</code> - Resolves to true if the panel was hidden, false if prevented.
Expand All @@ -100,7 +104,8 @@ Hides the panel
<a name="Panel+focus"></a>

### panel.focus() ⇒ <code>boolean</code>
Attempts to focus the panel. Override this in panels that support focus(e.g. terminal). The default implementation returns false.
Attempts to focus the panel. Override this in panels that support focus
(e.g. terminal). The default implementation returns false.

**Kind**: instance method of [<code>Panel</code>](#Panel)
**Returns**: <code>boolean</code> - true if the panel accepted focus, false otherwise
Expand Down Expand Up @@ -129,7 +134,8 @@ Updates the display title shown in the tab bar for this panel.
<a name="Panel+destroy"></a>

### panel.destroy()
Destroys the panel, removing it from the tab bar, internal maps, and the DOM.After calling this, the Panel instance should not be reused.
Destroys the panel, removing it from the tab bar, internal maps, and the DOM.
After calling this, the Panel instance should not be reused.

**Kind**: instance method of [<code>Panel</code>](#Panel)
<a name="Panel+getPanelType"></a>
Expand Down Expand Up @@ -231,13 +237,17 @@ type for bottom panel
<a name="MAXIMIZE_THRESHOLD"></a>

## MAXIMIZE\_THRESHOLD : <code>number</code>
Pixel threshold for detecting near-maximize state during resize.If the editor holder height is within this many pixels of zero, thepanel is treated as maximized. Keeps the maximize icon responsiveduring drag without being overly sensitive.
Pixel threshold for detecting near-maximize state during resize.
If the editor holder height is within this many pixels of zero, the
panel is treated as maximized. Keeps the maximize icon responsive
during drag without being overly sensitive.

**Kind**: global constant
<a name="MIN_PANEL_HEIGHT"></a>

## MIN\_PANEL\_HEIGHT : <code>number</code>
Minimum panel height (matches Resizer minSize) used as a floorwhen computing a sensible restore height.
Minimum panel height (matches Resizer minSize) used as a floor
when computing a sensible restore height.

**Kind**: global constant
<a name="PREF_BOTTOM_PANEL_MAXIMIZED"></a>
Expand All @@ -249,7 +259,8 @@ Preference key for persisting the maximize state across reloads.
<a name="init"></a>

## init($container, $tabBar, $tabsOverflow, $editorHolder, recomputeLayoutFn, defaultPanelId)
Initializes the PanelView module with references to the bottom panel container DOM elements.Called by WorkspaceManager during htmlReady.
Initializes the PanelView module with references to the bottom panel container DOM elements.
Called by WorkspaceManager during htmlReady.

**Kind**: global function

Expand All @@ -265,19 +276,26 @@ Initializes the PanelView module with references to the bottom panel container D
<a name="exitMaximizeOnResize"></a>

## exitMaximizeOnResize()
Exit maximize state without resizing (for external callers like drag-resize).Clears internal maximize state and resets the button icon.
Exit maximize state without resizing (for external callers like drag-resize).
Clears internal maximize state and resets the button icon.

**Kind**: global function
<a name="enterMaximizeOnResize"></a>

## enterMaximizeOnResize()
Enter maximize state during a drag-resize that reaches the maximumheight. No pre-maximize height is stored because the user arrivedhere via continuous dragging; a sensible default will be computed ifthey later click the Restore button.
Enter maximize state during a drag-resize that reaches the maximum
height. No pre-maximize height is stored because the user arrived
here via continuous dragging; a sensible default will be computed if
they later click the Restore button.

**Kind**: global function
<a name="restoreIfMaximized"></a>

## restoreIfMaximized()
Restore the container's CSS height to the pre-maximize value and clear maximize state.Must be called BEFORE Resizer.hide() so the Resizer reads the correct height.If not maximized, this is a no-op.When the saved height is near-max or unknown, a sensible default is used.
Restore the container's CSS height to the pre-maximize value and clear maximize state.
Must be called BEFORE Resizer.hide() so the Resizer reads the correct height.
If not maximized, this is a no-op.
When the saved height is near-max or unknown, a sensible default is used.

**Kind**: global function
<a name="isMaximized"></a>
Expand Down Expand Up @@ -308,7 +326,8 @@ Returns the currently active (visible) bottom panel, or null if none.
<a name="showNextPanel"></a>

## showNextPanel() ⇒ <code>boolean</code>
Cycle to the next open bottom panel tab. If the container is hiddenor no panels are open, does nothing and returns false.
Cycle to the next open bottom panel tab. If the container is hidden
or no panels are open, does nothing and returns false.

**Kind**: global function
**Returns**: <code>boolean</code> - true if a panel switch occurred
7 changes: 7 additions & 0 deletions src/LiveDevelopment/BrowserScripts/LiveDevProtocolRemote.js
Original file line number Diff line number Diff line change
Expand Up @@ -539,6 +539,13 @@
// as a live select.
return;
}
if (window._LD && !window._LD.isSyncEnabled()) {

Check warning on line 542 in src/LiveDevelopment/BrowserScripts/LiveDevProtocolRemote.js

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Prefer `globalThis` over `window`.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZy1Ca-AvoVWQ2TYI4mi&open=AZy1Ca-AvoVWQ2TYI4mi&pullRequest=2706

Check warning on line 542 in src/LiveDevelopment/BrowserScripts/LiveDevProtocolRemote.js

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Prefer `globalThis` over `window`.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZy1Ca-AvoVWQ2TYI4mh&open=AZy1Ca-AvoVWQ2TYI4mh&pullRequest=2706
// When sync is disabled, highlight the element directly in the browser
// without doing a round-trip through the editor (which would move the cursor)
var tagId = element.getAttribute('data-brackets-id');

Check failure on line 545 in src/LiveDevelopment/BrowserScripts/LiveDevProtocolRemote.js

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Unexpected var, use let or const instead.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZy1Ca-AvoVWQ2TYI4mj&open=AZy1Ca-AvoVWQ2TYI4mj&pullRequest=2706

Check failure on line 545 in src/LiveDevelopment/BrowserScripts/LiveDevProtocolRemote.js

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Prefer `.dataset` over `getAttribute(…)`.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZy1Ca-AvoVWQ2TYI4mk&open=AZy1Ca-AvoVWQ2TYI4mk&pullRequest=2706
window._LD.highlightRule("[data-brackets-id='" + tagId + "']");

Check warning on line 546 in src/LiveDevelopment/BrowserScripts/LiveDevProtocolRemote.js

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Prefer `globalThis` over `window`.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZy1Ca-AvoVWQ2TYI4ml&open=AZy1Ca-AvoVWQ2TYI4ml&pullRequest=2706
return;
}
MessageBroker.send({
"tagId": element.getAttribute('data-brackets-id'),
"nodeID": element.id,
Expand Down
Loading
Loading