From c5efb6bcd87fae5366a3b73b510e668fb2f9da01 Mon Sep 17 00:00:00 2001 From: Eric Liu Date: Sun, 6 Dec 2020 05:07:32 -0800 Subject: [PATCH] Close tooltip on mousedown event, add reactive, hidden icon examples (#450) * fix(tooltip): close tooltip on mousedown event - remove blur event from tooltip; stop click, mouse propagation on tooltip content - remove tabindex from open tooltip to prevent outline ring - refocus trigger icon or trigger text when closing - remove useless programmatic variable * docs(tooltip): add reactive example, hidden icon example --- docs/src/pages/components/Tooltip.svx | 12 ++++++++++ .../framed/Tooltip/TooltipReactive.svelte | 23 +++++++++++++++++++ src/Tooltip/Tooltip.svelte | 22 ++++++++---------- 3 files changed, 45 insertions(+), 12 deletions(-) create mode 100644 docs/src/pages/framed/Tooltip/TooltipReactive.svelte diff --git a/docs/src/pages/components/Tooltip.svx b/docs/src/pages/components/Tooltip.svx index a9deb31b..f4f6d538 100644 --- a/docs/src/pages/components/Tooltip.svx +++ b/docs/src/pages/components/Tooltip.svx @@ -20,6 +20,10 @@

+### Reactive example + + + ### Directions

Top

@@ -60,4 +64,12 @@

Resources are provisioned based on your account's organization.

+ + +### Hidden icon + + +

+ Resources are provisioned based on your account's organization. +

\ No newline at end of file diff --git a/docs/src/pages/framed/Tooltip/TooltipReactive.svelte b/docs/src/pages/framed/Tooltip/TooltipReactive.svelte new file mode 100644 index 00000000..8d131ae1 --- /dev/null +++ b/docs/src/pages/framed/Tooltip/TooltipReactive.svelte @@ -0,0 +1,23 @@ + + + + + +

Resources are provisioned based on your account's organization.

+
+ +
+ +
+ +
Open: {open}
diff --git a/src/Tooltip/Tooltip.svelte b/src/Tooltip/Tooltip.svelte index ca6076fa..3f2bd110 100644 --- a/src/Tooltip/Tooltip.svelte +++ b/src/Tooltip/Tooltip.svelte @@ -68,8 +68,6 @@ const dispatch = createEventDispatcher(); - let programmatic = true; - function onKeydown(e) { if (e.key === "Escape") { e.stopPropagation(); @@ -88,15 +86,9 @@ } function openMenu() { - programmatic = false; open = true; } - function closeMenu() { - programmatic = false; - open = false; - } - afterUpdate(() => { if (open) { const button = ref.getBoundingClientRect(); @@ -167,8 +159,14 @@ { + if (open && target.contains(refTooltip)) { + if (refIcon) { + refIcon.focus(); + } else if (ref) { + ref.focus(); + } + open = false; } }}" /> @@ -206,7 +204,6 @@