UNPKG

@ark-ui/solid

Version:

A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.

55 lines (48 loc) 1.57 kB
import { createContext } from "./UZJJWJQM.jsx"; // src/providers/locale/locale-provider.tsx import { isRTL } 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 <LocaleContextProvider value={context}>{props.children}</LocaleContextProvider>; }; // src/providers/locale/use-collator.ts import { createCollator } from "@zag-js/i18n-utils"; import { createMemo as createMemo2 } from "solid-js"; function useCollator(props = {}) { const env = useLocaleContext(); const locale = () => props.locale ?? env().locale; return createMemo2(() => { const { locale: _, ...options } = props; return createCollator(locale(), options); }); } // src/providers/locale/use-filter.ts import { createFilter } from "@zag-js/i18n-utils"; import { createMemo as createMemo3 } from "solid-js"; function useFilter(props) { const env = useLocaleContext(); const locale = createMemo3(() => props.locale ?? env().locale); return createMemo3(() => createFilter({ ...props, locale: locale() })); } export { useLocaleContext, LocaleProvider, useCollator, useFilter };