@brumaombra/ui-vintage 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/ChineseFlag-CVrOCbRz.js +18 -0
  2. package/dist/{EmptyStateCard.vue_vue_type_script_setup_true_lang-BYKX6WRQ.js → EmptyStateCard.vue_vue_type_script_setup_true_lang-DkCsOraz.js} +2 -2
  3. package/dist/EnglishFlag-BrpG8XMW.js +18 -0
  4. package/dist/FrenchFlag-CUdQacS3.js +35 -0
  5. package/dist/GermanFlag-Bc1CeEHw.js +35 -0
  6. package/dist/ItalianFlag-BAdg13z7.js +34 -0
  7. package/dist/JapaneseFlag-Dnd2ITzZ.js +27 -0
  8. package/dist/{LandingFooter.vue_vue_type_script_setup_true_lang-CDy30mYg.js → LandingFooter.vue_vue_type_script_setup_true_lang-Do7mz0nK.js} +4 -4
  9. package/dist/{LoadMoreButton.vue_vue_type_script_setup_true_lang-CGhFcsF-.js → LoadMoreButton.vue_vue_type_script_setup_true_lang-y6FveJPg.js} +2 -2
  10. package/dist/{LoadingStateCard.vue_vue_type_script_setup_true_lang-DwyQjtZ3.js → LoadingStateCard.vue_vue_type_script_setup_true_lang-Czptkhu8.js} +2 -2
  11. package/dist/{MessageToast-uKrMyOZf.js → MessageToast-CDeSPwXN.js} +2 -2
  12. package/dist/RussianFlag-Cnc4PHmq.js +29 -0
  13. package/dist/SpanishFlag-Dy-C9kGk.js +28 -0
  14. package/dist/card-grid.js +3 -3
  15. package/dist/components/language-flag/LanguageFlag.vue.d.ts +1 -1
  16. package/dist/components/language-flag/flags/ChineseFlag.vue.d.ts +2 -0
  17. package/dist/components/language-flag/flags/FrenchFlag.vue.d.ts +2 -0
  18. package/dist/components/language-flag/flags/GermanFlag.vue.d.ts +2 -0
  19. package/dist/components/language-flag/flags/JapaneseFlag.vue.d.ts +2 -0
  20. package/dist/components/language-flag/flags/RussianFlag.vue.d.ts +2 -0
  21. package/dist/components/language-flag/flags/SpanishFlag.vue.d.ts +2 -0
  22. package/dist/components/language-flag/index.d.ts +6 -0
  23. package/dist/components/language-selector/LanguageSelector.vue.d.ts +6 -10
  24. package/dist/components/language-selector/index.d.ts +1 -1
  25. package/dist/empty-state-card.js +1 -1
  26. package/dist/i18n/en.json.d.ts +1 -1
  27. package/dist/i18n/it.json.d.ts +1 -1
  28. package/dist/i18n.js +102 -104
  29. package/dist/landing-footer.js +1 -1
  30. package/dist/landing.js +1 -1
  31. package/dist/language-flag.js +58 -5
  32. package/dist/language-selector.js +69 -24
  33. package/dist/lib/i18n.d.ts +4 -4
  34. package/dist/load-more-button.js +1 -1
  35. package/dist/loading-state-card.js +1 -1
  36. package/dist/message-dialog.js +3 -3
  37. package/dist/message-toast.js +1 -1
  38. package/dist/style.css +4 -4
  39. package/dist/theme-selector.js +5 -5
  40. package/package.json +1 -1
  41. package/dist/LanguageFlag.vue_vue_type_script_setup_true_lang-CgszKeNv.js +0 -68
@@ -0,0 +1,18 @@
1
+ import { openBlock, createElementBlock, createStaticVNode } from "vue";
2
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
3
+ const _sfc_main = {};
4
+ const _hoisted_1 = {
5
+ xmlns: "http://www.w3.org/2000/svg",
6
+ viewBox: "0 0 640 480",
7
+ "aria-hidden": "true",
8
+ focusable: "false"
9
+ };
10
+ function _sfc_render(_ctx, _cache) {
11
+ return openBlock(), createElementBlock("svg", _hoisted_1, _cache[0] || (_cache[0] = [
12
+ createStaticVNode('<path fill="#ee1c25" d="M0 0h640v480H0z"></path><path fill="#ff0" d="M76.8 177.6 120 48l43.2 129.6H48z" transform="matrix(.55555 0 0 .55555 53.333 53.333)"></path><path fill="#ff0" d="M76.8 177.6 120 48l43.2 129.6H48z" transform="matrix(-.0955 -.15916 .15916 -.0955 240.3 48)"></path><path fill="#ff0" d="M76.8 177.6 120 48l43.2 129.6H48z" transform="matrix(-.0262 -.18395 .18395 -.0262 288 95.8)"></path><path fill="#ff0" d="M76.8 177.6 120 48l43.2 129.6H48z" transform="matrix(.0511 -.17849 .17849 .0511 288 168)"></path><path fill="#ff0" d="M76.8 177.6 120 48l43.2 129.6H48z" transform="matrix(.1161 -.14497 .14497 .1161 240 216)"></path>', 6)
13
+ ]));
14
+ }
15
+ const ChineseFlag = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
16
+ export {
17
+ ChineseFlag as default
18
+ };
@@ -27,8 +27,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
27
27
  const props = __props;
28
28
  const { t } = useI18n();
29
29
  const hasCustomCopy = computed(() => Boolean(props.title || props.description || props.titleKey || props.descriptionKey));
30
- const resolvedTitle = computed(() => props.title || (props.titleKey ? t(props.titleKey) : "") || (!hasCustomCopy.value ? t("ui.common.empty.title") : "") || (!hasCustomCopy.value ? "Nothing here yet" : ""));
31
- const resolvedDescription = computed(() => props.description || (props.descriptionKey ? t(props.descriptionKey) : "") || (!hasCustomCopy.value ? t("ui.common.empty.description") : "") || (!hasCustomCopy.value ? "There is no content to show right now." : ""));
30
+ const resolvedTitle = computed(() => props.title || (props.titleKey ? t(props.titleKey) : "") || (!hasCustomCopy.value ? t("ui-vintage.common.empty.title") : "") || (!hasCustomCopy.value ? "Nothing here yet" : ""));
31
+ const resolvedDescription = computed(() => props.description || (props.descriptionKey ? t(props.descriptionKey) : "") || (!hasCustomCopy.value ? t("ui-vintage.common.empty.description") : "") || (!hasCustomCopy.value ? "There is no content to show right now." : ""));
32
32
  return (_ctx, _cache) => {
33
33
  return openBlock(), createBlock(unref(_sfc_main$1), { class: "flex flex-col items-center justify-center px-4 py-8 text-center md:py-12" }, {
34
34
  default: withCtx(() => [
@@ -0,0 +1,18 @@
1
+ import { openBlock, createElementBlock, createStaticVNode } from "vue";
2
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
3
+ const _sfc_main = {};
4
+ const _hoisted_1 = {
5
+ xmlns: "http://www.w3.org/2000/svg",
6
+ viewBox: "0 0 640 480",
7
+ "aria-hidden": "true",
8
+ focusable: "false"
9
+ };
10
+ function _sfc_render(_ctx, _cache) {
11
+ return openBlock(), createElementBlock("svg", _hoisted_1, _cache[0] || (_cache[0] = [
12
+ createStaticVNode('<path fill="#012169" d="M0 0h640v480H0z"></path><path fill="#FFF" d="m75 0 244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z"></path><path fill="#C8102E" d="m424 281 216 159v40L369 281zm-184 20 6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z"></path><path fill="#FFF" d="M241 0v480h160V0zM0 160v160h640V160z"></path><path fill="#C8102E" d="M0 193v96h640v-96zM273 0v480h96V0z"></path>', 5)
13
+ ]));
14
+ }
15
+ const EnglishFlag = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
16
+ export {
17
+ EnglishFlag as default
18
+ };
@@ -0,0 +1,35 @@
1
+ import { openBlock, createElementBlock, createElementVNode } from "vue";
2
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
3
+ const _sfc_main = {};
4
+ const _hoisted_1 = {
5
+ xmlns: "http://www.w3.org/2000/svg",
6
+ viewBox: "0 0 3 2",
7
+ "aria-hidden": "true",
8
+ focusable: "false"
9
+ };
10
+ function _sfc_render(_ctx, _cache) {
11
+ return openBlock(), createElementBlock("svg", _hoisted_1, _cache[0] || (_cache[0] = [
12
+ createElementVNode("rect", {
13
+ width: "1",
14
+ height: "2",
15
+ x: "0",
16
+ fill: "#002654"
17
+ }, null, -1),
18
+ createElementVNode("rect", {
19
+ width: "1",
20
+ height: "2",
21
+ x: "1",
22
+ fill: "#ffffff"
23
+ }, null, -1),
24
+ createElementVNode("rect", {
25
+ width: "1",
26
+ height: "2",
27
+ x: "2",
28
+ fill: "#ce1126"
29
+ }, null, -1)
30
+ ]));
31
+ }
32
+ const FrenchFlag = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
33
+ export {
34
+ FrenchFlag as default
35
+ };
@@ -0,0 +1,35 @@
1
+ import { openBlock, createElementBlock, createElementVNode } from "vue";
2
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
3
+ const _sfc_main = {};
4
+ const _hoisted_1 = {
5
+ xmlns: "http://www.w3.org/2000/svg",
6
+ viewBox: "0 0 5 3",
7
+ "aria-hidden": "true",
8
+ focusable: "false"
9
+ };
10
+ function _sfc_render(_ctx, _cache) {
11
+ return openBlock(), createElementBlock("svg", _hoisted_1, _cache[0] || (_cache[0] = [
12
+ createElementVNode("rect", {
13
+ width: "5",
14
+ height: "1",
15
+ y: "0",
16
+ fill: "#000000"
17
+ }, null, -1),
18
+ createElementVNode("rect", {
19
+ width: "5",
20
+ height: "1",
21
+ y: "1",
22
+ fill: "#dd0000"
23
+ }, null, -1),
24
+ createElementVNode("rect", {
25
+ width: "5",
26
+ height: "1",
27
+ y: "2",
28
+ fill: "#ffce00"
29
+ }, null, -1)
30
+ ]));
31
+ }
32
+ const GermanFlag = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
33
+ export {
34
+ GermanFlag as default
35
+ };
@@ -0,0 +1,34 @@
1
+ import { openBlock, createElementBlock, createElementVNode } from "vue";
2
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
3
+ const _sfc_main = {};
4
+ const _hoisted_1 = {
5
+ xmlns: "http://www.w3.org/2000/svg",
6
+ viewBox: "0 0 640 480",
7
+ "aria-hidden": "true",
8
+ focusable: "false"
9
+ };
10
+ function _sfc_render(_ctx, _cache) {
11
+ return openBlock(), createElementBlock("svg", _hoisted_1, _cache[0] || (_cache[0] = [
12
+ createElementVNode("g", {
13
+ "fill-rule": "evenodd",
14
+ "stroke-width": "1pt"
15
+ }, [
16
+ createElementVNode("path", {
17
+ fill: "#fff",
18
+ d: "M0 0h640v480H0z"
19
+ }),
20
+ createElementVNode("path", {
21
+ fill: "#009246",
22
+ d: "M0 0h213.3v480H0z"
23
+ }),
24
+ createElementVNode("path", {
25
+ fill: "#ce2b37",
26
+ d: "M426.7 0H640v480H426.7z"
27
+ })
28
+ ], -1)
29
+ ]));
30
+ }
31
+ const ItalianFlag = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
32
+ export {
33
+ ItalianFlag as default
34
+ };
@@ -0,0 +1,27 @@
1
+ import { openBlock, createElementBlock, createElementVNode } from "vue";
2
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
3
+ const _sfc_main = {};
4
+ const _hoisted_1 = {
5
+ xmlns: "http://www.w3.org/2000/svg",
6
+ viewBox: "0 0 640 480",
7
+ "aria-hidden": "true",
8
+ focusable: "false"
9
+ };
10
+ function _sfc_render(_ctx, _cache) {
11
+ return openBlock(), createElementBlock("svg", _hoisted_1, _cache[0] || (_cache[0] = [
12
+ createElementVNode("path", {
13
+ fill: "#fff",
14
+ d: "M0 0h640v480H0z"
15
+ }, null, -1),
16
+ createElementVNode("circle", {
17
+ cx: "320",
18
+ cy: "240",
19
+ r: "112",
20
+ fill: "#bc002d"
21
+ }, null, -1)
22
+ ]));
23
+ }
24
+ const JapaneseFlag = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
25
+ export {
26
+ JapaneseFlag as default
27
+ };
@@ -67,7 +67,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
67
67
  class: normalizeClass(unref(cn)("mx-auto max-w-7xl px-4 py-12 sm:px-6 lg:px-8", props.containerClass))
68
68
  }, [
69
69
  createElementVNode("div", {
70
- class: normalizeClass(unref(cn)("flex flex-col gap-8", !hasSingleSection.value && "md:flex-row md:items-start md:justify-between"))
70
+ class: normalizeClass(unref(cn)("flex flex-col gap-8 md:flex-row md:items-start md:justify-between"))
71
71
  }, [
72
72
  createElementVNode("div", {
73
73
  class: normalizeClass(unref(cn)("max-w-md flex-1", props.brandClass))
@@ -133,14 +133,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
133
133
  key: 0,
134
134
  class: normalizeClass(unref(cn)("mt-12 flex flex-col items-center justify-between gap-4 border-t border-border pt-8 text-xs md:text-sm text-muted-foreground md:flex-row", props.bottomBarClass))
135
135
  }, [
136
- createElementVNode("div", null, " © " + toDisplayString(props.year) + " " + toDisplayString(props.appName) + ". " + toDisplayString(unref(t)("ui.footer.allRightsReserved")), 1),
136
+ createElementVNode("div", null, " © " + toDisplayString(props.year) + " " + toDisplayString(props.appName) + ". " + toDisplayString(unref(t)("ui-vintage.footer.allRightsReserved")), 1),
137
137
  props.authorName && props.authorLink ? (openBlock(), createElementBlock("div", _hoisted_10, [
138
- createElementVNode("span", null, toDisplayString(unref(t)("ui.footer.madeWith")), 1),
138
+ createElementVNode("span", null, toDisplayString(unref(t)("ui-vintage.footer.madeWith")), 1),
139
139
  createVNode(unref(HugeiconsIcon), {
140
140
  icon: unref(DB),
141
141
  class: "size-4 shrink-0 text-red-700 dark:text-red-400"
142
142
  }, null, 8, ["icon"]),
143
- createElementVNode("span", null, toDisplayString(unref(t)("ui.footer.by")), 1),
143
+ createElementVNode("span", null, toDisplayString(unref(t)("ui-vintage.footer.by")), 1),
144
144
  createElementVNode("a", {
145
145
  href: props.authorLink,
146
146
  target: "_blank",
@@ -16,8 +16,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
16
16
  const props = __props;
17
17
  const emits = __emit;
18
18
  const { t } = useI18n();
19
- const resolvedText = computed(() => props.text || t("ui.buttons.loadMore") || "Load more");
20
- const resolvedLoadingText = computed(() => props.loadingText || t("ui.buttons.loading") || "Loading");
19
+ const resolvedText = computed(() => props.text || t("ui-vintage.buttons.loadMore") || "Load more");
20
+ const resolvedLoadingText = computed(() => props.loadingText || t("ui-vintage.buttons.loading") || "Loading");
21
21
  const handleClick = () => {
22
22
  emits("load-more");
23
23
  };
@@ -23,8 +23,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
23
23
  setup(__props) {
24
24
  const props = __props;
25
25
  const { t } = useI18n();
26
- const resolvedTitle = computed(() => props.title || t("ui.common.loading.title") || "Loading...");
27
- const resolvedDescription = computed(() => props.description || t("ui.common.loading.description") || "Please wait a moment while we load the content.");
26
+ const resolvedTitle = computed(() => props.title || t("ui-vintage.common.loading.title") || "Loading...");
27
+ const resolvedDescription = computed(() => props.description || t("ui-vintage.common.loading.description") || "Please wait a moment while we load the content.");
28
28
  return (_ctx, _cache) => {
29
29
  return openBlock(), createBlock(unref(_sfc_main$1), { class: "flex flex-col items-center justify-center px-4 py-8 text-center md:py-12" }, {
30
30
  default: withCtx(() => [
@@ -12,7 +12,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
12
12
  __name: "MessageToast",
13
13
  setup(__props) {
14
14
  const currentToast = computed(() => messageToastState.current);
15
- const closeAriaLabel = computed(() => getUiVintageRuntimeMessage("ui.buttons.close", "Close"));
15
+ const closeAriaLabel = computed(() => getUiVintageRuntimeMessage("ui-vintage.buttons.close", "Close"));
16
16
  const toastType = computed(() => {
17
17
  var _a;
18
18
  return ((_a = currentToast.value) == null ? void 0 : _a.type) ?? "success";
@@ -73,7 +73,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
73
73
  };
74
74
  }
75
75
  });
76
- const MessageToast = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-edc1d178"]]);
76
+ const MessageToast = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-602908ae"]]);
77
77
  export {
78
78
  MessageToast as default
79
79
  };
@@ -0,0 +1,29 @@
1
+ import { openBlock, createElementBlock, createElementVNode } from "vue";
2
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
3
+ const _sfc_main = {};
4
+ const _hoisted_1 = {
5
+ xmlns: "http://www.w3.org/2000/svg",
6
+ viewBox: "0 0 640 480",
7
+ "aria-hidden": "true",
8
+ focusable: "false"
9
+ };
10
+ function _sfc_render(_ctx, _cache) {
11
+ return openBlock(), createElementBlock("svg", _hoisted_1, _cache[0] || (_cache[0] = [
12
+ createElementVNode("path", {
13
+ fill: "#fff",
14
+ d: "M0 0h640v160H0z"
15
+ }, null, -1),
16
+ createElementVNode("path", {
17
+ fill: "#0039a6",
18
+ d: "M0 160h640v160H0z"
19
+ }, null, -1),
20
+ createElementVNode("path", {
21
+ fill: "#d52b1e",
22
+ d: "M0 320h640v160H0z"
23
+ }, null, -1)
24
+ ]));
25
+ }
26
+ const RussianFlag = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
27
+ export {
28
+ RussianFlag as default
29
+ };
@@ -0,0 +1,28 @@
1
+ import { openBlock, createElementBlock, createElementVNode } from "vue";
2
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
3
+ const _sfc_main = {};
4
+ const _hoisted_1 = {
5
+ xmlns: "http://www.w3.org/2000/svg",
6
+ viewBox: "0 0 750 500",
7
+ "aria-hidden": "true",
8
+ focusable: "false"
9
+ };
10
+ function _sfc_render(_ctx, _cache) {
11
+ return openBlock(), createElementBlock("svg", _hoisted_1, _cache[0] || (_cache[0] = [
12
+ createElementVNode("rect", {
13
+ width: "750",
14
+ height: "500",
15
+ fill: "#c60b1e"
16
+ }, null, -1),
17
+ createElementVNode("rect", {
18
+ y: "125",
19
+ width: "750",
20
+ height: "250",
21
+ fill: "#ffc400"
22
+ }, null, -1)
23
+ ]));
24
+ }
25
+ const SpanishFlag = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
26
+ export {
27
+ SpanishFlag as default
28
+ };
package/dist/card-grid.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createBlock, unref, Fragment, renderList, renderSlot, createVNode, createCommentVNode } from "vue";
2
2
  import { u as u7 } from "./index.min-CZ9FIOXr.js";
3
- import { _ as _sfc_main$2 } from "./EmptyStateCard.vue_vue_type_script_setup_true_lang-BYKX6WRQ.js";
4
- import { _ as _sfc_main$3 } from "./LoadMoreButton.vue_vue_type_script_setup_true_lang-CGhFcsF-.js";
5
- import { _ as _sfc_main$1 } from "./LoadingStateCard.vue_vue_type_script_setup_true_lang-DwyQjtZ3.js";
3
+ import { _ as _sfc_main$2 } from "./EmptyStateCard.vue_vue_type_script_setup_true_lang-DkCsOraz.js";
4
+ import { _ as _sfc_main$3 } from "./LoadMoreButton.vue_vue_type_script_setup_true_lang-y6FveJPg.js";
5
+ import { _ as _sfc_main$1 } from "./LoadingStateCard.vue_vue_type_script_setup_true_lang-Czptkhu8.js";
6
6
  const _hoisted_1 = {
7
7
  key: 2,
8
8
  class: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4 md:gap-6 xl:gap-4"
@@ -10,5 +10,5 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
10
10
  };
11
11
  }>> & Readonly<{}>, {
12
12
  code: string;
13
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, SVGSVGElement>;
13
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
14
14
  export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, SVGSVGElement>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, SVGSVGElement>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, SVGSVGElement>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, SVGSVGElement>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, SVGSVGElement>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, SVGSVGElement>;
2
+ export default _default;
@@ -1,4 +1,10 @@
1
1
  export { default } from './LanguageFlag.vue';
2
2
  export { default as LanguageFlag } from './LanguageFlag.vue';
3
3
  export { default as EnglishFlag } from './flags/EnglishFlag.vue';
4
+ export { default as FrenchFlag } from './flags/FrenchFlag.vue';
5
+ export { default as GermanFlag } from './flags/GermanFlag.vue';
4
6
  export { default as ItalianFlag } from './flags/ItalianFlag.vue';
7
+ export { default as ChineseFlag } from './flags/ChineseFlag.vue';
8
+ export { default as JapaneseFlag } from './flags/JapaneseFlag.vue';
9
+ export { default as RussianFlag } from './flags/RussianFlag.vue';
10
+ export { default as SpanishFlag } from './flags/SpanishFlag.vue';
@@ -1,17 +1,13 @@
1
1
  import { PropType } from 'vue';
2
- export interface LanguageSelectorOption {
3
- code: string;
4
- label: string;
5
- flagCode?: string;
6
- }
2
+ export type LanguageSelectorCode = string;
7
3
  declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
8
4
  modelValue: {
9
5
  type: StringConstructor;
10
6
  default: string;
11
7
  };
12
8
  languages: {
13
- type: PropType<LanguageSelectorOption[]>;
14
- default: () => never[];
9
+ type: PropType<LanguageSelectorCode[]>;
10
+ default: () => string[];
15
11
  };
16
12
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
17
13
  select: (value: string) => any;
@@ -22,14 +18,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
22
18
  default: string;
23
19
  };
24
20
  languages: {
25
- type: PropType<LanguageSelectorOption[]>;
26
- default: () => never[];
21
+ type: PropType<LanguageSelectorCode[]>;
22
+ default: () => string[];
27
23
  };
28
24
  }>> & Readonly<{
29
25
  onSelect?: ((value: string) => any) | undefined;
30
26
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
31
27
  }>, {
32
28
  modelValue: string;
33
- languages: LanguageSelectorOption[];
29
+ languages: string[];
34
30
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
35
31
  export default _default;
@@ -1,3 +1,3 @@
1
1
  export { default } from './LanguageSelector.vue';
2
2
  export { default as LanguageSelector } from './LanguageSelector.vue';
3
- export type { LanguageSelectorOption } from './LanguageSelector.vue';
3
+ export type { LanguageSelectorCode } from './LanguageSelector.vue';
@@ -1,4 +1,4 @@
1
- import { _, _ as _2 } from "./EmptyStateCard.vue_vue_type_script_setup_true_lang-BYKX6WRQ.js";
1
+ import { _, _ as _2 } from "./EmptyStateCard.vue_vue_type_script_setup_true_lang-DkCsOraz.js";
2
2
  export {
3
3
  _ as EmptyStateCard,
4
4
  _2 as default
@@ -1,5 +1,5 @@
1
1
  declare const _default: {
2
- "ui": {
2
+ "ui-vintage": {
3
3
  "common": {
4
4
  "empty": {
5
5
  "title": "Nothing here yet",
@@ -1,5 +1,5 @@
1
1
  declare const _default: {
2
- "ui": {
2
+ "ui-vintage": {
3
3
  "common": {
4
4
  "empty": {
5
5
  "title": "Non c'è ancora niente qui",
package/dist/i18n.js CHANGED
@@ -1,115 +1,113 @@
1
- const ui$1 = {
2
- common: {
3
- empty: {
4
- title: "Nothing here yet",
5
- description: "There is no content to show right now."
1
+ const en = {
2
+ "ui-vintage": {
3
+ common: {
4
+ empty: {
5
+ title: "Nothing here yet",
6
+ description: "There is no content to show right now."
7
+ },
8
+ loading: {
9
+ title: "Loading...",
10
+ description: "Please wait a moment while we load the content."
11
+ }
12
+ },
13
+ buttons: {
14
+ all: "All",
15
+ close: "Close",
16
+ cancel: "Cancel",
17
+ "delete": "Delete",
18
+ confirm: "Confirm",
19
+ filter: "Filter",
20
+ search: "Search",
21
+ apply: "Apply",
22
+ clear: "Clear",
23
+ loading: "Loading",
24
+ loadMore: "Load more",
25
+ save: "Save",
26
+ update: "Update",
27
+ goBack: "Go back"
28
+ },
29
+ theme: {
30
+ light: "Light",
31
+ dark: "Dark",
32
+ auto: "Auto",
33
+ title: "Choose theme",
34
+ ariaLabel: "Toggle theme selector"
35
+ },
36
+ language: {
37
+ title: "Choose language",
38
+ ariaLabel: "Language selector"
6
39
  },
7
- loading: {
8
- title: "Loading...",
9
- description: "Please wait a moment while we load the content."
40
+ footer: {
41
+ madeWith: "Made with",
42
+ by: "by",
43
+ allRightsReserved: "All rights reserved."
44
+ },
45
+ select: {
46
+ defaultPlaceholder: "Select an option"
47
+ },
48
+ messageDialog: {
49
+ error: "Error",
50
+ success: "Success",
51
+ info: "Information",
52
+ warning: "Warning"
10
53
  }
11
- },
12
- buttons: {
13
- all: "All",
14
- close: "Close",
15
- cancel: "Cancel",
16
- "delete": "Delete",
17
- confirm: "Confirm",
18
- filter: "Filter",
19
- search: "Search",
20
- apply: "Apply",
21
- clear: "Clear",
22
- loading: "Loading",
23
- loadMore: "Load more",
24
- save: "Save",
25
- update: "Update",
26
- goBack: "Go back"
27
- },
28
- theme: {
29
- light: "Light",
30
- dark: "Dark",
31
- auto: "Auto",
32
- title: "Choose theme",
33
- ariaLabel: "Toggle theme selector"
34
- },
35
- language: {
36
- title: "Choose language",
37
- ariaLabel: "Language selector"
38
- },
39
- footer: {
40
- madeWith: "Made with",
41
- by: "by",
42
- allRightsReserved: "All rights reserved."
43
- },
44
- select: {
45
- defaultPlaceholder: "Select an option"
46
- },
47
- messageDialog: {
48
- error: "Error",
49
- success: "Success",
50
- info: "Information",
51
- warning: "Warning"
52
54
  }
53
55
  };
54
- const en = {
55
- ui: ui$1
56
- };
57
- const ui = {
58
- common: {
59
- empty: {
60
- title: "Non c'è ancora niente qui",
61
- description: "Al momento non c'è alcun contenuto da mostrare."
56
+ const it = {
57
+ "ui-vintage": {
58
+ common: {
59
+ empty: {
60
+ title: "Non c'è ancora niente qui",
61
+ description: "Al momento non c'è alcun contenuto da mostrare."
62
+ },
63
+ loading: {
64
+ title: "Caricamento...",
65
+ description: "Attendi un momento mentre carichiamo il contenuto."
66
+ }
67
+ },
68
+ buttons: {
69
+ all: "Tutti",
70
+ close: "Chiudi",
71
+ cancel: "Annulla",
72
+ "delete": "Elimina",
73
+ confirm: "Conferma",
74
+ filter: "Filtra",
75
+ search: "Cerca",
76
+ apply: "Applica",
77
+ clear: "Pulisci",
78
+ loading: "Caricamento",
79
+ loadMore: "Carica altro",
80
+ save: "Salva",
81
+ update: "Aggiorna",
82
+ goBack: "Torna indietro"
83
+ },
84
+ theme: {
85
+ light: "Chiaro",
86
+ dark: "Scuro",
87
+ auto: "Automatico",
88
+ title: "Scegli tema",
89
+ ariaLabel: "Selettore tema"
90
+ },
91
+ language: {
92
+ title: "Scegli lingua",
93
+ ariaLabel: "Selettore lingua"
62
94
  },
63
- loading: {
64
- title: "Caricamento...",
65
- description: "Attendi un momento mentre carichiamo il contenuto."
95
+ footer: {
96
+ madeWith: "Fatto con",
97
+ by: "da",
98
+ allRightsReserved: "Tutti i diritti riservati."
99
+ },
100
+ select: {
101
+ defaultPlaceholder: "Seleziona un'opzione"
102
+ },
103
+ messageDialog: {
104
+ error: "Errore",
105
+ success: "Successo",
106
+ info: "Informazione",
107
+ warning: "Attenzione"
66
108
  }
67
- },
68
- buttons: {
69
- all: "Tutti",
70
- close: "Chiudi",
71
- cancel: "Annulla",
72
- "delete": "Elimina",
73
- confirm: "Conferma",
74
- filter: "Filtra",
75
- search: "Cerca",
76
- apply: "Applica",
77
- clear: "Pulisci",
78
- loading: "Caricamento",
79
- loadMore: "Carica altro",
80
- save: "Salva",
81
- update: "Aggiorna",
82
- goBack: "Torna indietro"
83
- },
84
- theme: {
85
- light: "Chiaro",
86
- dark: "Scuro",
87
- auto: "Automatico",
88
- title: "Scegli tema",
89
- ariaLabel: "Selettore tema"
90
- },
91
- language: {
92
- title: "Scegli lingua",
93
- ariaLabel: "Selettore lingua"
94
- },
95
- footer: {
96
- madeWith: "Fatto con",
97
- by: "da",
98
- allRightsReserved: "Tutti i diritti riservati."
99
- },
100
- select: {
101
- defaultPlaceholder: "Seleziona un'opzione"
102
- },
103
- messageDialog: {
104
- error: "Errore",
105
- success: "Successo",
106
- info: "Informazione",
107
- warning: "Attenzione"
108
109
  }
109
110
  };
110
- const it = {
111
- ui
112
- };
113
111
  const uiVintageMessages = {
114
112
  en,
115
113
  it
@@ -1,4 +1,4 @@
1
- import { _, _ as _2 } from "./LandingFooter.vue_vue_type_script_setup_true_lang-CDy30mYg.js";
1
+ import { _, _ as _2 } from "./LandingFooter.vue_vue_type_script_setup_true_lang-Do7mz0nK.js";
2
2
  export {
3
3
  _ as LandingFooter,
4
4
  _2 as default
package/dist/landing.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { _, _ as _2 } from "./LandingNavbar.vue_vue_type_script_setup_true_lang-0jX2tmdb.js";
2
2
  import { _ as _3 } from "./LandingContent.vue_vue_type_script_setup_true_lang-Wgtl_yeD.js";
3
3
  import { _ as _4 } from "./LandingShell.vue_vue_type_script_setup_true_lang-BXwdQR24.js";
4
- import { _ as _5 } from "./LandingFooter.vue_vue_type_script_setup_true_lang-CDy30mYg.js";
4
+ import { _ as _5 } from "./LandingFooter.vue_vue_type_script_setup_true_lang-Do7mz0nK.js";
5
5
  export {
6
6
  _3 as LandingContent,
7
7
  _5 as LandingFooter,
@@ -1,7 +1,60 @@
1
- import { E, I, _, _ as _2 } from "./LanguageFlag.vue_vue_type_script_setup_true_lang-CgszKeNv.js";
1
+ import { defineComponent, computed, openBlock, createBlock, resolveDynamicComponent, normalizeProps, guardReactiveProps, defineAsyncComponent } from "vue";
2
+ import { default as default2 } from "./EnglishFlag-BrpG8XMW.js";
3
+ import { default as default3 } from "./FrenchFlag-CUdQacS3.js";
4
+ import { default as default4 } from "./GermanFlag-Bc1CeEHw.js";
5
+ import { default as default5 } from "./ItalianFlag-BAdg13z7.js";
6
+ import { default as default6 } from "./ChineseFlag-CVrOCbRz.js";
7
+ import { default as default7 } from "./JapaneseFlag-Dnd2ITzZ.js";
8
+ import { default as default8 } from "./RussianFlag-Cnc4PHmq.js";
9
+ import { default as default9 } from "./SpanishFlag-Dy-C9kGk.js";
10
+ const _sfc_main = /* @__PURE__ */ defineComponent({
11
+ __name: "LanguageFlag",
12
+ props: {
13
+ code: { type: String, default: "en" }
14
+ },
15
+ setup(__props) {
16
+ const supportedFlagLoaders = {
17
+ en: () => import("./EnglishFlag-BrpG8XMW.js"),
18
+ it: () => import("./ItalianFlag-BAdg13z7.js"),
19
+ fr: () => import("./FrenchFlag-CUdQacS3.js"),
20
+ es: () => import("./SpanishFlag-Dy-C9kGk.js"),
21
+ de: () => import("./GermanFlag-Bc1CeEHw.js"),
22
+ zh: () => import("./ChineseFlag-CVrOCbRz.js"),
23
+ ja: () => import("./JapaneseFlag-Dnd2ITzZ.js"),
24
+ ru: () => import("./RussianFlag-Cnc4PHmq.js")
25
+ };
26
+ const asyncFlagComponentCache = /* @__PURE__ */ new Map();
27
+ const isSupportedLanguageCode = (code) => {
28
+ return code in supportedFlagLoaders;
29
+ };
30
+ const getAsyncFlagComponent = (code) => {
31
+ const cachedComponent = asyncFlagComponentCache.get(code);
32
+ if (cachedComponent) {
33
+ return cachedComponent;
34
+ }
35
+ const asyncComponent = defineAsyncComponent(supportedFlagLoaders[code]);
36
+ asyncFlagComponentCache.set(code, asyncComponent);
37
+ return asyncComponent;
38
+ };
39
+ const props = __props;
40
+ const flagComponent = computed(() => {
41
+ const resolvedCode = isSupportedLanguageCode(props.code) ? props.code : "en";
42
+ return getAsyncFlagComponent(resolvedCode);
43
+ });
44
+ return (_ctx, _cache) => {
45
+ return openBlock(), createBlock(resolveDynamicComponent(flagComponent.value), normalizeProps(guardReactiveProps(_ctx.$attrs)), null, 16);
46
+ };
47
+ }
48
+ });
2
49
  export {
3
- E as EnglishFlag,
4
- I as ItalianFlag,
5
- _ as LanguageFlag,
6
- _2 as default
50
+ default6 as ChineseFlag,
51
+ default2 as EnglishFlag,
52
+ default3 as FrenchFlag,
53
+ default4 as GermanFlag,
54
+ default5 as ItalianFlag,
55
+ default7 as JapaneseFlag,
56
+ _sfc_main as LanguageFlag,
57
+ default8 as RussianFlag,
58
+ default9 as SpanishFlag,
59
+ _sfc_main as default
7
60
  };
@@ -1,11 +1,10 @@
1
- import { defineComponent, ref, computed, openBlock, createBlock, unref, withCtx, createVNode, createCommentVNode, createElementBlock, Fragment, renderList, createElementVNode, toDisplayString, normalizeClass } from "vue";
1
+ import { defineComponent, ref, computed, openBlock, createBlock, unref, withCtx, createVNode, resolveDynamicComponent, createCommentVNode, createElementBlock, Fragment, renderList, createElementVNode, toDisplayString, normalizeClass, defineAsyncComponent } from "vue";
2
2
  import { useI18n } from "vue-i18n";
3
3
  import { T as TWr } from "./index.min-CZ9FIOXr.js";
4
4
  import { H as HugeiconsIcon } from "./HugeiconsIcon.vue-By2RXWWz.js";
5
5
  import { Button as _sfc_main$3 } from "./button.js";
6
- import { Command as _sfc_main$6, CommandList as _sfc_main$7, CommandGroup as _sfc_main$8, CommandItem as _sfc_main$9 } from "./command.js";
7
- import { _ as _sfc_main$1, a as _sfc_main$2, b as _sfc_main$5 } from "./PopoverTrigger.vue_vue_type_script_setup_true_lang-Cf33q_yT.js";
8
- import { _ as _sfc_main$4 } from "./LanguageFlag.vue_vue_type_script_setup_true_lang-CgszKeNv.js";
6
+ import { Command as _sfc_main$5, CommandList as _sfc_main$6, CommandGroup as _sfc_main$7, CommandItem as _sfc_main$8 } from "./command.js";
7
+ import { _ as _sfc_main$1, a as _sfc_main$2, b as _sfc_main$4 } from "./PopoverTrigger.vue_vue_type_script_setup_true_lang-Cf33q_yT.js";
9
8
  const _hoisted_1 = { class: "flex-1" };
10
9
  const _sfc_main = /* @__PURE__ */ defineComponent({
11
10
  __name: "LanguageSelector",
@@ -13,25 +12,75 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
13
12
  modelValue: { type: String, default: "" },
14
13
  languages: {
15
14
  type: Array,
16
- default: () => []
15
+ default: () => ["en", "it"]
17
16
  }
18
17
  },
19
18
  emits: ["update:modelValue", "select"],
20
19
  setup(__props, { emit: __emit }) {
20
+ const supportedLanguages = [
21
+ { code: "en", label: "English", loadFlag: () => import("./EnglishFlag-BrpG8XMW.js") },
22
+ { code: "it", label: "Italiano", loadFlag: () => import("./ItalianFlag-BAdg13z7.js") },
23
+ { code: "fr", label: "Francais", loadFlag: () => import("./FrenchFlag-CUdQacS3.js") },
24
+ { code: "es", label: "Espanol", loadFlag: () => import("./SpanishFlag-Dy-C9kGk.js") },
25
+ { code: "de", label: "Deutsch", loadFlag: () => import("./GermanFlag-Bc1CeEHw.js") },
26
+ { code: "zh", label: "中文", loadFlag: () => import("./ChineseFlag-CVrOCbRz.js") },
27
+ { code: "ja", label: "日本語", loadFlag: () => import("./JapaneseFlag-Dnd2ITzZ.js") },
28
+ { code: "ru", label: "Русский", loadFlag: () => import("./RussianFlag-Cnc4PHmq.js") }
29
+ ];
30
+ const asyncFlagComponentCache = /* @__PURE__ */ new Map();
31
+ const isSupportedLanguageCode = (code) => {
32
+ return supportedLanguages.some((language) => language.code === code);
33
+ };
34
+ const getSupportedLanguage = (code) => {
35
+ return supportedLanguages.find((language) => language.code === code);
36
+ };
37
+ const getAsyncFlagComponent = (code) => {
38
+ const cachedComponent = asyncFlagComponentCache.get(code);
39
+ if (cachedComponent) {
40
+ return cachedComponent;
41
+ }
42
+ const asyncComponent = defineAsyncComponent(getSupportedLanguage(code).loadFlag);
43
+ asyncFlagComponentCache.set(code, asyncComponent);
44
+ return asyncComponent;
45
+ };
21
46
  const props = __props;
22
47
  const emits = __emit;
23
- const { t } = useI18n();
48
+ const { locale, t } = useI18n();
24
49
  const isOpen = ref(false);
50
+ const languageDisplayNames = computed(() => {
51
+ return typeof Intl.DisplayNames === "function" ? new Intl.DisplayNames([locale.value], { type: "language" }) : null;
52
+ });
53
+ const getLanguageLabel = (code) => {
54
+ var _a;
55
+ const normalizedCode = code.toLowerCase();
56
+ const languageCode = normalizedCode.split("-")[0];
57
+ const supportedLanguage = isSupportedLanguageCode(languageCode) ? getSupportedLanguage(languageCode) : null;
58
+ return (supportedLanguage == null ? void 0 : supportedLanguage.label) || ((_a = languageDisplayNames.value) == null ? void 0 : _a.of(languageCode)) || code.toUpperCase();
59
+ };
25
60
  const normalizedLanguages = computed(() => {
26
- return props.languages.map((language) => ({
27
- code: language.code,
28
- label: language.label,
29
- flagCode: language.flagCode || language.code
61
+ return props.languages.map((code) => ({
62
+ code,
63
+ label: getLanguageLabel(code)
30
64
  }));
31
65
  });
66
+ const availableFlagCodes = computed(() => {
67
+ const supportedCodes = normalizedLanguages.value.map((language) => language.code).filter(isSupportedLanguageCode);
68
+ if (supportedCodes.length > 0) {
69
+ return [...new Set(supportedCodes)];
70
+ }
71
+ return ["en"];
72
+ });
73
+ const resolveFlagComponent = (code) => {
74
+ const isValid = code && isSupportedLanguageCode(code) && availableFlagCodes.value.includes(code);
75
+ const resolvedCode = isValid ? code : availableFlagCodes.value[0];
76
+ return getAsyncFlagComponent(resolvedCode);
77
+ };
32
78
  const currentLanguage = computed(() => {
33
79
  return normalizedLanguages.value.find((language) => language.code === props.modelValue) || normalizedLanguages.value[0] || null;
34
80
  });
81
+ const currentFlagComponent = computed(() => {
82
+ return currentLanguage.value ? resolveFlagComponent(currentLanguage.value.code) : null;
83
+ });
35
84
  const handleSelectLanguage = (language) => {
36
85
  emits("update:modelValue", language);
37
86
  emits("select", language);
@@ -48,48 +97,44 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
48
97
  createVNode(unref(_sfc_main$3), {
49
98
  variant: "secondary",
50
99
  size: "icon",
51
- "aria-label": unref(t)("ui.language.ariaLabel")
100
+ "aria-label": unref(t)("ui-vintage.language.ariaLabel")
52
101
  }, {
53
102
  default: withCtx(() => [
54
- currentLanguage.value ? (openBlock(), createBlock(unref(_sfc_main$4), {
103
+ currentFlagComponent.value ? (openBlock(), createBlock(resolveDynamicComponent(currentFlagComponent.value), {
55
104
  key: 0,
56
- code: currentLanguage.value.flagCode,
57
105
  class: "h-4 w-[1.35rem] rounded-[2px]"
58
- }, null, 8, ["code"])) : createCommentVNode("", true)
106
+ })) : createCommentVNode("", true)
59
107
  ]),
60
108
  _: 1
61
109
  }, 8, ["aria-label"])
62
110
  ]),
63
111
  _: 1
64
112
  }),
65
- createVNode(unref(_sfc_main$5), {
113
+ createVNode(unref(_sfc_main$4), {
66
114
  side: "bottom",
67
115
  align: "end",
68
116
  "side-offset": 8,
69
117
  class: "w-44 !p-0"
70
118
  }, {
71
119
  default: withCtx(() => [
72
- createVNode(unref(_sfc_main$6), {
120
+ createVNode(unref(_sfc_main$5), {
73
121
  "model-value": props.modelValue
74
122
  }, {
75
123
  default: withCtx(() => [
76
- createVNode(unref(_sfc_main$7), null, {
124
+ createVNode(unref(_sfc_main$6), null, {
77
125
  default: withCtx(() => [
78
- createVNode(unref(_sfc_main$8), {
79
- heading: unref(t)("ui.language.title")
126
+ createVNode(unref(_sfc_main$7), {
127
+ heading: unref(t)("ui-vintage.language.title")
80
128
  }, {
81
129
  default: withCtx(() => [
82
130
  (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedLanguages.value, (option) => {
83
- return openBlock(), createBlock(unref(_sfc_main$9), {
131
+ return openBlock(), createBlock(unref(_sfc_main$8), {
84
132
  key: option.code,
85
133
  value: option.code,
86
134
  onSelect: ($event) => handleSelectLanguage(option.code)
87
135
  }, {
88
136
  default: withCtx(() => [
89
- createVNode(unref(_sfc_main$4), {
90
- code: option.flagCode,
91
- class: "h-4 w-[1.35rem] rounded-[2px]"
92
- }, null, 8, ["code"]),
137
+ (openBlock(), createBlock(resolveDynamicComponent(resolveFlagComponent(option.code)), { class: "h-4 w-[1.35rem] rounded-[2px]" })),
93
138
  createElementVNode("span", _hoisted_1, toDisplayString(option.label), 1),
94
139
  createVNode(unref(HugeiconsIcon), {
95
140
  icon: unref(TWr),
@@ -1,6 +1,6 @@
1
1
  export declare const uiVintageMessages: {
2
2
  readonly en: {
3
- ui: {
3
+ "ui-vintage": {
4
4
  common: {
5
5
  empty: {
6
6
  title: string;
@@ -55,7 +55,7 @@ export declare const uiVintageMessages: {
55
55
  };
56
56
  };
57
57
  readonly it: {
58
- ui: {
58
+ "ui-vintage": {
59
59
  common: {
60
60
  empty: {
61
61
  title: string;
@@ -111,7 +111,7 @@ export declare const uiVintageMessages: {
111
111
  };
112
112
  };
113
113
  export declare const getUiVintageMessagesForLocale: (locale: keyof typeof uiVintageMessages) => {
114
- ui: {
114
+ "ui-vintage": {
115
115
  common: {
116
116
  empty: {
117
117
  title: string;
@@ -165,7 +165,7 @@ export declare const getUiVintageMessagesForLocale: (locale: keyof typeof uiVint
165
165
  };
166
166
  };
167
167
  } | {
168
- ui: {
168
+ "ui-vintage": {
169
169
  common: {
170
170
  empty: {
171
171
  title: string;
@@ -1,4 +1,4 @@
1
- import { _, _ as _2 } from "./LoadMoreButton.vue_vue_type_script_setup_true_lang-CGhFcsF-.js";
1
+ import { _, _ as _2 } from "./LoadMoreButton.vue_vue_type_script_setup_true_lang-y6FveJPg.js";
2
2
  export {
3
3
  _ as LoadMoreButton,
4
4
  _2 as default
@@ -1,4 +1,4 @@
1
- import { _, _ as _2 } from "./LoadingStateCard.vue_vue_type_script_setup_true_lang-DwyQjtZ3.js";
1
+ import { _, _ as _2 } from "./LoadingStateCard.vue_vue_type_script_setup_true_lang-Czptkhu8.js";
2
2
  export {
3
3
  _ as LoadingStateCard,
4
4
  _2 as default
@@ -109,12 +109,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
109
109
  const resolvedTitle = computed(() => {
110
110
  const current = currentDialog.value;
111
111
  if (!current) return "";
112
- return current.options.title || getUiVintageRuntimeMessage(`ui.messageDialog.${current.options.type}`, "");
112
+ return current.options.title || getUiVintageRuntimeMessage(`ui-vintage.messageDialog.${current.options.type}`, "");
113
113
  });
114
114
  const resolvedCloseText = computed(() => {
115
115
  const current = currentDialog.value;
116
- if (!current) return getUiVintageRuntimeMessage("ui.buttons.close", "Close");
117
- return current.options.closeText || getUiVintageRuntimeMessage("ui.buttons.close", "Close");
116
+ if (!current) return getUiVintageRuntimeMessage("ui-vintage.buttons.close", "Close");
117
+ return current.options.closeText || getUiVintageRuntimeMessage("ui-vintage.buttons.close", "Close");
118
118
  });
119
119
  const defaultMessageIcon = computed(() => {
120
120
  const current = currentDialog.value;
@@ -23,7 +23,7 @@ const ensureMessageToastMounted = () => {
23
23
  return messageToastMountPromise;
24
24
  }
25
25
  messageToastMountPromise = (async () => {
26
- const { default: MessageToast } = await import("./MessageToast-uKrMyOZf.js");
26
+ const { default: MessageToast } = await import("./MessageToast-CDeSPwXN.js");
27
27
  if (document.getElementById(MESSAGE_TOAST_ROOT_ID)) {
28
28
  return;
29
29
  }
package/dist/style.css CHANGED
@@ -4996,15 +4996,15 @@ body {
4996
4996
  }
4997
4997
  }
4998
4998
 
4999
- .toast-enter-active[data-v-edc1d178],
5000
- .toast-leave-active[data-v-edc1d178] {
4999
+ .toast-enter-active[data-v-602908ae],
5000
+ .toast-leave-active[data-v-602908ae] {
5001
5001
  transition: all 0.3s ease-in-out;
5002
5002
  }
5003
- .toast-enter-from[data-v-edc1d178] {
5003
+ .toast-enter-from[data-v-602908ae] {
5004
5004
  transform: translateY(100%);
5005
5005
  opacity: 0;
5006
5006
  }
5007
- .toast-leave-to[data-v-edc1d178] {
5007
+ .toast-leave-to[data-v-602908ae] {
5008
5008
  transform: translateY(8px);
5009
5009
  opacity: 0;
5010
5010
  }
@@ -24,9 +24,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
24
24
  }
25
25
  };
26
26
  const themes = computed(() => [
27
- { id: "light", label: t("ui.theme.light") },
28
- { id: "dark", label: t("ui.theme.dark") },
29
- { id: "auto", label: t("ui.theme.auto") }
27
+ { id: "light", label: t("ui-vintage.theme.light") },
28
+ { id: "dark", label: t("ui-vintage.theme.dark") },
29
+ { id: "auto", label: t("ui-vintage.theme.auto") }
30
30
  ]);
31
31
  const isSystemDarkPreferred = () => {
32
32
  return window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches;
@@ -87,7 +87,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
87
87
  createVNode(unref(_sfc_main$3), {
88
88
  variant: "secondary",
89
89
  size: "icon",
90
- "aria-label": unref(t)("ui.theme.ariaLabel")
90
+ "aria-label": unref(t)("ui-vintage.theme.ariaLabel")
91
91
  }, {
92
92
  default: withCtx(() => [
93
93
  createVNode(unref(HugeiconsIcon), {
@@ -112,7 +112,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
112
112
  createVNode(unref(_sfc_main$6), null, {
113
113
  default: withCtx(() => [
114
114
  createVNode(unref(_sfc_main$7), {
115
- heading: unref(t)("ui.theme.title")
115
+ heading: unref(t)("ui-vintage.theme.title")
116
116
  }, {
117
117
  default: withCtx(() => [
118
118
  (openBlock(true), createElementBlock(Fragment, null, renderList(themeOptions.value, (option) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brumaombra/ui-vintage",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Vue 3 component library with shadcn-style primitives, app shells, dialogs, and shared theme tokens.",
5
5
  "private": false,
6
6
  "author": "Mauro Brambilla",
@@ -1,68 +0,0 @@
1
- import { openBlock, createElementBlock, createStaticVNode, createElementVNode, defineComponent, computed, createBlock, resolveDynamicComponent, normalizeProps, guardReactiveProps } from "vue";
2
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
3
- const _sfc_main$2 = {};
4
- const _hoisted_1$1 = {
5
- xmlns: "http://www.w3.org/2000/svg",
6
- viewBox: "0 0 640 480",
7
- "aria-hidden": "true",
8
- focusable: "false"
9
- };
10
- function _sfc_render$1(_ctx, _cache) {
11
- return openBlock(), createElementBlock("svg", _hoisted_1$1, _cache[0] || (_cache[0] = [
12
- createStaticVNode('<path fill="#012169" d="M0 0h640v480H0z"></path><path fill="#FFF" d="m75 0 244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z"></path><path fill="#C8102E" d="m424 281 216 159v40L369 281zm-184 20 6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z"></path><path fill="#FFF" d="M241 0v480h160V0zM0 160v160h640V160z"></path><path fill="#C8102E" d="M0 193v96h640v-96zM273 0v480h96V0z"></path>', 5)
13
- ]));
14
- }
15
- const EnglishFlag = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1]]);
16
- const _sfc_main$1 = {};
17
- const _hoisted_1 = {
18
- xmlns: "http://www.w3.org/2000/svg",
19
- viewBox: "0 0 640 480",
20
- "aria-hidden": "true",
21
- focusable: "false"
22
- };
23
- function _sfc_render(_ctx, _cache) {
24
- return openBlock(), createElementBlock("svg", _hoisted_1, _cache[0] || (_cache[0] = [
25
- createElementVNode("g", {
26
- "fill-rule": "evenodd",
27
- "stroke-width": "1pt"
28
- }, [
29
- createElementVNode("path", {
30
- fill: "#fff",
31
- d: "M0 0h640v480H0z"
32
- }),
33
- createElementVNode("path", {
34
- fill: "#009246",
35
- d: "M0 0h213.3v480H0z"
36
- }),
37
- createElementVNode("path", {
38
- fill: "#ce2b37",
39
- d: "M426.7 0H640v480H426.7z"
40
- })
41
- ], -1)
42
- ]));
43
- }
44
- const ItalianFlag = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render]]);
45
- const _sfc_main = /* @__PURE__ */ defineComponent({
46
- __name: "LanguageFlag",
47
- props: {
48
- code: { type: String, default: "en" }
49
- },
50
- setup(__props) {
51
- const props = __props;
52
- const flagComponentMap = {
53
- en: EnglishFlag,
54
- it: ItalianFlag
55
- };
56
- const flagComponent = computed(() => {
57
- return flagComponentMap[props.code] || EnglishFlag;
58
- });
59
- return (_ctx, _cache) => {
60
- return openBlock(), createBlock(resolveDynamicComponent(flagComponent.value), normalizeProps(guardReactiveProps(_ctx.$attrs)), null, 16);
61
- };
62
- }
63
- });
64
- export {
65
- EnglishFlag as E,
66
- ItalianFlag as I,
67
- _sfc_main as _
68
- };