Skip to content

Commit

Permalink
Merge pull request #61 from brichet/fix-shortcut-commandMode
Browse files Browse the repository at this point in the history
Fix the shortcut triggered in edit mode
  • Loading branch information
martinRenou committed Dec 8, 2023
2 parents 2760e57 + 954736d commit d082264
Show file tree
Hide file tree
Showing 4 changed files with 195 additions and 172 deletions.
310 changes: 155 additions & 155 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,165 +1,165 @@
{
"name": "jupyterlab-rise-meta",
"version": "0.41.0",
"description": "RISE: \"Live\" Reveal.js JupyterLab Slideshow extension.",
"keywords": [
"jupyter",
"jupyterlab",
"jupyterlab-extension"
],
"private": true,
"files": [],
"workspaces": {
"packages": [
"app",
"ui-tests",
"packages/*"
]
},
"homepage": "https://github.com/jupyterlab-contrib/rise",
"bugs": {
"url": "https://github.com/jupyterlab-contrib/rise/issues"
},
"license": "BSD-3-Clause",
"author": {
"name": "Frederic Collonval",
"email": "fcollonval@gmail.com"
},
"contributors": [
{
"name": "Thierry Parmentelat",
"url": "https://github.com/parmentelat"
},
{
"name": "Yiqin Zhang"
}
],
"repository": {
"type": "git",
"url": "https://github.com/jupyterlab-contrib/rise.git"
},
"scripts": {
"build": "lerna run build",
"build:prod": "lerna run build:prod",
"clean": "lerna run clean",
"eslint": "jlpm eslint:check --fix",
"eslint:check": "eslint . --cache --ext .ts,.tsx",
"lint": "jlpm stylelint && jlpm prettier && jlpm eslint",
"lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check",
"prettier": "jlpm prettier:base --write --list-different",
"prettier:base": "prettier \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"",
"prettier:check": "jlpm prettier:base --check",
"stylelint": "jlpm stylelint:check --fix",
"stylelint:check": "stylelint --cache \"packages/*/style/**/*.css\"",
"watch": "run-p watch:lib watch:app",
"watch:app": "lerna exec --stream --scope \"rise-app\" yarn watch",
"watch:lib": "lerna exec --stream --scope \"jupyterlab-rise-application\" --scope \"jupyterlab-rise\" yarn watch"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^6.1.0",
"@typescript-eslint/parser": "^6.1.0",
"eslint": "^8.45.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-prettier": "^5.0.0",
"lerna": "^7.1.0",
"npm-run-all": "^4.1.5",
"prettier": "^3.0.0",
"rimraf": "^5.0.0",
"stylelint": "^15.10.1",
"stylelint-config-recommended": "^13.0.0",
"stylelint-config-standard": "^34.0.0",
"stylelint-prettier": "^4.0.0",
"typescript": "~5.0.4"
},
"eslintIgnore": [
"app/build",
"node_modules",
"dist",
"coverage",
"**/*.d.ts",
"tests",
"**/__tests__",
"ui-tests"
],
"eslintConfig": {
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended"
"name": "jupyterlab-rise-meta",
"version": "0.41.0",
"description": "RISE: \"Live\" Reveal.js JupyterLab Slideshow extension.",
"keywords": [
"jupyter",
"jupyterlab",
"jupyterlab-extension"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "tsconfig.eslint.json",
"sourceType": "module"
"private": true,
"files": [],
"workspaces": {
"packages": [
"app",
"ui-tests",
"packages/*"
]
},
"plugins": [
"@typescript-eslint"
],
"rules": {
"@typescript-eslint/naming-convention": [
"error",
"homepage": "https://github.com/jupyterlab-contrib/rise",
"bugs": {
"url": "https://github.com/jupyterlab-contrib/rise/issues"
},
"license": "BSD-3-Clause",
"author": {
"name": "Frederic Collonval",
"email": "fcollonval@gmail.com"
},
"contributors": [
{
"selector": "interface",
"format": [
"PascalCase"
],
"custom": {
"regex": "^I[A-Z]",
"match": true
}
}
],
"@typescript-eslint/no-unused-vars": [
"warn",
"name": "Thierry Parmentelat",
"url": "https://github.com/parmentelat"
},
{
"args": "none"
"name": "Yiqin Zhang"
}
],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-namespace": "off",
"@typescript-eslint/no-use-before-define": "off",
"@typescript-eslint/quotes": [
"error",
"single",
{
"avoidEscape": true,
"allowTemplateLiterals": false
],
"repository": {
"type": "git",
"url": "https://github.com/jupyterlab-contrib/rise.git"
},
"scripts": {
"build": "lerna run build",
"build:prod": "lerna run build:prod",
"clean": "lerna run clean",
"eslint": "jlpm eslint:check --fix",
"eslint:check": "eslint . --cache --ext .ts,.tsx",
"lint": "jlpm stylelint && jlpm prettier && jlpm eslint",
"lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check",
"prettier": "jlpm prettier:base --write --list-different",
"prettier:base": "prettier \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"",
"prettier:check": "jlpm prettier:base --check",
"stylelint": "jlpm stylelint:check --fix",
"stylelint:check": "stylelint --cache \"packages/*/style/**/*.css\"",
"watch": "run-p watch:lib watch:app",
"watch:app": "lerna exec --stream --scope \"rise-app\" yarn watch",
"watch:lib": "lerna exec --stream --scope \"jupyterlab-rise-application\" --scope \"jupyterlab-rise\" yarn watch"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^6.1.0",
"@typescript-eslint/parser": "^6.1.0",
"eslint": "^8.45.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-prettier": "^5.0.0",
"lerna": "^7.1.0",
"npm-run-all": "^4.1.5",
"prettier": "^3.0.0",
"rimraf": "^5.0.0",
"stylelint": "^15.10.1",
"stylelint-config-recommended": "^13.0.0",
"stylelint-config-standard": "^34.0.0",
"stylelint-prettier": "^4.0.0",
"typescript": "~5.0.4"
},
"eslintIgnore": [
"app/build",
"node_modules",
"dist",
"coverage",
"**/*.d.ts",
"tests",
"**/__tests__",
"ui-tests"
],
"eslintConfig": {
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "tsconfig.eslint.json",
"sourceType": "module"
},
"plugins": [
"@typescript-eslint"
],
"rules": {
"@typescript-eslint/naming-convention": [
"error",
{
"selector": "interface",
"format": [
"PascalCase"
],
"custom": {
"regex": "^I[A-Z]",
"match": true
}
}
],
"@typescript-eslint/no-unused-vars": [
"warn",
{
"args": "none"
}
],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-namespace": "off",
"@typescript-eslint/no-use-before-define": "off",
"@typescript-eslint/quotes": [
"error",
"single",
{
"avoidEscape": true,
"allowTemplateLiterals": false
}
],
"curly": [
"error",
"all"
],
"eqeqeq": "error",
"prefer-arrow-callback": "error"
}
],
"curly": [
"error",
"all"
],
"eqeqeq": "error",
"prefer-arrow-callback": "error"
}
},
"prettier": {
"singleQuote": true,
"trailingComma": "none",
"arrowParens": "avoid",
"endOfLine": "auto",
"overrides": [
{
"files": "package.json",
"options": {
"tabWidth": 4
},
"prettier": {
"singleQuote": true,
"trailingComma": "none",
"arrowParens": "avoid",
"endOfLine": "auto",
"overrides": [
{
"files": "package.json",
"options": {
"tabWidth": 4
}
}
]
},
"stylelint": {
"extends": [
"stylelint-config-recommended",
"stylelint-config-standard",
"stylelint-prettier/recommended"
],
"rules": {
"property-no-vendor-prefix": null,
"selector-class-pattern": null,
"selector-no-vendor-prefix": null,
"value-no-vendor-prefix": null
}
}
]
},
"stylelint": {
"extends": [
"stylelint-config-recommended",
"stylelint-config-standard",
"stylelint-prettier/recommended"
],
"rules": {
"property-no-vendor-prefix": null,
"selector-class-pattern": null,
"selector-no-vendor-prefix": null,
"value-no-vendor-prefix": null
}
}
}
23 changes: 23 additions & 0 deletions packages/application/src/plugins/rise.ts
Original file line number Diff line number Diff line change
Expand Up @@ -883,11 +883,34 @@ namespace Rise {
): Promise<void> {
document.body.classList.add('rise-enabled');

// Allow the panel to receive focus, to send it to the notebook.
// NOTES:
// Clicking in the notebook panel seems to fallback on reveal background,
// which gives the focus to the body element (at least it is the one targeted
// when using `document.activeElement`), without triggering the onfocus event.
panel.node.tabIndex = -1;

// Add the main reveal.js classes
const notebook = panel.content;
panel.addClass('reveal');
notebook.addClass('slides');

// Move the focus to the notebook when the iframe get the focus.
document.body.onfocus = event => {
const target = event.target;
if (target instanceof Window) {
notebook.node.focus();
}
};

// Move the focus to the notebook when the panel get the focus.
panel.node.onfocus = event => {
const target = event.target as HTMLElement;
if (!notebook.node.contains(target)) {
notebook.node.focus();
}
};

// Header
// Available themes are in static/css/theme
const theme = complete_config.theme;
Expand Down
Loading

0 comments on commit d082264

Please sign in to comment.