@ark-ui/solid
Version:
A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.
34 lines (30 loc) • 1.05 kB
JavaScript
import { createContext } from './TROPIN4C.js';
import { createComponent } from 'solid-js/web';
import { isRTL, createFilter } from '@zag-js/i18n-utils';
import { createMemo } from 'solid-js';
// src/providers/locale/use-locale-context.ts
var [LocaleContextProvider, useLocaleContext] = createContext({
hookName: "useEnvironmentContext",
providerName: "<EnvironmentProvider />",
strict: false,
defaultValue: () => ({ dir: "ltr", locale: "en-US" })
});
// src/providers/locale/locale-provider.tsx
var LocaleProvider = (props) => {
const context = createMemo(() => ({
locale: props.locale,
dir: isRTL(props.locale) ? "rtl" : "ltr"
}));
return createComponent(LocaleContextProvider, {
value: context,
get children() {
return props.children;
}
});
};
function useFilter(props) {
const env = useLocaleContext();
const locale = createMemo(() => props.locale ?? env().locale);
return createMemo(() => createFilter({ ...props, locale: locale() }));
}
export { LocaleProvider, useFilter, useLocaleContext };