@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.
Files changed (94) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/as/as.d.ts +30 -0
  3. package/dist/as/as.d.ts.map +1 -0
  4. package/dist/as/as.js +40 -0
  5. package/dist/as/as.js.map +1 -0
  6. package/dist/focus-trap/focus-trap-region.d.ts +42 -0
  7. package/dist/focus-trap/focus-trap-region.d.ts.map +1 -0
  8. package/dist/focus-trap/focus-trap-region.js +71 -0
  9. package/dist/focus-trap/focus-trap-region.js.map +1 -0
  10. package/dist/focus-trap/focus-trap.d.ts +31 -0
  11. package/dist/focus-trap/focus-trap.d.ts.map +1 -0
  12. package/dist/focus-trap/focus-trap.js +42 -0
  13. package/dist/focus-trap/focus-trap.js.map +1 -0
  14. package/dist/group/group-label-context.d.ts +7 -0
  15. package/dist/group/group-label-context.d.ts.map +1 -0
  16. package/dist/group/group-label-context.js +7 -0
  17. package/dist/group/group-label-context.js.map +1 -0
  18. package/dist/group/group-label.d.ts +37 -0
  19. package/dist/group/group-label.d.ts.map +1 -0
  20. package/dist/group/group-label.js +51 -0
  21. package/dist/group/group-label.js.map +1 -0
  22. package/dist/group/group.d.ts +32 -0
  23. package/dist/group/group.d.ts.map +1 -0
  24. package/dist/group/group.js +49 -0
  25. package/dist/group/group.js.map +1 -0
  26. package/dist/heading/heading-context.d.ts +8 -0
  27. package/dist/heading/heading-context.d.ts.map +1 -0
  28. package/dist/heading/heading-context.js +7 -0
  29. package/dist/heading/heading-context.js.map +1 -0
  30. package/dist/heading/heading-level.d.ts +32 -0
  31. package/dist/heading/heading-level.d.ts.map +1 -0
  32. package/dist/heading/heading-level.js +34 -0
  33. package/dist/heading/heading-level.js.map +1 -0
  34. package/dist/heading/heading.d.ts +42 -0
  35. package/dist/heading/heading.d.ts.map +1 -0
  36. package/dist/heading/heading.js +57 -0
  37. package/dist/heading/heading.js.map +1 -0
  38. package/dist/heading/utils.d.ts +5 -0
  39. package/dist/heading/utils.d.ts.map +1 -0
  40. package/dist/heading/utils.js +0 -0
  41. package/dist/role/role.d.ts +34 -0
  42. package/dist/role/role.d.ts.map +1 -0
  43. package/dist/role/role.js +67 -0
  44. package/dist/role/role.js.map +1 -0
  45. package/dist/separator/separator.d.ts +36 -0
  46. package/dist/separator/separator.d.ts.map +1 -0
  47. package/dist/separator/separator.js +36 -0
  48. package/dist/separator/separator.js.map +1 -0
  49. package/dist/visually-hidden/visually-hidden.d.ts +37 -0
  50. package/dist/visually-hidden/visually-hidden.d.ts.map +1 -0
  51. package/dist/visually-hidden/visually-hidden.js +48 -0
  52. package/dist/visually-hidden/visually-hidden.js.map +1 -0
  53. package/index.ts +1 -0
  54. package/license +21 -0
  55. package/package.json +113 -0
  56. package/readme.md +19 -0
  57. package/solid/as/as.jsx +38 -0
  58. package/solid/as/as.jsx.map +1 -0
  59. package/solid/focus-trap/focus-trap-region.jsx +65 -0
  60. package/solid/focus-trap/focus-trap-region.jsx.map +1 -0
  61. package/solid/focus-trap/focus-trap.jsx +42 -0
  62. package/solid/focus-trap/focus-trap.jsx.map +1 -0
  63. package/solid/group/group-label-context.jsx +7 -0
  64. package/solid/group/group-label-context.jsx.map +1 -0
  65. package/solid/group/group-label.jsx +51 -0
  66. package/solid/group/group-label.jsx.map +1 -0
  67. package/solid/group/group.jsx +43 -0
  68. package/solid/group/group.jsx.map +1 -0
  69. package/solid/heading/heading-context.jsx +7 -0
  70. package/solid/heading/heading-context.jsx.map +1 -0
  71. package/solid/heading/heading-level.jsx +30 -0
  72. package/solid/heading/heading-level.jsx.map +1 -0
  73. package/solid/heading/heading.jsx +57 -0
  74. package/solid/heading/heading.jsx.map +1 -0
  75. package/solid/heading/utils.jsx +0 -0
  76. package/solid/role/role.jsx +67 -0
  77. package/solid/role/role.jsx.map +1 -0
  78. package/solid/separator/separator.jsx +36 -0
  79. package/solid/separator/separator.jsx.map +1 -0
  80. package/solid/visually-hidden/visually-hidden.jsx +48 -0
  81. package/solid/visually-hidden/visually-hidden.jsx.map +1 -0
  82. package/src/as/as.tsx +62 -0
  83. package/src/focus-trap/focus-trap-region.tsx +108 -0
  84. package/src/focus-trap/focus-trap.tsx +61 -0
  85. package/src/group/group-label-context.tsx +4 -0
  86. package/src/group/group-label.tsx +76 -0
  87. package/src/group/group.tsx +68 -0
  88. package/src/heading/heading-context.tsx +5 -0
  89. package/src/heading/heading-level.tsx +43 -0
  90. package/src/heading/heading.tsx +87 -0
  91. package/src/heading/utils.ts +1 -0
  92. package/src/role/role.tsx +91 -0
  93. package/src/separator/separator.tsx +66 -0
  94. 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>;