shiki-twoslash
Advanced tools
Comparing version 0.8.0 to 0.8.1
@@ -12,3 +12,3 @@ /** | ||
* // Add a the hovers | ||
* useEffect(setupTwoslashHovers, []) | ||
* useEffect(setupTwoslashHovers) | ||
* | ||
@@ -20,2 +20,2 @@ * // Normal JSX | ||
*/ | ||
export declare const setupTwoslashHovers: () => void; | ||
export declare const setupTwoslashHovers: () => () => void; |
@@ -38,2 +38,25 @@ "use strict"; | ||
}; | ||
// Gets triggered on the spans inside the codeblocks | ||
var hover = function (event) { | ||
var hovered = event.target; | ||
if (hovered.nodeName !== "DATA-LSP") | ||
return resetHover(); | ||
var message = hovered.getAttribute("lsp"); | ||
var position = getAbsoluteElementPos(hovered); | ||
// Create or re-use the current hover div | ||
var tooltip = findOrCreateTooltip(); | ||
// Use a textarea to un-htmlencode for presenting to the user | ||
var txt = document.createElement("textarea"); | ||
txt.innerHTML = message; | ||
tooltip.textContent = txt.value; | ||
// Offset it a bit from the mouse and present it at an absolute position | ||
var yOffset = 20; | ||
tooltip.style.display = "block"; | ||
tooltip.style.top = position.top + yOffset + "px"; | ||
tooltip.style.left = position.left + "px"; | ||
// limit the width of the tooltip to the outer container (pre) | ||
var rootRect = getRootRect(hovered); | ||
var relativeLeft = position.left - rootRect.x; | ||
tooltip.style.maxWidth = rootRect.width - relativeLeft + "px"; | ||
}; | ||
/** | ||
@@ -50,3 +73,3 @@ * Creates the main mouse over popup for LSP info using the DOM API. | ||
* // Add a the hovers | ||
* useEffect(setupTwoslashHovers, []) | ||
* useEffect(setupTwoslashHovers) | ||
* | ||
@@ -59,31 +82,13 @@ * // Normal JSX | ||
exports.setupTwoslashHovers = function () { | ||
// prettier-ignore | ||
var twoslashes = document.querySelectorAll(".shiki.lsp .code-container code"); | ||
// Gets triggered on the spans inside the codeblocks | ||
var hover = function (event) { | ||
var hovered = event.target; | ||
if (hovered.nodeName !== "DATA-LSP") | ||
return resetHover(); | ||
var message = hovered.getAttribute("lsp"); | ||
var position = getAbsoluteElementPos(hovered); | ||
// Create or re-use the current hover div | ||
var tooltip = findOrCreateTooltip(); | ||
// Use a textarea to un-htmlencode for presenting to the user | ||
var txt = document.createElement("textarea"); | ||
txt.innerHTML = message; | ||
tooltip.textContent = txt.value; | ||
// Offset it a bit from the mouse and present it at an absolute position | ||
var yOffset = 20; | ||
tooltip.style.display = "block"; | ||
tooltip.style.top = position.top + yOffset + "px"; | ||
tooltip.style.left = position.left + "px"; | ||
// limit the width of the tooltip to the outer container (pre) | ||
var rootRect = getRootRect(hovered); | ||
var relativeLeft = position.left - rootRect.x; | ||
tooltip.style.maxWidth = rootRect.width - relativeLeft + "px"; | ||
var blocks = document.querySelectorAll(".shiki.lsp .code-container code"); | ||
blocks.forEach(function (code) { | ||
code.addEventListener("mouseover", hover); | ||
code.addEventListener("mouseout", resetHover); | ||
}); | ||
return function () { | ||
blocks.forEach(function (code) { | ||
code.removeEventListener("mouseover", hover); | ||
code.removeEventListener("mouseout", resetHover); | ||
}); | ||
}; | ||
twoslashes.forEach(function (codeblock) { | ||
codeblock.addEventListener("mouseover", hover); | ||
codeblock.addEventListener("mouseout", resetHover); | ||
}); | ||
}; |
{ | ||
"name": "shiki-twoslash", | ||
"version": "0.8.0", | ||
"version": "0.8.1", | ||
"license": "MIT", | ||
@@ -23,4 +23,4 @@ "homepage": "https://github.com/microsoft/TypeScript-Website/", | ||
"dependencies": { | ||
"@typescript/twoslash": "1.0.0", | ||
"@typescript/vfs": "1.2.0", | ||
"@typescript/twoslash": "1.1.1", | ||
"@typescript/vfs": "1.3.0", | ||
"shiki": "^0.1.6", | ||
@@ -27,0 +27,0 @@ "shiki-languages": "^0.1.6", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
203375
1436
+ Added@typescript/twoslash@1.1.1(transitive)
+ Added@typescript/vfs@1.3.0(transitive)
- Removed@typescript/twoslash@1.0.0(transitive)
- Removed@typescript/vfs@1.2.0(transitive)
Updated@typescript/twoslash@1.1.1
Updated@typescript/vfs@1.3.0