Skip to content

Commit 5375d99

Browse files
committed
deploy: cd657c3
1 parent 84ee28f commit 5375d99

77 files changed

Lines changed: 2620 additions & 1488 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

LiveDevelopment/BrowserScripts/RemoteFunctions.js

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,8 @@ function RemoteFunctions(config = {}) {
258258
screenOffset: screenOffset,
259259
selectElement: selectElement,
260260
isSelectedFromEditor: function () { return _selectedFromEditor; },
261+
isNamedSelection: _isNamedSelection,
262+
toMatchableSelector: toMatchableSelector,
261263
sendSelectionToEditor: sendSelectionToEditor,
262264
brieflyDisableHoverListeners: brieflyDisableHoverListeners,
263265
handleElementClick: handleElementClick,
@@ -1126,6 +1128,23 @@ function RemoteFunctions(config = {}) {
11261128
_clickHighlight.addAll(wanted);
11271129
}
11281130

1131+
const RE_STATE_PSEUDO = /::?(?:hover|active|focus-within|focus-visible|focus|visited|target|checked|disabled|enabled|placeholder-shown|before|after|first-line|first-letter|marker|placeholder|selection)\b/gi;
1132+
1133+
// A :hover or ::before rule styles the element in a state it is not in right
1134+
// now, so it is matched as the plain selector to reach the elements it styles.
1135+
function toMatchableSelector(rule) {
1136+
const stripped = rule.replace(RE_STATE_PSEUDO, "");
1137+
if (stripped === rule) {
1138+
return rule;
1139+
}
1140+
try {
1141+
window.document.querySelector(stripped);
1142+
return stripped;
1143+
} catch (e) {
1144+
return rule;
1145+
}
1146+
}
1147+
11291148
/**
11301149
* Find the best element to select from a list of matched nodes
11311150
* Prefers: previously selected element > parent of selected > first valid element
@@ -1184,7 +1203,7 @@ function RemoteFunctions(config = {}) {
11841203
// is not useful, similar to how we skip the html tag in isElementInspectable.
11851204
// The rule can be a comma-separated list of selectors (from multi-cursor),
11861205
// so we filter out any standalone * segments and keep valid ones.
1187-
rule = rule.split(",").map(s => s.trim()).filter(s => s !== "*").join(",");
1206+
rule = toMatchableSelector(rule).split(",").map(s => s.trim()).filter(s => s !== "*").join(",");
11881207
if (!rule) {
11891208
dismissUIAndCleanupState();
11901209
return;

LiveDevelopment/MultiBrowserImpl/documents/LiveDocument.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

appConfig.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ window.AppConfig = {
4040
"ruff": "0.16.5"
4141
},
4242
"linting.enabled_by_default": true,
43-
"build_timestamp": "2026-09-11T15:29:35.862Z",
43+
"build_timestamp": "2026-09-14T12:47:41.491Z",
4444
"googleAnalyticsID": "G-FP5S9BKDSJ",
4545
"googleAnalyticsIDDesktop": "G-D5R1Y6PTS8",
4646
"mixPanelID": "a7e08ffd43c37767c29b13df1d2e6c62",
@@ -52,7 +52,7 @@ window.AppConfig = {
5252
"bugsnagEnv": "staging"
5353
},
5454
"name": "Phoenix Code",
55-
"version": "5.5.3-23501",
55+
"version": "5.5.3-23520",
5656
"apiVersion": "5.5.3",
5757
"homepage": "https://core.ai",
5858
"issues": {

assets/default-project/en.zip

0 Bytes
Binary file not shown.

assets/sample-projects/HTML5.zip

0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

assets/sample-projects/explore.zip

0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

brackets.js

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)