@douglasneuroinformatics/libui 3.8.5 → 3.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,7 @@
2
2
 
3
3
  // src/i18n/store.ts
4
4
  import { createStore } from "zustand/vanilla";
5
+ import { subscribeWithSelector } from "zustand/middleware";
5
6
 
6
7
  // src/i18n/translations/libui.json
7
8
  var libui_default = {
@@ -173,15 +174,17 @@ function getTranslation(target, state, ...args) {
173
174
  }
174
175
 
175
176
  // src/i18n/store.ts
176
- var translationStore = createStore((set) => ({
177
- changeLanguage(language) {
178
- set({ resolvedLanguage: language });
179
- },
180
- fallbackLanguage: "en",
181
- isInitialized: false,
182
- resolvedLanguage: "en",
183
- translations: { libui: libui_default }
184
- }));
177
+ var translationStore = createStore(
178
+ subscribeWithSelector((set) => ({
179
+ changeLanguage(language) {
180
+ set({ resolvedLanguage: language });
181
+ },
182
+ fallbackLanguage: "en",
183
+ isInitialized: false,
184
+ resolvedLanguage: "en",
185
+ translations: { libui: libui_default }
186
+ }))
187
+ );
185
188
  var i18n = {
186
189
  init: ({ defaultLanguage, fallbackLanguage, translations } = {}) => {
187
190
  const state = translationStore.getState();
@@ -189,6 +192,12 @@ var i18n = {
189
192
  console.error("Cannot reinitialize translations store");
190
193
  return;
191
194
  }
195
+ translationStore.subscribe(
196
+ (state2) => state2.resolvedLanguage,
197
+ (resolvedLanguage) => {
198
+ document.documentElement.lang = resolvedLanguage;
199
+ }
200
+ );
192
201
  translationStore.setState({
193
202
  fallbackLanguage: fallbackLanguage ?? state.fallbackLanguage,
194
203
  isInitialized: true,
@@ -210,4 +219,4 @@ export {
210
219
  translationStore,
211
220
  i18n
212
221
  };
213
- //# sourceMappingURL=chunk-M5H3G5VE.js.map
222
+ //# sourceMappingURL=chunk-CAWCERN4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/i18n/store.ts","../src/i18n/translations/libui.json","../src/i18n/internal.ts"],"sourcesContent":["import type { SetOptional } from 'type-fest';\nimport { createStore } from 'zustand/vanilla';\nimport { subscribeWithSelector } from 'zustand/middleware';\n\nimport libui from '@/i18n/translations/libui.json';\n\nimport { getTranslation } from './internal';\n\nimport type { Language, TranslateFunction, Translations } from './types';\n\ntype InitOptions = {\n defaultLanguage?: Language;\n fallbackLanguage?: Language;\n translations?: SetOptional<Translations, 'libui'>;\n};\n\ntype I18N = {\n init: (options?: InitOptions) => void;\n t: TranslateFunction;\n};\n\nexport type TranslationStore = {\n changeLanguage: (language: Language) => void;\n fallbackLanguage: Language;\n isInitialized: boolean;\n resolvedLanguage: Language;\n translations: Translations;\n};\n\nexport const translationStore = createStore(\n subscribeWithSelector<TranslationStore>((set) => ({\n changeLanguage(language) {\n set({ resolvedLanguage: language });\n },\n fallbackLanguage: 'en',\n isInitialized: false,\n resolvedLanguage: 'en',\n translations: { libui }\n }))\n);\n\nexport const i18n: I18N = {\n init: ({ defaultLanguage, fallbackLanguage, translations }: InitOptions = {}) => {\n const state = translationStore.getState();\n if (state.isInitialized) {\n console.error('Cannot reinitialize translations store');\n return;\n }\n translationStore.subscribe(\n (state) => state.resolvedLanguage,\n (resolvedLanguage) => {\n document.documentElement.lang = resolvedLanguage;\n }\n );\n translationStore.setState({\n fallbackLanguage: fallbackLanguage ?? state.fallbackLanguage,\n isInitialized: true,\n resolvedLanguage: defaultLanguage ?? state.resolvedLanguage,\n translations: {\n ...state.translations,\n ...translations\n }\n });\n },\n t: (target, ...args) => {\n const state = translationStore.getState();\n return getTranslation(target, state, ...args);\n }\n};\n","{\n \"days\": {\n \"friday\": {\n \"en\": \"Friday\",\n \"fr\": \"Vendredi\"\n },\n \"monday\": {\n \"en\": \"Monday\",\n \"fr\": \"Lundi\"\n },\n \"saturday\": {\n \"en\": \"Saturday\",\n \"fr\": \"Samedi\"\n },\n \"sunday\": {\n \"en\": \"Sunday\",\n \"fr\": \"Dimanche\"\n },\n \"thursday\": {\n \"en\": \"Thursday\",\n \"fr\": \"Jeudi\"\n },\n \"tuesday\": {\n \"en\": \"Tuesday\",\n \"fr\": \"Mardi\"\n },\n \"wednesday\": {\n \"en\": \"Wednesday\",\n \"fr\": \"Mercredi\"\n }\n },\n \"form\": {\n \"append\": {\n \"en\": \"Append\",\n \"fr\": \"Ajouter\"\n },\n \"radioLabels\": {\n \"false\": {\n \"en\": \"False\",\n \"fr\": \"Faux\"\n },\n \"true\": {\n \"en\": \"True\",\n \"fr\": \"Vrai\"\n }\n },\n \"remove\": {\n \"en\": \"Remove\",\n \"fr\": \"Supprimer\"\n },\n \"required\": {\n \"en\": \"This field is required\",\n \"fr\": \"Ce champ est obligatoire\"\n },\n \"reset\": {\n \"en\": \"Reset\",\n \"fr\": \"Réinitialiser\"\n },\n \"submit\": {\n \"en\": \"Submit\",\n \"fr\": \"Soumettre\"\n }\n },\n \"months\": {\n \"april\": {\n \"en\": \"April\",\n \"fr\": \"Avril\"\n },\n \"august\": {\n \"en\": \"August\",\n \"fr\": \"Août\"\n },\n \"december\": {\n \"en\": \"December\",\n \"fr\": \"Décembre\"\n },\n \"february\": {\n \"en\": \"February\",\n \"fr\": \"Février\"\n },\n \"january\": {\n \"en\": \"January\",\n \"fr\": \"Janvier\"\n },\n \"july\": {\n \"en\": \"July\",\n \"fr\": \"Juillet\"\n },\n \"june\": {\n \"en\": \"June\",\n \"fr\": \"Juin\"\n },\n \"march\": {\n \"en\": \"March\",\n \"fr\": \"Mars\"\n },\n \"may\": {\n \"en\": \"May\",\n \"fr\": \"Mai\"\n },\n \"november\": {\n \"en\": \"November\",\n \"fr\": \"Novembre\"\n },\n \"october\": {\n \"en\": \"October\",\n \"fr\": \"Octobre\"\n },\n \"september\": {\n \"en\": \"September\",\n \"fr\": \"Septembre\"\n }\n },\n \"notifications\": {\n \"types\": {\n \"error\": {\n \"en\": \"Error\",\n \"fr\": \"Erreur\"\n },\n \"info\": {\n \"en\": \"Info\",\n \"fr\": \"Attention\"\n },\n \"success\": {\n \"en\": \"Success\",\n \"fr\": \"Succès\"\n },\n \"warning\": {\n \"en\": \"Warning\",\n \"fr\": \"Avertissement\"\n }\n }\n },\n \"pagination\": {\n \"info\": {\n \"en\": \"Showing {{first}} to {{last}} of {{total}} results\",\n \"fr\": \"Affichage de {{first}} à {{last}} sur {{total}} résultats\"\n },\n \"next\": {\n \"en\": \"Next\",\n \"fr\": \"Suivant\"\n },\n \"previous\": {\n \"en\": \"Previous\",\n \"fr\": \"Précédent\"\n }\n },\n \"searchBar\": {\n \"placeholder\": {\n \"en\": \"Search...\",\n \"fr\": \"Rechercher...\"\n }\n }\n}\n","import { format } from '@douglasneuroinformatics/libjs';\nimport { get } from 'lodash-es';\nimport type { Primitive } from 'type-fest';\n\nimport type { Language } from './types';\n\nexport function getTranslation(\n target: { [L in Language]?: string } | string,\n state: {\n fallbackLanguage: Language;\n resolvedLanguage: Language;\n translations: { [key: string]: any };\n },\n ...args: Exclude<Primitive, symbol>[]\n) {\n let value: { [key: string]: string };\n if (typeof target === 'string') {\n value = get(state.translations, target) as { [key: string]: string };\n } else {\n value = target;\n }\n return format((value[state.resolvedLanguage] ?? value[state.fallbackLanguage])!, ...args);\n}\n"],"mappings":"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","names":["state"]}
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  getTranslation,
4
4
  translationStore
5
- } from "./chunk-M5H3G5VE.js";
5
+ } from "./chunk-CAWCERN4.js";
6
6
  import {
7
7
  isBrowser
8
8
  } from "./chunk-VJSOLDCS.js";
@@ -367,4 +367,4 @@ export {
367
367
  useTranslation,
368
368
  useWindowSize
369
369
  };
370
- //# sourceMappingURL=chunk-GLOKPJGE.js.map
370
+ //# sourceMappingURL=chunk-GFIT4FAN.js.map
@@ -1239,9 +1239,9 @@ type FormProps<TSchema extends z.ZodType<FormDataType>, TData extends z.TypeOf<T
1239
1239
  content: FormContent<TData>;
1240
1240
  fieldsFooter?: React.ReactNode;
1241
1241
  id?: string;
1242
- initialValues?: PartialNullableFormDataType<TData>;
1243
- onError?: (error: z.ZodError<TData>) => void;
1244
- onSubmit: (data: TData) => Promisable<void>;
1242
+ initialValues?: PartialNullableFormDataType<NoInfer<TData>>;
1243
+ onError?: (error: z.ZodError<NoInfer<TData>>) => void;
1244
+ onSubmit: (data: NoInfer<TData>) => Promisable<void>;
1245
1245
  preventResetValuesOnReset?: boolean;
1246
1246
  readOnly?: boolean;
1247
1247
  resetBtn?: boolean;
@@ -5,8 +5,8 @@ import {
5
5
  useNotificationsStore,
6
6
  useTheme,
7
7
  useTranslation
8
- } from "./chunk-GLOKPJGE.js";
9
- import "./chunk-M5H3G5VE.js";
8
+ } from "./chunk-GFIT4FAN.js";
9
+ import "./chunk-CAWCERN4.js";
10
10
  import {
11
11
  cn
12
12
  } from "./chunk-VJSOLDCS.js";
@@ -1514,8 +1514,8 @@ var ContextMenu = Object.assign(Root7.bind(null), {
1514
1514
 
1515
1515
  // src/components/CopyButton/CopyButton.tsx
1516
1516
  import { useState as useState2 } from "react";
1517
- import { AnimatePresence, motion } from "framer-motion";
1518
1517
  import { ClipboardCheckIcon, ClipboardListIcon } from "lucide-react";
1518
+ import { AnimatePresence, motion } from "motion/react";
1519
1519
  import { match } from "ts-pattern";
1520
1520
  import { jsx as jsx71 } from "react/jsx-runtime";
1521
1521
  var CopyButton = ({
@@ -1556,12 +1556,12 @@ var CopyButton = ({
1556
1556
  // src/components/DatePicker/DatePicker.tsx
1557
1557
  import { useReducer, useState as useState3 } from "react";
1558
1558
  import * as React17 from "react";
1559
- import { AnimatePresence as AnimatePresence3, motion as motion3 } from "framer-motion";
1559
+ import { AnimatePresence as AnimatePresence3, motion as motion3 } from "motion/react";
1560
1560
 
1561
1561
  // src/components/DatePicker/Calendar.tsx
1562
1562
  import { forwardRef as forwardRef59 } from "react";
1563
- import { AnimatePresence as AnimatePresence2, motion as motion2 } from "framer-motion";
1564
1563
  import { range as range2 } from "lodash-es";
1564
+ import { AnimatePresence as AnimatePresence2, motion as motion2 } from "motion/react";
1565
1565
  import { jsx as jsx72, jsxs as jsxs19 } from "react/jsx-runtime";
1566
1566
  var CALENDAR_ANIMATION_DURATION = 0.2;
1567
1567
  var Calendar = forwardRef59(function Calendar2(props, ref) {
@@ -2976,8 +2976,8 @@ var StringFieldInput = ({
2976
2976
 
2977
2977
  // src/components/Form/StringField/StringFieldPassword.tsx
2978
2978
  import { useEffect as useEffect7, useState as useState6 } from "react";
2979
- import { motion as motion4 } from "framer-motion";
2980
2979
  import { EyeIcon, EyeOffIcon } from "lucide-react";
2980
+ import { motion as motion4 } from "motion/react";
2981
2981
  import { jsx as jsx125, jsxs as jsxs42 } from "react/jsx-runtime";
2982
2982
  var StringFieldPassword = ({
2983
2983
  calculateStrength,
@@ -4022,8 +4022,8 @@ var MenuBar = Object.assign(MenuBarRoot, {
4022
4022
  });
4023
4023
 
4024
4024
  // src/components/NotificationHub/NotificationHub.tsx
4025
- import { AnimatePresence as AnimatePresence4, motion as motion5 } from "framer-motion";
4026
4025
  import { XIcon as XIcon2 } from "lucide-react";
4026
+ import { AnimatePresence as AnimatePresence4, motion as motion5 } from "motion/react";
4027
4027
 
4028
4028
  // src/components/NotificationHub/NotificationIcon.tsx
4029
4029
  import { jsx as jsx152 } from "react/jsx-runtime";
@@ -4516,7 +4516,7 @@ var SpinnerIcon = ({ className, ...props }) => /* @__PURE__ */ jsx175(
4516
4516
 
4517
4517
  // src/components/StatisticCard/StatisticCard.tsx
4518
4518
  import { useEffect as useEffect11 } from "react";
4519
- import { motion as motion6, useSpring, useTransform } from "framer-motion";
4519
+ import { motion as motion6, useSpring, useTransform } from "motion/react";
4520
4520
  import { jsx as jsx176, jsxs as jsxs60 } from "react/jsx-runtime";
4521
4521
  var StatisticCard = ({ className, icon, label, value, ...props }) => {
4522
4522
  const spring = useSpring(0, { bounce: 0 });