@ariakit/react-core
Version:
Ariakit React core
118 lines (94 loc) • 3.83 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true});
var _ZVWIHFYJcjs = require('./ZVWIHFYJ.cjs');
var _NO756MUJcjs = require('./NO756MUJ.cjs');
var _3YJARQUNcjs = require('./3YJARQUN.cjs');
var _CWQU4R75cjs = require('./CWQU4R75.cjs');
var _76LCMKUIcjs = require('./76LCMKUI.cjs');
var _6TI3NXX6cjs = require('./6TI3NXX6.cjs');
var _L5A2ID7Scjs = require('./L5A2ID7S.cjs');
var _7EQBAZ46cjs = require('./7EQBAZ46.cjs');
// src/composite/composite-item-offscreen.tsx
var _dom = require('@ariakit/core/utils/dom');
var _jsxruntime = require('react/jsx-runtime');
var TagName = "button";
function useCompositeItemOffscreen(_a) {
var _b = _a, { store, offscreenBehavior = "active", disabled, value } = _b, props = _7EQBAZ46cjs.__objRest.call(void 0, _b, ["store", "offscreenBehavior", "disabled", "value"]);
const context = _CWQU4R75cjs.useCompositeContext.call(void 0, );
store = store || context;
const id = _L5A2ID7Scjs.useId.call(void 0, props.id);
const { storeId, active, listElement, offscreenRoot } = _76LCMKUIcjs.useStoreStateObject.call(void 0,
store,
{
storeId: "id",
active(state) {
if (!state) return;
if (!("selectedValue" in state) && "value" in state) {
if (state.value === value) return true;
}
return !!id && state.activeId === id;
},
listElement(state) {
if (!state) return;
if (!("listElement" in state)) return;
return state.listElement;
},
offscreenRoot(state) {
if (props.offscreenRoot) return props.offscreenRoot;
if (!state) return;
if (!("contentElement" in state)) return;
return state.contentElement || null;
}
}
);
const offscreenProps = _NO756MUJcjs.useCollectionItemOffscreen.call(void 0, _7EQBAZ46cjs.__spreadProps.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, {
id,
store,
offscreenBehavior: active ? "active" : offscreenBehavior
}, props), {
offscreenRoot
}));
if (!offscreenProps.active) {
return _7EQBAZ46cjs.__spreadProps.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, {}, offscreenProps), {
children: value,
role: _dom.getPopupItemRole.call(void 0, listElement),
"aria-disabled": disabled || void 0,
"data-offscreen-id": storeId
});
}
return offscreenProps;
}
var CompositeItem2 = _6TI3NXX6cjs.forwardRef.call(void 0, function CompositeItem3(_a) {
var _b = _a, {
offscreenBehavior,
offscreenRoot
} = _b, props = _7EQBAZ46cjs.__objRest.call(void 0, _b, [
"offscreenBehavior",
"offscreenRoot"
]);
const _a2 = useCompositeItemOffscreen(_7EQBAZ46cjs.__spreadValues.call(void 0, {
offscreenBehavior,
offscreenRoot
}, props)), { active, ref } = _a2, rest = _7EQBAZ46cjs.__objRest.call(void 0, _a2, ["active", "ref"]);
const allProps = _7EQBAZ46cjs.__spreadProps.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, {}, rest), props), { ref: _L5A2ID7Scjs.useMergeRefs.call(void 0, ref, props.ref) });
if (active) {
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _ZVWIHFYJcjs.CompositeItem, _7EQBAZ46cjs.__spreadValues.call(void 0, {}, allProps));
}
const _b2 = allProps, {
store,
rowId,
preventScrollOnKeyDown,
moveOnKeyPress,
tabbable,
getItem
} = _b2, htmlProps = _7EQBAZ46cjs.__objRest.call(void 0, _b2, [
"store",
"rowId",
"preventScrollOnKeyDown",
"moveOnKeyPress",
"tabbable",
"getItem"
]);
const Component = _3YJARQUNcjs.Role[TagName];
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component, _7EQBAZ46cjs.__spreadValues.call(void 0, {}, htmlProps));
});
exports.useCompositeItemOffscreen = useCompositeItemOffscreen; exports.CompositeItem = CompositeItem2;