@ariakit/solid-components 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/as/as.d.ts +30 -0
- package/dist/as/as.d.ts.map +1 -0
- package/dist/as/as.js +40 -0
- package/dist/as/as.js.map +1 -0
- package/dist/focus-trap/focus-trap-region.d.ts +42 -0
- package/dist/focus-trap/focus-trap-region.d.ts.map +1 -0
- package/dist/focus-trap/focus-trap-region.js +71 -0
- package/dist/focus-trap/focus-trap-region.js.map +1 -0
- package/dist/focus-trap/focus-trap.d.ts +31 -0
- package/dist/focus-trap/focus-trap.d.ts.map +1 -0
- package/dist/focus-trap/focus-trap.js +42 -0
- package/dist/focus-trap/focus-trap.js.map +1 -0
- package/dist/group/group-label-context.d.ts +7 -0
- package/dist/group/group-label-context.d.ts.map +1 -0
- package/dist/group/group-label-context.js +7 -0
- package/dist/group/group-label-context.js.map +1 -0
- package/dist/group/group-label.d.ts +37 -0
- package/dist/group/group-label.d.ts.map +1 -0
- package/dist/group/group-label.js +51 -0
- package/dist/group/group-label.js.map +1 -0
- package/dist/group/group.d.ts +32 -0
- package/dist/group/group.d.ts.map +1 -0
- package/dist/group/group.js +49 -0
- package/dist/group/group.js.map +1 -0
- package/dist/heading/heading-context.d.ts +8 -0
- package/dist/heading/heading-context.d.ts.map +1 -0
- package/dist/heading/heading-context.js +7 -0
- package/dist/heading/heading-context.js.map +1 -0
- package/dist/heading/heading-level.d.ts +32 -0
- package/dist/heading/heading-level.d.ts.map +1 -0
- package/dist/heading/heading-level.js +34 -0
- package/dist/heading/heading-level.js.map +1 -0
- package/dist/heading/heading.d.ts +42 -0
- package/dist/heading/heading.d.ts.map +1 -0
- package/dist/heading/heading.js +57 -0
- package/dist/heading/heading.js.map +1 -0
- package/dist/heading/utils.d.ts +5 -0
- package/dist/heading/utils.d.ts.map +1 -0
- package/dist/heading/utils.js +0 -0
- package/dist/role/role.d.ts +34 -0
- package/dist/role/role.d.ts.map +1 -0
- package/dist/role/role.js +67 -0
- package/dist/role/role.js.map +1 -0
- package/dist/separator/separator.d.ts +36 -0
- package/dist/separator/separator.d.ts.map +1 -0
- package/dist/separator/separator.js +36 -0
- package/dist/separator/separator.js.map +1 -0
- package/dist/visually-hidden/visually-hidden.d.ts +37 -0
- package/dist/visually-hidden/visually-hidden.d.ts.map +1 -0
- package/dist/visually-hidden/visually-hidden.js +48 -0
- package/dist/visually-hidden/visually-hidden.js.map +1 -0
- package/index.ts +1 -0
- package/license +21 -0
- package/package.json +113 -0
- package/readme.md +19 -0
- package/solid/as/as.jsx +38 -0
- package/solid/as/as.jsx.map +1 -0
- package/solid/focus-trap/focus-trap-region.jsx +65 -0
- package/solid/focus-trap/focus-trap-region.jsx.map +1 -0
- package/solid/focus-trap/focus-trap.jsx +42 -0
- package/solid/focus-trap/focus-trap.jsx.map +1 -0
- package/solid/group/group-label-context.jsx +7 -0
- package/solid/group/group-label-context.jsx.map +1 -0
- package/solid/group/group-label.jsx +51 -0
- package/solid/group/group-label.jsx.map +1 -0
- package/solid/group/group.jsx +43 -0
- package/solid/group/group.jsx.map +1 -0
- package/solid/heading/heading-context.jsx +7 -0
- package/solid/heading/heading-context.jsx.map +1 -0
- package/solid/heading/heading-level.jsx +30 -0
- package/solid/heading/heading-level.jsx.map +1 -0
- package/solid/heading/heading.jsx +57 -0
- package/solid/heading/heading.jsx.map +1 -0
- package/solid/heading/utils.jsx +0 -0
- package/solid/role/role.jsx +67 -0
- package/solid/role/role.jsx.map +1 -0
- package/solid/separator/separator.jsx +36 -0
- package/solid/separator/separator.jsx.map +1 -0
- package/solid/visually-hidden/visually-hidden.jsx +48 -0
- package/solid/visually-hidden/visually-hidden.jsx.map +1 -0
- package/src/as/as.tsx +62 -0
- package/src/focus-trap/focus-trap-region.tsx +108 -0
- package/src/focus-trap/focus-trap.tsx +61 -0
- package/src/group/group-label-context.tsx +4 -0
- package/src/group/group-label.tsx +76 -0
- package/src/group/group.tsx +68 -0
- package/src/heading/heading-context.tsx +5 -0
- package/src/heading/heading-level.tsx +43 -0
- package/src/heading/heading.tsx +87 -0
- package/src/heading/utils.ts +1 -0
- package/src/role/role.tsx +91 -0
- package/src/separator/separator.tsx +66 -0
- package/src/visually-hidden/visually-hidden.tsx +63 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { mergeProps, createHook, createInstance } from "@ariakit/solid-utils";
|
|
2
|
+
import type { Options, Props } from "@ariakit/solid-utils";
|
|
3
|
+
import type { ValidComponent } from "solid-js";
|
|
4
|
+
|
|
5
|
+
const TagName = "span" satisfies ValidComponent;
|
|
6
|
+
type TagName = typeof TagName;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Returns props to create a `VisuallyHidden` component. When applying the props
|
|
10
|
+
* returned by this hook to a component, the component will be visually hidden,
|
|
11
|
+
* but still accessible to screen readers.
|
|
12
|
+
* @see https://solid.ariakit.com/components/visually-hidden
|
|
13
|
+
* @example
|
|
14
|
+
* ```jsx
|
|
15
|
+
* const props = useVisuallyHidden();
|
|
16
|
+
* <a href="#">
|
|
17
|
+
* Learn more<Role {...props}> about the Solar System</Role>.
|
|
18
|
+
* </a>
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export const useVisuallyHidden = createHook<TagName, VisuallyHiddenOptions>(
|
|
22
|
+
function useVisuallyHidden(props) {
|
|
23
|
+
props = mergeProps(
|
|
24
|
+
{
|
|
25
|
+
style: {
|
|
26
|
+
border: 0,
|
|
27
|
+
clip: "rect(0 0 0 0)",
|
|
28
|
+
height: "1px",
|
|
29
|
+
margin: "-1px",
|
|
30
|
+
overflow: "hidden",
|
|
31
|
+
padding: 0,
|
|
32
|
+
position: "absolute",
|
|
33
|
+
"white-space": "nowrap",
|
|
34
|
+
width: "1px",
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
props,
|
|
38
|
+
);
|
|
39
|
+
return props;
|
|
40
|
+
},
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Renders an element that's visually hidden, but still accessible to screen
|
|
45
|
+
* readers.
|
|
46
|
+
* @see https://solid.ariakit.com/components/visually-hidden
|
|
47
|
+
* @example
|
|
48
|
+
* ```jsx
|
|
49
|
+
* <a href="#">
|
|
50
|
+
* Learn more<VisuallyHidden> about the Solar System</VisuallyHidden>.
|
|
51
|
+
* </a>
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export function VisuallyHidden(props: VisuallyHiddenProps) {
|
|
55
|
+
const htmlProps = useVisuallyHidden(props);
|
|
56
|
+
return createInstance(TagName, htmlProps);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export interface VisuallyHiddenOptions<
|
|
60
|
+
_T extends ValidComponent = TagName,
|
|
61
|
+
> extends Options {}
|
|
62
|
+
|
|
63
|
+
export type VisuallyHiddenProps = Props<TagName, VisuallyHiddenOptions>;
|