@douglasneuroinformatics/libui 4.7.0 → 4.8.1

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.
@@ -1,7 +1,7 @@
1
1
  "use client"
2
2
  import {
3
3
  i18n
4
- } from "./chunk-GT5NL2RJ.js";
4
+ } from "./chunk-MCINJHF5.js";
5
5
  import {
6
6
  isBrowser
7
7
  } from "./chunk-HCQE34RL.js";
@@ -411,4 +411,4 @@ export {
411
411
  useTranslation,
412
412
  useWindowSize
413
413
  };
414
- //# sourceMappingURL=chunk-LUBCG4SG.js.map
414
+ //# sourceMappingURL=chunk-D3AIKQQK.js.map
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  useNotificationsStore,
4
4
  useTranslation
5
- } from "./chunk-LUBCG4SG.js";
5
+ } from "./chunk-D3AIKQQK.js";
6
6
  import {
7
7
  cn
8
8
  } from "./chunk-HCQE34RL.js";
@@ -322,4 +322,4 @@ export {
322
322
  Dialog,
323
323
  NotificationHub
324
324
  };
325
- //# sourceMappingURL=chunk-QD5QDCYF.js.map
325
+ //# sourceMappingURL=chunk-JRAEWBJS.js.map
@@ -235,7 +235,9 @@ var Translator = class {
235
235
  }
236
236
  changeLanguage(language) {
237
237
  __privateSet(this, _resolvedLanguage, language);
238
- document.documentElement.lang = language;
238
+ if (typeof document !== "undefined") {
239
+ document.documentElement.lang = language;
240
+ }
239
241
  this.emitEvent("languageChange", [language]);
240
242
  }
241
243
  init({ defaultLanguage, translations }) {
@@ -303,4 +305,4 @@ var i18n = new Translator();
303
305
  export {
304
306
  i18n
305
307
  };
306
- //# sourceMappingURL=chunk-GT5NL2RJ.js.map
308
+ //# sourceMappingURL=chunk-MCINJHF5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/i18n/translator.ts","../src/i18n/translations/libui.json","../src/i18n/index.ts"],"sourcesContent":["import { format } from '@douglasneuroinformatics/libjs';\nimport { get } from 'lodash-es';\nimport type { SetOptional } from 'type-fest';\n\nimport libui from './translations/libui.json';\n\nimport type {\n Language,\n TranslateFormatArgs,\n TranslateOptions,\n TranslationKey,\n Translations,\n TranslatorType\n} from './types';\n\ntype TranslatorEventMap = {\n languageChange: (...args: [language: Language]) => void;\n};\n\ntype TranslatorConfig = {\n defaultLanguage?: Language;\n translations: SetOptional<Translations, 'libui'>;\n};\n\nfunction InitializedOnly<T extends Translator, TArgs extends any[], TReturn>(\n target: (this: T, ...args: TArgs) => TReturn,\n context: ClassGetterDecoratorContext<T> | ClassMethodDecoratorContext<T> | ClassSetterDecoratorContext<T>\n) {\n const name = context.name.toString();\n function replacementMethod(this: T, ...args: TArgs): TReturn {\n if (!this.isInitialized) {\n throw new Error(`Cannot access ${context.kind} '${name}' of Translator instance before initialization`);\n }\n return target.call(this, ...args);\n }\n return replacementMethod;\n}\n\nexport class Translator implements TranslatorType<TranslationKey> {\n #config: Required<TranslatorConfig>;\n #eventHandlers: {\n [K in keyof TranslatorEventMap]: Set<TranslatorEventMap[K]>;\n };\n #resolvedLanguage: Language;\n\n constructor() {\n // in the implementation, these should only be accessed in methods decorated with @InitializedOnly\n this.#config = null!;\n this.#eventHandlers = {\n languageChange: new Set()\n };\n this.#resolvedLanguage = null!;\n }\n\n get isInitialized() {\n return this.#config !== null;\n }\n\n @InitializedOnly\n get resolvedLanguage() {\n return this.#resolvedLanguage;\n }\n\n addEventListener<TKey extends keyof TranslatorEventMap>(key: TKey, handler: TranslatorEventMap[TKey]) {\n this.#eventHandlers[key].add(handler);\n }\n\n @InitializedOnly\n changeLanguage(language: Language) {\n this.#resolvedLanguage = language;\n if (typeof document !== 'undefined') {\n document.documentElement.lang = language;\n }\n this.emitEvent('languageChange', [language]);\n }\n\n init({ defaultLanguage, translations }: TranslatorConfig) {\n if (this.isInitialized) {\n throw new Error('Cannot reinitialize Translator');\n }\n this.#config = {\n defaultLanguage: defaultLanguage ?? 'en',\n translations: {\n libui,\n ...translations\n }\n };\n this.changeLanguage(this.#config.defaultLanguage);\n }\n\n removeEventListener<TKey extends keyof TranslatorEventMap>(key: TKey, handler: TranslatorEventMap[TKey]) {\n return this.#eventHandlers[key].delete(handler);\n }\n\n @InitializedOnly\n t(target: TranslationKey | { [L in Language]?: string }, { args }: TranslateOptions = {}): string {\n let obj: { [key: string]: string };\n if (typeof target === 'string') {\n obj = (get(this.#config.translations, target) ?? {}) as { [key: string]: string };\n } else {\n obj = target;\n }\n const value = obj[this.#resolvedLanguage] ?? obj[this.#config.defaultLanguage];\n if (!value) {\n console.error(`Failed to extract translation from object '${JSON.stringify(obj)}'`);\n return '';\n }\n if (!args) {\n return value;\n }\n return format(value, ...this.getFormatArgs(args));\n }\n\n private emitEvent<TKey extends keyof TranslatorEventMap>(key: TKey, payload: Parameters<TranslatorEventMap[TKey]>) {\n this.#eventHandlers[key].forEach((fn: (...args: any[]) => any) => {\n fn(...payload);\n });\n }\n\n private getFormatArgs(args: TranslateFormatArgs) {\n if (Array.isArray(args)) {\n return args;\n }\n const result = args[this.#resolvedLanguage] ?? args[this.#config.defaultLanguage];\n if (!result) {\n console.error(`Failed to extract args from object '${JSON.stringify(args)}'`);\n return [];\n }\n return result;\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 \"oneTimePasswordInput\": {\n \"invalidCodeFormat\": {\n \"en\": \"Invalid code format\",\n \"fr\": \"Format de code invalide\"\n }\n },\n \"pagination\": {\n \"firstPage\": {\n \"en\": \"<< First\",\n \"fr\": \"<< Première\"\n },\n \"first\": {\n \"en\": \"First\",\n \"fr\": \"Première\"\n },\n \"info\": {\n \"en\": \"Showing {{first}} to {{last}} of {{total}} results\",\n \"fr\": \"Affichage de {{first}} à {{last}} sur {{total}} résultats\"\n },\n \"lastPage\": {\n \"en\": \"Last >>\",\n \"fr\": \"Dernière >>\"\n },\n \"last\": {\n \"en\": \"Last\",\n \"fr\": \"Dernière\"\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 \"yes\": {\n \"en\": \"Yes\",\n \"fr\": \"Oui\"\n },\n \"no\": {\n \"en\": \"No\",\n \"fr\": \"Non\"\n }\n}\n","import { Translator } from './translator.ts';\n\nexport const i18n = new Translator();\n\nexport * from './types.ts';\n"],"mappings":"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","names":[]}
@@ -22,7 +22,7 @@ import * as _radix_ui_react_context_menu from '@radix-ui/react-context-menu';
22
22
  import * as _radix_ui_react_dialog from '@radix-ui/react-dialog';
23
23
  import { Drawer as Drawer$1 } from 'vaul';
24
24
  import { ZodTypeLike, ZodErrorLike } from '@douglasneuroinformatics/libjs';
25
- import { FormDataType, FormContent, PartialNullableFormDataType } from '@douglasneuroinformatics/libui-form-types';
25
+ import { FormDataType, FormContent, PartialNullableFormDataType, PartialFormDataType } from '@douglasneuroinformatics/libui-form-types';
26
26
  import * as _radix_ui_react_hover_card from '@radix-ui/react-hover-card';
27
27
  import * as LabelPrimitive from '@radix-ui/react-label';
28
28
  import { L as Language } from './types-CwW4nA_v.js';
@@ -1348,10 +1348,14 @@ type FormProps<TSchema extends ZodTypeLike<FormDataType>, TData extends TSchema[
1348
1348
  resetBtn?: boolean;
1349
1349
  revalidateOnBlur?: boolean;
1350
1350
  submitBtnLabel?: string;
1351
+ subscribe?: {
1352
+ onChange: (values: PartialFormDataType<TData>, setValues: React.Dispatch<React.SetStateAction<PartialFormDataType<TData>>>) => Promisable<void>;
1353
+ selector: (values: PartialFormDataType<TData>) => unknown;
1354
+ };
1351
1355
  suspendWhileSubmitting?: boolean;
1352
1356
  validationSchema: ZodTypeLike<TData>;
1353
1357
  };
1354
- declare const Form: <TSchema extends ZodTypeLike<FormDataType>, TData extends TSchema["_output"] = TSchema["_output"]>({ additionalButtons, className, content, customStyles, fieldsFooter, id, initialValues, onBeforeSubmit, onError, onSubmit, preventResetValuesOnReset, readOnly, resetBtn, revalidateOnBlur, submitBtnLabel, suspendWhileSubmitting, validationSchema, ...props }: FormProps<TSchema, TData>) => react_jsx_runtime.JSX.Element;
1358
+ declare const Form: <TSchema extends ZodTypeLike<FormDataType>, TData extends TSchema["_output"] = TSchema["_output"]>({ additionalButtons, className, content, customStyles, fieldsFooter, id, initialValues, onBeforeSubmit, onError, onSubmit, preventResetValuesOnReset, readOnly, resetBtn, revalidateOnBlur, submitBtnLabel, subscribe, suspendWhileSubmitting, validationSchema, ...props }: FormProps<TSchema, TData>) => react_jsx_runtime.JSX.Element;
1355
1359
 
1356
1360
  type HeadingProps = {
1357
1361
  children: string;
@@ -6,15 +6,15 @@ import {
6
6
  Dialog,
7
7
  NotificationHub,
8
8
  buttonVariants
9
- } from "./chunk-QD5QDCYF.js";
9
+ } from "./chunk-JRAEWBJS.js";
10
10
  import {
11
11
  ChartContext,
12
12
  useChart,
13
13
  useNotificationsStore,
14
14
  useTheme,
15
15
  useTranslation
16
- } from "./chunk-LUBCG4SG.js";
17
- import "./chunk-GT5NL2RJ.js";
16
+ } from "./chunk-D3AIKQQK.js";
17
+ import "./chunk-MCINJHF5.js";
18
18
  import {
19
19
  cn
20
20
  } from "./chunk-HCQE34RL.js";
@@ -3680,6 +3680,7 @@ var Form = ({
3680
3680
  resetBtn,
3681
3681
  revalidateOnBlur,
3682
3682
  submitBtnLabel,
3683
+ subscribe,
3683
3684
  suspendWhileSubmitting,
3684
3685
  validationSchema,
3685
3686
  ...props
@@ -3712,6 +3713,12 @@ var Form = ({
3712
3713
  onError(error);
3713
3714
  }
3714
3715
  };
3716
+ useEffect11(() => {
3717
+ if (!subscribe) {
3718
+ return;
3719
+ }
3720
+ subscribe.onChange(values, setValues);
3721
+ }, [subscribe?.selector(values)]);
3715
3722
  const reset = () => {
3716
3723
  setRootErrors([]);
3717
3724
  setErrors({});