Skip to content

Commit aeec0f0

Browse files
Merge pull request #81 from appwrite/chore-upgrade-svelte
a11y: trigger click when pressing enter on non-interactive elements
2 parents f1c3556 + 6aa1d1f commit aeec0f0

File tree

12 files changed

+231
-168
lines changed

12 files changed

+231
-168
lines changed

package-lock.json

Lines changed: 153 additions & 151 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,34 +27,34 @@
2727
"web-vitals": "^3.0.3"
2828
},
2929
"devDependencies": {
30-
"@playwright/test": "^1.26.1",
30+
"@playwright/test": "^1.27.1",
3131
"@sveltejs/adapter-static": "1.0.0-next.44",
32-
"@sveltejs/kit": "1.0.0-next.512",
33-
"@sveltejs/vite-plugin-svelte": "^1.0.8",
34-
"@testing-library/dom": "^8.18.1",
32+
"@sveltejs/kit": "1.0.0-next.516",
33+
"@sveltejs/vite-plugin-svelte": "^1.0.9",
34+
"@testing-library/dom": "^8.19.0",
3535
"@testing-library/jest-dom": "^5.16.5",
3636
"@testing-library/svelte": "3.1.3",
3737
"@testing-library/user-event": "^14.4.3",
3838
"@types/prismjs": "^1.26.0",
3939
"@types/gtag.js": "^0.0.12",
40-
"@typescript-eslint/eslint-plugin": "^5.39.0",
41-
"@typescript-eslint/parser": "^5.39.0",
42-
"@vitest/ui": "^0.23.4",
43-
"eslint": "^8.24.0",
40+
"@typescript-eslint/eslint-plugin": "^5.40.0",
41+
"@typescript-eslint/parser": "^5.40.0",
42+
"@vitest/ui": "^0.24.3",
43+
"eslint": "^8.25.0",
4444
"eslint-config-prettier": "^8.5.0",
4545
"eslint-plugin-svelte3": "^4.0.0",
4646
"pre-commit": "^1.2.2",
4747
"prettier": "^2.7.1",
48-
"prettier-plugin-svelte": "^2.7.1",
48+
"prettier-plugin-svelte": "^2.8.0",
4949
"sass": "^1.55.0",
50-
"svelte": "^3.50.1",
51-
"svelte-check": "^2.9.1",
50+
"svelte": "^3.51.0",
51+
"svelte-check": "^2.9.2",
5252
"svelte-jester": "^2.3.2",
5353
"svelte-preprocess": "^4.10.7",
5454
"tslib": "^2.4.0",
5555
"typescript": "^4.8.4",
56-
"vite": "^3.1.4",
57-
"vitest": "^0.23.4"
56+
"vite": "^3.1.8",
57+
"vitest": "^0.24.3"
5858
},
5959
"type": "module",
6060
"pre-commit": [

src/lib/components/copy.svelte

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script lang="ts">
22
import { tooltip } from '$lib/actions/tooltip';
3+
import { clickOnEnter } from '$lib/helpers/a11y';
34
import { addNotification } from '$lib/stores/notifications';
45
56
export let value: string;
@@ -21,6 +22,7 @@
2122

2223
<span
2324
on:click|preventDefault={copy}
25+
on:keyup={clickOnEnter}
2426
on:mouseenter={() => setTimeout(() => (content = 'Click to copy'))}
2527
use:tooltip={{
2628
content,

src/lib/components/dropListLink.svelte

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
<script lang="ts">
2+
import { clickOnEnter } from '$lib/helpers/a11y';
3+
24
export let href: string;
35
export let icon: string = null;
46
</script>
57

6-
<li class="drop-list-item" on:click>
8+
<li class="drop-list-item" on:click on:keyup={clickOnEnter}>
79
<a {href} class="drop-button">
810
<span class="text"><slot /></span>
911
{#if icon}

src/lib/components/modal.svelte

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import { createEventDispatcher } from 'svelte';
44
import { fade, fly, type FadeParams, type FlyParams } from 'svelte/transition';
55
import { Alert } from '$lib/components';
6+
import { clickOnEnter } from '$lib/helpers/a11y';
67
78
export let show = false;
89
export let size: 'small' | 'big' = null;
@@ -58,7 +59,12 @@
5859
<svelte:window on:keydown={handleKeydown} />
5960

6061
{#if show}
61-
<div class="modal-curtain" data-curtain on:click={handleBLur} transition:fade={transitionFade}>
62+
<div
63+
class="modal-curtain"
64+
data-curtain
65+
on:click={handleBLur}
66+
on:keyup|self={clickOnEnter}
67+
transition:fade={transitionFade}>
6268
<section
6369
class:is-small={size === 'small'}
6470
class:is-big={size === 'big'}

src/lib/components/permissions/actions.svelte

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@
1515
export let groups: Writable<Map<string, Permission>>;
1616
1717
const dispatch = createEventDispatcher();
18+
19+
$: if (showUser || showTeam || showCustom) {
20+
showDropdown = false;
21+
}
1822
</script>
1923

2024
<DropList

src/lib/components/step.svelte

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
<script lang="ts">
2+
import { clickOnEnter } from '$lib/helpers/a11y';
3+
24
export let completed = false;
35
export let current = false;
46
export let currentSub = 0;
@@ -10,6 +12,7 @@
1012

1113
<li
1214
on:click|preventDefault
15+
on:keyup|self={clickOnEnter}
1316
class:steps-item={!isSub}
1417
class:steps-sub-item={isSub}
1518
style={`cursor: ${completed ? 'pointer' : 'default'};`}

src/lib/helpers/a11y.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
export function clickOnEnter(
2+
event: KeyboardEvent & {
3+
currentTarget: EventTarget & HTMLElement;
4+
}
5+
) {
6+
if (event.key === 'Enter' && event.currentTarget.contains(event.target as Node)) {
7+
event.preventDefault();
8+
event.currentTarget.click();
9+
}
10+
}

src/routes/console/project-[project]/authentication/security/+page.svelte

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import { project } from '../../store';
77
import { addNotification } from '$lib/stores/notifications';
88
import { sdkForConsole } from '$lib/stores/sdk';
9+
import { clickOnEnter } from '$lib/helpers/a11y';
910
1011
const projectId = $project.$id;
1112
let isLimited = $project.authLimit === 0 ? 'unlimited' : 'limited';
@@ -113,7 +114,8 @@
113114
</div>
114115
<div
115116
class="input-text-wrapper u-stretch"
116-
on:click={() => (isLimited = 'limited')}>
117+
on:click={() => (isLimited = 'limited')}
118+
on:keyup|self={clickOnEnter}>
117119
<input
118120
type="number"
119121
name="limit"

src/routes/console/project-[project]/functions/function/[function]/_create.svelte

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import { createEventDispatcher } from 'svelte';
66
import { addNotification } from '$lib/stores/notifications';
77
import { page } from '$app/stores';
8+
import { clickOnEnter } from '$lib/helpers/a11y';
89
910
export let showCreate = false;
1011
@@ -39,6 +40,7 @@
3940
<span
4041
class="tabs-button"
4142
on:click={() => (showCli = true)}
43+
on:keyup={clickOnEnter}
4244
class:is-selected={showCli}>
4345
<span class="text">Files</span>
4446
</span>
@@ -47,6 +49,7 @@
4749
<span
4850
class="tabs-button"
4951
on:click={() => (showCli = false)}
52+
on:keyup={clickOnEnter}
5053
class:is-selected={!showCli}>
5154
<span class="text">Usage</span>
5255
</span>

0 commit comments

Comments
 (0)