@intlayer/design-system 3.5.4 → 3.5.5

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.
Files changed (224) hide show
  1. package/dist/.vite/manifest.json +112 -45
  2. package/dist/CopyButton-Cxu3goRg.cjs +59 -0
  3. package/dist/CopyButton-Cxu3goRg.cjs.map +1 -0
  4. package/dist/CopyButton-DlcDlf6U.js +60 -0
  5. package/dist/CopyButton-DlcDlf6U.js.map +1 -0
  6. package/dist/components/Auth/SignUpForm/signUpForm.content.d.ts +11 -11
  7. package/dist/components/Auth/useAuth/useSession.cjs +1 -0
  8. package/dist/components/Auth/useAuth/useSession.cjs.map +1 -1
  9. package/dist/components/Auth/useAuth/useSession.mjs +1 -0
  10. package/dist/components/Auth/useAuth/useSession.mjs.map +1 -1
  11. package/dist/components/Breadcrumb/breadcrumb.content.cjs +26 -0
  12. package/dist/components/Breadcrumb/breadcrumb.content.cjs.map +1 -0
  13. package/dist/components/Breadcrumb/breadcrumb.content.d.ts +8 -0
  14. package/dist/components/Breadcrumb/breadcrumb.content.d.ts.map +1 -0
  15. package/dist/components/Breadcrumb/breadcrumb.content.mjs +26 -0
  16. package/dist/components/Breadcrumb/breadcrumb.content.mjs.map +1 -0
  17. package/dist/components/Breadcrumb/index.cjs +103 -34
  18. package/dist/components/Breadcrumb/index.cjs.map +1 -1
  19. package/dist/components/Breadcrumb/index.d.ts +6 -2
  20. package/dist/components/Breadcrumb/index.d.ts.map +1 -1
  21. package/dist/components/Breadcrumb/index.mjs +103 -34
  22. package/dist/components/Breadcrumb/index.mjs.map +1 -1
  23. package/dist/components/Button/Button.cjs +7 -8
  24. package/dist/components/Button/Button.cjs.map +1 -1
  25. package/dist/components/Button/Button.d.ts.map +1 -1
  26. package/dist/components/Button/Button.mjs +7 -8
  27. package/dist/components/Button/Button.mjs.map +1 -1
  28. package/dist/components/Container/index.cjs +2 -2
  29. package/dist/components/Container/index.cjs.map +1 -1
  30. package/dist/components/Container/index.mjs +2 -2
  31. package/dist/components/Container/index.mjs.map +1 -1
  32. package/dist/components/DictionaryEditor/index.cjs +4 -0
  33. package/dist/components/DictionaryEditor/index.cjs.map +1 -1
  34. package/dist/components/DictionaryEditor/index.mjs +4 -0
  35. package/dist/components/DictionaryEditor/index.mjs.map +1 -1
  36. package/dist/components/DictionaryEditor/useEditedContentStore.cjs +3 -0
  37. package/dist/components/DictionaryEditor/useEditedContentStore.cjs.map +1 -1
  38. package/dist/components/DictionaryEditor/useEditedContentStore.d.ts +2 -2
  39. package/dist/components/DictionaryEditor/useEditedContentStore.d.ts.map +1 -1
  40. package/dist/components/DictionaryEditor/useEditedContentStore.mjs +3 -0
  41. package/dist/components/DictionaryEditor/useEditedContentStore.mjs.map +1 -1
  42. package/dist/components/DictionaryEditor/useEditionPanelStore.cjs.map +1 -1
  43. package/dist/components/DictionaryEditor/useEditionPanelStore.d.ts +1 -1
  44. package/dist/components/DictionaryEditor/useEditionPanelStore.d.ts.map +1 -1
  45. package/dist/components/DictionaryEditor/useEditionPanelStore.mjs.map +1 -1
  46. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs +7 -5
  47. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs.map +1 -1
  48. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts +1 -0
  49. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts.map +1 -1
  50. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs +7 -5
  51. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs.map +1 -1
  52. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs +6 -3
  53. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs.map +1 -1
  54. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts +1 -0
  55. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts.map +1 -1
  56. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +6 -3
  57. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
  58. package/dist/components/DictionaryFieldEditor/JSONEditor.cjs +20 -18
  59. package/dist/components/DictionaryFieldEditor/JSONEditor.cjs.map +1 -1
  60. package/dist/components/DictionaryFieldEditor/JSONEditor.d.ts +1 -0
  61. package/dist/components/DictionaryFieldEditor/JSONEditor.d.ts.map +1 -1
  62. package/dist/components/DictionaryFieldEditor/JSONEditor.mjs +20 -18
  63. package/dist/components/DictionaryFieldEditor/JSONEditor.mjs.map +1 -1
  64. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.cjs +10 -2
  65. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.cjs.map +1 -1
  66. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.d.ts +2 -0
  67. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.d.ts.map +1 -1
  68. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.mjs +10 -2
  69. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.mjs.map +1 -1
  70. package/dist/components/DictionaryFieldEditor/NodeEditor.cjs +10 -14
  71. package/dist/components/DictionaryFieldEditor/NodeEditor.cjs.map +1 -1
  72. package/dist/components/DictionaryFieldEditor/NodeEditor.d.ts.map +1 -1
  73. package/dist/components/DictionaryFieldEditor/NodeEditor.mjs +10 -14
  74. package/dist/components/DictionaryFieldEditor/NodeEditor.mjs.map +1 -1
  75. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs +60 -17
  76. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs.map +1 -1
  77. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts.map +1 -1
  78. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +63 -20
  79. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
  80. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs +32 -0
  81. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs.map +1 -1
  82. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +4 -0
  83. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts.map +1 -1
  84. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs +32 -0
  85. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs.map +1 -1
  86. package/dist/components/DropDown/index.cjs.map +1 -1
  87. package/dist/components/DropDown/index.d.ts +18 -1
  88. package/dist/components/DropDown/index.d.ts.map +1 -1
  89. package/dist/components/DropDown/index.mjs.map +1 -1
  90. package/dist/components/Headers/index.cjs +1 -1
  91. package/dist/components/Headers/index.cjs.map +1 -1
  92. package/dist/components/Headers/index.mjs +1 -1
  93. package/dist/components/Headers/index.mjs.map +1 -1
  94. package/dist/components/IDE/CodeRender copy.cjs +141 -0
  95. package/dist/components/IDE/CodeRender copy.cjs.map +1 -0
  96. package/dist/components/IDE/CodeRender copy.d.ts +14 -0
  97. package/dist/components/IDE/CodeRender copy.d.ts.map +1 -0
  98. package/dist/components/IDE/CodeRender copy.mjs +141 -0
  99. package/dist/components/IDE/CodeRender copy.mjs.map +1 -0
  100. package/dist/components/IDE/CodeRender.cjs +39 -625
  101. package/dist/components/IDE/CodeRender.cjs.map +1 -1
  102. package/dist/components/IDE/CodeRender.d.ts +4 -5
  103. package/dist/components/IDE/CodeRender.d.ts.map +1 -1
  104. package/dist/components/IDE/CodeRender.mjs +40 -604
  105. package/dist/components/IDE/CodeRender.mjs.map +1 -1
  106. package/dist/components/IDE/CopyButton.cjs +40 -0
  107. package/dist/components/IDE/CopyButton.cjs.map +1 -0
  108. package/dist/components/IDE/CopyButton.content.cjs +26 -0
  109. package/dist/components/IDE/CopyButton.content.cjs.map +1 -0
  110. package/dist/components/IDE/CopyButton.content.d.ts +8 -0
  111. package/dist/components/IDE/CopyButton.content.d.ts.map +1 -0
  112. package/dist/components/IDE/CopyButton.content.mjs +26 -0
  113. package/dist/components/IDE/CopyButton.content.mjs.map +1 -0
  114. package/dist/components/IDE/CopyButton.d.ts +7 -0
  115. package/dist/components/IDE/CopyButton.d.ts.map +1 -0
  116. package/dist/components/IDE/CopyButton.mjs +40 -0
  117. package/dist/components/IDE/CopyButton.mjs.map +1 -0
  118. package/dist/components/IDE/IDE.cjs +1 -1
  119. package/dist/components/IDE/IDE.cjs.map +1 -1
  120. package/dist/components/IDE/IDE.mjs +1 -1
  121. package/dist/components/IDE/IDE.mjs.map +1 -1
  122. package/dist/components/IDE/MarkDownRender.cjs +10 -2
  123. package/dist/components/IDE/MarkDownRender.cjs.map +1 -1
  124. package/dist/components/IDE/MarkDownRender.d.ts.map +1 -1
  125. package/dist/components/IDE/MarkDownRender.mjs +10 -2
  126. package/dist/components/IDE/MarkDownRender.mjs.map +1 -1
  127. package/dist/components/IDE/MonacoCode.cjs +129 -0
  128. package/dist/components/IDE/MonacoCode.cjs.map +1 -0
  129. package/dist/components/IDE/MonacoCode.d.ts +14 -0
  130. package/dist/components/IDE/MonacoCode.d.ts.map +1 -0
  131. package/dist/components/IDE/MonacoCode.mjs +129 -0
  132. package/dist/components/IDE/MonacoCode.mjs.map +1 -0
  133. package/dist/components/Link/Link.cjs +50 -31
  134. package/dist/components/Link/Link.cjs.map +1 -1
  135. package/dist/components/Link/Link.d.ts +3 -0
  136. package/dist/components/Link/Link.d.ts.map +1 -1
  137. package/dist/components/Link/Link.mjs +51 -32
  138. package/dist/components/Link/Link.mjs.map +1 -1
  139. package/dist/components/Link/index.cjs +1 -0
  140. package/dist/components/Link/index.cjs.map +1 -1
  141. package/dist/components/Link/index.mjs +3 -2
  142. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs +118 -34
  143. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs.map +1 -1
  144. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts +2 -0
  145. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts.map +1 -1
  146. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs +119 -35
  147. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs.map +1 -1
  148. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.cjs +63 -1
  149. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.cjs.map +1 -1
  150. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts +6 -0
  151. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts.map +1 -1
  152. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.mjs +63 -1
  153. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.mjs.map +1 -1
  154. package/dist/components/MarkDownRender/index.cjs +4 -2
  155. package/dist/components/MarkDownRender/index.cjs.map +1 -1
  156. package/dist/components/MarkDownRender/index.d.ts +3 -1
  157. package/dist/components/MarkDownRender/index.d.ts.map +1 -1
  158. package/dist/components/MarkDownRender/index.mjs +4 -2
  159. package/dist/components/MarkDownRender/index.mjs.map +1 -1
  160. package/dist/components/Modal/Modal.cjs +8 -10
  161. package/dist/components/Modal/Modal.cjs.map +1 -1
  162. package/dist/components/Modal/Modal.d.ts.map +1 -1
  163. package/dist/components/Modal/Modal.mjs +8 -10
  164. package/dist/components/Modal/Modal.mjs.map +1 -1
  165. package/dist/components/Navbar/DesktopNavbar.cjs +1 -1
  166. package/dist/components/Navbar/DesktopNavbar.cjs.map +1 -1
  167. package/dist/components/Navbar/DesktopNavbar.mjs +1 -1
  168. package/dist/components/Navbar/DesktopNavbar.mjs.map +1 -1
  169. package/dist/components/index.cjs +5 -0
  170. package/dist/components/index.cjs.map +1 -1
  171. package/dist/components/index.mjs +6 -1
  172. package/dist/components/index.mjs.map +1 -1
  173. package/dist/design-system.css +235 -0
  174. package/dist/hooks/index.cjs +6 -0
  175. package/dist/hooks/index.cjs.map +1 -1
  176. package/dist/hooks/index.d.ts +1 -0
  177. package/dist/hooks/index.d.ts.map +1 -1
  178. package/dist/hooks/index.mjs +7 -1
  179. package/dist/hooks/index.mjs.map +1 -1
  180. package/dist/hooks/intlayerAPIHooks.cjs +8 -2
  181. package/dist/hooks/intlayerAPIHooks.cjs.map +1 -1
  182. package/dist/hooks/intlayerAPIHooks.d.ts +4 -0
  183. package/dist/hooks/intlayerAPIHooks.d.ts.map +1 -1
  184. package/dist/hooks/intlayerAPIHooks.mjs +8 -2
  185. package/dist/hooks/intlayerAPIHooks.mjs.map +1 -1
  186. package/dist/hooks/useAsync/index.cjs +3 -0
  187. package/dist/hooks/useAsync/index.cjs.map +1 -1
  188. package/dist/hooks/useAsync/index.d.ts +1 -0
  189. package/dist/hooks/useAsync/index.d.ts.map +1 -1
  190. package/dist/hooks/useAsync/index.mjs +4 -1
  191. package/dist/hooks/useAsync/index.mjs.map +1 -1
  192. package/dist/hooks/useAsync/useAsync.cjs +2 -9
  193. package/dist/hooks/useAsync/useAsync.cjs.map +1 -1
  194. package/dist/hooks/useAsync/useAsync.d.ts.map +1 -1
  195. package/dist/hooks/useAsync/useAsync.mjs +3 -10
  196. package/dist/hooks/useAsync/useAsync.mjs.map +1 -1
  197. package/dist/hooks/useAsync/useAsyncStateStore.cjs +123 -69
  198. package/dist/hooks/useAsync/useAsyncStateStore.cjs.map +1 -1
  199. package/dist/hooks/useAsync/useAsyncStateStore.d.ts +35 -11
  200. package/dist/hooks/useAsync/useAsyncStateStore.d.ts.map +1 -1
  201. package/dist/hooks/useAsync/useAsyncStateStore.mjs +123 -69
  202. package/dist/hooks/useAsync/useAsyncStateStore.mjs.map +1 -1
  203. package/dist/hooks/useIntlayerAPI.d.ts +3 -0
  204. package/dist/hooks/useIntlayerAPI.d.ts.map +1 -1
  205. package/dist/hooks/useIsDarkMode.cjs +15 -0
  206. package/dist/hooks/useIsDarkMode.cjs.map +1 -0
  207. package/dist/hooks/useIsDarkMode.d.ts +2 -0
  208. package/dist/hooks/useIsDarkMode.d.ts.map +1 -0
  209. package/dist/hooks/useIsDarkMode.mjs +15 -0
  210. package/dist/hooks/useIsDarkMode.mjs.map +1 -0
  211. package/dist/libs/intlayer-api/ai.cjs +24 -0
  212. package/dist/libs/intlayer-api/ai.cjs.map +1 -0
  213. package/dist/libs/intlayer-api/ai.d.ts +10 -0
  214. package/dist/libs/intlayer-api/ai.d.ts.map +1 -0
  215. package/dist/libs/intlayer-api/ai.mjs +24 -0
  216. package/dist/libs/intlayer-api/ai.mjs.map +1 -0
  217. package/dist/libs/intlayer-api/index.cjs +3 -1
  218. package/dist/libs/intlayer-api/index.cjs.map +1 -1
  219. package/dist/libs/intlayer-api/index.d.ts +6 -0
  220. package/dist/libs/intlayer-api/index.d.ts.map +1 -1
  221. package/dist/libs/intlayer-api/index.mjs +3 -1
  222. package/dist/libs/intlayer-api/index.mjs.map +1 -1
  223. package/dist/tailwind.css +1 -1
  224. package/package.json +19 -16
@@ -1,12 +1,19 @@
1
+ "use client";
1
2
  "use strict";
2
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
4
  const jsxRuntime = require("../../jsx-runtime-XHKiWCTo.cjs");
5
+ const client = require("@intlayer/config/client");
4
6
  const core = require("@intlayer/core");
7
+ const Fuse = require("fuse.js");
5
8
  const lucideReact = require("lucide-react");
9
+ const require$$0 = require("react");
6
10
  const reactIntlayer = require("react-intlayer");
7
11
  const components_Button_Button = require("../Button/Button.cjs");
8
12
  const components_Container_index = require("../Container/index.cjs");
9
13
  const components_DropDown_index = require("../DropDown/index.cjs");
14
+ const components_Input_Input = require("../Input/Input.cjs");
15
+ require("../Input/InputPassword.cjs");
16
+ require("../Input/Checkbox.cjs");
10
17
  const components_LocaleSwitcherDropDown_localeSwitcher_content = require("./localeSwitcher.content.cjs");
11
18
  const DROPDOWN_IDENTIFIER = "locale-switcher";
12
19
  const LocaleSwitcher = ({
@@ -14,10 +21,53 @@ const LocaleSwitcher = ({
14
21
  localeList,
15
22
  availableLocales,
16
23
  fullLocaleName = true,
17
- setLocale
24
+ setLocale,
25
+ panelProps
18
26
  }) => {
19
27
  let localeName = "Select a locale";
20
- const { switchTo } = reactIntlayer.useDictionary(components_LocaleSwitcherDropDown_localeSwitcher_content);
28
+ const { switchTo, searchInput, localeSwitcherLabel, languageListLabel } = reactIntlayer.useDictionary(components_LocaleSwitcherDropDown_localeSwitcher_content);
29
+ const inputRef = require$$0.useRef(null);
30
+ const multilingualAvailableLocales = require$$0.useMemo(
31
+ () => localeList.map((localeEl) => {
32
+ const englishName = core.getLocaleName(localeEl, client.Locales.ENGLISH);
33
+ const currentLocaleName = core.getLocaleName(localeEl, locale);
34
+ const ownLocaleName = core.getLocaleName(localeEl);
35
+ return {
36
+ locale: localeEl,
37
+ englishName,
38
+ currentLocaleName,
39
+ ownLocaleName
40
+ };
41
+ }),
42
+ [localeList, locale]
43
+ );
44
+ const [results, setResults] = require$$0.useState(
45
+ multilingualAvailableLocales
46
+ );
47
+ const fuse = require$$0.useMemo(() => {
48
+ const fuseOptions = {
49
+ keys: [
50
+ { name: "ownLocaleName", weight: 0.4 },
51
+ { name: "englishName", weight: 0.2 },
52
+ { name: "currentLocaleName", weight: 0.2 },
53
+ { name: "locale", weight: 0.2 }
54
+ ],
55
+ threshold: 0.02
56
+ // Defines how fuzzy the matching should be (lower is more strict)
57
+ };
58
+ return new Fuse(multilingualAvailableLocales, fuseOptions);
59
+ }, [multilingualAvailableLocales]);
60
+ const handleSearch = require$$0.useCallback(
61
+ (searchQuery) => {
62
+ if (searchQuery) {
63
+ const searchResults = fuse.search(searchQuery).map((result) => result.item);
64
+ setResults(searchResults);
65
+ } else {
66
+ setResults(multilingualAvailableLocales);
67
+ }
68
+ },
69
+ [fuse, multilingualAvailableLocales]
70
+ );
21
71
  if (locale) {
22
72
  localeName = fullLocaleName ? core.getLocaleName(locale) : locale.toUpperCase();
23
73
  }
@@ -25,45 +75,79 @@ const LocaleSwitcher = ({
25
75
  "div",
26
76
  {
27
77
  className: "border-text text-text dark:border-text-dark dark:text-text-dark rounded-xl border transition-colors",
28
- "aria-label": "Language switcher",
78
+ "aria-label": localeSwitcherLabel,
29
79
  children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(components_DropDown_index.DropDown, { identifier: DROPDOWN_IDENTIFIER, children: [
80
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(components_DropDown_index.DropDown.Trigger, { identifier: DROPDOWN_IDENTIFIER, children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs("div", { className: "flex w-full items-center justify-between", children: [
81
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { className: "text-nowrap px-2", children: localeName }),
82
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(lucideReact.MoveVertical, { className: "w-5 self-center" })
83
+ ] }) }),
30
84
  /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
31
- components_DropDown_index.DropDown.Trigger,
85
+ components_DropDown_index.DropDown.Panel,
32
86
  {
33
87
  identifier: DROPDOWN_IDENTIFIER,
34
- "aria-label": "Language selector",
35
- children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs("div", { className: "flex w-full items-center justify-between", children: [
36
- /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { className: "text-nowrap px-2", children: localeName }),
37
- /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(lucideReact.MoveVertical, { className: "w-5 self-center" })
38
- ] })
39
- }
40
- ),
41
- /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(components_DropDown_index.DropDown.Panel, { identifier: DROPDOWN_IDENTIFIER, isOverable: true, isFocusable: true, children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
42
- components_Container_index.Container,
43
- {
44
- className: "min-w-28 p-1",
45
- separator: "y",
46
- role: "listbox",
47
- "aria-label": "Language list",
48
- children: localeList.map((lang) => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { className: "p-0.5", children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
49
- components_Button_Button.Button,
88
+ isOverable: true,
89
+ isFocusable: true,
90
+ ...panelProps,
91
+ children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(
92
+ components_Container_index.Container,
50
93
  {
51
- onClick: () => setLocale(lang),
52
- label: `${switchTo} ${lang}`,
53
- disabled: !(availableLocales ?? localeList).includes(lang),
54
- role: "option",
55
- isActive: locale === lang,
56
- className: "text-nowrap",
57
- variant: "hoverable",
58
- color: "text",
59
- isFullWidth: true,
60
- textAlign: "left",
61
- lang,
62
- children: core.getLocaleName(lang)
94
+ className: "max-h-[80vh] min-w-28",
95
+ separator: "y",
96
+ role: "listbox",
97
+ transparency: "sm",
98
+ "aria-label": languageListLabel,
99
+ children: [
100
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { className: "p-3", children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
101
+ components_Input_Input.Input,
102
+ {
103
+ type: "search",
104
+ placeholder: searchInput.placeholder,
105
+ onChange: (e) => handleSearch(e.target.value),
106
+ ref: inputRef
107
+ }
108
+ ) }),
109
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("ol", { className: "divide-text/20 dark:divide-text-dark/20 divide-y divide-dashed overflow-y-auto p-1", children: results.map(
110
+ ({ locale: localeItem, currentLocaleName, ownLocaleName }) => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("li", { className: "px-1.5 py-1", children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
111
+ components_Button_Button.Button,
112
+ {
113
+ onClick: () => setLocale(localeItem),
114
+ label: `${switchTo} ${currentLocaleName}`,
115
+ disabled: !(availableLocales ?? localeList).includes(localeItem),
116
+ role: "option",
117
+ isActive: locale === localeItem,
118
+ variant: "hoverable",
119
+ color: "text",
120
+ isFullWidth: true,
121
+ textAlign: "left",
122
+ children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(
123
+ "div",
124
+ {
125
+ className: "flex flex-row items-center justify-between gap-3 px-2 py-1",
126
+ children: [
127
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs("div", { className: "flex flex-col text-nowrap", children: [
128
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
129
+ "span",
130
+ {
131
+ dir: core.getHTMLTextDir(localeItem),
132
+ lang: localeItem,
133
+ children: ownLocaleName
134
+ }
135
+ ),
136
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("span", { className: "text-neutral dark:text-neutral-dark text-xs", children: currentLocaleName })
137
+ ] }),
138
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("span", { className: "text-neutral dark:text-neutral-dark text-sm", children: localeItem.toUpperCase() })
139
+ ]
140
+ },
141
+ locale
142
+ )
143
+ }
144
+ ) }, localeItem)
145
+ ) })
146
+ ]
63
147
  }
64
- ) }, lang))
148
+ )
65
149
  }
66
- ) })
150
+ )
67
151
  ] })
68
152
  }
69
153
  );
@@ -1 +1 @@
1
- {"version":3,"file":"LocaleSwitcher.cjs","sources":["../../../src/components/LocaleSwitcherDropDown/LocaleSwitcher.tsx"],"sourcesContent":["import type { Locales } from '@intlayer/config/client';\nimport { getLocaleName } from '@intlayer/core';\nimport { MoveVertical } from 'lucide-react';\nimport type { FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown } from '../DropDown';\nimport localeSwitcherContent from './localeSwitcher.content';\n\nexport type LocaleSwitcherProps = {\n locale?: Locales;\n localeList: Locales[];\n availableLocales?: Locales[];\n fullLocaleName?: boolean;\n setLocale: (locale: Locales) => void;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher';\n\nexport const LocaleSwitcher: FC<LocaleSwitcherProps> = ({\n locale,\n localeList,\n availableLocales,\n fullLocaleName = true,\n setLocale,\n}) => {\n let localeName = 'Select a locale';\n const { switchTo } = useDictionary(localeSwitcherContent);\n\n if (locale) {\n localeName = fullLocaleName ? getLocaleName(locale) : locale.toUpperCase();\n }\n\n return (\n <div\n className=\"border-text text-text dark:border-text-dark dark:text-text-dark rounded-xl border transition-colors\"\n aria-label=\"Language switcher\"\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger\n identifier={DROPDOWN_IDENTIFIER}\n aria-label=\"Language selector\"\n >\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"text-nowrap px-2\">{localeName}</div>\n <MoveVertical className=\"w-5 self-center\" />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel identifier={DROPDOWN_IDENTIFIER} isOverable isFocusable>\n <Container\n className=\"min-w-28 p-1\"\n separator=\"y\"\n role=\"listbox\"\n aria-label=\"Language list\"\n >\n {localeList.map((lang) => (\n <div key={lang} className=\"p-0.5\">\n <Button\n onClick={() => setLocale(lang)}\n label={`${switchTo} ${lang}`}\n disabled={!(availableLocales ?? localeList).includes(lang)}\n role=\"option\"\n isActive={locale === lang}\n className=\"text-nowrap\"\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n lang={lang}\n >\n {getLocaleName(lang)}\n </Button>\n </div>\n ))}\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":["useDictionary","localeSwitcherContent","getLocaleName","jsx","jsxs","DropDown","MoveVertical","Container","Button"],"mappings":";;;;;;;;;;AAmBA,MAAM,sBAAsB;AAErB,MAAM,iBAA0C,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AACF,MAAM;AACJ,MAAI,aAAa;AACjB,QAAM,EAAE,SAAA,IAAaA,cAAA,cAAcC,wDAAqB;AAExD,MAAI,QAAQ;AACV,iBAAa,iBAAiBC,KAAA,cAAc,MAAM,IAAI,OAAO,YAAY;AAAA,EAAA;AAIzE,SAAAC,2BAAA,kBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,cAAW;AAAA,MAEX,UAAAC,2BAAA,kBAAA,KAACC,0BAAS,UAAA,EAAA,YAAY,qBACpB,UAAA;AAAA,QAAAF,2BAAA,kBAAA;AAAA,UAACE,0BAAAA,SAAS;AAAA,UAAT;AAAA,YACC,YAAY;AAAA,YACZ,cAAW;AAAA,YAEX,UAAAD,2BAAA,kBAAA,KAAC,OAAI,EAAA,WAAU,4CACb,UAAA;AAAA,cAACD,2BAAA,kBAAA,IAAA,OAAA,EAAI,WAAU,oBAAoB,UAAW,YAAA;AAAA,cAC9CA,2BAAAA,kBAAAA,IAACG,YAAa,cAAA,EAAA,WAAU,kBAAkB,CAAA;AAAA,YAAA,EAC5C,CAAA;AAAA,UAAA;AAAA,QACF;AAAA,QAEAH,2BAAAA,kBAAAA,IAACE,mCAAS,OAAT,EAAe,YAAY,qBAAqB,YAAU,MAAC,aAAW,MACrE,UAAAF,2BAAA,kBAAA;AAAA,UAACI,2BAAA;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,WAAU;AAAA,YACV,MAAK;AAAA,YACL,cAAW;AAAA,YAEV,qBAAW,IAAI,CAAC,SACdJ,2BAAAA,kBAAAA,IAAA,OAAA,EAAe,WAAU,SACxB,UAAAA,2BAAA,kBAAA;AAAA,cAACK,yBAAA;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM,UAAU,IAAI;AAAA,gBAC7B,OAAO,GAAG,QAAQ,IAAI,IAAI;AAAA,gBAC1B,UAAU,EAAE,oBAAoB,YAAY,SAAS,IAAI;AAAA,gBACzD,MAAK;AAAA,gBACL,UAAU,WAAW;AAAA,gBACrB,WAAU;AAAA,gBACV,SAAQ;AAAA,gBACR,OAAM;AAAA,gBACN,aAAW;AAAA,gBACX,WAAU;AAAA,gBACV;AAAA,gBAEC,6BAAc,IAAI;AAAA,cAAA;AAAA,YACrB,EAAA,GAfQ,IAgBV,CACD;AAAA,UAAA;AAAA,QAAA,EAEL,CAAA;AAAA,MAAA,EACF,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;;"}
1
+ {"version":3,"file":"LocaleSwitcher.cjs","sources":["../../../src/components/LocaleSwitcherDropDown/LocaleSwitcher.tsx"],"sourcesContent":["'use client';\n\nimport { Locales } from '@intlayer/config/client';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport Fuse, { IFuseOptions } from 'fuse.js';\nimport { MoveVertical } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState, type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport localeSwitcherContent from './localeSwitcher.content';\n\nexport type LocaleSwitcherProps = {\n locale?: Locales;\n localeList: Locales[];\n availableLocales?: Locales[];\n fullLocaleName?: boolean;\n setLocale: (locale: Locales) => void;\n panelProps?: Omit<PanelProps, 'identifier'>;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher';\n\ntype MultilingualAvailableLocales = {\n locale: Locales;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcher: FC<LocaleSwitcherProps> = ({\n locale,\n localeList,\n availableLocales,\n fullLocaleName = true,\n setLocale,\n panelProps,\n}) => {\n let localeName = 'Select a locale';\n const { switchTo, searchInput, localeSwitcherLabel, languageListLabel } =\n useDictionary(localeSwitcherContent);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n localeList.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [localeList, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n if (locale) {\n localeName = fullLocaleName ? getLocaleName(locale) : locale.toUpperCase();\n }\n\n return (\n <div\n className=\"border-text text-text dark:border-text-dark dark:text-text-dark rounded-xl border transition-colors\"\n aria-label={localeSwitcherLabel}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"text-nowrap px-2\">{localeName}</div>\n <MoveVertical className=\"w-5 self-center\" />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"sm\"\n aria-label={languageListLabel}\n >\n <div className=\"p-3\">\n <Input\n type=\"search\"\n placeholder={searchInput.placeholder}\n onChange={(e) => handleSearch(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-text/20 dark:divide-text-dark/20 divide-y divide-dashed overflow-y-auto p-1\">\n {results.map(\n ({ locale: localeItem, currentLocaleName, ownLocaleName }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => setLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? localeList).includes(localeItem)\n }\n role=\"option\"\n isActive={locale === localeItem}\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n >\n <div\n className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\"\n key={locale}\n >\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral dark:text-neutral-dark text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral dark:text-neutral-dark text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":["useDictionary","localeSwitcherContent","useRef","useMemo","getLocaleName","Locales","useState","useCallback","jsx","jsxs","DropDown","MoveVertical","Container","Input","Button","getHTMLTextDir"],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import { Locales } from '@intlayer/config/client';
2
2
  import { FC } from 'react';
3
+ import { PanelProps } from '../DropDown';
3
4
  export type LocaleSwitcherProps = {
4
5
  locale?: Locales;
5
6
  localeList: Locales[];
6
7
  availableLocales?: Locales[];
7
8
  fullLocaleName?: boolean;
8
9
  setLocale: (locale: Locales) => void;
10
+ panelProps?: Omit<PanelProps, 'identifier'>;
9
11
  };
10
12
  export declare const LocaleSwitcher: FC<LocaleSwitcherProps>;
11
13
  //# sourceMappingURL=LocaleSwitcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocaleSwitcher.d.ts","sourceRoot":"","sources":["../../../src/components/LocaleSwitcherDropDown/LocaleSwitcher.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAQhC,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC,CAAC;AAIF,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CA6DlD,CAAC"}
1
+ {"version":3,"file":"LocaleSwitcher.d.ts","sourceRoot":"","sources":["../../../src/components/LocaleSwitcherDropDown/LocaleSwitcher.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIlD,OAAO,EAA0C,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAIxD,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;CAC7C,CAAC;AAWF,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAmJlD,CAAC"}
@@ -1,10 +1,17 @@
1
+ "use client";
1
2
  import { j as jsxRuntimeExports } from "../../jsx-runtime-DaNGiM0W.js";
2
- import { getLocaleName } from "@intlayer/core";
3
+ import { Locales } from "@intlayer/config/client";
4
+ import { getLocaleName, getHTMLTextDir } from "@intlayer/core";
5
+ import Fuse from "fuse.js";
3
6
  import { MoveVertical } from "lucide-react";
7
+ import { useRef, useMemo, useState, useCallback } from "react";
4
8
  import { useDictionary } from "react-intlayer";
5
9
  import { Button } from "../Button/Button.mjs";
6
10
  import { Container } from "../Container/index.mjs";
7
11
  import { DropDown } from "../DropDown/index.mjs";
12
+ import { Input } from "../Input/Input.mjs";
13
+ import "../Input/InputPassword.mjs";
14
+ import "../Input/Checkbox.mjs";
8
15
  import localeSwitcherContent from "./localeSwitcher.content.mjs";
9
16
  const DROPDOWN_IDENTIFIER = "locale-switcher";
10
17
  const LocaleSwitcher = ({
@@ -12,10 +19,53 @@ const LocaleSwitcher = ({
12
19
  localeList,
13
20
  availableLocales,
14
21
  fullLocaleName = true,
15
- setLocale
22
+ setLocale,
23
+ panelProps
16
24
  }) => {
17
25
  let localeName = "Select a locale";
18
- const { switchTo } = useDictionary(localeSwitcherContent);
26
+ const { switchTo, searchInput, localeSwitcherLabel, languageListLabel } = useDictionary(localeSwitcherContent);
27
+ const inputRef = useRef(null);
28
+ const multilingualAvailableLocales = useMemo(
29
+ () => localeList.map((localeEl) => {
30
+ const englishName = getLocaleName(localeEl, Locales.ENGLISH);
31
+ const currentLocaleName = getLocaleName(localeEl, locale);
32
+ const ownLocaleName = getLocaleName(localeEl);
33
+ return {
34
+ locale: localeEl,
35
+ englishName,
36
+ currentLocaleName,
37
+ ownLocaleName
38
+ };
39
+ }),
40
+ [localeList, locale]
41
+ );
42
+ const [results, setResults] = useState(
43
+ multilingualAvailableLocales
44
+ );
45
+ const fuse = useMemo(() => {
46
+ const fuseOptions = {
47
+ keys: [
48
+ { name: "ownLocaleName", weight: 0.4 },
49
+ { name: "englishName", weight: 0.2 },
50
+ { name: "currentLocaleName", weight: 0.2 },
51
+ { name: "locale", weight: 0.2 }
52
+ ],
53
+ threshold: 0.02
54
+ // Defines how fuzzy the matching should be (lower is more strict)
55
+ };
56
+ return new Fuse(multilingualAvailableLocales, fuseOptions);
57
+ }, [multilingualAvailableLocales]);
58
+ const handleSearch = useCallback(
59
+ (searchQuery) => {
60
+ if (searchQuery) {
61
+ const searchResults = fuse.search(searchQuery).map((result) => result.item);
62
+ setResults(searchResults);
63
+ } else {
64
+ setResults(multilingualAvailableLocales);
65
+ }
66
+ },
67
+ [fuse, multilingualAvailableLocales]
68
+ );
19
69
  if (locale) {
20
70
  localeName = fullLocaleName ? getLocaleName(locale) : locale.toUpperCase();
21
71
  }
@@ -23,45 +73,79 @@ const LocaleSwitcher = ({
23
73
  "div",
24
74
  {
25
75
  className: "border-text text-text dark:border-text-dark dark:text-text-dark rounded-xl border transition-colors",
26
- "aria-label": "Language switcher",
76
+ "aria-label": localeSwitcherLabel,
27
77
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DropDown, { identifier: DROPDOWN_IDENTIFIER, children: [
78
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DropDown.Trigger, { identifier: DROPDOWN_IDENTIFIER, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex w-full items-center justify-between", children: [
79
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-nowrap px-2", children: localeName }),
80
+ /* @__PURE__ */ jsxRuntimeExports.jsx(MoveVertical, { className: "w-5 self-center" })
81
+ ] }) }),
28
82
  /* @__PURE__ */ jsxRuntimeExports.jsx(
29
- DropDown.Trigger,
83
+ DropDown.Panel,
30
84
  {
31
85
  identifier: DROPDOWN_IDENTIFIER,
32
- "aria-label": "Language selector",
33
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex w-full items-center justify-between", children: [
34
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-nowrap px-2", children: localeName }),
35
- /* @__PURE__ */ jsxRuntimeExports.jsx(MoveVertical, { className: "w-5 self-center" })
36
- ] })
37
- }
38
- ),
39
- /* @__PURE__ */ jsxRuntimeExports.jsx(DropDown.Panel, { identifier: DROPDOWN_IDENTIFIER, isOverable: true, isFocusable: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
40
- Container,
41
- {
42
- className: "min-w-28 p-1",
43
- separator: "y",
44
- role: "listbox",
45
- "aria-label": "Language list",
46
- children: localeList.map((lang) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-0.5", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
47
- Button,
86
+ isOverable: true,
87
+ isFocusable: true,
88
+ ...panelProps,
89
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
90
+ Container,
48
91
  {
49
- onClick: () => setLocale(lang),
50
- label: `${switchTo} ${lang}`,
51
- disabled: !(availableLocales ?? localeList).includes(lang),
52
- role: "option",
53
- isActive: locale === lang,
54
- className: "text-nowrap",
55
- variant: "hoverable",
56
- color: "text",
57
- isFullWidth: true,
58
- textAlign: "left",
59
- lang,
60
- children: getLocaleName(lang)
92
+ className: "max-h-[80vh] min-w-28",
93
+ separator: "y",
94
+ role: "listbox",
95
+ transparency: "sm",
96
+ "aria-label": languageListLabel,
97
+ children: [
98
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
99
+ Input,
100
+ {
101
+ type: "search",
102
+ placeholder: searchInput.placeholder,
103
+ onChange: (e) => handleSearch(e.target.value),
104
+ ref: inputRef
105
+ }
106
+ ) }),
107
+ /* @__PURE__ */ jsxRuntimeExports.jsx("ol", { className: "divide-text/20 dark:divide-text-dark/20 divide-y divide-dashed overflow-y-auto p-1", children: results.map(
108
+ ({ locale: localeItem, currentLocaleName, ownLocaleName }) => /* @__PURE__ */ jsxRuntimeExports.jsx("li", { className: "px-1.5 py-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
109
+ Button,
110
+ {
111
+ onClick: () => setLocale(localeItem),
112
+ label: `${switchTo} ${currentLocaleName}`,
113
+ disabled: !(availableLocales ?? localeList).includes(localeItem),
114
+ role: "option",
115
+ isActive: locale === localeItem,
116
+ variant: "hoverable",
117
+ color: "text",
118
+ isFullWidth: true,
119
+ textAlign: "left",
120
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
121
+ "div",
122
+ {
123
+ className: "flex flex-row items-center justify-between gap-3 px-2 py-1",
124
+ children: [
125
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col text-nowrap", children: [
126
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
127
+ "span",
128
+ {
129
+ dir: getHTMLTextDir(localeItem),
130
+ lang: localeItem,
131
+ children: ownLocaleName
132
+ }
133
+ ),
134
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-neutral dark:text-neutral-dark text-xs", children: currentLocaleName })
135
+ ] }),
136
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-neutral dark:text-neutral-dark text-sm", children: localeItem.toUpperCase() })
137
+ ]
138
+ },
139
+ locale
140
+ )
141
+ }
142
+ ) }, localeItem)
143
+ ) })
144
+ ]
61
145
  }
62
- ) }, lang))
146
+ )
63
147
  }
64
- ) })
148
+ )
65
149
  ] })
66
150
  }
67
151
  );
@@ -1 +1 @@
1
- {"version":3,"file":"LocaleSwitcher.mjs","sources":["../../../src/components/LocaleSwitcherDropDown/LocaleSwitcher.tsx"],"sourcesContent":["import type { Locales } from '@intlayer/config/client';\nimport { getLocaleName } from '@intlayer/core';\nimport { MoveVertical } from 'lucide-react';\nimport type { FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown } from '../DropDown';\nimport localeSwitcherContent from './localeSwitcher.content';\n\nexport type LocaleSwitcherProps = {\n locale?: Locales;\n localeList: Locales[];\n availableLocales?: Locales[];\n fullLocaleName?: boolean;\n setLocale: (locale: Locales) => void;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher';\n\nexport const LocaleSwitcher: FC<LocaleSwitcherProps> = ({\n locale,\n localeList,\n availableLocales,\n fullLocaleName = true,\n setLocale,\n}) => {\n let localeName = 'Select a locale';\n const { switchTo } = useDictionary(localeSwitcherContent);\n\n if (locale) {\n localeName = fullLocaleName ? getLocaleName(locale) : locale.toUpperCase();\n }\n\n return (\n <div\n className=\"border-text text-text dark:border-text-dark dark:text-text-dark rounded-xl border transition-colors\"\n aria-label=\"Language switcher\"\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger\n identifier={DROPDOWN_IDENTIFIER}\n aria-label=\"Language selector\"\n >\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"text-nowrap px-2\">{localeName}</div>\n <MoveVertical className=\"w-5 self-center\" />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel identifier={DROPDOWN_IDENTIFIER} isOverable isFocusable>\n <Container\n className=\"min-w-28 p-1\"\n separator=\"y\"\n role=\"listbox\"\n aria-label=\"Language list\"\n >\n {localeList.map((lang) => (\n <div key={lang} className=\"p-0.5\">\n <Button\n onClick={() => setLocale(lang)}\n label={`${switchTo} ${lang}`}\n disabled={!(availableLocales ?? localeList).includes(lang)}\n role=\"option\"\n isActive={locale === lang}\n className=\"text-nowrap\"\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n lang={lang}\n >\n {getLocaleName(lang)}\n </Button>\n </div>\n ))}\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":["jsx","jsxs"],"mappings":";;;;;;;;AAmBA,MAAM,sBAAsB;AAErB,MAAM,iBAA0C,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AACF,MAAM;AACJ,MAAI,aAAa;AACjB,QAAM,EAAE,SAAA,IAAa,cAAc,qBAAqB;AAExD,MAAI,QAAQ;AACV,iBAAa,iBAAiB,cAAc,MAAM,IAAI,OAAO,YAAY;AAAA,EAAA;AAIzE,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,cAAW;AAAA,MAEX,UAAAC,kCAAA,KAAC,UAAS,EAAA,YAAY,qBACpB,UAAA;AAAA,QAAAD,kCAAA;AAAA,UAAC,SAAS;AAAA,UAAT;AAAA,YACC,YAAY;AAAA,YACZ,cAAW;AAAA,YAEX,UAAAC,kCAAA,KAAC,OAAI,EAAA,WAAU,4CACb,UAAA;AAAA,cAACD,kCAAA,IAAA,OAAA,EAAI,WAAU,oBAAoB,UAAW,YAAA;AAAA,cAC9CA,kCAAAA,IAAC,cAAa,EAAA,WAAU,kBAAkB,CAAA;AAAA,YAAA,EAC5C,CAAA;AAAA,UAAA;AAAA,QACF;AAAA,QAEAA,kCAAAA,IAAC,SAAS,OAAT,EAAe,YAAY,qBAAqB,YAAU,MAAC,aAAW,MACrE,UAAAA,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,WAAU;AAAA,YACV,MAAK;AAAA,YACL,cAAW;AAAA,YAEV,qBAAW,IAAI,CAAC,SACdA,kCAAAA,IAAA,OAAA,EAAe,WAAU,SACxB,UAAAA,kCAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM,UAAU,IAAI;AAAA,gBAC7B,OAAO,GAAG,QAAQ,IAAI,IAAI;AAAA,gBAC1B,UAAU,EAAE,oBAAoB,YAAY,SAAS,IAAI;AAAA,gBACzD,MAAK;AAAA,gBACL,UAAU,WAAW;AAAA,gBACrB,WAAU;AAAA,gBACV,SAAQ;AAAA,gBACR,OAAM;AAAA,gBACN,aAAW;AAAA,gBACX,WAAU;AAAA,gBACV;AAAA,gBAEC,wBAAc,IAAI;AAAA,cAAA;AAAA,YACrB,EAAA,GAfQ,IAgBV,CACD;AAAA,UAAA;AAAA,QAAA,EAEL,CAAA;AAAA,MAAA,EACF,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"LocaleSwitcher.mjs","sources":["../../../src/components/LocaleSwitcherDropDown/LocaleSwitcher.tsx"],"sourcesContent":["'use client';\n\nimport { Locales } from '@intlayer/config/client';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport Fuse, { IFuseOptions } from 'fuse.js';\nimport { MoveVertical } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState, type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport localeSwitcherContent from './localeSwitcher.content';\n\nexport type LocaleSwitcherProps = {\n locale?: Locales;\n localeList: Locales[];\n availableLocales?: Locales[];\n fullLocaleName?: boolean;\n setLocale: (locale: Locales) => void;\n panelProps?: Omit<PanelProps, 'identifier'>;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher';\n\ntype MultilingualAvailableLocales = {\n locale: Locales;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcher: FC<LocaleSwitcherProps> = ({\n locale,\n localeList,\n availableLocales,\n fullLocaleName = true,\n setLocale,\n panelProps,\n}) => {\n let localeName = 'Select a locale';\n const { switchTo, searchInput, localeSwitcherLabel, languageListLabel } =\n useDictionary(localeSwitcherContent);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n localeList.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [localeList, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n if (locale) {\n localeName = fullLocaleName ? getLocaleName(locale) : locale.toUpperCase();\n }\n\n return (\n <div\n className=\"border-text text-text dark:border-text-dark dark:text-text-dark rounded-xl border transition-colors\"\n aria-label={localeSwitcherLabel}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"text-nowrap px-2\">{localeName}</div>\n <MoveVertical className=\"w-5 self-center\" />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"sm\"\n aria-label={languageListLabel}\n >\n <div className=\"p-3\">\n <Input\n type=\"search\"\n placeholder={searchInput.placeholder}\n onChange={(e) => handleSearch(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-text/20 dark:divide-text-dark/20 divide-y divide-dashed overflow-y-auto p-1\">\n {results.map(\n ({ locale: localeItem, currentLocaleName, ownLocaleName }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => setLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? localeList).includes(localeItem)\n }\n role=\"option\"\n isActive={locale === localeItem}\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n >\n <div\n className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\"\n key={locale}\n >\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral dark:text-neutral-dark text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral dark:text-neutral-dark text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":["jsx","jsxs"],"mappings":"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"}
@@ -3,6 +3,36 @@ const intlayer = require("intlayer");
3
3
  const localeSwitcherContent = {
4
4
  key: "locale-switcher",
5
5
  content: {
6
+ localeSwitcherLabel: intlayer.t({
7
+ en: "Language switcher",
8
+ "en-GB": "Language switcher",
9
+ fr: "Changer de langue",
10
+ es: "Cambiar idioma",
11
+ de: "Sprachwechsler",
12
+ ja: "言語スイッチャー",
13
+ ko: "언어 스위치",
14
+ zh: "语言切换器",
15
+ it: "Cambia lingua",
16
+ pt: "Mudar idioma",
17
+ hi: "भाषा स्विचर",
18
+ ar: "مبدل اللغة",
19
+ ru: "Переключатель языка"
20
+ }),
21
+ languageListLabel: intlayer.t({
22
+ en: "Language list",
23
+ "en-GB": "Language list",
24
+ fr: "Liste des langues",
25
+ es: "Lista de idiomas",
26
+ de: "Sprachliste",
27
+ ja: "言語リスト",
28
+ ko: "언어 목록",
29
+ zh: "语言列表",
30
+ it: "Elenco lingue",
31
+ pt: "Lista de idiomas",
32
+ hi: "भाषा सूची",
33
+ ar: "قائمة اللغات",
34
+ ru: "Список языков"
35
+ }),
6
36
  switchTo: intlayer.t({
7
37
  en: "Switch to",
8
38
  fr: "Passer à",
@@ -17,7 +47,39 @@ const localeSwitcherContent = {
17
47
  hi: "स्विच करें",
18
48
  ar: "التبديل إلى",
19
49
  ru: "Переключиться на"
20
- })
50
+ }),
51
+ searchInput: {
52
+ text: intlayer.t({
53
+ en: "Search Locale",
54
+ "en-GB": "Search Locale",
55
+ fr: "Rechercher la locale",
56
+ es: "Buscar idioma",
57
+ de: "Sprache durchsuchen",
58
+ ja: "ロケールを検索",
59
+ ko: "언어 검색",
60
+ zh: "搜索语言",
61
+ it: "Cerca lingua",
62
+ pt: "Pesquisar idioma",
63
+ hi: "भाषा खोजें",
64
+ ar: "بحث اللغة",
65
+ ru: "Поиск языка"
66
+ }),
67
+ placeholder: intlayer.t({
68
+ en: "Search a locale",
69
+ "en-GB": "Search a locale",
70
+ fr: "Rechercher une locale",
71
+ es: "Buscar un idioma",
72
+ de: "Sprache suchen",
73
+ ja: "ロケールを検索",
74
+ ko: "언어 검색",
75
+ zh: "搜索语言",
76
+ it: "Cerca una lingua",
77
+ pt: "Pesquisar um idioma",
78
+ hi: "भाषा खोजें",
79
+ ar: "بحث اللغة",
80
+ ru: "Поиск языка"
81
+ })
82
+ }
21
83
  }
22
84
  };
23
85
  module.exports = localeSwitcherContent;
@@ -1 +1 @@
1
- {"version":3,"file":"localeSwitcher.content.cjs","sources":["../../../src/components/LocaleSwitcherDropDown/localeSwitcher.content.ts"],"sourcesContent":["import { t, type DeclarationContent } from 'intlayer';\n\nconst localeSwitcherContent = {\n key: 'locale-switcher',\n content: {\n switchTo: t({\n en: 'Switch to',\n fr: 'Passer à',\n es: 'Cambiar a',\n 'en-GB': 'Switch to',\n de: 'Wechseln Sie zu',\n ja: 'に切り替える',\n ko: '전환',\n zh: '切换到',\n it: 'Passa a',\n pt: 'Mudar para',\n hi: 'स्विच करें',\n ar: 'التبديل إلى',\n ru: 'Переключиться на',\n }),\n },\n} satisfies DeclarationContent;\n\nexport default localeSwitcherContent;\n"],"names":["t"],"mappings":";;AAEA,MAAM,wBAAwB;AAAA,EAC5B,KAAK;AAAA,EACL,SAAS;AAAA,IACP,UAAUA,SAAAA,EAAE;AAAA,MACV,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACL,CAAA;AAAA,EAAA;AAEL;;"}
1
+ {"version":3,"file":"localeSwitcher.content.cjs","sources":["../../../src/components/LocaleSwitcherDropDown/localeSwitcher.content.ts"],"sourcesContent":["import { t, type DeclarationContent } from 'intlayer';\n\nconst localeSwitcherContent = {\n key: 'locale-switcher',\n content: {\n localeSwitcherLabel: t({\n en: 'Language switcher',\n 'en-GB': 'Language switcher',\n fr: 'Changer de langue',\n es: 'Cambiar idioma',\n de: 'Sprachwechsler',\n ja: '言語スイッチャー',\n ko: '언어 스위치',\n zh: '语言切换器',\n it: 'Cambia lingua',\n pt: 'Mudar idioma',\n hi: 'भाषा स्विचर',\n ar: 'مبدل اللغة',\n ru: 'Переключатель языка',\n }),\n languageListLabel: t({\n en: 'Language list',\n 'en-GB': 'Language list',\n fr: 'Liste des langues',\n es: 'Lista de idiomas',\n de: 'Sprachliste',\n ja: '言語リスト',\n ko: '언어 목록',\n zh: '语言列表',\n it: 'Elenco lingue',\n pt: 'Lista de idiomas',\n hi: 'भाषा सूची',\n ar: 'قائمة اللغات',\n ru: 'Список языков',\n }),\n switchTo: t({\n en: 'Switch to',\n fr: 'Passer à',\n es: 'Cambiar a',\n 'en-GB': 'Switch to',\n de: 'Wechseln Sie zu',\n ja: 'に切り替える',\n ko: '전환',\n zh: '切换到',\n it: 'Passa a',\n pt: 'Mudar para',\n hi: 'स्विच करें',\n ar: 'التبديل إلى',\n ru: 'Переключиться на',\n }),\n searchInput: {\n text: t({\n en: 'Search Locale',\n 'en-GB': 'Search Locale',\n fr: 'Rechercher la locale',\n es: 'Buscar idioma',\n de: 'Sprache durchsuchen',\n ja: 'ロケールを検索',\n ko: '언어 검색',\n zh: '搜索语言',\n it: 'Cerca lingua',\n pt: 'Pesquisar idioma',\n hi: 'भाषा खोजें',\n ar: 'بحث اللغة',\n ru: 'Поиск языка',\n }),\n placeholder: t({\n en: 'Search a locale',\n 'en-GB': 'Search a locale',\n fr: 'Rechercher une locale',\n es: 'Buscar un idioma',\n de: 'Sprache suchen',\n ja: 'ロケールを検索',\n ko: '언어 검색',\n zh: '搜索语言',\n it: 'Cerca una lingua',\n pt: 'Pesquisar um idioma',\n hi: 'भाषा खोजें',\n ar: 'بحث اللغة',\n ru: 'Поиск языка',\n }),\n },\n },\n} satisfies DeclarationContent;\n\nexport default localeSwitcherContent;\n"],"names":["t"],"mappings":";;AAEA,MAAM,wBAAwB;AAAA,EAC5B,KAAK;AAAA,EACL,SAAS;AAAA,IACP,qBAAqBA,SAAAA,EAAE;AAAA,MACrB,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,mBAAmBA,SAAAA,EAAE;AAAA,MACnB,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,UAAUA,SAAAA,EAAE;AAAA,MACV,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,aAAa;AAAA,MACX,MAAMA,SAAAA,EAAE;AAAA,QACN,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA,CACL;AAAA,MACD,aAAaA,SAAAA,EAAE;AAAA,QACb,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACL,CAAA;AAAA,IAAA;AAAA,EACH;AAEJ;;"}
@@ -1,7 +1,13 @@
1
1
  declare const localeSwitcherContent: {
2
2
  key: string;
3
3
  content: {
4
+ localeSwitcherLabel: import('@intlayer/core').TranslationContent<string>;
5
+ languageListLabel: import('@intlayer/core').TranslationContent<string>;
4
6
  switchTo: import('@intlayer/core').TranslationContent<string>;
7
+ searchInput: {
8
+ text: import('@intlayer/core').TranslationContent<string>;
9
+ placeholder: import('@intlayer/core').TranslationContent<string>;
10
+ };
5
11
  };
6
12
  };
7
13
  export default localeSwitcherContent;
@@ -1 +1 @@
1
- {"version":3,"file":"localeSwitcher.content.d.ts","sourceRoot":"","sources":["../../../src/components/LocaleSwitcherDropDown/localeSwitcher.content.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,qBAAqB;;;;;CAmBG,CAAC;AAE/B,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"localeSwitcher.content.d.ts","sourceRoot":"","sources":["../../../src/components/LocaleSwitcherDropDown/localeSwitcher.content.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,qBAAqB;;;;;;;;;;;CAiFG,CAAC;AAE/B,eAAe,qBAAqB,CAAC"}