@ariakit/solid-core 0.0.1 → 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 (149) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/as/as/package.json +8 -0
  3. package/cjs/__chunks/53WPOLZU.cjs +7 -0
  4. package/cjs/__chunks/AUGTJ473.cjs +7 -0
  5. package/cjs/__chunks/GVOD7RTZ.cjs +21 -0
  6. package/cjs/__chunks/JFCGWMZC.cjs +35 -0
  7. package/cjs/__chunks/RLO4RIGL.cjs +42 -0
  8. package/cjs/__chunks/T5IUBZJK.cjs +39 -0
  9. package/cjs/__chunks/V3ZEI37L.cjs +61 -0
  10. package/cjs/__chunks/V5YR7HBG.cjs +37 -0
  11. package/cjs/as/as.cjs +7 -0
  12. package/cjs/as/as.d.cts +30 -0
  13. package/cjs/as/as.d.ts +30 -0
  14. package/cjs/focus-trap/focus-trap-region.cjs +68 -0
  15. package/cjs/focus-trap/focus-trap-region.d.cts +38 -0
  16. package/cjs/focus-trap/focus-trap-region.d.ts +38 -0
  17. package/cjs/focus-trap/focus-trap.cjs +11 -0
  18. package/cjs/focus-trap/focus-trap.d.cts +27 -0
  19. package/cjs/focus-trap/focus-trap.d.ts +27 -0
  20. package/cjs/group/group-label-context.cjs +6 -0
  21. package/cjs/group/group-label-context.d.cts +2 -0
  22. package/cjs/group/group-label-context.d.ts +2 -0
  23. package/cjs/group/group-label.cjs +41 -0
  24. package/cjs/group/group-label.d.cts +34 -0
  25. package/cjs/group/group-label.d.ts +34 -0
  26. package/cjs/group/group.cjs +43 -0
  27. package/cjs/group/group.d.cts +28 -0
  28. package/cjs/group/group.d.ts +28 -0
  29. package/cjs/heading/heading-context.cjs +6 -0
  30. package/cjs/heading/heading-context.d.cts +3 -0
  31. package/cjs/heading/heading-context.d.ts +3 -0
  32. package/cjs/heading/heading-level.cjs +23 -0
  33. package/cjs/heading/heading-level.d.cts +27 -0
  34. package/cjs/heading/heading-level.d.ts +27 -0
  35. package/cjs/heading/heading.cjs +45 -0
  36. package/cjs/heading/heading.d.cts +39 -0
  37. package/cjs/heading/heading.d.ts +39 -0
  38. package/cjs/heading/utils.cjs +1 -0
  39. package/cjs/heading/utils.d.cts +1 -0
  40. package/cjs/heading/utils.d.ts +1 -0
  41. package/cjs/role/role.cjs +26 -0
  42. package/cjs/role/role.d.cts +33 -0
  43. package/cjs/role/role.d.ts +33 -0
  44. package/cjs/separator/separator.cjs +30 -0
  45. package/cjs/separator/separator.d.cts +32 -0
  46. package/cjs/separator/separator.d.ts +32 -0
  47. package/cjs/utils/misc.cjs +8 -0
  48. package/cjs/utils/misc.d.cts +16 -0
  49. package/cjs/utils/misc.d.ts +16 -0
  50. package/cjs/utils/reactivity.cjs +12 -0
  51. package/cjs/utils/reactivity.d.cts +109 -0
  52. package/cjs/utils/reactivity.d.ts +109 -0
  53. package/cjs/utils/system.cjs +13 -0
  54. package/cjs/utils/system.d.cts +45 -0
  55. package/cjs/utils/system.d.ts +45 -0
  56. package/cjs/utils/types.cjs +1 -0
  57. package/cjs/utils/types.d.cts +56 -0
  58. package/cjs/utils/types.d.ts +56 -0
  59. package/cjs/visually-hidden/visually-hidden.cjs +10 -0
  60. package/cjs/visually-hidden/visually-hidden.d.cts +34 -0
  61. package/cjs/visually-hidden/visually-hidden.d.ts +34 -0
  62. package/esm/__chunks/I7JSIDPD.js +7 -0
  63. package/esm/__chunks/ILGMKAYU.js +37 -0
  64. package/esm/__chunks/NX66AMGW.js +39 -0
  65. package/esm/__chunks/OKOFCLOZ.js +61 -0
  66. package/esm/__chunks/QKOHDUFI.js +42 -0
  67. package/esm/__chunks/SFKMELHD.js +35 -0
  68. package/esm/__chunks/UKDBTPK5.js +21 -0
  69. package/esm/__chunks/VOWRNGOM.js +7 -0
  70. package/esm/as/as.d.ts +30 -0
  71. package/esm/as/as.js +7 -0
  72. package/esm/focus-trap/focus-trap-region.d.ts +38 -0
  73. package/esm/focus-trap/focus-trap-region.js +68 -0
  74. package/esm/focus-trap/focus-trap.d.ts +27 -0
  75. package/esm/focus-trap/focus-trap.js +11 -0
  76. package/esm/group/group-label-context.d.ts +2 -0
  77. package/esm/group/group-label-context.js +6 -0
  78. package/esm/group/group-label.d.ts +34 -0
  79. package/esm/group/group-label.js +41 -0
  80. package/esm/group/group.d.ts +28 -0
  81. package/esm/group/group.js +43 -0
  82. package/esm/heading/heading-context.d.ts +3 -0
  83. package/esm/heading/heading-context.js +6 -0
  84. package/esm/heading/heading-level.d.ts +27 -0
  85. package/esm/heading/heading-level.js +23 -0
  86. package/esm/heading/heading.d.ts +39 -0
  87. package/esm/heading/heading.js +45 -0
  88. package/esm/heading/utils.d.ts +1 -0
  89. package/esm/heading/utils.js +0 -0
  90. package/esm/role/role.d.ts +33 -0
  91. package/esm/role/role.js +26 -0
  92. package/esm/separator/separator.d.ts +32 -0
  93. package/esm/separator/separator.js +30 -0
  94. package/esm/utils/misc.d.ts +16 -0
  95. package/esm/utils/misc.js +8 -0
  96. package/esm/utils/reactivity.d.ts +109 -0
  97. package/esm/utils/reactivity.js +12 -0
  98. package/esm/utils/system.d.ts +45 -0
  99. package/esm/utils/system.js +13 -0
  100. package/esm/utils/types.d.ts +56 -0
  101. package/esm/utils/types.js +0 -0
  102. package/esm/visually-hidden/visually-hidden.d.ts +34 -0
  103. package/esm/visually-hidden/visually-hidden.js +10 -0
  104. package/focus-trap/focus-trap/package.json +8 -0
  105. package/focus-trap/focus-trap-region/package.json +8 -0
  106. package/group/group/package.json +8 -0
  107. package/group/group-label/package.json +8 -0
  108. package/group/group-label-context/package.json +8 -0
  109. package/heading/heading/package.json +8 -0
  110. package/heading/heading-context/package.json +8 -0
  111. package/heading/heading-level/package.json +8 -0
  112. package/heading/utils/package.json +8 -0
  113. package/index.ts +1 -0
  114. package/license +21 -0
  115. package/package.json +181 -6
  116. package/readme.md +22 -0
  117. package/role/role/package.json +8 -0
  118. package/separator/separator/package.json +8 -0
  119. package/solid/__chunks/ALJQAVR2.jsx +42 -0
  120. package/solid/__chunks/HBI7B4XO.jsx +52 -0
  121. package/solid/__chunks/HUX7TBVM.jsx +37 -0
  122. package/solid/__chunks/KXVBEYOF.jsx +21 -0
  123. package/solid/__chunks/O5QTZ2VS.jsx +42 -0
  124. package/solid/__chunks/PIGECGWJ.jsx +40 -0
  125. package/solid/__chunks/TCHPU5P4.jsx +7 -0
  126. package/solid/__chunks/VAA446IN.jsx +7 -0
  127. package/solid/as/as.jsx +7 -0
  128. package/solid/focus-trap/focus-trap-region.jsx +63 -0
  129. package/solid/focus-trap/focus-trap.jsx +11 -0
  130. package/solid/group/group-label-context.jsx +6 -0
  131. package/solid/group/group-label.jsx +50 -0
  132. package/solid/group/group.jsx +45 -0
  133. package/solid/heading/heading-context.jsx +6 -0
  134. package/solid/heading/heading-level.jsx +22 -0
  135. package/solid/heading/heading.jsx +52 -0
  136. package/solid/heading/utils.jsx +0 -0
  137. package/solid/role/role.jsx +59 -0
  138. package/solid/separator/separator.jsx +36 -0
  139. package/solid/utils/misc.jsx +8 -0
  140. package/solid/utils/reactivity.jsx +12 -0
  141. package/solid/utils/system.jsx +13 -0
  142. package/solid/utils/types.jsx +0 -0
  143. package/solid/visually-hidden/visually-hidden.jsx +10 -0
  144. package/tsconfig.build.json +4 -0
  145. package/utils/misc/package.json +8 -0
  146. package/utils/reactivity/package.json +8 -0
  147. package/utils/system/package.json +8 -0
  148. package/utils/types/package.json +8 -0
  149. package/visually-hidden/visually-hidden/package.json +8 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ # @ariakit/solid-core
2
+
3
+ ## 0.1.0
4
+
5
+ - Initial release.
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "@ariakit/solid-core/as/as",
3
+ "private": true,
4
+ "sideEffects": false,
5
+ "main": "../../cjs/as/as.cjs",
6
+ "module": "../../esm/as/as.js",
7
+ "types": "../../cjs/as/as.d.ts"
8
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/group/group-label-context.tsx
2
+ var _solidjs = require('solid-js');
3
+ var GroupLabelContext = _solidjs.createContext.call(void 0, );
4
+
5
+
6
+
7
+ exports.GroupLabelContext = GroupLabelContext;
@@ -0,0 +1,7 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/heading/heading-context.tsx
2
+ var _solidjs = require('solid-js');
3
+ var HeadingContext = _solidjs.createContext.call(void 0, );
4
+
5
+
6
+
7
+ exports.HeadingContext = HeadingContext;
@@ -0,0 +1,21 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/utils/misc.ts
2
+ var _utils = require('@solid-primitives/utils');
3
+ var _solidjs = require('solid-js');
4
+ function createId(defaultId) {
5
+ const id = _solidjs.createUniqueId.call(void 0, );
6
+ return () => {
7
+ var _a;
8
+ return (_a = _utils.access.call(void 0, defaultId)) != null ? _a : id;
9
+ };
10
+ }
11
+ function extractTagName(element, fallback) {
12
+ return () => {
13
+ var _a, _b;
14
+ return (_b = (_a = _utils.access.call(void 0, element)) == null ? void 0 : _a.tagName.toLowerCase()) != null ? _b : typeof fallback === "string" ? fallback : void 0;
15
+ };
16
+ }
17
+
18
+
19
+
20
+
21
+ exports.createId = createId; exports.extractTagName = extractTagName;
@@ -0,0 +1,35 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+ var _V3ZEI37Lcjs = require('./V3ZEI37L.cjs');
5
+
6
+
7
+ var _RLO4RIGLcjs = require('./RLO4RIGL.cjs');
8
+
9
+ // src/visually-hidden/visually-hidden.tsx
10
+ var TagName = "span";
11
+ var useVisuallyHidden = _V3ZEI37Lcjs.createHook.call(void 0, function useVisuallyHidden2(props) {
12
+ props = _RLO4RIGLcjs.mergeProps.call(void 0, {
13
+ style: {
14
+ border: 0,
15
+ clip: "rect(0 0 0 0)",
16
+ height: "1px",
17
+ margin: "-1px",
18
+ overflow: "hidden",
19
+ padding: 0,
20
+ position: "absolute",
21
+ "white-space": "nowrap",
22
+ width: "1px"
23
+ }
24
+ }, props);
25
+ return props;
26
+ });
27
+ function VisuallyHidden(props) {
28
+ const htmlProps = useVisuallyHidden(props);
29
+ return _V3ZEI37Lcjs.createInstance.call(void 0, TagName, htmlProps);
30
+ }
31
+
32
+
33
+
34
+
35
+ exports.useVisuallyHidden = useVisuallyHidden; exports.VisuallyHidden = VisuallyHidden;
@@ -0,0 +1,42 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/utils/reactivity.ts
2
+ var _props = require('@solid-primitives/props');
3
+
4
+
5
+
6
+
7
+
8
+ var _solidjs = require('solid-js');
9
+ function stableAccessor(value, callback) {
10
+ return () => callback(value);
11
+ }
12
+ function extractPropsWithDefaults(props, defaults) {
13
+ const [own, rest] = _solidjs.splitProps.call(void 0, props, Object.keys(defaults));
14
+ return [
15
+ _solidjs.mergeProps.call(void 0, defaults, own),
16
+ rest
17
+ ];
18
+ }
19
+ function createRef(initialValue) {
20
+ const [get, set] = _solidjs.createSignal.call(void 0, initialValue);
21
+ return {
22
+ get current() {
23
+ return _solidjs.untrack.call(void 0, () => get());
24
+ },
25
+ get,
26
+ set,
27
+ reset: () => set(initialValue)
28
+ };
29
+ }
30
+ function mergeProps(base, overrides, skipProps) {
31
+ return _props.combineProps.call(void 0,
32
+ [base, skipProps ? _solidjs.splitProps.call(void 0, overrides, skipProps)[1] : overrides],
33
+ { reverseEventHandlers: true }
34
+ );
35
+ }
36
+
37
+
38
+
39
+
40
+
41
+
42
+ exports.stableAccessor = stableAccessor; exports.extractPropsWithDefaults = extractPropsWithDefaults; exports.createRef = createRef; exports.mergeProps = mergeProps;
@@ -0,0 +1,39 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _RLO4RIGLcjs = require('./RLO4RIGL.cjs');
4
+
5
+ // src/as/as.tsx
6
+ var _web = require('solid-js/web');
7
+
8
+
9
+ var cache = /* @__PURE__ */ new Map();
10
+ var As = new Proxy(function As2(props) {
11
+ return (parentProps) => (
12
+ // TODO: replace with LazyDynamic
13
+ _web.createComponent.call(void 0, _web.Dynamic, _web.mergeProps.call(void 0, () => _RLO4RIGLcjs.mergeProps.call(void 0, parentProps, props), {
14
+ get component() {
15
+ return props.component;
16
+ }
17
+ }))
18
+ );
19
+ }, {
20
+ get: (_, key) => {
21
+ let component = cache.get(key);
22
+ if (!component) {
23
+ component = function AsElement(props) {
24
+ return (parentProps) => (
25
+ // TODO: replace with LazyDynamic
26
+ _web.createComponent.call(void 0, _web.Dynamic, _web.mergeProps.call(void 0, () => _RLO4RIGLcjs.mergeProps.call(void 0, parentProps, props), {
27
+ component: key
28
+ }))
29
+ );
30
+ };
31
+ cache.set(key, component);
32
+ }
33
+ return component;
34
+ }
35
+ });
36
+
37
+
38
+
39
+ exports.As = As;
@@ -0,0 +1,61 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _RLO4RIGLcjs = require('./RLO4RIGL.cjs');
4
+
5
+ // src/utils/system.tsx
6
+ var _web = require('solid-js/web');
7
+
8
+
9
+ var _solidjs = require('solid-js');
10
+
11
+ function createInstance(Component, props) {
12
+ const [features, rest] = _solidjs.splitProps.call(void 0, props, ["render", "wrapInstance"]);
13
+ const withRender = () => (
14
+ // TODO: replace with LazyDynamic
15
+ _web.createComponent.call(void 0, _web.Dynamic, _web.mergeProps.call(void 0, rest, {
16
+ get component() {
17
+ var _a;
18
+ return (_a = features.render) != null ? _a : Component;
19
+ }
20
+ }))
21
+ );
22
+ let tree = withRender;
23
+ if (features.wrapInstance) {
24
+ for (const element of features.wrapInstance) {
25
+ const children = tree;
26
+ tree = () => (
27
+ // TODO: replace with LazyDynamic
28
+ _web.createComponent.call(void 0, _web.Dynamic, {
29
+ component: element,
30
+ get children() {
31
+ return children();
32
+ }
33
+ })
34
+ );
35
+ }
36
+ }
37
+ return tree();
38
+ }
39
+ function wrapInstance(props, element) {
40
+ var _a;
41
+ const wrapInstance2 = [...(_a = props.wrapInstance) != null ? _a : [], element];
42
+ return _solidjs.mergeProps.call(void 0, props, {
43
+ wrapInstance: wrapInstance2
44
+ });
45
+ }
46
+ function createHook(useProps) {
47
+ return useProps;
48
+ }
49
+ function withOptions(defaults, useProps) {
50
+ return function usePropsWithOptions(props) {
51
+ const [options, rest] = _RLO4RIGLcjs.extractPropsWithDefaults.call(void 0, props, defaults);
52
+ return useProps(rest, options);
53
+ };
54
+ }
55
+
56
+
57
+
58
+
59
+
60
+
61
+ exports.createInstance = createInstance; exports.wrapInstance = wrapInstance; exports.createHook = createHook; exports.withOptions = withOptions;
@@ -0,0 +1,37 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _JFCGWMZCcjs = require('./JFCGWMZC.cjs');
4
+
5
+
6
+
7
+ var _V3ZEI37Lcjs = require('./V3ZEI37L.cjs');
8
+
9
+
10
+ var _RLO4RIGLcjs = require('./RLO4RIGL.cjs');
11
+
12
+ // src/focus-trap/focus-trap.tsx
13
+ var TagName = "span";
14
+ var useFocusTrap = _V3ZEI37Lcjs.createHook.call(void 0, function useFocusTrap2(props) {
15
+ props = _RLO4RIGLcjs.mergeProps.call(void 0, {
16
+ "data-focus-trap": "",
17
+ tabIndex: 0,
18
+ "aria-hidden": true,
19
+ style: {
20
+ // Prevents unintended scroll jumps.
21
+ position: "fixed",
22
+ top: 0,
23
+ left: 0
24
+ }
25
+ }, props);
26
+ props = _JFCGWMZCcjs.useVisuallyHidden.call(void 0, props);
27
+ return props;
28
+ });
29
+ function FocusTrap(props) {
30
+ const htmlProps = useFocusTrap(props);
31
+ return _V3ZEI37Lcjs.createInstance.call(void 0, TagName, htmlProps);
32
+ }
33
+
34
+
35
+
36
+
37
+ exports.useFocusTrap = useFocusTrap; exports.FocusTrap = FocusTrap;
package/cjs/as/as.cjs ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _T5IUBZJKcjs = require('../__chunks/T5IUBZJK.cjs');
4
+ require('../__chunks/RLO4RIGL.cjs');
5
+
6
+
7
+ exports.As = _T5IUBZJKcjs.As;
@@ -0,0 +1,30 @@
1
+ import type { Component, ComponentProps, JSX, ValidComponent } from "solid-js";
2
+ type AsElements = {
3
+ [K in keyof JSX.IntrinsicElements]: Component<ComponentProps<K>>;
4
+ };
5
+ type AsComponent = <T extends Component<any>, P = ComponentProps<T>>(props: AsProps<T, P>) => JSX.Element;
6
+ /**
7
+ * Allows a component to be rendered as a different HTML element or Solid
8
+ * component. Must be passed to the `render` prop of a component that
9
+ * supports it.
10
+ *
11
+ * To render as an HTML element, use `<As.element />` (e.g. `<As.button />`).
12
+ *
13
+ * To render as a component, use `<As component={Component} />` (e.g. `<As
14
+ * component={MyButton} />`).
15
+ *
16
+ * Check out the [Composition](https://solid.ariakit.org/guide/composition)
17
+ * guide for more details.
18
+ * @example
19
+ * ```jsx
20
+ * <Role render={<As component={MyButton} variant="primary" />} />
21
+ * <Role render={<As.button type="button" />} />
22
+ * ```
23
+ */
24
+ export declare const As: AsComponent & AsElements;
25
+ export type AsProps<T extends ValidComponent, P = ComponentProps<T>> = {
26
+ [K in keyof P]: P[K];
27
+ } & {
28
+ component: T;
29
+ };
30
+ export {};
package/cjs/as/as.d.ts ADDED
@@ -0,0 +1,30 @@
1
+ import type { Component, ComponentProps, JSX, ValidComponent } from "solid-js";
2
+ type AsElements = {
3
+ [K in keyof JSX.IntrinsicElements]: Component<ComponentProps<K>>;
4
+ };
5
+ type AsComponent = <T extends Component<any>, P = ComponentProps<T>>(props: AsProps<T, P>) => JSX.Element;
6
+ /**
7
+ * Allows a component to be rendered as a different HTML element or Solid
8
+ * component. Must be passed to the `render` prop of a component that
9
+ * supports it.
10
+ *
11
+ * To render as an HTML element, use `<As.element />` (e.g. `<As.button />`).
12
+ *
13
+ * To render as a component, use `<As component={Component} />` (e.g. `<As
14
+ * component={MyButton} />`).
15
+ *
16
+ * Check out the [Composition](https://solid.ariakit.org/guide/composition)
17
+ * guide for more details.
18
+ * @example
19
+ * ```jsx
20
+ * <Role render={<As component={MyButton} variant="primary" />} />
21
+ * <Role render={<As.button type="button" />} />
22
+ * ```
23
+ */
24
+ export declare const As: AsComponent & AsElements;
25
+ export type AsProps<T extends ValidComponent, P = ComponentProps<T>> = {
26
+ [K in keyof P]: P[K];
27
+ } & {
28
+ component: T;
29
+ };
30
+ export {};
@@ -0,0 +1,68 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _V5YR7HBGcjs = require('../__chunks/V5YR7HBG.cjs');
4
+ require('../__chunks/JFCGWMZC.cjs');
5
+
6
+
7
+
8
+
9
+
10
+ var _V3ZEI37Lcjs = require('../__chunks/V3ZEI37L.cjs');
11
+
12
+
13
+
14
+ var _RLO4RIGLcjs = require('../__chunks/RLO4RIGL.cjs');
15
+
16
+ // src/focus-trap/focus-trap-region.tsx
17
+ var _web = require('solid-js/web');
18
+
19
+ var _focus = require('@ariakit/core/utils/focus');
20
+ var _solidjs = require('solid-js');
21
+ var TagName = "div";
22
+ var useFocusTrapRegion = _V3ZEI37Lcjs.createHook.call(void 0, _V3ZEI37Lcjs.withOptions.call(void 0, {
23
+ enabled: false
24
+ }, function useFocusTrapRegion2(props, options) {
25
+ const ref = _RLO4RIGLcjs.createRef.call(void 0, );
26
+ props = _V3ZEI37Lcjs.wrapInstance.call(void 0, props, (wrapperProps) => {
27
+ const renderFocusTrap = () => {
28
+ return _web.createComponent.call(void 0, _solidjs.Show, {
29
+ get when() {
30
+ return options.enabled;
31
+ },
32
+ get children() {
33
+ return _web.createComponent.call(void 0, _V5YR7HBGcjs.FocusTrap, {
34
+ onFocus: (event) => {
35
+ const container = ref.current;
36
+ if (!container) return;
37
+ const tabbables = _focus.getAllTabbableIn.call(void 0, container, true);
38
+ const first = tabbables[0];
39
+ const last = tabbables[tabbables.length - 1];
40
+ if (!tabbables.length) {
41
+ container.focus();
42
+ return;
43
+ }
44
+ if (event.relatedTarget === first) {
45
+ last == null ? void 0 : last.focus();
46
+ } else {
47
+ first == null ? void 0 : first.focus();
48
+ }
49
+ }
50
+ });
51
+ }
52
+ });
53
+ };
54
+ return [_web.memo.call(void 0, renderFocusTrap), _web.memo.call(void 0, () => wrapperProps.children), _web.memo.call(void 0, renderFocusTrap)];
55
+ });
56
+ props = _RLO4RIGLcjs.mergeProps.call(void 0, {
57
+ ref: ref.set
58
+ }, props);
59
+ return props;
60
+ }));
61
+ var FocusTrapRegion = function FocusTrapRegion2(props) {
62
+ const htmlProps = useFocusTrapRegion(props);
63
+ return _V3ZEI37Lcjs.createInstance.call(void 0, TagName, htmlProps);
64
+ };
65
+
66
+
67
+
68
+ exports.FocusTrapRegion = FocusTrapRegion; exports.useFocusTrapRegion = useFocusTrapRegion;
@@ -0,0 +1,38 @@
1
+ import { type ValidComponent } from "solid-js";
2
+ import type { Options, Props } from "../utils/types.ts";
3
+ declare const TagName = "div";
4
+ type TagName = typeof TagName;
5
+ /**
6
+ * Returns props to create a `FocusTrapRegion` component.
7
+ * @see https://solid.ariakit.org/components/focus-trap-region
8
+ * @example
9
+ * ```jsx
10
+ * const props = useFocusTrapRegion();
11
+ * <Role {...props} />
12
+ * ```
13
+ */
14
+ export declare const useFocusTrapRegion: import("../utils/types.ts").Hook<"div", FocusTrapRegionOptions<"div">>;
15
+ /**
16
+ * Renders a wrapper element that traps the focus inside it when the
17
+ * [`enabled`](https://solid.ariakit.org/reference/focus-trap-region#enabled)
18
+ * prop is `true`.
19
+ * @see https://solid.ariakit.org/components/focus-trap
20
+ * @example
21
+ * ```jsx
22
+ * <FocusTrapRegion>
23
+ * <Button>click me</Button>
24
+ * <Button>trap focus</Button>
25
+ * <Button disabled>disabled Button</Button>
26
+ * </FocusTrapRegion>
27
+ * ```
28
+ */
29
+ export declare const FocusTrapRegion: (props: FocusTrapRegionProps) => import("solid-js").JSX.Element;
30
+ export interface FocusTrapRegionOptions<_T extends ValidComponent = TagName> extends Options {
31
+ /**
32
+ * If true, it will trap the focus in the region.
33
+ * @default false
34
+ */
35
+ enabled?: boolean;
36
+ }
37
+ export type FocusTrapRegionProps<T extends ValidComponent = TagName> = Props<T, FocusTrapRegionOptions<T>>;
38
+ export {};
@@ -0,0 +1,38 @@
1
+ import { type ValidComponent } from "solid-js";
2
+ import type { Options, Props } from "../utils/types.ts";
3
+ declare const TagName = "div";
4
+ type TagName = typeof TagName;
5
+ /**
6
+ * Returns props to create a `FocusTrapRegion` component.
7
+ * @see https://solid.ariakit.org/components/focus-trap-region
8
+ * @example
9
+ * ```jsx
10
+ * const props = useFocusTrapRegion();
11
+ * <Role {...props} />
12
+ * ```
13
+ */
14
+ export declare const useFocusTrapRegion: import("../utils/types.ts").Hook<"div", FocusTrapRegionOptions<"div">>;
15
+ /**
16
+ * Renders a wrapper element that traps the focus inside it when the
17
+ * [`enabled`](https://solid.ariakit.org/reference/focus-trap-region#enabled)
18
+ * prop is `true`.
19
+ * @see https://solid.ariakit.org/components/focus-trap
20
+ * @example
21
+ * ```jsx
22
+ * <FocusTrapRegion>
23
+ * <Button>click me</Button>
24
+ * <Button>trap focus</Button>
25
+ * <Button disabled>disabled Button</Button>
26
+ * </FocusTrapRegion>
27
+ * ```
28
+ */
29
+ export declare const FocusTrapRegion: (props: FocusTrapRegionProps) => import("solid-js").JSX.Element;
30
+ export interface FocusTrapRegionOptions<_T extends ValidComponent = TagName> extends Options {
31
+ /**
32
+ * If true, it will trap the focus in the region.
33
+ * @default false
34
+ */
35
+ enabled?: boolean;
36
+ }
37
+ export type FocusTrapRegionProps<T extends ValidComponent = TagName> = Props<T, FocusTrapRegionOptions<T>>;
38
+ export {};
@@ -0,0 +1,11 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+ var _V5YR7HBGcjs = require('../__chunks/V5YR7HBG.cjs');
5
+ require('../__chunks/JFCGWMZC.cjs');
6
+ require('../__chunks/V3ZEI37L.cjs');
7
+ require('../__chunks/RLO4RIGL.cjs');
8
+
9
+
10
+
11
+ exports.FocusTrap = _V5YR7HBGcjs.FocusTrap; exports.useFocusTrap = _V5YR7HBGcjs.useFocusTrap;
@@ -0,0 +1,27 @@
1
+ import type { ValidComponent } from "solid-js";
2
+ import type { Props } from "../utils/types.ts";
3
+ import type { VisuallyHiddenOptions } from "../visually-hidden/visually-hidden.tsx";
4
+ declare const TagName = "span";
5
+ type TagName = typeof TagName;
6
+ /**
7
+ * Returns props to create a `FocusTrap` component.
8
+ * @see https://solid.ariakit.org/components/focus-trap
9
+ * @example
10
+ * ```jsx
11
+ * const props = useFocusTrap();
12
+ * <Role {...props} />
13
+ * ```
14
+ */
15
+ export declare const useFocusTrap: import("../utils/types.ts").Hook<"span", FocusTrapOptions<"span">>;
16
+ /**
17
+ * Renders a focus trap element.
18
+ * @see https://solid.ariakit.org/components/focus-trap
19
+ * @example
20
+ * ```jsx
21
+ * <FocusTrap onFocus={focusSomethingElse} />
22
+ * ```
23
+ */
24
+ export declare function FocusTrap(props: FocusTrapProps): import("solid-js").JSX.Element;
25
+ export type FocusTrapOptions<T extends ValidComponent = TagName> = VisuallyHiddenOptions<T>;
26
+ export type FocusTrapProps<T extends ValidComponent = TagName> = Props<T, FocusTrapOptions<T>>;
27
+ export {};
@@ -0,0 +1,27 @@
1
+ import type { ValidComponent } from "solid-js";
2
+ import type { Props } from "../utils/types.ts";
3
+ import type { VisuallyHiddenOptions } from "../visually-hidden/visually-hidden.tsx";
4
+ declare const TagName = "span";
5
+ type TagName = typeof TagName;
6
+ /**
7
+ * Returns props to create a `FocusTrap` component.
8
+ * @see https://solid.ariakit.org/components/focus-trap
9
+ * @example
10
+ * ```jsx
11
+ * const props = useFocusTrap();
12
+ * <Role {...props} />
13
+ * ```
14
+ */
15
+ export declare const useFocusTrap: import("../utils/types.ts").Hook<"span", FocusTrapOptions<"span">>;
16
+ /**
17
+ * Renders a focus trap element.
18
+ * @see https://solid.ariakit.org/components/focus-trap
19
+ * @example
20
+ * ```jsx
21
+ * <FocusTrap onFocus={focusSomethingElse} />
22
+ * ```
23
+ */
24
+ export declare function FocusTrap(props: FocusTrapProps): import("solid-js").JSX.Element;
25
+ export type FocusTrapOptions<T extends ValidComponent = TagName> = VisuallyHiddenOptions<T>;
26
+ export type FocusTrapProps<T extends ValidComponent = TagName> = Props<T, FocusTrapOptions<T>>;
27
+ export {};
@@ -0,0 +1,6 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _53WPOLZUcjs = require('../__chunks/53WPOLZU.cjs');
4
+
5
+
6
+ exports.GroupLabelContext = _53WPOLZUcjs.GroupLabelContext;
@@ -0,0 +1,2 @@
1
+ import { type Setter } from "solid-js";
2
+ export declare const GroupLabelContext: import("solid-js").Context<Setter<string | undefined> | undefined>;
@@ -0,0 +1,2 @@
1
+ import { type Setter } from "solid-js";
2
+ export declare const GroupLabelContext: import("solid-js").Context<Setter<string | undefined> | undefined>;
@@ -0,0 +1,41 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _53WPOLZUcjs = require('../__chunks/53WPOLZU.cjs');
4
+
5
+
6
+ var _GVOD7RTZcjs = require('../__chunks/GVOD7RTZ.cjs');
7
+
8
+
9
+
10
+ var _V3ZEI37Lcjs = require('../__chunks/V3ZEI37L.cjs');
11
+
12
+
13
+
14
+ var _RLO4RIGLcjs = require('../__chunks/RLO4RIGL.cjs');
15
+
16
+ // src/group/group-label.tsx
17
+ var _solidjs = require('solid-js');
18
+ var TagName = "div";
19
+ var useGroupLabel = _V3ZEI37Lcjs.createHook.call(void 0, function useGroupLabel2(props) {
20
+ const setLabelId = _solidjs.useContext.call(void 0, _53WPOLZUcjs.GroupLabelContext);
21
+ const id = _GVOD7RTZcjs.createId.call(void 0, _RLO4RIGLcjs.stableAccessor.call(void 0, props, (p) => p.id));
22
+ _solidjs.createEffect.call(void 0, () => {
23
+ setLabelId == null ? void 0 : setLabelId(id());
24
+ _solidjs.onCleanup.call(void 0, () => setLabelId == null ? void 0 : setLabelId(void 0));
25
+ });
26
+ props = _RLO4RIGLcjs.mergeProps.call(void 0, {
27
+ get id() {
28
+ return id();
29
+ },
30
+ "aria-hidden": true
31
+ }, props);
32
+ return props;
33
+ });
34
+ var GroupLabel = function GroupLabel2(props) {
35
+ const htmlProps = useGroupLabel(props);
36
+ return _V3ZEI37Lcjs.createInstance.call(void 0, TagName, htmlProps);
37
+ };
38
+
39
+
40
+
41
+ exports.GroupLabel = GroupLabel; exports.useGroupLabel = useGroupLabel;
@@ -0,0 +1,34 @@
1
+ import { type ValidComponent } from "solid-js";
2
+ import type { Options, Props } from "../utils/types.ts";
3
+ declare const TagName = "div";
4
+ type TagName = typeof TagName;
5
+ /**
6
+ * Returns props to create a `GroupLabel` component. This hook must be used in a
7
+ * component that's wrapped with `Group` so the `aria-labelledby` prop is
8
+ * properly set on the group element.
9
+ * @see https://solid.ariakit.org/components/group
10
+ * @example
11
+ * ```jsx
12
+ * // This component must be wrapped with Group
13
+ * const props = useGroupLabel();
14
+ * <Role {...props}>Label</Role>
15
+ * ```
16
+ */
17
+ export declare const useGroupLabel: import("../utils/types.ts").Hook<"div", GroupLabelOptions<"div">>;
18
+ /**
19
+ * Renders a label in a group. This component should be wrapped with a
20
+ * [`Group`](https://solid.ariakit.org/reference/group) so the `aria-labelledby`
21
+ * prop is correctly set on the group element.
22
+ * @see https://solid.ariakit.org/components/group
23
+ * @example
24
+ * ```jsx
25
+ * <Group>
26
+ * <GroupLabel>Label</GroupLabel>
27
+ * </Group>
28
+ * ```
29
+ */
30
+ export declare const GroupLabel: (props: GroupLabelProps) => import("solid-js").JSX.Element;
31
+ export interface GroupLabelOptions<_T extends ValidComponent = TagName> extends Options {
32
+ }
33
+ export type GroupLabelProps<T extends ValidComponent = TagName> = Props<T, GroupLabelOptions<T>>;
34
+ export {};