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.
package/dist/core.cjs CHANGED
@@ -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
  *
package/dist/core.mjs CHANGED
@@ -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
  *
package/dist/index.cjs CHANGED
@@ -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
  *
@@ -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 = [
@@ -2217,6 +2225,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
2217
2225
  "5b09cc17-COLORS.text.secondary": (0, import_vue4.unref)(COLORS).text.secondary,
2218
2226
  "5b09cc17-COLORS.neutral.gray400": (0, import_vue4.unref)(COLORS).neutral.gray400
2219
2227
  }));
2228
+ const COMBOBOX_ARIA = { "aria-multiselectable": void 0 };
2220
2229
  const getFlagCode = (lang) => {
2221
2230
  const flagCode = lang.flag_country || lang.code;
2222
2231
  return flagCode;
@@ -2229,6 +2238,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
2229
2238
  return props.languages.length <= 0;
2230
2239
  });
2231
2240
  const searchQuery = (0, import_vue5.ref)("");
2241
+ const transliterate = (0, import_vue5.shallowRef)(null);
2232
2242
  const validLanguages = (0, import_vue5.computed)(() => {
2233
2243
  return props.languages.filter((lang) => lang && lang.code && lang.name && lang.native_name);
2234
2244
  });
@@ -2281,7 +2291,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
2281
2291
  if (searchTerm !== query) {
2282
2292
  mergeByCode(fuse.value.search(query));
2283
2293
  }
2284
- const latinQuery = (0, import_transliteration.transliterate)(query);
2294
+ const latinQuery = transliterate.value ? transliterate.value(query) : "";
2285
2295
  if (latinQuery && latinQuery.toLowerCase() !== query.toLowerCase()) {
2286
2296
  mergeByCode(fuse.value.search(latinQuery));
2287
2297
  }
@@ -2322,6 +2332,11 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
2322
2332
  function handleSearch(query) {
2323
2333
  searchQuery.value = query;
2324
2334
  if (!query.trim()) return;
2335
+ if (!transliterate.value) {
2336
+ void loadTransliterate().then((fn) => {
2337
+ transliterate.value = fn;
2338
+ });
2339
+ }
2325
2340
  (0, import_vue5.nextTick)(() => {
2326
2341
  multiselectRef.value?.setPointerFirst?.();
2327
2342
  const dropdown = document.querySelector(".multiselect-dropdown");
@@ -2390,6 +2405,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
2390
2405
  label: "name",
2391
2406
  "value-prop": "code",
2392
2407
  "filter-results": false,
2408
+ aria: COMBOBOX_ARIA,
2393
2409
  onKeydown: handleKeydown
2394
2410
  }, {
2395
2411
  singlelabel: (0, import_vue4.withCtx)(({ value }) => [