langie 1.13.1 → 2.0.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,5 +1,5 @@
1
1
  /**
2
- * langie v1.13.1
2
+ * langie v2.0.1
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 = [
@@ -747,6 +755,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
747
755
  "5b09cc17-COLORS.neutral.gray400": (0, import_vue2.unref)(COLORS).neutral.gray400
748
756
  }));
749
757
  const COMBOBOX_ARIA = { "aria-multiselectable": void 0 };
758
+ const multiselectId = (0, import_vue3.useId)();
750
759
  const getFlagCode = (lang) => {
751
760
  const flagCode = lang.flag_country || lang.code;
752
761
  return flagCode;
@@ -759,6 +768,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
759
768
  return props.languages.length <= 0;
760
769
  });
761
770
  const searchQuery = (0, import_vue3.ref)("");
771
+ const transliterate = (0, import_vue3.shallowRef)(null);
762
772
  const validLanguages = (0, import_vue3.computed)(() => {
763
773
  return props.languages.filter((lang) => lang && lang.code && lang.name && lang.native_name);
764
774
  });
@@ -811,7 +821,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
811
821
  if (searchTerm !== query) {
812
822
  mergeByCode(fuse.value.search(query));
813
823
  }
814
- const latinQuery = (0, import_transliteration.transliterate)(query);
824
+ const latinQuery = transliterate.value ? transliterate.value(query) : "";
815
825
  if (latinQuery && latinQuery.toLowerCase() !== query.toLowerCase()) {
816
826
  mergeByCode(fuse.value.search(latinQuery));
817
827
  }
@@ -852,6 +862,11 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
852
862
  function handleSearch(query) {
853
863
  searchQuery.value = query;
854
864
  if (!query.trim()) return;
865
+ if (!transliterate.value) {
866
+ void loadTransliterate().then((fn) => {
867
+ transliterate.value = fn;
868
+ });
869
+ }
855
870
  (0, import_vue3.nextTick)(() => {
856
871
  multiselectRef.value?.setPointerFirst?.();
857
872
  const dropdown = document.querySelector(".multiselect-dropdown");
@@ -920,6 +935,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
920
935
  label: "name",
921
936
  "value-prop": "code",
922
937
  "filter-results": false,
938
+ id: (0, import_vue2.unref)(multiselectId),
923
939
  aria: COMBOBOX_ARIA,
924
940
  onKeydown: handleKeydown
925
941
  }, {
@@ -998,7 +1014,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
998
1014
  ]),
999
1015
  _: 1
1000
1016
  /* STABLE */
1001
- }, 8, ["modelValue", "options", "placeholder", "disabled", "loading"])) : isLoading.value && validLanguages.value.length === 0 ? ((0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)(
1017
+ }, 8, ["modelValue", "options", "placeholder", "disabled", "loading", "id"])) : isLoading.value && validLanguages.value.length === 0 ? ((0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)(
1002
1018
  import_vue2.Fragment,
1003
1019
  { key: 1 },
1004
1020
  [