@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.
- package/CHANGELOG.md +5 -0
- package/as/as/package.json +8 -0
- package/cjs/__chunks/53WPOLZU.cjs +7 -0
- package/cjs/__chunks/AUGTJ473.cjs +7 -0
- package/cjs/__chunks/GVOD7RTZ.cjs +21 -0
- package/cjs/__chunks/JFCGWMZC.cjs +35 -0
- package/cjs/__chunks/RLO4RIGL.cjs +42 -0
- package/cjs/__chunks/T5IUBZJK.cjs +39 -0
- package/cjs/__chunks/V3ZEI37L.cjs +61 -0
- package/cjs/__chunks/V5YR7HBG.cjs +37 -0
- package/cjs/as/as.cjs +7 -0
- package/cjs/as/as.d.cts +30 -0
- package/cjs/as/as.d.ts +30 -0
- package/cjs/focus-trap/focus-trap-region.cjs +68 -0
- package/cjs/focus-trap/focus-trap-region.d.cts +38 -0
- package/cjs/focus-trap/focus-trap-region.d.ts +38 -0
- package/cjs/focus-trap/focus-trap.cjs +11 -0
- package/cjs/focus-trap/focus-trap.d.cts +27 -0
- package/cjs/focus-trap/focus-trap.d.ts +27 -0
- package/cjs/group/group-label-context.cjs +6 -0
- package/cjs/group/group-label-context.d.cts +2 -0
- package/cjs/group/group-label-context.d.ts +2 -0
- package/cjs/group/group-label.cjs +41 -0
- package/cjs/group/group-label.d.cts +34 -0
- package/cjs/group/group-label.d.ts +34 -0
- package/cjs/group/group.cjs +43 -0
- package/cjs/group/group.d.cts +28 -0
- package/cjs/group/group.d.ts +28 -0
- package/cjs/heading/heading-context.cjs +6 -0
- package/cjs/heading/heading-context.d.cts +3 -0
- package/cjs/heading/heading-context.d.ts +3 -0
- package/cjs/heading/heading-level.cjs +23 -0
- package/cjs/heading/heading-level.d.cts +27 -0
- package/cjs/heading/heading-level.d.ts +27 -0
- package/cjs/heading/heading.cjs +45 -0
- package/cjs/heading/heading.d.cts +39 -0
- package/cjs/heading/heading.d.ts +39 -0
- package/cjs/heading/utils.cjs +1 -0
- package/cjs/heading/utils.d.cts +1 -0
- package/cjs/heading/utils.d.ts +1 -0
- package/cjs/role/role.cjs +26 -0
- package/cjs/role/role.d.cts +33 -0
- package/cjs/role/role.d.ts +33 -0
- package/cjs/separator/separator.cjs +30 -0
- package/cjs/separator/separator.d.cts +32 -0
- package/cjs/separator/separator.d.ts +32 -0
- package/cjs/utils/misc.cjs +8 -0
- package/cjs/utils/misc.d.cts +16 -0
- package/cjs/utils/misc.d.ts +16 -0
- package/cjs/utils/reactivity.cjs +12 -0
- package/cjs/utils/reactivity.d.cts +109 -0
- package/cjs/utils/reactivity.d.ts +109 -0
- package/cjs/utils/system.cjs +13 -0
- package/cjs/utils/system.d.cts +45 -0
- package/cjs/utils/system.d.ts +45 -0
- package/cjs/utils/types.cjs +1 -0
- package/cjs/utils/types.d.cts +56 -0
- package/cjs/utils/types.d.ts +56 -0
- package/cjs/visually-hidden/visually-hidden.cjs +10 -0
- package/cjs/visually-hidden/visually-hidden.d.cts +34 -0
- package/cjs/visually-hidden/visually-hidden.d.ts +34 -0
- package/esm/__chunks/I7JSIDPD.js +7 -0
- package/esm/__chunks/ILGMKAYU.js +37 -0
- package/esm/__chunks/NX66AMGW.js +39 -0
- package/esm/__chunks/OKOFCLOZ.js +61 -0
- package/esm/__chunks/QKOHDUFI.js +42 -0
- package/esm/__chunks/SFKMELHD.js +35 -0
- package/esm/__chunks/UKDBTPK5.js +21 -0
- package/esm/__chunks/VOWRNGOM.js +7 -0
- package/esm/as/as.d.ts +30 -0
- package/esm/as/as.js +7 -0
- package/esm/focus-trap/focus-trap-region.d.ts +38 -0
- package/esm/focus-trap/focus-trap-region.js +68 -0
- package/esm/focus-trap/focus-trap.d.ts +27 -0
- package/esm/focus-trap/focus-trap.js +11 -0
- package/esm/group/group-label-context.d.ts +2 -0
- package/esm/group/group-label-context.js +6 -0
- package/esm/group/group-label.d.ts +34 -0
- package/esm/group/group-label.js +41 -0
- package/esm/group/group.d.ts +28 -0
- package/esm/group/group.js +43 -0
- package/esm/heading/heading-context.d.ts +3 -0
- package/esm/heading/heading-context.js +6 -0
- package/esm/heading/heading-level.d.ts +27 -0
- package/esm/heading/heading-level.js +23 -0
- package/esm/heading/heading.d.ts +39 -0
- package/esm/heading/heading.js +45 -0
- package/esm/heading/utils.d.ts +1 -0
- package/esm/heading/utils.js +0 -0
- package/esm/role/role.d.ts +33 -0
- package/esm/role/role.js +26 -0
- package/esm/separator/separator.d.ts +32 -0
- package/esm/separator/separator.js +30 -0
- package/esm/utils/misc.d.ts +16 -0
- package/esm/utils/misc.js +8 -0
- package/esm/utils/reactivity.d.ts +109 -0
- package/esm/utils/reactivity.js +12 -0
- package/esm/utils/system.d.ts +45 -0
- package/esm/utils/system.js +13 -0
- package/esm/utils/types.d.ts +56 -0
- package/esm/utils/types.js +0 -0
- package/esm/visually-hidden/visually-hidden.d.ts +34 -0
- package/esm/visually-hidden/visually-hidden.js +10 -0
- package/focus-trap/focus-trap/package.json +8 -0
- package/focus-trap/focus-trap-region/package.json +8 -0
- package/group/group/package.json +8 -0
- package/group/group-label/package.json +8 -0
- package/group/group-label-context/package.json +8 -0
- package/heading/heading/package.json +8 -0
- package/heading/heading-context/package.json +8 -0
- package/heading/heading-level/package.json +8 -0
- package/heading/utils/package.json +8 -0
- package/index.ts +1 -0
- package/license +21 -0
- package/package.json +181 -6
- package/readme.md +22 -0
- package/role/role/package.json +8 -0
- package/separator/separator/package.json +8 -0
- package/solid/__chunks/ALJQAVR2.jsx +42 -0
- package/solid/__chunks/HBI7B4XO.jsx +52 -0
- package/solid/__chunks/HUX7TBVM.jsx +37 -0
- package/solid/__chunks/KXVBEYOF.jsx +21 -0
- package/solid/__chunks/O5QTZ2VS.jsx +42 -0
- package/solid/__chunks/PIGECGWJ.jsx +40 -0
- package/solid/__chunks/TCHPU5P4.jsx +7 -0
- package/solid/__chunks/VAA446IN.jsx +7 -0
- package/solid/as/as.jsx +7 -0
- package/solid/focus-trap/focus-trap-region.jsx +63 -0
- package/solid/focus-trap/focus-trap.jsx +11 -0
- package/solid/group/group-label-context.jsx +6 -0
- package/solid/group/group-label.jsx +50 -0
- package/solid/group/group.jsx +45 -0
- package/solid/heading/heading-context.jsx +6 -0
- package/solid/heading/heading-level.jsx +22 -0
- package/solid/heading/heading.jsx +52 -0
- package/solid/heading/utils.jsx +0 -0
- package/solid/role/role.jsx +59 -0
- package/solid/separator/separator.jsx +36 -0
- package/solid/utils/misc.jsx +8 -0
- package/solid/utils/reactivity.jsx +12 -0
- package/solid/utils/system.jsx +13 -0
- package/solid/utils/types.jsx +0 -0
- package/solid/visually-hidden/visually-hidden.jsx +10 -0
- package/tsconfig.build.json +4 -0
- package/utils/misc/package.json +8 -0
- package/utils/reactivity/package.json +8 -0
- package/utils/system/package.json +8 -0
- package/utils/types/package.json +8 -0
- package/visually-hidden/visually-hidden/package.json +8 -0
package/CHANGELOG.md
ADDED
|
@@ -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
package/cjs/as/as.d.cts
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 {};
|
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,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 {};
|