UNPKG

@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
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 };