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.
package/dist/core.cjs CHANGED
@@ -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
  *
package/dist/core.mjs CHANGED
@@ -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
  *
package/dist/index.cjs CHANGED
@@ -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
  *
@@ -1531,7 +1531,15 @@ var import_default = require("@vueform/multiselect/themes/default.css");
1531
1531
  var import_vue5 = require("vue");
1532
1532
  var import_multiselect = __toESM(require("@vueform/multiselect"));
1533
1533
  var import_fuse = __toESM(require("fuse.js"));
1534
- var import_transliteration = require("transliteration");
1534
+
1535
+ // src/utils/lazyTransliterate.ts
1536
+ var pending = null;
1537
+ function loadTransliterate() {
1538
+ if (!pending) {
1539
+ pending = import("transliteration").then((m) => m.transliterate);
1540
+ }
1541
+ return pending;
1542
+ }
1535
1543
 
1536
1544
  // src/language-aliases/european.ts
1537
1545
  var EUROPEAN_LANGUAGES = [
@@ -2218,6 +2226,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
2218
2226
  "5b09cc17-COLORS.neutral.gray400": (0, import_vue4.unref)(COLORS).neutral.gray400
2219
2227
  }));
2220
2228
  const COMBOBOX_ARIA = { "aria-multiselectable": void 0 };
2229
+ const multiselectId = (0, import_vue5.useId)();
2221
2230
  const getFlagCode = (lang) => {
2222
2231
  const flagCode = lang.flag_country || lang.code;
2223
2232
  return flagCode;
@@ -2230,6 +2239,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
2230
2239
  return props.languages.length <= 0;
2231
2240
  });
2232
2241
  const searchQuery = (0, import_vue5.ref)("");
2242
+ const transliterate = (0, import_vue5.shallowRef)(null);
2233
2243
  const validLanguages = (0, import_vue5.computed)(() => {
2234
2244
  return props.languages.filter((lang) => lang && lang.code && lang.name && lang.native_name);
2235
2245
  });
@@ -2282,7 +2292,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
2282
2292
  if (searchTerm !== query) {
2283
2293
  mergeByCode(fuse.value.search(query));
2284
2294
  }
2285
- const latinQuery = (0, import_transliteration.transliterate)(query);
2295
+ const latinQuery = transliterate.value ? transliterate.value(query) : "";
2286
2296
  if (latinQuery && latinQuery.toLowerCase() !== query.toLowerCase()) {
2287
2297
  mergeByCode(fuse.value.search(latinQuery));
2288
2298
  }
@@ -2323,6 +2333,11 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
2323
2333
  function handleSearch(query) {
2324
2334
  searchQuery.value = query;
2325
2335
  if (!query.trim()) return;
2336
+ if (!transliterate.value) {
2337
+ void loadTransliterate().then((fn) => {
2338
+ transliterate.value = fn;
2339
+ });
2340
+ }
2326
2341
  (0, import_vue5.nextTick)(() => {
2327
2342
  multiselectRef.value?.setPointerFirst?.();
2328
2343
  const dropdown = document.querySelector(".multiselect-dropdown");
@@ -2391,6 +2406,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
2391
2406
  label: "name",
2392
2407
  "value-prop": "code",
2393
2408
  "filter-results": false,
2409
+ id: (0, import_vue4.unref)(multiselectId),
2394
2410
  aria: COMBOBOX_ARIA,
2395
2411
  onKeydown: handleKeydown
2396
2412
  }, {
@@ -2469,7 +2485,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
2469
2485
  ]),
2470
2486
  _: 1
2471
2487
  /* STABLE */
2472
- }, 8, ["modelValue", "options", "placeholder", "disabled", "loading"])) : isLoading.value && validLanguages.value.length === 0 ? ((0, import_vue4.openBlock)(), (0, import_vue4.createElementBlock)(
2488
+ }, 8, ["modelValue", "options", "placeholder", "disabled", "loading", "id"])) : isLoading.value && validLanguages.value.length === 0 ? ((0, import_vue4.openBlock)(), (0, import_vue4.createElementBlock)(
2473
2489
  import_vue4.Fragment,
2474
2490
  { key: 1 },
2475
2491
  [