@krosoft/react 0.0.391 → 0.0.392

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 (189) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +1 -2
  2. package/dist/components/core/cards/DashboardCard.js +7 -8
  3. package/dist/components/core/cards/KpiCard.js +13 -14
  4. package/dist/components/core/cards/KpiCards.js +1 -2
  5. package/dist/components/core/cards/MetricCard.js +1 -2
  6. package/dist/components/core/cards/SkeletonCard.js +1 -2
  7. package/dist/components/core/cards/SkeletonCards.js +1 -2
  8. package/dist/components/core/changelog/AppChangelog.js +13 -14
  9. package/dist/components/core/changelog/AppChangelogEntry.js +19 -20
  10. package/dist/components/core/changelog/AppChangelogNav.js +1 -2
  11. package/dist/components/core/changelog/AppChangelogTagFilter.js +11 -12
  12. package/dist/components/core/charts/BarChartHorizontal.js +6 -7
  13. package/dist/components/core/charts/BarChartVertical.js +6 -7
  14. package/dist/components/core/charts/ChartCard.js +7 -8
  15. package/dist/components/core/charts/CircularGauge.js +1 -2
  16. package/dist/components/core/charts/LineChart.js +6 -7
  17. package/dist/components/core/charts/PieChart.js +12 -13
  18. package/dist/components/core/charts/chartColors.js +1 -2
  19. package/dist/components/core/charts/chartTooltip.helper.js +1 -2
  20. package/dist/components/core/dialogs/AboutDialog.js +11 -12
  21. package/dist/components/core/dialogs/AppDialog.js +27 -28
  22. package/dist/components/core/dialogs/ConfirmationDialog.js +15 -16
  23. package/dist/components/core/dialogs/FormDialog.js +7 -8
  24. package/dist/components/core/dialogs/index.js +4 -4
  25. package/dist/components/core/filters/ActiveFilters.js +1 -2
  26. package/dist/components/core/filters/AdvancedFilters.js +1 -2
  27. package/dist/components/core/filters/ConditionFilter.js +19 -20
  28. package/dist/components/core/filters/ConditionFilterGroup.js +1 -2
  29. package/dist/components/core/filters/FilterField.js +9 -10
  30. package/dist/components/core/filters/FilterPills.js +1 -2
  31. package/dist/components/core/filters/FilterPillsGroup.js +1 -2
  32. package/dist/components/core/filters/FiltersContainer.js +6 -7
  33. package/dist/components/core/filters/FiltersMobileDrawer.js +1 -2
  34. package/dist/components/core/filters/TableFilter.js +5 -6
  35. package/dist/components/core/filters/index.js +7 -7
  36. package/dist/components/core/forms/GenericForm.js +119 -120
  37. package/dist/components/core/icons/FlagFrIcon.js +1 -2
  38. package/dist/components/core/icons/FlagGbIcon.js +1 -2
  39. package/dist/components/core/inputs/DatePicker.js +9 -10
  40. package/dist/components/core/inputs/DateRangePicker.js +19 -20
  41. package/dist/components/core/inputs/FileDropzone.js +2 -3
  42. package/dist/components/core/inputs/ImageInput.js +9 -10
  43. package/dist/components/core/inputs/MultiSelect.js +89 -90
  44. package/dist/components/core/inputs/RatingInput.js +1 -2
  45. package/dist/components/core/inputs/SearchInput.js +7 -8
  46. package/dist/components/core/inputs/SingleSelect.js +36 -37
  47. package/dist/components/core/inputs/index.js +5 -5
  48. package/dist/components/core/inputs/select.helper.js +1 -2
  49. package/dist/components/core/language/LanguageSelector.js +1 -2
  50. package/dist/components/core/layouts/AppActions.js +44 -45
  51. package/dist/components/core/layouts/AppPageHeader.js +9 -10
  52. package/dist/components/core/layouts/AppSubTitle.js +1 -2
  53. package/dist/components/core/layouts/AppTitle.js +1 -2
  54. package/dist/components/core/layouts/KpiCardsLayout.js +1 -2
  55. package/dist/components/core/layouts/index.js +4 -4
  56. package/dist/components/core/markdown/AppMarkdown.js +1 -2
  57. package/dist/components/core/markdown/AppMarkdownHeading.js +4 -5
  58. package/dist/components/core/navbar/GlobalSearch.js +16 -17
  59. package/dist/components/core/navbar/NotificationsBell.js +21 -22
  60. package/dist/components/core/navbar/Sidebar.js +32 -33
  61. package/dist/components/core/navbar/SidebarHeader.js +1 -2
  62. package/dist/components/core/navbar/SidebarNavItem.js +20 -21
  63. package/dist/components/core/navbar/Topbar.js +5 -6
  64. package/dist/components/core/navbar/index.js +4 -4
  65. package/dist/components/core/states/ErrorAlert.js +1 -2
  66. package/dist/components/core/states/ErrorState.js +1 -2
  67. package/dist/components/core/states/LoadingState.js +1 -2
  68. package/dist/components/core/table/DataTable.js +1 -2
  69. package/dist/components/core/table/JsonTableOutput.js +17 -18
  70. package/dist/components/core/table/TableActions.js +31 -32
  71. package/dist/components/core/table/TableBody.js +25 -26
  72. package/dist/components/core/table/TableBulkActions.js +11 -12
  73. package/dist/components/core/table/TableHeader.js +15 -16
  74. package/dist/components/core/table/TablePagination.js +1 -2
  75. package/dist/components/core/table/TableSettings.js +20 -21
  76. package/dist/components/core/table/index.js +7 -7
  77. package/dist/components/core/tabs/AppTabContainer.js +1 -2
  78. package/dist/components/core/tabs/AppTabHeader.js +1 -2
  79. package/dist/components/core/tabs/AppTabs.js +10 -11
  80. package/dist/components/core/tabs/AppVerticalTabs.js +10 -11
  81. package/dist/components/core/tabs/index.js +3 -3
  82. package/dist/components/core/theme/ThemeSelector.js +1 -2
  83. package/dist/components/ui/accordion.js +1 -2
  84. package/dist/components/ui/alert-dialog.js +1 -2
  85. package/dist/components/ui/alert.js +1 -2
  86. package/dist/components/ui/aspect-ratio.js +1 -2
  87. package/dist/components/ui/avatar.js +1 -2
  88. package/dist/components/ui/badge.js +1 -2
  89. package/dist/components/ui/breadcrumb.js +1 -2
  90. package/dist/components/ui/button.js +1 -2
  91. package/dist/components/ui/calendar.js +8 -9
  92. package/dist/components/ui/card.js +1 -2
  93. package/dist/components/ui/carousel.js +1 -2
  94. package/dist/components/ui/chart.js +1 -2
  95. package/dist/components/ui/checkbox.js +1 -2
  96. package/dist/components/ui/collapsible.js +1 -2
  97. package/dist/components/ui/command.js +19 -20
  98. package/dist/components/ui/context-menu.js +1 -2
  99. package/dist/components/ui/control.js +1 -2
  100. package/dist/components/ui/dialog.js +1 -2
  101. package/dist/components/ui/drawer.js +1 -2
  102. package/dist/components/ui/dropdown-menu.js +1 -2
  103. package/dist/components/ui/form.js +1 -2
  104. package/dist/components/ui/hover-card.js +1 -2
  105. package/dist/components/ui/index.js +19 -19
  106. package/dist/components/ui/input-otp.js +1 -2
  107. package/dist/components/ui/input.js +1 -2
  108. package/dist/components/ui/label.js +1 -2
  109. package/dist/components/ui/menubar.js +1 -2
  110. package/dist/components/ui/navigation-menu.js +1 -2
  111. package/dist/components/ui/pagination.js +1 -2
  112. package/dist/components/ui/popover.js +1 -2
  113. package/dist/components/ui/progress.js +1 -2
  114. package/dist/components/ui/radio-group.js +1 -2
  115. package/dist/components/ui/resizable.js +1 -2
  116. package/dist/components/ui/scroll-area.js +1 -2
  117. package/dist/components/ui/select.js +1 -2
  118. package/dist/components/ui/separator.js +1 -2
  119. package/dist/components/ui/sheet.js +1 -2
  120. package/dist/components/ui/simple-table.js +1 -2
  121. package/dist/components/ui/skeleton.js +1 -2
  122. package/dist/components/ui/slider.js +1 -2
  123. package/dist/components/ui/sonner.js +1 -2
  124. package/dist/components/ui/switch.js +1 -2
  125. package/dist/components/ui/tabs.js +1 -2
  126. package/dist/components/ui/textarea.js +1 -2
  127. package/dist/components/ui/toast.js +1 -2
  128. package/dist/components/ui/toaster.js +10 -11
  129. package/dist/components/ui/toggle-group.js +1 -2
  130. package/dist/components/ui/toggle.js +1 -2
  131. package/dist/components/ui/tooltip.js +1 -2
  132. package/dist/constants/datatable.js +1 -2
  133. package/dist/constants/search.js +1 -2
  134. package/dist/contexts/page.context.js +1 -2
  135. package/dist/contexts/sidebar.context.js +1 -2
  136. package/dist/helpers/changelog.helper.js +1 -2
  137. package/dist/helpers/markdown.helper.js +1 -2
  138. package/dist/helpers/supabase.helper.js +1 -2
  139. package/dist/helpers/table.helper.js +1 -2
  140. package/dist/helpers/tailwind.helper.js +1 -2
  141. package/dist/hooks/behavior/index.js +6 -6
  142. package/dist/hooks/behavior/useConfirmDeleteDialog.js +1 -2
  143. package/dist/hooks/behavior/useConfirmationDialog.js +1 -2
  144. package/dist/hooks/behavior/useDebounce.js +1 -2
  145. package/dist/hooks/behavior/useDebouncedValue.js +1 -2
  146. package/dist/hooks/behavior/useDialog.js +1 -2
  147. package/dist/hooks/behavior/usePage.js +1 -2
  148. package/dist/hooks/behavior/useSidebar.js +1 -2
  149. package/dist/hooks/behavior/useTable.js +1 -2
  150. package/dist/hooks/behavior/useUrlState.js +1 -2
  151. package/dist/hooks/ui/index.js +10 -10
  152. package/dist/hooks/ui/useDataTable.js +1 -2
  153. package/dist/hooks/ui/useDocumentTitle.js +1 -2
  154. package/dist/hooks/ui/useFixedColumns.js +1 -2
  155. package/dist/hooks/ui/useLanguage.js +1 -2
  156. package/dist/hooks/ui/useMobile.js +1 -2
  157. package/dist/hooks/ui/useNotifications.js +1 -2
  158. package/dist/hooks/ui/useScrollFade.js +1 -2
  159. package/dist/hooks/ui/useServerTable.js +1 -2
  160. package/dist/hooks/ui/useTheme.js +1 -2
  161. package/dist/hooks/ui/useToast.js +1 -2
  162. package/dist/i18n/krosoftLocales.js +1 -2
  163. package/dist/i18n/translateKrosoft.js +1 -2
  164. package/dist/i18n/useDateFnsLocale.js +1 -2
  165. package/dist/i18n/useKrosoftTranslation.js +1 -2
  166. package/dist/locales/en.json.js +1 -2
  167. package/dist/locales/fr.json.js +1 -2
  168. package/dist/providers/SidebarProvider.js +5 -6
  169. package/dist/pwa/PwaUpdater.js +1 -2
  170. package/dist/pwa/index.js +3 -3
  171. package/dist/pwa/pwaUpdateToast.js +1 -2
  172. package/dist/query/createQueryClient.js +1 -2
  173. package/dist/seasonal/EffectSwitch.js +1 -2
  174. package/dist/seasonal/EmojiSnowfall.js +1 -2
  175. package/dist/seasonal/HalloweenEffect.js +5 -6
  176. package/dist/seasonal/SeasonalEffects.js +4 -5
  177. package/dist/seasonal/SeasonalEffectsSettings.js +8 -9
  178. package/dist/seasonal/SnowEffect.js +5 -6
  179. package/dist/seasonal/overlayStyle.js +1 -2
  180. package/dist/seasonal/seasons.js +1 -2
  181. package/dist/seasonal/useSeasonalEffects.js +1 -2
  182. package/dist/seasonal/useStoredToggle.js +1 -2
  183. package/dist/tailwind/index.js +1 -2
  184. package/dist/tokens/apply.js +1 -2
  185. package/dist/tokens/radius.js +1 -2
  186. package/dist/vendor/tailwindcss/lib/public/create-plugin.js +1 -2
  187. package/dist/vendor/tailwindcss/lib/util/createPlugin.js +1 -2
  188. package/dist/vendor/tailwindcss/plugin.js +1 -2
  189. package/package.json +2 -2
@@ -1,72 +1,72 @@
1
- import { cn as e } from "../../../helpers/tailwind.helper.js";
2
- import { useKrosoftTranslation as t } from "../../../i18n/useKrosoftTranslation.js";
3
- import { Badge as ee } from "../../ui/badge.js";
1
+ import { useKrosoftTranslation as e } from "../../../i18n/useKrosoftTranslation.js";
2
+ import { Badge as t } from "../../ui/badge.js";
4
3
  import { Checkbox as n } from "../../ui/checkbox.js";
5
- import { controlBaseClass as te, controlFilterWidthClass as r, controlTriggerClass as i } from "../../ui/control.js";
6
- import { Popover as a, PopoverContent as o, PopoverTrigger as s } from "../../ui/popover.js";
7
- import { renderOptionThumbnail as ne, useOptionWindow as re } from "./select.helper.js";
8
- import { useMemo as c, useState as l } from "react";
9
- import { Fragment as ie, jsx as u, jsxs as d } from "react/jsx-runtime";
10
- import { ChevronDownIcon as f, SearchIcon as p, XIcon as m } from "lucide-react";
11
- import { Command as h } from "cmdk";
12
- //#region src/components/core/inputs/MultiSelect.tsx
13
- var g = ({ options: g, selected: _, onToggle: v, onClear: y, onSelectAll: b, variant: x = "input", placeholder: S, labelKey: C, searchable: w = !1, searchPlaceholder: T, disabled: E = !1, modal: D = !0, chips: O = !1, maxCount: k, className: A, ...j }) => {
14
- let { t: M } = t(), [N, P] = l(""), [F, I] = l(!1), L = x === "pill", R = x === "input" ? void 0 : r, z = c(() => N === "" ? g : g.filter((e) => e.label.toLowerCase().includes(N.toLowerCase())), [g, N]), B = c(() => z.filter((e) => e.disabled !== !0).map((e) => e.value), [z]), V = c(() => _.filter((e) => g.find((t) => t.value === e)?.disabled === !0), [g, _]), H = c(() => B.length !== 0 && B.every((e) => _.includes(e)), [B, _]), U = c(() => _.map((e) => g.find((t) => t.value === e)?.label ?? e), [g, _]), W = k !== void 0 && k > 0 ? U.slice(0, k) : U, G = U.length - W.length, { listRef: K, virtualized: q, startIndex: J, endIndex: ae, padTop: Y, padBottom: X, onScroll: oe, resetScroll: Z } = re(F, z.length, g.some((e) => e.imageUrl !== void 0)), se = q ? z.slice(J, ae) : z, ce = (e) => {
15
- I(e), e ? Z() : P("");
4
+ import { controlBaseClass as r, controlFilterWidthClass as ee, controlTriggerClass as i } from "../../ui/control.js";
5
+ import { Popover as a, PopoverContent as o, PopoverTrigger as te } from "../../ui/popover.js";
6
+ import { cn as s } from "../../../helpers/tailwind.helper.js";
7
+ import { renderOptionThumbnail as ne, useOptionWindow as c } from "./select.helper.js";
8
+ import { useMemo as l, useState as u } from "react";
9
+ import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
10
+ import { ChevronDownIcon as m, SearchIcon as re, XIcon as h } from "lucide-react";
11
+ import { Command as g } from "cmdk";
12
+ // src/components/core/inputs/MultiSelect.tsx
13
+ var _ = ({ options: _, selected: v, onToggle: y, onClear: b, onSelectAll: x, variant: S = "input", placeholder: C, labelKey: w, searchable: T = !1, searchPlaceholder: E, disabled: D = !1, modal: O = !0, chips: k = !1, maxCount: A, className: j, ...M }) => {
14
+ let { t: N } = e(), [P, F] = u(""), [I, ie] = u(!1), L = S === "pill", R = S === "input" ? void 0 : ee, z = l(() => P === "" ? _ : _.filter((e) => e.label.toLowerCase().includes(P.toLowerCase())), [_, P]), B = l(() => z.filter((e) => e.disabled !== !0).map((e) => e.value), [z]), V = l(() => v.filter((e) => _.find((t) => t.value === e)?.disabled === !0), [_, v]), H = l(() => B.length !== 0 && B.every((e) => v.includes(e)), [B, v]), U = l(() => v.map((e) => _.find((t) => t.value === e)?.label ?? e), [_, v]), W = A !== void 0 && A > 0 ? U.slice(0, A) : U, G = U.length - W.length, { listRef: K, virtualized: q, startIndex: J, endIndex: ae, padTop: Y, padBottom: X, onScroll: oe, resetScroll: Z } = c(I, z.length, _.some((e) => e.imageUrl !== void 0)), se = q ? z.slice(J, ae) : z, ce = (e) => {
15
+ ie(e), e ? Z() : F("");
16
16
  }, le = (e) => {
17
- P(e), Z();
17
+ F(e), Z();
18
18
  }, ue = () => {
19
- V.length > 0 ? b === void 0 ? _.filter((e) => !V.includes(e)).forEach((e) => {
20
- v(e);
21
- }) : b(V) : y === void 0 ? b === void 0 ? _.forEach((e) => {
22
- v(e);
23
- }) : b([]) : y();
19
+ V.length > 0 ? x === void 0 ? v.filter((e) => !V.includes(e)).forEach((e) => {
20
+ y(e);
21
+ }) : x(V) : b === void 0 ? x === void 0 ? v.forEach((e) => {
22
+ y(e);
23
+ }) : x([]) : b();
24
24
  }, Q = () => {
25
- if (H) b === void 0 ? y !== void 0 && _.every((e) => B.includes(e)) ? y() : B.forEach((e) => {
26
- v(e);
27
- }) : b(_.filter((e) => !B.includes(e)));
28
- else if (b !== void 0) {
29
- let e = [..._];
25
+ if (H) x === void 0 ? b !== void 0 && v.every((e) => B.includes(e)) ? b() : B.forEach((e) => {
26
+ y(e);
27
+ }) : x(v.filter((e) => !B.includes(e)));
28
+ else if (x !== void 0) {
29
+ let e = [...v];
30
30
  B.forEach((t) => {
31
31
  e.includes(t) || e.push(t);
32
- }), b(e);
32
+ }), x(e);
33
33
  } else B.forEach((e) => {
34
- _.includes(e) || v(e);
34
+ v.includes(e) || y(e);
35
35
  });
36
- }, $ = c(() => _.map((e) => ({
36
+ }, $ = l(() => v.map((e) => ({
37
37
  value: e,
38
- option: g.find((t) => t.value === e)
39
- })), [g, _]), de = L ? /* @__PURE__ */ d("button", {
40
- ...j,
38
+ option: _.find((t) => t.value === e)
39
+ })), [_, v]), de = L ? /* @__PURE__ */ p("button", {
40
+ ...M,
41
41
  type: "button",
42
- disabled: E,
43
- className: e(te, "inline-flex items-center justify-between gap-1.5 whitespace-nowrap transition-colors", _.length > 0 ? "border-primary bg-primary/10 text-primary font-medium" : "hover:bg-muted", R, A),
44
- children: [/* @__PURE__ */ u("span", {
42
+ disabled: D,
43
+ className: s(r, "inline-flex items-center justify-between gap-1.5 whitespace-nowrap transition-colors", v.length > 0 ? "border-primary bg-primary/10 text-primary font-medium" : "hover:bg-muted", R, j),
44
+ children: [/* @__PURE__ */ f("span", {
45
45
  className: "truncate",
46
- children: C === void 0 ? S ?? M("select.placeholder") : M(C)
47
- }), /* @__PURE__ */ d("div", {
46
+ children: w === void 0 ? C ?? N("select.placeholder") : N(w)
47
+ }), /* @__PURE__ */ p("div", {
48
48
  className: "flex shrink-0 items-center gap-1.5",
49
- children: [_.length > 0 && /* @__PURE__ */ u("span", {
49
+ children: [v.length > 0 && /* @__PURE__ */ f("span", {
50
50
  className: "flex h-4 min-w-[16px] items-center justify-center rounded-full bg-primary px-1 text-[10px] font-bold text-primary-foreground",
51
- children: _.length
52
- }), /* @__PURE__ */ u(f, { className: e("size-3.5 opacity-60 transition-transform", F && "rotate-180") })]
51
+ children: v.length
52
+ }), /* @__PURE__ */ f(m, { className: s("size-3.5 opacity-60 transition-transform", I && "rotate-180") })]
53
53
  })]
54
- }) : /* @__PURE__ */ d("button", {
55
- ...j,
54
+ }) : /* @__PURE__ */ p("button", {
55
+ ...M,
56
56
  type: "button",
57
- disabled: E,
58
- className: e(i, "w-full", R, F && "ring-2 ring-ring ring-offset-2", _.length === 0 && "text-muted-foreground", A),
59
- children: [/* @__PURE__ */ u("span", {
57
+ disabled: D,
58
+ className: s(i, "w-full", R, I && "ring-2 ring-ring ring-offset-2", v.length === 0 && "text-muted-foreground", j),
59
+ children: [/* @__PURE__ */ f("span", {
60
60
  className: "truncate",
61
- children: _.length === 0 ? S ?? M("select.placeholder") : W.join(", ")
62
- }), /* @__PURE__ */ d("div", {
61
+ children: v.length === 0 ? C ?? N("select.placeholder") : W.join(", ")
62
+ }), /* @__PURE__ */ p("div", {
63
63
  className: "flex shrink-0 items-center gap-1",
64
64
  children: [
65
- G > 0 && /* @__PURE__ */ d("span", {
65
+ G > 0 && /* @__PURE__ */ p("span", {
66
66
  className: "rounded-control bg-muted px-1.5 py-0.5 text-xs font-medium text-foreground",
67
67
  children: ["+", G]
68
68
  }),
69
- _.length > 0 && !E && /* @__PURE__ */ u("span", {
69
+ v.length > 0 && !D && /* @__PURE__ */ f("span", {
70
70
  role: "button",
71
71
  tabIndex: -1,
72
72
  onClick: (e) => {
@@ -76,116 +76,115 @@ var g = ({ options: g, selected: _, onToggle: v, onClear: y, onSelectAll: b, var
76
76
  e.preventDefault(), e.stopPropagation(), ue();
77
77
  },
78
78
  className: "text-muted-foreground hover:text-foreground",
79
- children: /* @__PURE__ */ u(m, { className: "size-4" })
79
+ children: /* @__PURE__ */ f(h, { className: "size-4" })
80
80
  }),
81
- /* @__PURE__ */ u(f, { className: e("size-4 opacity-50 shrink-0 transition-transform", F && "rotate-180") })
81
+ /* @__PURE__ */ f(m, { className: s("size-4 opacity-50 shrink-0 transition-transform", I && "rotate-180") })
82
82
  ]
83
83
  })]
84
- }), fe = O && $.length > 0 ? /* @__PURE__ */ u("div", {
84
+ }), fe = k && $.length > 0 ? /* @__PURE__ */ f("div", {
85
85
  className: "mt-2 flex flex-wrap gap-1.5",
86
- children: $.map(({ value: e, option: t }) => {
87
- let n = t?.disabled === !0;
88
- return /* @__PURE__ */ d(ee, {
86
+ children: $.map(({ value: e, option: n }) => {
87
+ let r = n?.disabled === !0;
88
+ return /* @__PURE__ */ p(t, {
89
89
  variant: "secondary",
90
90
  className: "flex items-center gap-1 border border-primary/20 bg-primary/10 py-0.5 pl-2 pr-1 text-primary",
91
- children: [/* @__PURE__ */ u("span", {
91
+ children: [/* @__PURE__ */ f("span", {
92
92
  className: "max-w-[16rem] truncate",
93
- children: t?.label ?? e
94
- }), !n && /* @__PURE__ */ u("button", {
93
+ children: n?.label ?? e
94
+ }), !r && /* @__PURE__ */ f("button", {
95
95
  type: "button",
96
96
  onClick: () => {
97
- v(e);
97
+ y(e);
98
98
  },
99
99
  className: "rounded-full p-0.5 hover:bg-primary/20",
100
- "aria-label": M("filters.remove"),
101
- children: /* @__PURE__ */ u(m, { className: "size-3" })
100
+ "aria-label": N("filters.remove"),
101
+ children: /* @__PURE__ */ f(h, { className: "size-3" })
102
102
  })]
103
103
  }, e);
104
104
  })
105
105
  }) : null;
106
- return /* @__PURE__ */ d(ie, { children: [/* @__PURE__ */ d(a, {
107
- open: F,
106
+ return /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ p(a, {
107
+ open: I,
108
108
  onOpenChange: ce,
109
- modal: D,
110
- children: [/* @__PURE__ */ u(s, {
109
+ modal: O,
110
+ children: [/* @__PURE__ */ f(te, {
111
111
  asChild: !0,
112
112
  children: de
113
- }), /* @__PURE__ */ d(o, {
114
- className: e("p-0", L ? "w-72 max-w-[var(--radix-popover-content-available-width)]" : "w-[var(--radix-popover-trigger-width)]"),
113
+ }), /* @__PURE__ */ p(o, {
114
+ className: s("p-0", L ? "w-72 max-w-[var(--radix-popover-content-available-width)]" : "w-[var(--radix-popover-trigger-width)]"),
115
115
  align: "start",
116
- children: [/* @__PURE__ */ d(h, {
116
+ children: [/* @__PURE__ */ p(g, {
117
117
  shouldFilter: !1,
118
118
  className: "flex flex-col",
119
- children: [w ? /* @__PURE__ */ u("div", {
119
+ children: [T ? /* @__PURE__ */ f("div", {
120
120
  className: "border-b border-border p-2",
121
- children: /* @__PURE__ */ d("div", {
121
+ children: /* @__PURE__ */ p("div", {
122
122
  className: "relative",
123
- children: [/* @__PURE__ */ u(p, { className: "absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground" }), /* @__PURE__ */ u(h.Input, {
124
- value: N,
123
+ children: [/* @__PURE__ */ f(re, { className: "absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground" }), /* @__PURE__ */ f(g.Input, {
124
+ value: P,
125
125
  onValueChange: le,
126
- placeholder: T ?? M("search.placeholder"),
126
+ placeholder: E ?? N("search.placeholder"),
127
127
  className: "w-full rounded-control bg-muted/50 py-1.5 pl-7 pr-2 text-sm text-foreground placeholder:text-muted-foreground outline-none focus:ring-1 focus:ring-ring",
128
128
  autoFocus: !0
129
129
  })]
130
130
  })
131
- }) : /* @__PURE__ */ u(h.Input, {
131
+ }) : /* @__PURE__ */ f(g.Input, {
132
132
  autoFocus: !0,
133
133
  tabIndex: -1,
134
134
  className: "sr-only"
135
- }), /* @__PURE__ */ d(h.List, {
135
+ }), /* @__PURE__ */ p(g.List, {
136
136
  ref: K,
137
137
  onScroll: oe,
138
- className: e("flex flex-col max-h-56 overflow-y-auto overflow-x-hidden p-1.5 scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-muted-foreground/20 scrollbar-track-transparent [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-muted-foreground/20 [&::-webkit-scrollbar-track]:bg-transparent", !q && "gap-0.5"),
138
+ className: s("flex flex-col max-h-56 overflow-y-auto overflow-x-hidden p-1.5 scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-muted-foreground/20 scrollbar-track-transparent [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-muted-foreground/20 [&::-webkit-scrollbar-track]:bg-transparent", !q && "gap-0.5"),
139
139
  children: [
140
- z.length === 0 && /* @__PURE__ */ u("p", {
140
+ z.length === 0 && /* @__PURE__ */ f("p", {
141
141
  className: "px-2 py-3 text-center text-xs text-muted-foreground",
142
- children: M("states.noResult")
142
+ children: N("states.noResult")
143
143
  }),
144
- Y > 0 && /* @__PURE__ */ u("div", {
144
+ Y > 0 && /* @__PURE__ */ f("div", {
145
145
  "aria-hidden": !0,
146
146
  style: { height: Y }
147
147
  }),
148
- se.map((e) => /* @__PURE__ */ d(h.Item, {
148
+ se.map((e) => /* @__PURE__ */ p(g.Item, {
149
149
  value: e.value,
150
150
  disabled: e.disabled,
151
151
  onSelect: () => {
152
- v(e.value);
152
+ y(e.value);
153
153
  },
154
154
  className: "flex min-w-0 items-center gap-2.5 rounded-md px-2 py-2 text-sm cursor-pointer transition-colors data-[selected=true]:bg-muted data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50",
155
155
  children: [
156
- /* @__PURE__ */ u("span", {
156
+ /* @__PURE__ */ f("span", {
157
157
  className: "pointer-events-none shrink-0",
158
- children: /* @__PURE__ */ u(n, { checked: _.includes(e.value) })
158
+ children: /* @__PURE__ */ f(n, { checked: v.includes(e.value) })
159
159
  }),
160
160
  ne(e.imageUrl),
161
- e.color && /* @__PURE__ */ u("span", {
161
+ e.color && /* @__PURE__ */ f("span", {
162
162
  className: "size-2.5 shrink-0 rounded-full",
163
163
  style: { backgroundColor: e.color }
164
164
  }),
165
- /* @__PURE__ */ u("span", {
165
+ /* @__PURE__ */ f("span", {
166
166
  className: "min-w-0 flex-1 truncate",
167
167
  title: e.label,
168
168
  children: e.label
169
169
  })
170
170
  ]
171
171
  }, e.value)),
172
- X > 0 && /* @__PURE__ */ u("div", {
172
+ X > 0 && /* @__PURE__ */ f("div", {
173
173
  "aria-hidden": !0,
174
174
  style: { height: X }
175
175
  })
176
176
  ]
177
177
  })]
178
- }), B.length > 0 && /* @__PURE__ */ u("div", {
178
+ }), B.length > 0 && /* @__PURE__ */ f("div", {
179
179
  className: "border-t border-border p-1.5",
180
- children: /* @__PURE__ */ u("button", {
180
+ children: /* @__PURE__ */ f("button", {
181
181
  type: "button",
182
182
  onClick: Q,
183
183
  className: "w-full rounded-md px-2 py-1.5 text-xs text-muted-foreground hover:text-foreground hover:bg-muted transition-colors text-center",
184
- children: M(H ? "filters.deselectAll" : "filters.selectAll")
184
+ children: N(H ? "filters.deselectAll" : "filters.selectAll")
185
185
  })
186
186
  })]
187
187
  })]
188
188
  }), fe] });
189
189
  };
190
- //#endregion
191
- export { g as MultiSelect };
190
+ export { _ as MultiSelect };
@@ -1,7 +1,7 @@
1
1
  import { cn as e } from "../../../helpers/tailwind.helper.js";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
3
  import { Heart as n, Star as r } from "lucide-react";
4
- //#region src/components/core/inputs/RatingInput.tsx
4
+ // src/components/core/inputs/RatingInput.tsx
5
5
  var i = {
6
6
  heart: {
7
7
  Icon: n,
@@ -32,5 +32,4 @@ function a({ value: n, onChange: r, max: a = 5, size: o = "md", icon: s = "star"
32
32
  })
33
33
  });
34
34
  }
35
- //#endregion
36
35
  export { a as RatingInput };
@@ -1,16 +1,16 @@
1
- import { cn as e } from "../../../helpers/tailwind.helper.js";
2
- import { useKrosoftTranslation as t } from "../../../i18n/useKrosoftTranslation.js";
3
- import { Input as n } from "../../ui/input.js";
1
+ import { useKrosoftTranslation as e } from "../../../i18n/useKrosoftTranslation.js";
2
+ import { Input as t } from "../../ui/input.js";
3
+ import { cn as n } from "../../../helpers/tailwind.helper.js";
4
4
  import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
5
  import { SearchIcon as a, XIcon as o } from "lucide-react";
6
- //#region src/components/core/inputs/SearchInput.tsx
6
+ // src/components/core/inputs/SearchInput.tsx
7
7
  var s = ({ searchQuery: s, search: c, placeholder: l, onSearch: u, onSubmit: d, onClear: f, className: p }) => {
8
- let { t: m } = t(), h = s ?? c ?? "";
8
+ let { t: m } = e(), h = s ?? c ?? "";
9
9
  return /* @__PURE__ */ i("div", {
10
- className: e("relative h-fit w-full md:w-64", p),
10
+ className: n("relative h-fit w-full md:w-64", p),
11
11
  children: [
12
12
  /* @__PURE__ */ r(a, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 text-muted-foreground w-4 h-4" }),
13
- /* @__PURE__ */ r(n, {
13
+ /* @__PURE__ */ r(t, {
14
14
  placeholder: l ?? m("search.placeholder"),
15
15
  value: h,
16
16
  onChange: (e) => {
@@ -32,5 +32,4 @@ var s = ({ searchQuery: s, search: c, placeholder: l, onSearch: u, onSubmit: d,
32
32
  ]
33
33
  });
34
34
  };
35
- //#endregion
36
35
  export { s as SearchInput };
@@ -1,16 +1,16 @@
1
- import { cn as e } from "../../../helpers/tailwind.helper.js";
2
- import { useKrosoftTranslation as t } from "../../../i18n/useKrosoftTranslation.js";
3
- import { controlFilterWidthClass as ee, controlTriggerClass as te } from "../../ui/control.js";
4
- import { Popover as n, PopoverContent as r, PopoverTrigger as i } from "../../ui/popover.js";
5
- import { Select as a, SelectContent as o, SelectItem as s, SelectTrigger as c, SelectValue as l } from "../../ui/select.js";
6
- import { renderOptionThumbnail as u, useOptionWindow as ne } from "./select.helper.js";
1
+ import { useKrosoftTranslation as e } from "../../../i18n/useKrosoftTranslation.js";
2
+ import { Popover as t, PopoverContent as n, PopoverTrigger as r } from "../../ui/popover.js";
3
+ import { Select as ee, SelectContent as te, SelectItem as ne, SelectTrigger as i, SelectValue as a } from "../../ui/select.js";
4
+ import { controlFilterWidthClass as o, controlTriggerClass as s } from "../../ui/control.js";
5
+ import { cn as c } from "../../../helpers/tailwind.helper.js";
6
+ import { renderOptionThumbnail as l, useOptionWindow as u } from "./select.helper.js";
7
7
  import { useMemo as d, useState as f } from "react";
8
8
  import { jsx as p, jsxs as m } from "react/jsx-runtime";
9
9
  import { CheckIcon as h, ChevronDownIcon as g, PlusIcon as _, SearchIcon as v, XIcon as y } from "lucide-react";
10
10
  import { Command as b } from "cmdk";
11
- //#region src/components/core/inputs/SingleSelect.tsx
11
+ // src/components/core/inputs/SingleSelect.tsx
12
12
  var x = ({ options: x = [], value: S, onChange: C, onClear: w, searchable: T = !1, onCreate: E, placeholder: D, searchPlaceholder: re, emptyLabel: ie, createLabel: O, disabled: k = !1, modal: A = !0, variant: j = "input", className: M, ...N }) => {
13
- let { t: P } = t(), [F, I] = f(!1), [L, R] = f(""), z = j === "filter" ? ee : void 0, B = S !== void 0 && S !== "", V = d(() => B ? x.find((e) => e.value === S) : void 0, [
13
+ let { t: P } = e(), [F, I] = f(!1), [L, R] = f(""), z = j === "filter" ? o : void 0, B = S !== void 0 && S !== "", V = d(() => B ? x.find((e) => e.value === S) : void 0, [
14
14
  B,
15
15
  x,
16
16
  S
@@ -18,25 +18,25 @@ var x = ({ options: x = [], value: S, onChange: C, onClear: w, searchable: T = !
18
18
  if (U === "") return x;
19
19
  let e = U.toLowerCase();
20
20
  return x.filter((t) => `${t.label} ${t.description ?? ""}`.toLowerCase().includes(e));
21
- }, [x, U]), { listRef: G, virtualized: K, startIndex: q, endIndex: J, padTop: Y, padBottom: X, onScroll: ae, resetScroll: Z } = ne(F, W.length, x.some((e) => e.imageUrl !== void 0)), oe = K ? W.slice(q, J) : W;
22
- if (!T) return /* @__PURE__ */ m(a, {
21
+ }, [x, U]), { listRef: G, virtualized: K, startIndex: q, endIndex: J, padTop: Y, padBottom: X, onScroll: ae, resetScroll: Z } = u(F, W.length, x.some((e) => e.imageUrl !== void 0)), oe = K ? W.slice(q, J) : W;
22
+ if (!T) return /* @__PURE__ */ m(ee, {
23
23
  value: S ?? "",
24
24
  onValueChange: C,
25
25
  disabled: k,
26
- children: [/* @__PURE__ */ p(c, {
26
+ children: [/* @__PURE__ */ p(i, {
27
27
  ...N,
28
- className: e(!B && "text-muted-foreground", z, M),
28
+ className: c(!B && "text-muted-foreground", z, M),
29
29
  onClear: w !== void 0 && B && !k ? (e) => {
30
30
  e.preventDefault(), e.stopPropagation(), w();
31
31
  } : void 0,
32
- children: /* @__PURE__ */ p(l, { placeholder: D ?? P("select.placeholder") })
33
- }), /* @__PURE__ */ p(o, { children: x.map((e) => /* @__PURE__ */ p(s, {
32
+ children: /* @__PURE__ */ p(a, { placeholder: D ?? P("select.placeholder") })
33
+ }), /* @__PURE__ */ p(te, { children: x.map((e) => /* @__PURE__ */ p(ne, {
34
34
  value: e.value,
35
35
  disabled: e.disabled,
36
36
  children: /* @__PURE__ */ m("span", {
37
37
  className: "flex items-center",
38
38
  children: [
39
- u(e.imageUrl, "mr-2"),
39
+ l(e.imageUrl, "mr-2"),
40
40
  e.color !== void 0 && /* @__PURE__ */ p("span", {
41
41
  className: "mr-2 size-2.5 shrink-0 rounded-full",
42
42
  style: { backgroundColor: e.color }
@@ -63,11 +63,11 @@ var x = ({ options: x = [], value: S, onChange: C, onClear: w, searchable: T = !
63
63
  }, le = () => {
64
64
  E?.(U), $(!1);
65
65
  };
66
- return /* @__PURE__ */ m(n, {
66
+ return /* @__PURE__ */ m(t, {
67
67
  open: F,
68
68
  onOpenChange: $,
69
69
  modal: A,
70
- children: [/* @__PURE__ */ p(i, {
70
+ children: [/* @__PURE__ */ p(r, {
71
71
  asChild: !0,
72
72
  children: /* @__PURE__ */ m("button", {
73
73
  ...N,
@@ -75,11 +75,11 @@ var x = ({ options: x = [], value: S, onChange: C, onClear: w, searchable: T = !
75
75
  role: "combobox",
76
76
  "aria-expanded": F,
77
77
  disabled: k,
78
- className: e(te, "w-full", z, "data-[state=open]:ring-2 data-[state=open]:ring-ring data-[state=open]:ring-offset-2", !B && "text-muted-foreground", M),
78
+ className: c(s, "w-full", z, "data-[state=open]:ring-2 data-[state=open]:ring-ring data-[state=open]:ring-offset-2", !B && "text-muted-foreground", M),
79
79
  children: [/* @__PURE__ */ m("div", {
80
80
  className: "flex min-w-0 items-center truncate",
81
81
  children: [
82
- u(V?.imageUrl, "mr-2 h-6 w-8"),
82
+ l(V?.imageUrl, "mr-2 h-6 w-8"),
83
83
  V?.color && /* @__PURE__ */ p("span", {
84
84
  className: "mr-2 size-2.5 shrink-0 rounded-full",
85
85
  style: { backgroundColor: V.color }
@@ -110,10 +110,10 @@ var x = ({ options: x = [], value: S, onChange: C, onClear: w, searchable: T = !
110
110
  },
111
111
  className: "text-muted-foreground hover:text-foreground",
112
112
  children: /* @__PURE__ */ p(y, { className: "size-4" })
113
- }), /* @__PURE__ */ p(g, { className: e("size-4 shrink-0 opacity-50 transition-transform", F && "rotate-180") })]
113
+ }), /* @__PURE__ */ p(g, { className: c("size-4 shrink-0 opacity-50 transition-transform", F && "rotate-180") })]
114
114
  })]
115
115
  })
116
- }), /* @__PURE__ */ p(r, {
116
+ }), /* @__PURE__ */ p(n, {
117
117
  className: "w-[var(--radix-popover-trigger-width)] p-0",
118
118
  align: "start",
119
119
  children: /* @__PURE__ */ m(b, {
@@ -134,7 +134,7 @@ var x = ({ options: x = [], value: S, onChange: C, onClear: w, searchable: T = !
134
134
  }), /* @__PURE__ */ m(b.List, {
135
135
  ref: G,
136
136
  onScroll: ae,
137
- className: e("flex flex-col max-h-56 overflow-y-auto overflow-x-hidden p-1.5 scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-muted-foreground/20 scrollbar-track-transparent [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-muted-foreground/20 [&::-webkit-scrollbar-track]:bg-transparent", !K && "gap-0.5"),
137
+ className: c("flex flex-col max-h-56 overflow-y-auto overflow-x-hidden p-1.5 scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-muted-foreground/20 scrollbar-track-transparent [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-muted-foreground/20 [&::-webkit-scrollbar-track]:bg-transparent", !K && "gap-0.5"),
138
138
  children: [
139
139
  W.length === 0 && !Q && /* @__PURE__ */ p("div", {
140
140
  className: "px-2 py-3 text-center text-xs text-muted-foreground",
@@ -144,36 +144,36 @@ var x = ({ options: x = [], value: S, onChange: C, onClear: w, searchable: T = !
144
144
  "aria-hidden": !0,
145
145
  style: { height: Y }
146
146
  }),
147
- oe.map((t) => /* @__PURE__ */ m(b.Item, {
148
- value: t.value,
149
- keywords: [t.label, t.description ?? ""],
150
- disabled: t.disabled,
147
+ oe.map((e) => /* @__PURE__ */ m(b.Item, {
148
+ value: e.value,
149
+ keywords: [e.label, e.description ?? ""],
150
+ disabled: e.disabled,
151
151
  onSelect: () => {
152
- ce(t.value);
152
+ ce(e.value);
153
153
  },
154
154
  className: "flex min-w-0 items-center gap-2 rounded-md px-2 py-2 text-sm cursor-pointer transition-colors data-[selected=true]:bg-muted data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50",
155
155
  children: [
156
- u(t.imageUrl),
157
- t.color && /* @__PURE__ */ p("span", {
156
+ l(e.imageUrl),
157
+ e.color && /* @__PURE__ */ p("span", {
158
158
  className: "size-2.5 shrink-0 rounded-full",
159
- style: { backgroundColor: t.color }
159
+ style: { backgroundColor: e.color }
160
160
  }),
161
161
  /* @__PURE__ */ p("span", {
162
162
  className: "min-w-0 flex-1 truncate",
163
- title: t.label,
164
- children: t.label
163
+ title: e.label,
164
+ children: e.label
165
165
  }),
166
- t.description !== void 0 && /* @__PURE__ */ m("span", {
166
+ e.description !== void 0 && /* @__PURE__ */ m("span", {
167
167
  className: "shrink-0 truncate text-muted-foreground",
168
168
  children: [
169
169
  "(",
170
- t.description,
170
+ e.description,
171
171
  ")"
172
172
  ]
173
173
  }),
174
- /* @__PURE__ */ p(h, { className: e("ml-auto size-4 shrink-0", S === t.value ? "opacity-100" : "opacity-0") })
174
+ /* @__PURE__ */ p(h, { className: c("ml-auto size-4 shrink-0", S === e.value ? "opacity-100" : "opacity-0") })
175
175
  ]
176
- }, t.value)),
176
+ }, e.value)),
177
177
  X > 0 && /* @__PURE__ */ p("div", {
178
178
  "aria-hidden": !0,
179
179
  style: { height: X }
@@ -194,5 +194,4 @@ var x = ({ options: x = [], value: S, onChange: C, onClear: w, searchable: T = !
194
194
  })]
195
195
  });
196
196
  };
197
- //#endregion
198
197
  export { x as SingleSelect };
@@ -1,9 +1,9 @@
1
- import { SearchInput as e } from "./SearchInput.js";
2
- import { ImageInput as t } from "./ImageInput.js";
3
- import { MultiSelect as n } from "./MultiSelect.js";
1
+ import { ImageInput as e } from "./ImageInput.js";
2
+ import { FileDropzone as t } from "./FileDropzone.js";
3
+ import { SearchInput as n } from "./SearchInput.js";
4
4
  import { DatePicker as r } from "./DatePicker.js";
5
5
  import { DateRangePicker as i } from "./DateRangePicker.js";
6
6
  import { SingleSelect as a } from "./SingleSelect.js";
7
- import { FileDropzone as o } from "./FileDropzone.js";
7
+ import { MultiSelect as o } from "./MultiSelect.js";
8
8
  import { RatingInput as s } from "./RatingInput.js";
9
- export { r as DatePicker, i as DateRangePicker, o as FileDropzone, t as ImageInput, n as MultiSelect, s as RatingInput, e as SearchInput, a as SingleSelect };
9
+ export { r as DatePicker, i as DateRangePicker, t as FileDropzone, e as ImageInput, o as MultiSelect, s as RatingInput, n as SearchInput, a as SingleSelect };
@@ -1,7 +1,7 @@
1
1
  import { cn as e } from "../../../helpers/tailwind.helper.js";
2
2
  import { useCallback as t, useLayoutEffect as n, useRef as r, useState as i } from "react";
3
3
  import { jsx as a } from "react/jsx-runtime";
4
- //#region src/components/core/inputs/select.helper.tsx
4
+ // src/components/core/inputs/select.helper.tsx
5
5
  var o = 40, s = 224, c = 6;
6
6
  function l(e, a, l) {
7
7
  let u = r(null), [d, f] = i(0), [p, m] = i(0), h = p || (l ? 52 : 40), g = a > o, _ = g ? Math.max(0, Math.floor(d / h) - c) : 0, v = g ? Math.min(a, Math.ceil((d + s) / h) + c) : a, y = g ? _ * h : 0, b = g ? (a - v) * h : 0;
@@ -42,5 +42,4 @@ var u = (t, n) => t === void 0 ? null : t ? /* @__PURE__ */ a("img", {
42
42
  className: e("flex h-9 w-12 shrink-0 items-center justify-center rounded bg-muted text-[9px] text-muted-foreground", n),
43
43
  children: "—"
44
44
  });
45
- //#endregion
46
45
  export { u as renderOptionThumbnail, l as useOptionWindow };
@@ -6,7 +6,7 @@ import { useLanguage as d } from "../../../hooks/ui/useLanguage.js";
6
6
  import "react";
7
7
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
8
8
  import { LanguagesIcon as m } from "lucide-react";
9
- //#region src/components/core/language/LanguageSelector.tsx
9
+ // src/components/core/language/LanguageSelector.tsx
10
10
  function h({ languageOptions: h, variant: g = "select", id: _, className: v }) {
11
11
  let { t: y } = e(), { currentLanguageOption: b, nextLanguageOption: x, changeLanguage: S, cycleLanguage: C } = d(h);
12
12
  if (g === "mini") {
@@ -55,5 +55,4 @@ function h({ languageOptions: h, variant: g = "select", id: _, className: v }) {
55
55
  })]
56
56
  });
57
57
  }
58
- //#endregion
59
58
  export { h as LanguageSelector };