langie 1.13.0 → 1.14.0

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,5 +1,5 @@
1
1
  /**
2
- * langie v1.13.0
2
+ * langie v1.14.0
3
3
  * (c) 2026 nlit
4
4
  * @license Apache-2.0
5
5
  *
@@ -78,7 +78,15 @@ styleInject(".multiselect-single-label,\n.multiselect-option {\n display: flex;
78
78
  var import_vue3 = require("vue");
79
79
  var import_multiselect = __toESM(require("@vueform/multiselect"));
80
80
  var import_fuse = __toESM(require("fuse.js"));
81
- var import_transliteration = require("transliteration");
81
+
82
+ // src/utils/lazyTransliterate.ts
83
+ var pending = null;
84
+ function loadTransliterate() {
85
+ if (!pending) {
86
+ pending = import("transliteration").then((m) => m.transliterate);
87
+ }
88
+ return pending;
89
+ }
82
90
 
83
91
  // src/language-aliases/european.ts
84
92
  var EUROPEAN_LANGUAGES = [
@@ -746,6 +754,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
746
754
  "5b09cc17-COLORS.text.secondary": (0, import_vue2.unref)(COLORS).text.secondary,
747
755
  "5b09cc17-COLORS.neutral.gray400": (0, import_vue2.unref)(COLORS).neutral.gray400
748
756
  }));
757
+ const COMBOBOX_ARIA = { "aria-multiselectable": void 0 };
749
758
  const getFlagCode = (lang) => {
750
759
  const flagCode = lang.flag_country || lang.code;
751
760
  return flagCode;
@@ -758,6 +767,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
758
767
  return props.languages.length <= 0;
759
768
  });
760
769
  const searchQuery = (0, import_vue3.ref)("");
770
+ const transliterate = (0, import_vue3.shallowRef)(null);
761
771
  const validLanguages = (0, import_vue3.computed)(() => {
762
772
  return props.languages.filter((lang) => lang && lang.code && lang.name && lang.native_name);
763
773
  });
@@ -810,7 +820,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
810
820
  if (searchTerm !== query) {
811
821
  mergeByCode(fuse.value.search(query));
812
822
  }
813
- const latinQuery = (0, import_transliteration.transliterate)(query);
823
+ const latinQuery = transliterate.value ? transliterate.value(query) : "";
814
824
  if (latinQuery && latinQuery.toLowerCase() !== query.toLowerCase()) {
815
825
  mergeByCode(fuse.value.search(latinQuery));
816
826
  }
@@ -851,6 +861,11 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
851
861
  function handleSearch(query) {
852
862
  searchQuery.value = query;
853
863
  if (!query.trim()) return;
864
+ if (!transliterate.value) {
865
+ void loadTransliterate().then((fn) => {
866
+ transliterate.value = fn;
867
+ });
868
+ }
854
869
  (0, import_vue3.nextTick)(() => {
855
870
  multiselectRef.value?.setPointerFirst?.();
856
871
  const dropdown = document.querySelector(".multiselect-dropdown");
@@ -919,6 +934,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
919
934
  label: "name",
920
935
  "value-prop": "code",
921
936
  "filter-results": false,
937
+ aria: COMBOBOX_ARIA,
922
938
  onKeydown: handleKeydown
923
939
  }, {
924
940
  singlelabel: (0, import_vue2.withCtx)(({ value }) => [