diff --git a/packages/panels/src/components/checkbox-menu/CheckboxMenu.tsx b/packages/panels/src/components/checkbox-menu/CheckboxMenu.tsx index 37d8ce204..8c56dafb6 100644 --- a/packages/panels/src/components/checkbox-menu/CheckboxMenu.tsx +++ b/packages/panels/src/components/checkbox-menu/CheckboxMenu.tsx @@ -15,8 +15,6 @@ export interface CheckboxMenuProps extends CheckboxProps { const border = `1px solid var(--lhds-color-ui-300)`; -// TODO POPOVER placement={"bottom-start"} - export const CheckboxMenu: React.FC = ({ renderMenu, ...checkboxProps @@ -41,7 +39,7 @@ export const CheckboxMenu: React.FC = ({ )} hideArrow disablePadding - placement={"bottom"} + placement={"bottom-start"} > {({ onRequestClose }) => ( diff --git a/packages/panels/src/components/sidebar-menu/items/RailMenuCollapsible.tsx b/packages/panels/src/components/sidebar-menu/items/RailMenuCollapsible.tsx index df2e4b273..3f8b8cc84 100644 --- a/packages/panels/src/components/sidebar-menu/items/RailMenuCollapsible.tsx +++ b/packages/panels/src/components/sidebar-menu/items/RailMenuCollapsible.tsx @@ -15,7 +15,6 @@ export interface RailMenuCollapsibleProps { popupMinWidth?: string; } -// TODO POPOVER placement={"right-start"} export const RailMenuCollapsible: React.FC = ({ children, label, @@ -25,7 +24,7 @@ export const RailMenuCollapsible: React.FC = ({ return ( } - placement={"right"} + placement={"right-start"} trigger={["hover", "focus"]} disablePadding > diff --git a/packages/tooltip/src/components/popover/ControlledPopover.tsx b/packages/tooltip/src/components/popover/ControlledPopover.tsx index 63dc8745d..1b26dfa79 100644 --- a/packages/tooltip/src/components/popover/ControlledPopover.tsx +++ b/packages/tooltip/src/components/popover/ControlledPopover.tsx @@ -1,6 +1,5 @@ import * as React from "react"; import { PropsWithChildren, ReactNode, useCallback, useRef } from "react"; -import { Placement } from "../tooltip/Tooltip"; import { arrow, autoUpdate, @@ -18,6 +17,7 @@ import { } from "@floating-ui/react"; import cx from "classnames"; import moduleStyles from "./Popover.module.css"; +import { Placement } from "../../types/Placement"; export interface ControlledPopoverProps extends PropsWithChildren { open: boolean; diff --git a/packages/tooltip/src/components/popover/Popover.tsx b/packages/tooltip/src/components/popover/Popover.tsx index c797ded84..a24e46094 100644 --- a/packages/tooltip/src/components/popover/Popover.tsx +++ b/packages/tooltip/src/components/popover/Popover.tsx @@ -1,6 +1,5 @@ import * as React from "react"; import { ReactNode, useCallback, useRef, useState } from "react"; -import { Placement } from "../tooltip/Tooltip"; import { arrow, autoUpdate, @@ -22,6 +21,7 @@ import { } from "@floating-ui/react"; import cx from "classnames"; import moduleStyles from "./Popover.module.css"; +import { Placement } from "../../types/Placement"; export type PopoverVariant = | "standard" @@ -59,13 +59,6 @@ const ARROW_WIDTH = 12; const ARROW_HEIGHT = 8; const GAP = 2; -/* - TODO - onRequestClose - theme? - variant - */ - export const Popover: React.FC = ({ children, variant, diff --git a/packages/tooltip/src/components/tooltip/Tooltip.tsx b/packages/tooltip/src/components/tooltip/Tooltip.tsx index 0d99b2e7f..c4042660b 100644 --- a/packages/tooltip/src/components/tooltip/Tooltip.tsx +++ b/packages/tooltip/src/components/tooltip/Tooltip.tsx @@ -23,6 +23,7 @@ import { stenaExclamationTriangle, stenaInfoCircle, } from "@stenajs-webui/elements"; +import { Placement } from "../../types/Placement"; export interface TooltipProps extends PropsWithChildren { placement?: Placement; @@ -44,8 +45,6 @@ const ARROW_WIDTH = 12; const ARROW_HEIGHT = 8; const GAP = 2; -export type Placement = "top" | "right" | "bottom" | "left"; - export const Tooltip: React.FC = ({ children, visible, @@ -59,7 +58,7 @@ export const Tooltip: React.FC = ({ const arrowRef = useRef(null); const { refs, floatingStyles, context } = useFloating({ - placement, + placement: placement, open: visible ?? isOpen, onOpenChange: setIsOpen, middleware: [ diff --git a/packages/tooltip/src/types/Placement.tsx b/packages/tooltip/src/types/Placement.tsx new file mode 100644 index 000000000..a6c01ed50 --- /dev/null +++ b/packages/tooltip/src/types/Placement.tsx @@ -0,0 +1,4 @@ +export type Placement = Side | AlignedPlacement; +export type AlignedPlacement = `${Side}-${Alignment}`; +export type Alignment = "start" | "end"; +export type Side = "top" | "right" | "bottom" | "left"; diff --git a/yarn.lock b/yarn.lock index cb318bf6a..fab89c3d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1842,7 +1842,7 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== -"@emotion/use-insertion-effect-with-fallbacks@^1.0.0", "@emotion/use-insertion-effect-with-fallbacks@^1.0.1": +"@emotion/use-insertion-effect-with-fallbacks@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== @@ -3386,15 +3386,6 @@ dependencies: memoizerific "^1.11.3" -"@storybook/addons@^7.6.17": - version "7.6.17" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-7.6.17.tgz#6fd78ae3a3419bd91fdacbebd40062eb94f92155" - integrity sha512-Ok18Y698Ccyg++MoUNJNHY0cXUvo8ETFIRLJk1g9ElJ70j6kPgNnzW2pAtZkBNmswHtofZ7pT156cj96k/LgfA== - dependencies: - "@storybook/manager-api" "7.6.17" - "@storybook/preview-api" "7.6.17" - "@storybook/types" "7.6.17" - "@storybook/blocks@8.2.9", "@storybook/blocks@^8.2.9": version "8.2.9" resolved "https://registry.yarnpkg.com/@storybook/blocks/-/blocks-8.2.9.tgz#3c9018619704cee23c9e69ff263e3c0aaa9a7ccc" @@ -3430,25 +3421,6 @@ magic-string "^0.30.0" ts-dedent "^2.0.0" -"@storybook/channels@7.6.17": - version "7.6.17" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-7.6.17.tgz#5be1d1222a3ffdc90e1868230c2b2ee5dfc7a97f" - integrity sha512-GFG40pzaSxk1hUr/J/TMqW5AFDDPUSu+HkeE/oqSWJbOodBOLJzHN6CReJS6y1DjYSZLNFt1jftPWZZInG/XUA== - dependencies: - "@storybook/client-logger" "7.6.17" - "@storybook/core-events" "7.6.17" - "@storybook/global" "^5.0.0" - qs "^6.10.0" - telejson "^7.2.0" - tiny-invariant "^1.3.1" - -"@storybook/client-logger@7.6.17": - version "7.6.17" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-7.6.17.tgz#5031c47b7df8d8792fe9dfed5828222f515e5803" - integrity sha512-6WBYqixAXNAXlSaBWwgljWpAu10tPRBJrcFvx2gPUne58EeMM20Gi/iHYBz2kMCY+JLAgeIH7ZxInqwO8vDwiQ== - dependencies: - "@storybook/global" "^5.0.0" - "@storybook/codemod@8.2.9": version "8.2.9" resolved "https://registry.yarnpkg.com/@storybook/codemod/-/codemod-8.2.9.tgz#f6c7f43a5aa326b64544ad6f10038edc32293827" @@ -3473,13 +3445,6 @@ resolved "https://registry.yarnpkg.com/@storybook/components/-/components-8.2.9.tgz#a2394749d52940b7a224d1d4801d756b2750b488" integrity sha512-OkkcZ/f/6o3GdFEEK9ZHKIGHWUHmavZUYs5xaSgU64bOrA2aqEFtfeWWitZYTv3Euhk8MVLWfyEMDfez0AlvDg== -"@storybook/core-events@7.6.17": - version "7.6.17" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-7.6.17.tgz#9e1a795558193089fb227cfe2cf768c99418a640" - integrity sha512-AriWMCm/k1cxlv10f+jZ1wavThTRpLaN3kY019kHWbYT9XgaSuLU67G7GPr3cGnJ6HuA6uhbzu8qtqVCd6OfXA== - dependencies: - ts-dedent "^2.0.0" - "@storybook/core@8.2.9": version "8.2.9" resolved "https://registry.yarnpkg.com/@storybook/core/-/core-8.2.9.tgz#68f8659014e06f4f65f6dbdf1dd10850f31d23b3" @@ -3511,13 +3476,6 @@ dependencies: type-fest "^2.19.0" -"@storybook/csf@^0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@storybook/csf/-/csf-0.1.2.tgz#8e7452f0097507f5841b5ade3f5da1525bc9afb2" - integrity sha512-ePrvE/pS1vsKR9Xr+o+YwdqNgHUyXvg+1Xjx0h9LrVx7Zq4zNe06pd63F5EvzTbCbJsHj7GHr9tkiaqm7U8WRA== - dependencies: - type-fest "^2.19.0" - "@storybook/global@^5.0.0": version "5.0.0" resolved "https://registry.yarnpkg.com/@storybook/global/-/global-5.0.0.tgz#b793d34b94f572c1d7d9e0f44fac4e0dbc9572ed" @@ -3537,51 +3495,11 @@ "@vitest/utils" "^1.3.1" util "^0.12.4" -"@storybook/manager-api@7.6.17": - version "7.6.17" - resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-7.6.17.tgz#cdf0bb8e5bdc3da2559150125b3d6a3ff72f0def" - integrity sha512-IJIV1Yc6yw1dhCY4tReHCfBnUKDqEBnMyHp3mbXpsaHxnxJZrXO45WjRAZIKlQKhl/Ge1CrnznmHRCmYgqmrWg== - dependencies: - "@storybook/channels" "7.6.17" - "@storybook/client-logger" "7.6.17" - "@storybook/core-events" "7.6.17" - "@storybook/csf" "^0.1.2" - "@storybook/global" "^5.0.0" - "@storybook/router" "7.6.17" - "@storybook/theming" "7.6.17" - "@storybook/types" "7.6.17" - dequal "^2.0.2" - lodash "^4.17.21" - memoizerific "^1.11.3" - store2 "^2.14.2" - telejson "^7.2.0" - ts-dedent "^2.0.0" - "@storybook/manager-api@^8.2.9": version "8.2.9" resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-8.2.9.tgz#f09a83fce286bc48783c75e7d7184dd8a5381527" integrity sha512-mkYvUlfqDw+0WbxIynh5TcrotmoXlumEsOA4+45zuNea8XpEgj5cNBUCnmfEO6yQ85swqkS8YYbMpg1cZyu/Vw== -"@storybook/preview-api@7.6.17": - version "7.6.17" - resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-7.6.17.tgz#03dd399bf3bb8ac6f4aad3c738365b86b8790157" - integrity sha512-wLfDdI9RWo1f2zzFe54yRhg+2YWyxLZvqdZnSQ45mTs4/7xXV5Wfbv3QNTtcdw8tT3U5KRTrN1mTfTCiRJc0Kw== - dependencies: - "@storybook/channels" "7.6.17" - "@storybook/client-logger" "7.6.17" - "@storybook/core-events" "7.6.17" - "@storybook/csf" "^0.1.2" - "@storybook/global" "^5.0.0" - "@storybook/types" "7.6.17" - "@types/qs" "^6.9.5" - dequal "^2.0.2" - lodash "^4.17.21" - memoizerific "^1.11.3" - qs "^6.10.0" - synchronous-promise "^2.0.15" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - "@storybook/preview-api@^8.2.9": version "8.2.9" resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-8.2.9.tgz#e35ca783a1d98174e73223856397a9767766a737" @@ -3634,15 +3552,6 @@ type-fest "~2.19" util-deprecate "^1.0.2" -"@storybook/router@7.6.17": - version "7.6.17" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-7.6.17.tgz#de5016086191846ed12af7495aeddcc373cbd0d4" - integrity sha512-GnyC0j6Wi5hT4qRhSyT8NPtJfGmf82uZw97LQRWeyYu5gWEshUdM7aj40XlNiScd5cZDp0owO1idduVF2k2l2A== - dependencies: - "@storybook/client-logger" "7.6.17" - memoizerific "^1.11.3" - qs "^6.10.0" - "@storybook/source-loader@8.2.9": version "8.2.9" resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-8.2.9.tgz#d67e805ed673afb9c3db6f5c4214d50d16bb8c54" @@ -3667,31 +3576,11 @@ "@vitest/spy" "1.6.0" util "^0.12.4" -"@storybook/theming@7.6.17": - version "7.6.17" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-7.6.17.tgz#8170e3e72b921380c51a3970890d4cb479a65c2f" - integrity sha512-ZbaBt3KAbmBtfjNqgMY7wPMBshhSJlhodyMNQypv+95xLD/R+Az6aBYbpVAOygLaUQaQk4ar7H/Ww6lFIoiFbA== - dependencies: - "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" - "@storybook/client-logger" "7.6.17" - "@storybook/global" "^5.0.0" - memoizerific "^1.11.3" - "@storybook/theming@^8.2.9": version "8.2.9" resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-8.2.9.tgz#6eb066f8957272c0bcb0078a8a9bc378ca9311d3" integrity sha512-OL0NFvowPX85N5zIYdgeKKaFm7V4Vgtci093vL3cDZT13LGH6GuEzJKkUFGuUGNPFlJc+EgTj0o6PYKrOLyQ6w== -"@storybook/types@7.6.17": - version "7.6.17" - resolved "https://registry.yarnpkg.com/@storybook/types/-/types-7.6.17.tgz#0b3c27cb1708c0545a9ea1a23b73aa8852dd47c4" - integrity sha512-GRY0xEJQ0PrL7DY2qCNUdIfUOE0Gsue6N+GBJw9ku1IUDFLJRDOF+4Dx2BvYcVCPI5XPqdWKlEyZdMdKjiQN7Q== - dependencies: - "@storybook/channels" "7.6.17" - "@types/babel__core" "^7.0.0" - "@types/express" "^4.7.0" - file-system-cache "2.3.0" - "@styled-system/background@^5.1.2": version "5.1.2" resolved "https://registry.npmjs.org/@styled-system/background/-/background-5.1.2.tgz" @@ -3979,7 +3868,7 @@ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== -"@types/babel__core@^7.0.0", "@types/babel__core@^7.18.0", "@types/babel__core@^7.20.5": +"@types/babel__core@^7.18.0", "@types/babel__core@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== @@ -4111,16 +4000,6 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/express@^4.7.0": - version "4.17.17" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" - integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - "@types/find-cache-dir@^3.2.1": version "3.2.1" resolved "https://registry.yarnpkg.com/@types/find-cache-dir/-/find-cache-dir-3.2.1.tgz#7b959a4b9643a1e6a1a5fe49032693cc36773501" @@ -4254,7 +4133,7 @@ resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz" integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== -"@types/qs@*", "@types/qs@^6.9.5": +"@types/qs@*": version "6.9.7" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== @@ -7243,14 +7122,6 @@ file-saver@^2.0.0: resolved "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz" integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== -file-system-cache@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/file-system-cache/-/file-system-cache-2.3.0.tgz#201feaf4c8cd97b9d0d608e96861bb6005f46fe6" - integrity sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ== - dependencies: - fs-extra "11.1.1" - ramda "0.29.0" - filelist@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" @@ -7425,7 +7296,7 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@11.1.1, fs-extra@^11.1.0, fs-extra@^11.1.1: +fs-extra@^11.1.0, fs-extra@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== @@ -11474,7 +11345,7 @@ punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -qs@6.11.0, qs@^6.10.0: +qs@6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== @@ -11503,11 +11374,6 @@ railroad-diagrams@^1.0.0: resolved "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz" integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234= -ramda@0.29.0: - version "0.29.0" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.29.0.tgz#fbbb67a740a754c8a4cbb41e2a6e0eb8507f55fb" - integrity sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA== - randexp@0.4.6: version "0.4.6" resolved "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz" @@ -12635,11 +12501,6 @@ stop-iteration-iterator@^1.0.0: dependencies: internal-slot "^1.0.4" -store2@^2.14.2: - version "2.14.2" - resolved "https://registry.yarnpkg.com/store2/-/store2-2.14.2.tgz#56138d200f9fe5f582ad63bc2704dbc0e4a45068" - integrity sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w== - storybook@^8.2.9: version "8.2.9" resolved "https://registry.yarnpkg.com/storybook/-/storybook-8.2.9.tgz#35a670cb72367709b6ad3627dfb77c5e25a339f0" @@ -13001,11 +12862,6 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -synchronous-promise@^2.0.15: - version "2.0.15" - resolved "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.15.tgz" - integrity sha512-k8uzYIkIVwmT+TcglpdN50pS2y1BDcUnBPK9iJeGu0Pl1lOI8pD6wtzgw91Pjpe+RxtTncw32tLxs/R0yNL2Mg== - tabbable@^6.0.0: version "6.2.0" resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97"