Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x | /*
* Copyright 2020 Adobe. All rights reserved.
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. You may obtain a copy
* of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
* OF ANY KIND, either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
import { Accessor, mergeProps } from "solid-js";
import { filterDOMProps } from "@solid-aria/utils";
import { createHover } from "../../internals/solid-aria/createHover";
import type { TooltipTriggerState } from "../state/tooltip-trigger-state";
import type { AriaTooltip, TooltipArguments } from "./types";
/**
* Creates a Tooltip bindings according to the WAI-ARIA specification.
*
* @link https://www.w3.org/WAI/ARIA/apg/patterns/tooltip
*/
export function createTooltip(props: TooltipArguments, state: Accessor<TooltipTriggerState>): AriaTooltip {
const domProps = filterDOMProps(props, { labelable: true });
const { hoverProps } = createHover({
onHoverStart: () => state().open(true),
onHoverEnd: () => state().close()
});
return {
get tooltipProps() {
const local = mergeProps(domProps, hoverProps, {
role: "tooltip" as const
});
return local;
}
};
}
|