: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
return getInternal(store, "init")(...args);
function subscribe(store, ...args) {
return getInternal(store, "subscribe")(...args);
function sync(store, ...args) {
return getInternal(store, "sync")(...args);
function batch(store, ...args) {
return getInternal(store, "batch")(...args);
function omit2(store, ...args) {
return getInternal(store, "omit")(...args);
function pick2(store, ...args) {
return getInternal(store, "pick")(...args);
function mergeStore(...stores) {
const initialState = stores.reduce((state, store2) => {
const nextState = (_a = store2 == null ? void 0 : store2.getState) == null ? void 0 : _a.call(store2);
return _chunks_4R3V3JGP_spreadValues(_chunks_4R3V3JGP_spreadValues({}, state), nextState);
const store = createStore(initialState, ...stores);
function throwOnConflictingProps(props, store) {
const defaultKeys = Object.entries(props).filter(([key, value]) => key.startsWith("default") && value !== void 0).map(([key]) => {
const stateKey = key.replace("default", "");
return `${((_a = stateKey[0]) == null ? void 0 : _a.toLowerCase()) || ""}${stateKey.slice(1)}`;
const storeState = store.getState();
const conflictingProps = defaultKeys.filter(
(key) => Y3OOHFCN_hasOwnProperty(storeState, key)
if (!conflictingProps.length)
`Passing a store prop in conjunction with a default state is not supported.
const store = useSelectStore();
<SelectProvider store={store} defaultValue="Apple" />
Instead, pass the default state to the topmost store:
const store = useSelectStore({ defaultValue: "Apple" });
<SelectProvider store={store} />
See https://github.com/ariakit/ariakit/pull/2745 for more details.
If there's a particular need for this, please submit a feature request at https://github.com/ariakit/ariakit
// EXTERNAL MODULE: ./node_modules/use-sync-external-store/shim/index.js
var shim = __webpack_require__(422);
;// CONCATENATED MODULE: ./node_modules/@ariakit/react-core/esm/__chunks/EKQEJRUF.js
var { useSyncExternalStore } = shim;
var noopSubscribe = () => () => {
function useStoreState(store, keyOrSelector = identity) {
const storeSubscribe = external_React_.useCallback(
return subscribe(store, null, callback);
const getSnapshot = () => {
const key = typeof keyOrSelector === "string" ? keyOrSelector : null;
const selector = typeof keyOrSelector === "function" ? keyOrSelector : null;
const state = store == null ? void 0 : store.getState();
if (!Y3OOHFCN_hasOwnProperty(state, key))
return useSyncExternalStore(storeSubscribe, getSnapshot, getSnapshot);
function useStoreProps(store, props, key, setKey) {
const value = Y3OOHFCN_hasOwnProperty(props, key) ? props[key] : void 0;
const setValue = setKey ? props[setKey] : void 0;
const propsRef = useLiveRef({ value, setValue });
useSafeLayoutEffect(() => {
return sync(store, [key], (state, prev) => {
const { value: value2, setValue: setValue2 } = propsRef.current;
if (state[key] === prev[key])
if (state[key] === value2)
useSafeLayoutEffect(() => {
store.setState(key, value);
return batch(store, [key], () => {
store.setState(key, value);
function EKQEJRUF_useStore(createStore, props) {
const [store, setStore] = external_React_.useState(() => createStore(props));
useSafeLayoutEffect(() => init(store), [store]);
const useState2 = external_React_.useCallback(
(keyOrSelector) => useStoreState(store, keyOrSelector),
const memoizedStore = external_React_.useMemo(
() => _4R3V3JGP_spreadProps(_4R3V3JGP_spreadValues({}, store), { useState: useState2 }),
const updateStore = useEvent(() => {
setStore((store2) => createStore(_4R3V3JGP_spreadValues(_4R3V3JGP_spreadValues({}, props), store2.getState())));
return [memoizedStore, updateStore];
;// CONCATENATED MODULE: ./node_modules/@ariakit/react-core/esm/__chunks/QZLXIDNP.js
// src/composite/composite-item.tsx
function isEditableElement(element) {
if (element.isContentEditable)
if (DLOEKDPY_isTextField(element))
return element.tagName === "INPUT" && !isButton(element);
function getNextPageOffset(scrollingElement, pageUp = false) {
const height = scrollingElement.clientHeight;
const { top } = scrollingElement.getBoundingClientRect();
const pageSize = Math.max(height * 0.875, height - 40) * 1.5;
const pageOffset = pageUp ? height - pageSize + top : pageSize + top;
if (scrollingElement.tagName === "HTML") {
return pageOffset + scrollingElement.scrollTop;
function getItemOffset(itemElement, pageUp = false) {
const { top } = itemElement.getBoundingClientRect();
return top + itemElement.clientHeight;
function findNextPageItemId(element, store, next, pageUp = false) {
const { renderedItems } = store.getState();
const scrollingElement = getScrollingElement(element);
const nextPageOffset = getNextPageOffset(scrollingElement, pageUp);
for (let i = 0; i < renderedItems.length; i += 1) {
const itemElement = (_a = getEnabledItem(store, id)) == null ? void 0 : _a.element;
const itemOffset = getItemOffset(itemElement, pageUp);
const difference = itemOffset - nextPageOffset;
const absDifference = Math.abs(difference);
if (pageUp && difference <= 0 || !pageUp && difference >= 0) {
if (prevDifference !== void 0 && prevDifference < absDifference) {
prevDifference = absDifference;
function targetIsAnotherItem(event, store) {
return isItem(store, event.target);
function useRole(ref, props) {
const roleProp = props.role;
const [role, setRole] = (0,external_React_.useState)(roleProp);
useSafeLayoutEffect(() => {
const element = ref.current;
setRole(element.getAttribute("role") || roleProp);
function requiresAriaSelected(role) {
return role === "option" || role === "treeitem";
function supportsAriaSelected(role) {
if (role === "columnheader")
if (role === "rowheader")
var useCompositeItem = createHook(
preventScrollOnKeyDown = false,
"aria-setsize": ariaSetSizeProp,
"aria-posinset": ariaPosInSetProp
} = _b, props = __objRest(_b, [
"preventScrollOnKeyDown",
const context = useCompositeContext();
store = store || context;
const id = useId(props.id);
const ref = (0,external_React_.useRef)(null);
const row = (0,external_React_.useContext)(CompositeRowContext);
const rowId = useStoreState(store, (state) => {
if (!(row == null ? void 0 : row.baseElement))
if (row.baseElement !== state.baseElement)
const disabled = disabledFromProps(props);
const trulyDisabled = disabled && !props.accessibleWhenDisabled;
const getItem = (0,external_React_.useCallback)(
const nextItem = _4R3V3JGP_spreadProps(_4R3V3JGP_spreadValues({}, item), {
disabled: !!trulyDisabled
return getItemProp(nextItem);
[id, rowId, trulyDisabled, getItemProp]
const onFocusProp = props.onFocus;
const hasFocusedComposite = (0,external_React_.useRef)(false);
const onFocus = useEvent((event) => {
onFocusProp == null ? void 0 : onFocusProp(event);
if (event.defaultPrevented)
if (isPortalEvent(event))
const { activeId, virtualFocus: virtualFocus2, baseElement: baseElement2 } = store.getState();
if (targetIsAnotherItem(event, store))
if (!isSelfTarget(event))
if (isEditableElement(event.currentTarget))
if (!(baseElement2 == null ? void 0 : baseElement2.isConnected))
hasFocusedComposite.current = true;
const fromComposite = event.relatedTarget === baseElement2 || isItem(store, event.relatedTarget);
focusSilently(baseElement2);
const onBlurCaptureProp = props.onBlurCapture;
const onBlurCapture = useEvent((event) => {
onBlurCaptureProp == null ? void 0 : onBlurCaptureProp(event);
if (event.defaultPrevented)
const state = store == null ? void 0 : store.getState();
if ((state == null ? void 0 : state.virtualFocus) && hasFocusedComposite.current) {
hasFocusedComposite.current = false;
const onKeyDownProp = props.onKeyDown;
const preventScrollOnKeyDownProp = useBooleanEvent(preventScrollOnKeyDown);
const moveOnKeyPressProp = useBooleanEvent(moveOnKeyPress);
const onKeyDown = useEvent((event) => {
onKeyDownProp == null ? void 0 : onKeyDownProp(event);
if (event.defaultPrevented)
if (!isSelfTarget(event))
const { currentTarget } = event;
const state = store.getState();
const item = store.item(id);
const isGrid = !!(item == null ? void 0 : item.rowId);
const isVertical = state.orientation !== "horizontal";
const isHorizontal = state.orientation !== "vertical";
const canHomeEnd = () => {
if (!DLOEKDPY_isTextField(state.baseElement))
ArrowUp: (isGrid || isVertical) && store.up,
ArrowRight: (isGrid || isHorizontal) && store.next,
ArrowDown: (isGrid || isVertical) && store.down,
ArrowLeft: (isGrid || isHorizontal) && store.previous,
if (!isGrid || event.ctrlKey) {
return store == null ? void 0 : store.first();
return store == null ? void 0 : store.previous(-1);
if (!isGrid || event.ctrlKey) {
return store == null ? void 0 : store.last();
return store == null ? void 0 : store.next(-1);
return findNextPageItemId(currentTarget, store, store == null ? void 0 : store.up, true);
return findNextPageItemId(currentTarget, store, store == null ? void 0 : store.down);
const action = keyMap[event.key];
if (preventScrollOnKeyDownProp(event) || nextId !== void 0) {
if (!moveOnKeyPressProp(event))
const baseElement = useStoreState(
(state) => (state == null ? void 0 : state.baseElement) || void 0
const providerValue = (0,external_React_.useMemo)(
() => ({ id, baseElement }),
(element) => /* @__PURE__ */ (0,external_ReactJSXRuntime_namespaceObject.jsx)(CompositeItemContext.Provider, { value: providerValue, children: element }),
const isActiveItem = useStoreState(
(state) => !!state && state.activeId === id
const virtualFocus = useStoreState(store, "virtualFocus");
const role = useRole(ref, props);
if (requiresAriaSelected(role)) {
} else if (virtualFocus && supportsAriaSelected(role)) {
const ariaSetSize = useStoreState(store, (state) => {
if (ariaSetSizeProp != null)
if (!(row == null ? void 0 : row.ariaSetSize))
if (row.baseElement !== state.baseElement)
const ariaPosInSet = useStoreState(store, (state) => {
if (ariaPosInSetProp != null)
if (!(row == null ? void 0 : row.ariaPosInSet))
if (row.baseElement !== state.baseElement)
const itemsInRow = state.renderedItems.filter(
(item) => item.rowId === rowId
return row.ariaPosInSet + itemsInRow.findIndex((item) => item.id === id);
const isTabbable = useStoreState(store, (state) => {
if (!(state == null ? void 0 : state.renderedItems.length))