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