@brumaombra/ui-vintage 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/dist/{AlertDialogTitle.vue_vue_type_script_setup_true_lang-Ca0g2mVz.js → AlertDialogTitle.vue_vue_type_script_setup_true_lang-_UW48pv7.js} +6 -5
  2. package/dist/{Busy-D1u_LUYu.js → Busy-BaCc_Jo8.js} +2 -1
  3. package/dist/{CalendarPrevButton.vue_vue_type_script_setup_true_lang-BA4Aw_Sl.js → CalendarPrevButton.vue_vue_type_script_setup_true_lang-DdzS6YGM.js} +18 -11
  4. package/dist/Card.vue_vue_type_script_setup_true_lang-D0pFVflK.js +30 -0
  5. package/dist/{Card.vue_vue_type_script_setup_true_lang-6ol3rxy1.js → CardContent.vue_vue_type_script_setup_true_lang-dBzO0q1t.js} +3 -8
  6. package/dist/{CardFooter.vue_vue_type_script_setup_true_lang-B1eS9wge.js → CardFooter.vue_vue_type_script_setup_true_lang-B5EqgrgN.js} +1 -19
  7. package/dist/CardText.vue_vue_type_script_setup_true_lang-DbDhSd3h.js +22 -0
  8. package/dist/ChineseFlag-CVrOCbRz.js +18 -0
  9. package/dist/{Collection-Coi6nyvb.js → Collection-4P3HQ4uU.js} +1 -1
  10. package/dist/{ConfigProvider-D2O0Jles.js → ConfigProvider-DYO65bNW.js} +1 -1
  11. package/dist/DatePicker.vue_vue_type_script_setup_true_lang-C2Ug81pX.js +88 -0
  12. package/dist/DialogClose-DxCTEp0d.js +36 -0
  13. package/dist/{DialogPortal-D81oXsCY.js → DialogPortal-BiMJAKLg.js} +1 -1
  14. package/dist/{DialogTitle-CLuntLBB.js → DialogTitle-jKgSCoXM.js} +10 -6
  15. package/dist/{DialogTitle.vue_vue_type_script_setup_true_lang-BG4dvMRo.js → DialogTitle.vue_vue_type_script_setup_true_lang-CycrzAMT.js} +33 -10
  16. package/dist/{DialogTrigger-BQbSAHMb.js → DialogTrigger-Cb3rLcid.js} +5 -35
  17. package/dist/EmptyStateCard.vue_vue_type_script_setup_true_lang-BYKX6WRQ.js +59 -0
  18. package/dist/EnglishFlag-BrpG8XMW.js +18 -0
  19. package/dist/{FocusScope-DYbCtSNc.js → FocusScope-mzbqk6Y_.js} +8 -14
  20. package/dist/FrenchFlag-CUdQacS3.js +35 -0
  21. package/dist/GermanFlag-Bc1CeEHw.js +35 -0
  22. package/dist/HugeiconsIcon.vue-By2RXWWz.js +111 -0
  23. package/dist/{Input.vue_vue_type_script_setup_true_lang-6SfPeT8d.js → Input.vue_vue_type_script_setup_true_lang-BdjbS5s7.js} +1 -1
  24. package/dist/ItalianFlag-BAdg13z7.js +34 -0
  25. package/dist/JapaneseFlag-Dnd2ITzZ.js +27 -0
  26. package/dist/{Label.vue_vue_type_script_setup_true_lang-pMIzCHzV.js → Label.vue_vue_type_script_setup_true_lang-CdLIMAdF.js} +2 -2
  27. package/dist/LandingContent.vue_vue_type_script_setup_true_lang-Wgtl_yeD.js +21 -0
  28. package/dist/LandingFooter.vue_vue_type_script_setup_true_lang-CDy30mYg.js +159 -0
  29. package/dist/LandingNavbar.vue_vue_type_script_setup_true_lang-0jX2tmdb.js +59 -0
  30. package/dist/LandingShell.vue_vue_type_script_setup_true_lang-BXwdQR24.js +49 -0
  31. package/dist/LoadMoreButton.vue_vue_type_script_setup_true_lang-CGhFcsF-.js +61 -0
  32. package/dist/LoadingStateCard.vue_vue_type_script_setup_true_lang-DwyQjtZ3.js +53 -0
  33. package/dist/{MessageToast-C1L25W2l.js → MessageToast-uKrMyOZf.js} +15 -12
  34. package/dist/{NativeSelectOption.vue_vue_type_script_setup_true_lang-COnFRt8g.js → NativeSelectOption.vue_vue_type_script_setup_true_lang-CNcUI9Yh.js} +4 -3
  35. package/dist/{PopoverTrigger.vue_vue_type_script_setup_true_lang-DFZJvU_P.js → PopoverTrigger.vue_vue_type_script_setup_true_lang-Cf33q_yT.js} +11 -8
  36. package/dist/{PopperContent-h-thLTz8.js → PopperContent-DUJ8a4i0.js} +4 -4
  37. package/dist/Presence-CTmUEdMR.js +168 -0
  38. package/dist/Progress.vue_vue_type_script_setup_true_lang-BDJfyW-d.js +188 -0
  39. package/dist/RussianFlag-Cnc4PHmq.js +29 -0
  40. package/dist/{Separator.vue_vue_type_script_setup_true_lang-CMRkdntA.js → Separator.vue_vue_type_script_setup_true_lang-D9BozdWD.js} +1 -1
  41. package/dist/{SheetTitle.vue_vue_type_script_setup_true_lang-BQbpsE2c.js → SheetTitle.vue_vue_type_script_setup_true_lang-Ja7-gmXd.js} +4 -4
  42. package/dist/{Slider.vue_vue_type_script_setup_true_lang-C_CsSGAt.js → Slider.vue_vue_type_script_setup_true_lang-CSOSwGGr.js} +10 -9
  43. package/dist/SpanishFlag-Dy-C9kGk.js +28 -0
  44. package/dist/{Switch.vue_vue_type_script_setup_true_lang-BG6nkPSO.js → Switch.vue_vue_type_script_setup_true_lang-C8mqOepU.js} +7 -6
  45. package/dist/{Teleport-CV0tKbq5.js → Teleport-DTOwRCqx.js} +7 -185
  46. package/dist/TimePicker.vue_vue_type_script_setup_true_lang-tbOoMfZu.js +51 -0
  47. package/dist/{TooltipTrigger.vue_vue_type_script_setup_true_lang-DEPKysA_.js → TooltipTrigger.vue_vue_type_script_setup_true_lang-BMdZRPa3.js} +9 -6
  48. package/dist/{VisuallyHiddenInput-1G1IEkBL.js → VisuallyHiddenInput-D5eipDQU.js} +1 -1
  49. package/dist/alert-dialog.js +7 -6
  50. package/dist/alert.js +8 -18
  51. package/dist/badge.js +9 -36
  52. package/dist/breadcrumb.js +159 -0
  53. package/dist/busy-indicator.js +1 -1
  54. package/dist/busy.js +1 -1
  55. package/dist/button.js +11 -7
  56. package/dist/calendar.js +1 -1
  57. package/dist/card-grid.js +58 -0
  58. package/dist/card.js +9 -6
  59. package/dist/chip.js +47 -0
  60. package/dist/color-tokens-D9BviGPK.js +40 -0
  61. package/dist/command.js +17 -33
  62. package/dist/components/card-grid/CardGrid.vue.d.ts +88 -0
  63. package/dist/components/card-grid/index.d.ts +2 -0
  64. package/dist/components/chip/Chip.vue.d.ts +17 -0
  65. package/dist/components/chip/index.d.ts +2 -0
  66. package/dist/components/confirm-dialog/confirm-dialog-state.d.ts +11 -8
  67. package/dist/components/dashboard-shell/DashboardShell.vue.d.ts +12 -2
  68. package/dist/components/data-list/DataList.vue.d.ts +21 -0
  69. package/dist/components/data-list/DataListItem.vue.d.ts +21 -0
  70. package/dist/components/data-list/DataListLabel.vue.d.ts +21 -0
  71. package/dist/components/data-list/DataListText.vue.d.ts +21 -0
  72. package/dist/components/data-list/DataListValue.vue.d.ts +21 -0
  73. package/dist/components/data-list/index.d.ts +5 -0
  74. package/dist/components/empty-state-card/EmptyStateCard.vue.d.ts +73 -0
  75. package/dist/components/empty-state-card/index.d.ts +2 -0
  76. package/dist/components/info-card/InfoCard.vue.d.ts +46 -0
  77. package/dist/components/info-card/index.d.ts +2 -0
  78. package/dist/components/landing/landing-content/LandingContent.vue.d.ts +2 -3
  79. package/dist/components/landing/landing-footer/LandingFooter.vue.d.ts +5 -10
  80. package/dist/components/landing/landing-navbar/LandingNavbar.vue.d.ts +8 -1
  81. package/dist/components/landing/landing-shell/LandingShell.vue.d.ts +0 -1
  82. package/dist/components/language-flag/LanguageFlag.vue.d.ts +14 -0
  83. package/dist/components/language-flag/flags/ChineseFlag.vue.d.ts +2 -0
  84. package/dist/components/language-flag/flags/EnglishFlag.vue.d.ts +2 -0
  85. package/dist/components/language-flag/flags/FrenchFlag.vue.d.ts +2 -0
  86. package/dist/components/language-flag/flags/GermanFlag.vue.d.ts +2 -0
  87. package/dist/components/language-flag/flags/ItalianFlag.vue.d.ts +2 -0
  88. package/dist/components/language-flag/flags/JapaneseFlag.vue.d.ts +2 -0
  89. package/dist/components/language-flag/flags/RussianFlag.vue.d.ts +2 -0
  90. package/dist/components/language-flag/flags/SpanishFlag.vue.d.ts +2 -0
  91. package/dist/components/language-flag/index.d.ts +10 -0
  92. package/dist/components/language-selector/LanguageSelector.vue.d.ts +31 -0
  93. package/dist/components/language-selector/index.d.ts +3 -0
  94. package/dist/components/load-more-button/LoadMoreButton.vue.d.ts +36 -0
  95. package/dist/components/load-more-button/index.d.ts +2 -0
  96. package/dist/components/loading-state-card/LoadingStateCard.vue.d.ts +55 -0
  97. package/dist/components/loading-state-card/index.d.ts +2 -0
  98. package/dist/components/message-dialog/message-dialog-state.d.ts +9 -7
  99. package/dist/components/message-toast/index.d.ts +1 -1
  100. package/dist/components/message-toast/message-toast-state.d.ts +3 -3
  101. package/dist/components/page-header/PageHeader.vue.d.ts +48 -0
  102. package/dist/components/page-header/index.d.ts +2 -0
  103. package/dist/components/progress-component/ProgressComponent.vue.d.ts +47 -0
  104. package/dist/components/progress-component/index.d.ts +2 -0
  105. package/dist/components/single-value-card/SingleValueCard.vue.d.ts +40 -0
  106. package/dist/components/single-value-card/index.d.ts +2 -0
  107. package/dist/components/slider-form-component/SliderFormComponent.vue.d.ts +2 -2
  108. package/dist/components/text-link/TextLink.vue.d.ts +35 -0
  109. package/dist/components/text-link/index.d.ts +2 -0
  110. package/dist/components/theme-selector/ThemeSelector.vue.d.ts +2 -0
  111. package/dist/components/theme-selector/index.d.ts +2 -0
  112. package/dist/components/ui/alert/Alert.vue.d.ts +2 -2
  113. package/dist/components/ui/alert/index.d.ts +6 -5
  114. package/dist/components/ui/badge/Badge.vue.d.ts +7 -20
  115. package/dist/components/ui/badge/index.d.ts +0 -5
  116. package/dist/components/ui/breadcrumb/Breadcrumb.vue.d.ts +21 -0
  117. package/dist/components/ui/breadcrumb/BreadcrumbEllipsis.vue.d.ts +21 -0
  118. package/dist/components/ui/breadcrumb/BreadcrumbItem.vue.d.ts +21 -0
  119. package/dist/components/ui/breadcrumb/BreadcrumbLink.vue.d.ts +24 -0
  120. package/dist/components/ui/breadcrumb/BreadcrumbList.vue.d.ts +21 -0
  121. package/dist/components/ui/breadcrumb/BreadcrumbPage.vue.d.ts +21 -0
  122. package/dist/components/ui/breadcrumb/BreadcrumbSeparator.vue.d.ts +21 -0
  123. package/dist/components/ui/breadcrumb/index.d.ts +7 -0
  124. package/dist/components/ui/button/index.d.ts +6 -6
  125. package/dist/components/ui/card/Card.vue.d.ts +3 -0
  126. package/dist/components/ui/card/CardText.vue.d.ts +21 -0
  127. package/dist/components/ui/card/index.d.ts +1 -0
  128. package/dist/components/ui/date-picker/DatePicker.vue.d.ts +2 -0
  129. package/dist/components/ui/date-time-picker/DateTimePicker.vue.d.ts +27 -0
  130. package/dist/components/ui/date-time-picker/index.d.ts +2 -0
  131. package/dist/components/ui/dialog/DialogContent.vue.d.ts +4 -1
  132. package/dist/components/ui/dialog/DialogFooter.vue.d.ts +1 -4
  133. package/dist/components/ui/dialog/DialogScrollContent.vue.d.ts +4 -1
  134. package/dist/components/ui/field/index.d.ts +4 -4
  135. package/dist/components/ui/progress/Progress.vue.d.ts +9 -0
  136. package/dist/components/ui/progress/index.d.ts +1 -0
  137. package/dist/components/ui/scroll-area/ScrollArea.vue.d.ts +22 -0
  138. package/dist/components/ui/scroll-area/ScrollBar.vue.d.ts +9 -0
  139. package/dist/components/ui/scroll-area/index.d.ts +2 -0
  140. package/dist/components/ui/select/SelectItemContent.vue.d.ts +15 -0
  141. package/dist/components/ui/select/SelectValueContent.vue.d.ts +16 -0
  142. package/dist/components/ui/select/index.d.ts +2 -0
  143. package/dist/components/ui/sidebar/index.d.ts +4 -4
  144. package/dist/components/ui/table/Table.vue.d.ts +21 -0
  145. package/dist/components/ui/table/TableBody.vue.d.ts +21 -0
  146. package/dist/components/ui/table/TableCaption.vue.d.ts +21 -0
  147. package/dist/components/ui/table/TableCell.vue.d.ts +21 -0
  148. package/dist/components/ui/table/TableEmpty.vue.d.ts +24 -0
  149. package/dist/components/ui/table/TableFooter.vue.d.ts +21 -0
  150. package/dist/components/ui/table/TableHead.vue.d.ts +21 -0
  151. package/dist/components/ui/table/TableHeader.vue.d.ts +21 -0
  152. package/dist/components/ui/table/TableRow.vue.d.ts +21 -0
  153. package/dist/components/ui/table/index.d.ts +9 -0
  154. package/dist/components/ui/tabs/Tabs.vue.d.ts +28 -0
  155. package/dist/components/ui/tabs/TabsContent.vue.d.ts +22 -0
  156. package/dist/components/ui/tabs/TabsList.vue.d.ts +22 -0
  157. package/dist/components/ui/tabs/TabsTrigger.vue.d.ts +22 -0
  158. package/dist/components/ui/tabs/index.d.ts +4 -0
  159. package/dist/components/ui/textarea/Textarea.vue.d.ts +12 -0
  160. package/dist/components/ui/textarea/index.d.ts +1 -0
  161. package/dist/components/ui/time-picker/TimePicker.vue.d.ts +21 -0
  162. package/dist/components/ui/time-picker/index.d.ts +2 -0
  163. package/dist/confirm-dialog.js +15 -11
  164. package/dist/createContext-BabAT1K8.js +19 -0
  165. package/dist/dashboard-shell.js +88 -38
  166. package/dist/data-list.js +97 -0
  167. package/dist/date-picker.js +3 -82
  168. package/dist/date-time-picker.js +140 -0
  169. package/dist/dialog.js +36 -29
  170. package/dist/empty-state-card.js +5 -0
  171. package/dist/error-page.js +8 -6
  172. package/dist/field.js +2 -2
  173. package/dist/getActiveElement-Bmy6QsUb.js +9 -0
  174. package/dist/i18n/en.json.d.ts +57 -0
  175. package/dist/i18n/it.json.d.ts +57 -0
  176. package/dist/i18n.js +148 -0
  177. package/dist/{index-qGMU40e1.js → index-DDJjWaIl.js} +64 -0
  178. package/dist/{index-Cq9Ekgtb.js → index-Dw56kNV0.js} +10 -10
  179. package/dist/index.min-CZ9FIOXr.js +23 -0
  180. package/dist/info-card.js +65 -0
  181. package/dist/input.js +1 -1
  182. package/dist/label.js +1 -1
  183. package/dist/landing-content.js +5 -0
  184. package/dist/landing-footer.js +5 -0
  185. package/dist/landing-navbar.js +5 -0
  186. package/dist/landing-shell.js +5 -0
  187. package/dist/landing.js +9 -237
  188. package/dist/language-flag.js +60 -0
  189. package/dist/language-selector.js +168 -0
  190. package/dist/lib/color-tokens.d.ts +6 -0
  191. package/dist/lib/i18n.d.ts +222 -0
  192. package/dist/load-more-button.js +5 -0
  193. package/dist/loading-state-card.js +5 -0
  194. package/dist/message-dialog.js +34 -18
  195. package/dist/message-toast.js +2 -2
  196. package/dist/native-select.js +1 -1
  197. package/dist/nullish-D3tMkl6i.js +6 -0
  198. package/dist/page-header.js +57 -0
  199. package/dist/popover.js +4 -4
  200. package/dist/progress-component.js +51 -0
  201. package/dist/progress.js +4 -0
  202. package/dist/scroll-area.js +1080 -0
  203. package/dist/select.js +149 -53
  204. package/dist/separator.js +1 -1
  205. package/dist/sheet.js +3 -2
  206. package/dist/sidebar.js +10 -9
  207. package/dist/single-value-card.js +64 -0
  208. package/dist/slider-form-component.js +2 -2
  209. package/dist/slider.js +1 -1
  210. package/dist/style.css +822 -144
  211. package/dist/switch-form-component.js +2 -2
  212. package/dist/switch.js +1 -1
  213. package/dist/table.js +193 -0
  214. package/dist/tabs.js +658 -0
  215. package/dist/text-link.js +39 -0
  216. package/dist/textarea.js +37 -0
  217. package/dist/theme-selector.js +159 -0
  218. package/dist/time-picker.js +5 -0
  219. package/dist/tooltip.js +2 -2
  220. package/dist/{useDirection-SIyEYNxv.js → useDirection-B2bMgzzV.js} +1 -1
  221. package/dist/{useFocusGuards-WYWvpJy2.js → useFocusGuards-2C1jyYW5.js} +1 -1
  222. package/dist/{useFormControl-CyoJwp9r.js → useFormControl-DZ4LnB9F.js} +1 -1
  223. package/dist/{useForwardExpose-BiRQH8eO.js → useForwardExpose-BcX3VRdS.js} +1 -1
  224. package/dist/{useForwardPropsEmits-DmumnZO5.js → useForwardPropsEmits-GlUGKcIz.js} +1 -17
  225. package/dist/useId-CF6wz41D.js +16 -0
  226. package/dist/useNonce-CWj1JlPB.js +12 -0
  227. package/dist/{usePrimitiveElement-Bk3ZOslv.js → usePrimitiveElement-BCpwlakH.js} +1 -1
  228. package/dist/{useSize-BLYTFgnQ.js → useSize-DUgGY9t1.js} +1 -1
  229. package/dist/{useTypeahead-KTl4-oeq.js → useTypeahead-4RK0Emcv.js} +2 -2
  230. package/dist/{utils-BXBXPGDA.js → utils-DbR1EZn-.js} +1 -1
  231. package/dist/utils-hdwtyAF3.js +44 -0
  232. package/package.json +111 -2
  233. package/dist/HugeiconsIcon.vue-CurGbgrJ.js +0 -125
@@ -0,0 +1,168 @@
1
+ import { defineComponent, ref, computed, openBlock, createBlock, unref, withCtx, createVNode, resolveDynamicComponent, createCommentVNode, createElementBlock, Fragment, renderList, createElementVNode, toDisplayString, normalizeClass, defineAsyncComponent } from "vue";
2
+ import { useI18n } from "vue-i18n";
3
+ import { T as TWr } from "./index.min-CZ9FIOXr.js";
4
+ import { H as HugeiconsIcon } from "./HugeiconsIcon.vue-By2RXWWz.js";
5
+ import { Button as _sfc_main$3 } from "./button.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";
8
+ const _hoisted_1 = { class: "flex-1" };
9
+ const _sfc_main = /* @__PURE__ */ defineComponent({
10
+ __name: "LanguageSelector",
11
+ props: {
12
+ modelValue: { type: String, default: "" },
13
+ languages: {
14
+ type: Array,
15
+ default: () => ["en", "it"]
16
+ }
17
+ },
18
+ emits: ["update:modelValue", "select"],
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
+ };
46
+ const props = __props;
47
+ const emits = __emit;
48
+ const { locale, t } = useI18n();
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
+ };
60
+ const normalizedLanguages = computed(() => {
61
+ return props.languages.map((code) => ({
62
+ code,
63
+ label: getLanguageLabel(code)
64
+ }));
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
+ };
78
+ const currentLanguage = computed(() => {
79
+ return normalizedLanguages.value.find((language) => language.code === props.modelValue) || normalizedLanguages.value[0] || null;
80
+ });
81
+ const currentFlagComponent = computed(() => {
82
+ return currentLanguage.value ? resolveFlagComponent(currentLanguage.value.code) : null;
83
+ });
84
+ const handleSelectLanguage = (language) => {
85
+ emits("update:modelValue", language);
86
+ emits("select", language);
87
+ isOpen.value = false;
88
+ };
89
+ return (_ctx, _cache) => {
90
+ return openBlock(), createBlock(unref(_sfc_main$1), {
91
+ open: isOpen.value,
92
+ "onUpdate:open": _cache[0] || (_cache[0] = ($event) => isOpen.value = $event)
93
+ }, {
94
+ default: withCtx(() => [
95
+ createVNode(unref(_sfc_main$2), { "as-child": "" }, {
96
+ default: withCtx(() => [
97
+ createVNode(unref(_sfc_main$3), {
98
+ variant: "secondary",
99
+ size: "icon",
100
+ "aria-label": unref(t)("ui.language.ariaLabel")
101
+ }, {
102
+ default: withCtx(() => [
103
+ currentFlagComponent.value ? (openBlock(), createBlock(resolveDynamicComponent(currentFlagComponent.value), {
104
+ key: 0,
105
+ class: "h-4 w-[1.35rem] rounded-[2px]"
106
+ })) : createCommentVNode("", true)
107
+ ]),
108
+ _: 1
109
+ }, 8, ["aria-label"])
110
+ ]),
111
+ _: 1
112
+ }),
113
+ createVNode(unref(_sfc_main$4), {
114
+ side: "bottom",
115
+ align: "end",
116
+ "side-offset": 8,
117
+ class: "w-44 !p-0"
118
+ }, {
119
+ default: withCtx(() => [
120
+ createVNode(unref(_sfc_main$5), {
121
+ "model-value": props.modelValue
122
+ }, {
123
+ default: withCtx(() => [
124
+ createVNode(unref(_sfc_main$6), null, {
125
+ default: withCtx(() => [
126
+ createVNode(unref(_sfc_main$7), {
127
+ heading: unref(t)("ui.language.title")
128
+ }, {
129
+ default: withCtx(() => [
130
+ (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedLanguages.value, (option) => {
131
+ return openBlock(), createBlock(unref(_sfc_main$8), {
132
+ key: option.code,
133
+ value: option.code,
134
+ onSelect: ($event) => handleSelectLanguage(option.code)
135
+ }, {
136
+ default: withCtx(() => [
137
+ (openBlock(), createBlock(resolveDynamicComponent(resolveFlagComponent(option.code)), { class: "h-4 w-[1.35rem] rounded-[2px]" })),
138
+ createElementVNode("span", _hoisted_1, toDisplayString(option.label), 1),
139
+ createVNode(unref(HugeiconsIcon), {
140
+ icon: unref(TWr),
141
+ class: normalizeClass(["ml-auto size-4 shrink-0", props.modelValue === option.code ? "opacity-100" : "opacity-0"])
142
+ }, null, 8, ["icon", "class"])
143
+ ]),
144
+ _: 2
145
+ }, 1032, ["value", "onSelect"]);
146
+ }), 128))
147
+ ]),
148
+ _: 1
149
+ }, 8, ["heading"])
150
+ ]),
151
+ _: 1
152
+ })
153
+ ]),
154
+ _: 1
155
+ }, 8, ["model-value"])
156
+ ]),
157
+ _: 1
158
+ })
159
+ ]),
160
+ _: 1
161
+ }, 8, ["open"]);
162
+ };
163
+ }
164
+ });
165
+ export {
166
+ _sfc_main as LanguageSelector,
167
+ _sfc_main as default
168
+ };
@@ -0,0 +1,6 @@
1
+ export type ToneColor = "gray" | "green" | "red" | "blue" | "yellow";
2
+ export type ButtonVariantName = "primary" | "secondary" | "ghost" | "link" | ToneColor;
3
+ export declare const getSurfaceToneClasses: (color: ToneColor) => string;
4
+ export declare const getInteractiveSurfaceToneClasses: (color: ToneColor) => string;
5
+ export declare const buttonVariantClasses: Record<ButtonVariantName, string>;
6
+ export declare const getButtonVariantClasses: (variant: ButtonVariantName) => string;
@@ -0,0 +1,222 @@
1
+ export declare const uiVintageMessages: {
2
+ readonly en: {
3
+ ui: {
4
+ common: {
5
+ empty: {
6
+ title: string;
7
+ description: string;
8
+ };
9
+ loading: {
10
+ title: string;
11
+ description: string;
12
+ };
13
+ };
14
+ buttons: {
15
+ all: string;
16
+ close: string;
17
+ cancel: string;
18
+ delete: string;
19
+ confirm: string;
20
+ filter: string;
21
+ search: string;
22
+ apply: string;
23
+ clear: string;
24
+ loading: string;
25
+ loadMore: string;
26
+ save: string;
27
+ update: string;
28
+ goBack: string;
29
+ };
30
+ theme: {
31
+ light: string;
32
+ dark: string;
33
+ auto: string;
34
+ title: string;
35
+ ariaLabel: string;
36
+ };
37
+ language: {
38
+ title: string;
39
+ ariaLabel: string;
40
+ };
41
+ footer: {
42
+ madeWith: string;
43
+ by: string;
44
+ allRightsReserved: string;
45
+ };
46
+ select: {
47
+ defaultPlaceholder: string;
48
+ };
49
+ messageDialog: {
50
+ error: string;
51
+ success: string;
52
+ info: string;
53
+ warning: string;
54
+ };
55
+ };
56
+ };
57
+ readonly it: {
58
+ ui: {
59
+ common: {
60
+ empty: {
61
+ title: string;
62
+ description: string;
63
+ };
64
+ loading: {
65
+ title: string;
66
+ description: string;
67
+ };
68
+ };
69
+ buttons: {
70
+ all: string;
71
+ close: string;
72
+ cancel: string;
73
+ delete: string;
74
+ confirm: string;
75
+ filter: string;
76
+ search: string;
77
+ apply: string;
78
+ clear: string;
79
+ loading: string;
80
+ loadMore: string;
81
+ save: string;
82
+ update: string;
83
+ goBack: string;
84
+ };
85
+ theme: {
86
+ light: string;
87
+ dark: string;
88
+ auto: string;
89
+ title: string;
90
+ ariaLabel: string;
91
+ };
92
+ language: {
93
+ title: string;
94
+ ariaLabel: string;
95
+ };
96
+ footer: {
97
+ madeWith: string;
98
+ by: string;
99
+ allRightsReserved: string;
100
+ };
101
+ select: {
102
+ defaultPlaceholder: string;
103
+ };
104
+ messageDialog: {
105
+ error: string;
106
+ success: string;
107
+ info: string;
108
+ warning: string;
109
+ };
110
+ };
111
+ };
112
+ };
113
+ export declare const getUiVintageMessagesForLocale: (locale: keyof typeof uiVintageMessages) => {
114
+ ui: {
115
+ common: {
116
+ empty: {
117
+ title: string;
118
+ description: string;
119
+ };
120
+ loading: {
121
+ title: string;
122
+ description: string;
123
+ };
124
+ };
125
+ buttons: {
126
+ all: string;
127
+ close: string;
128
+ cancel: string;
129
+ delete: string;
130
+ confirm: string;
131
+ filter: string;
132
+ search: string;
133
+ apply: string;
134
+ clear: string;
135
+ loading: string;
136
+ loadMore: string;
137
+ save: string;
138
+ update: string;
139
+ goBack: string;
140
+ };
141
+ theme: {
142
+ light: string;
143
+ dark: string;
144
+ auto: string;
145
+ title: string;
146
+ ariaLabel: string;
147
+ };
148
+ language: {
149
+ title: string;
150
+ ariaLabel: string;
151
+ };
152
+ footer: {
153
+ madeWith: string;
154
+ by: string;
155
+ allRightsReserved: string;
156
+ };
157
+ select: {
158
+ defaultPlaceholder: string;
159
+ };
160
+ messageDialog: {
161
+ error: string;
162
+ success: string;
163
+ info: string;
164
+ warning: string;
165
+ };
166
+ };
167
+ } | {
168
+ ui: {
169
+ common: {
170
+ empty: {
171
+ title: string;
172
+ description: string;
173
+ };
174
+ loading: {
175
+ title: string;
176
+ description: string;
177
+ };
178
+ };
179
+ buttons: {
180
+ all: string;
181
+ close: string;
182
+ cancel: string;
183
+ delete: string;
184
+ confirm: string;
185
+ filter: string;
186
+ search: string;
187
+ apply: string;
188
+ clear: string;
189
+ loading: string;
190
+ loadMore: string;
191
+ save: string;
192
+ update: string;
193
+ goBack: string;
194
+ };
195
+ theme: {
196
+ light: string;
197
+ dark: string;
198
+ auto: string;
199
+ title: string;
200
+ ariaLabel: string;
201
+ };
202
+ language: {
203
+ title: string;
204
+ ariaLabel: string;
205
+ };
206
+ footer: {
207
+ madeWith: string;
208
+ by: string;
209
+ allRightsReserved: string;
210
+ };
211
+ select: {
212
+ defaultPlaceholder: string;
213
+ };
214
+ messageDialog: {
215
+ error: string;
216
+ success: string;
217
+ info: string;
218
+ warning: string;
219
+ };
220
+ };
221
+ };
222
+ export declare const getUiVintageRuntimeMessage: (path: string, fallback: string) => string;
@@ -0,0 +1,5 @@
1
+ import { _, _ as _2 } from "./LoadMoreButton.vue_vue_type_script_setup_true_lang-CGhFcsF-.js";
2
+ export {
3
+ _ as LoadMoreButton,
4
+ _2 as default
5
+ };
@@ -0,0 +1,5 @@
1
+ import { _, _ as _2 } from "./LoadingStateCard.vue_vue_type_script_setup_true_lang-DwyQjtZ3.js";
2
+ export {
3
+ _ as LoadingStateCard,
4
+ _2 as default
5
+ };
@@ -1,7 +1,9 @@
1
- import { reactive, render, h, markRaw, defineComponent, computed, openBlock, createBlock, unref, withCtx, createElementVNode, normalizeClass, resolveDynamicComponent, createVNode, createTextVNode, toDisplayString, createCommentVNode } from "vue";
2
- import { A as AE, $ as $o, T as TWr, H as HugeiconsIcon } from "./HugeiconsIcon.vue-CurGbgrJ.js";
3
- import { _ as _sfc_main$1, a as _sfc_main$2, b as _sfc_main$3, c as _sfc_main$4, d as _sfc_main$5, e as _sfc_main$6 } from "./AlertDialogTitle.vue_vue_type_script_setup_true_lang-Ca0g2mVz.js";
1
+ import { reactive, render, h, markRaw, defineComponent, computed, openBlock, createBlock, unref, withCtx, createElementVNode, normalizeClass, createVNode, createTextVNode, toDisplayString, createCommentVNode } from "vue";
2
+ import { H as HugeiconsIcon } from "./HugeiconsIcon.vue-By2RXWWz.js";
3
+ import { A as AE, $ as $o, T as TWr } from "./index.min-CZ9FIOXr.js";
4
+ import { _ as _sfc_main$1, a as _sfc_main$2, b as _sfc_main$3, c as _sfc_main$4, d as _sfc_main$5, e as _sfc_main$6 } from "./AlertDialogTitle.vue_vue_type_script_setup_true_lang-_UW48pv7.js";
4
5
  import { Button as _sfc_main$7 } from "./button.js";
6
+ import { getUiVintageRuntimeMessage } from "./i18n.js";
5
7
  const messageDialogQueue = [];
6
8
  let nextMessageDialogId = 0;
7
9
  const DIALOG_CLOSE_DURATION_MS = 300;
@@ -87,10 +89,10 @@ const showMessageDialog = (options) => {
87
89
  enqueueMessageDialog({
88
90
  id: nextMessageDialogId += 1,
89
91
  options: {
90
- type: options.type ?? "Info",
92
+ type: options.type ?? "info",
91
93
  title: options.title ?? "",
92
94
  message: options.message,
93
- closeText: options.closeText ?? "Close",
95
+ closeText: options.closeText ?? "",
94
96
  icon: markIcon(options.icon),
95
97
  closeButtonIcon: markIcon(options.closeButtonIcon)
96
98
  },
@@ -104,25 +106,37 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
104
106
  __name: "MessageDialog",
105
107
  setup(__props) {
106
108
  const currentDialog = computed(() => messageDialogState.current);
109
+ const resolvedTitle = computed(() => {
110
+ const current = currentDialog.value;
111
+ if (!current) return "";
112
+ return current.options.title || getUiVintageRuntimeMessage(`ui.messageDialog.${current.options.type}`, "");
113
+ });
114
+ const resolvedCloseText = computed(() => {
115
+ const current = currentDialog.value;
116
+ if (!current) return getUiVintageRuntimeMessage("ui.buttons.close", "Close");
117
+ return current.options.closeText || getUiVintageRuntimeMessage("ui.buttons.close", "Close");
118
+ });
107
119
  const defaultMessageIcon = computed(() => {
108
120
  const current = currentDialog.value;
109
121
  if (!current) return AE;
110
- if (current.options.type === "Error") return $o;
111
- if (current.options.type === "Success") return TWr;
122
+ if (current.options.type === "error" || current.options.type === "warning") return $o;
123
+ if (current.options.type === "success") return TWr;
112
124
  return AE;
113
125
  });
114
126
  const messageIconClasses = computed(() => {
115
127
  const current = currentDialog.value;
116
128
  if (!current) return "border-[var(--border)] bg-[var(--bg-surface-light)] dark:bg-[var(--bg-surface-dark)]";
117
- if (current.options.type === "Error") return "border-red-200 bg-red-50 dark:border-red-900/50 dark:bg-red-950/30";
118
- if (current.options.type === "Success") return "border-green-200 bg-green-50 dark:border-green-900/50 dark:bg-green-950/30";
129
+ if (current.options.type === "error") return "border-red-200 bg-red-50 dark:border-red-900/50 dark:bg-red-950/30";
130
+ if (current.options.type === "warning") return "border-amber-200 bg-amber-50 dark:border-amber-900/50 dark:bg-amber-950/30";
131
+ if (current.options.type === "success") return "border-green-200 bg-green-50 dark:border-green-900/50 dark:bg-green-950/30";
119
132
  return "border-[var(--border)] bg-[var(--bg-surface-light)] dark:bg-[var(--bg-surface-dark)]";
120
133
  });
121
134
  const messageGlyphClasses = computed(() => {
122
135
  const current = currentDialog.value;
123
136
  if (!current) return "text-blue-600";
124
- if (current.options.type === "Error") return "text-red-600";
125
- if (current.options.type === "Success") return "text-green-600";
137
+ if (current.options.type === "error") return "text-red-600";
138
+ if (current.options.type === "warning") return "text-amber-600";
139
+ if (current.options.type === "success") return "text-green-600";
126
140
  return "text-blue-600";
127
141
  });
128
142
  const handleOpenChange = (open) => {
@@ -143,11 +157,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
143
157
  createElementVNode("div", {
144
158
  class: normalizeClass(["flex size-12 shrink-0 self-center items-center justify-center rounded border sm:size-10 sm:self-start", messageIconClasses.value])
145
159
  }, [
146
- currentDialog.value.options.icon ? (openBlock(), createBlock(resolveDynamicComponent(currentDialog.value.options.icon), {
160
+ currentDialog.value.options.icon ? (openBlock(), createBlock(unref(HugeiconsIcon), {
147
161
  key: 0,
162
+ icon: currentDialog.value.options.icon,
148
163
  "stroke-width": 1.8,
149
164
  class: normalizeClass(["size-6", messageGlyphClasses.value])
150
- }, null, 8, ["class"])) : (openBlock(), createBlock(unref(HugeiconsIcon), {
165
+ }, null, 8, ["icon", "class"])) : (openBlock(), createBlock(unref(HugeiconsIcon), {
151
166
  key: 1,
152
167
  icon: defaultMessageIcon.value,
153
168
  "stroke-width": 1.8,
@@ -158,7 +173,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
158
173
  default: withCtx(() => [
159
174
  createVNode(unref(_sfc_main$4), null, {
160
175
  default: withCtx(() => [
161
- createTextVNode(toDisplayString(currentDialog.value.options.title), 1)
176
+ createTextVNode(toDisplayString(resolvedTitle.value), 1)
162
177
  ]),
163
178
  _: 1
164
179
  }),
@@ -176,16 +191,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
176
191
  createVNode(unref(_sfc_main$6), { class: "items-end" }, {
177
192
  default: withCtx(() => [
178
193
  createVNode(unref(_sfc_main$7), {
179
- variant: "outline",
194
+ variant: "secondary",
180
195
  disabled: unref(messageDialogState).busy,
181
196
  onClick: unref(resolveActiveMessageDialog)
182
197
  }, {
183
198
  default: withCtx(() => [
184
- currentDialog.value.options.closeButtonIcon ? (openBlock(), createBlock(resolveDynamicComponent(currentDialog.value.options.closeButtonIcon), {
199
+ currentDialog.value.options.closeButtonIcon ? (openBlock(), createBlock(unref(HugeiconsIcon), {
185
200
  key: 0,
201
+ icon: currentDialog.value.options.closeButtonIcon,
186
202
  class: "size-4"
187
- })) : createCommentVNode("", true),
188
- createTextVNode(" " + toDisplayString(currentDialog.value.options.closeText), 1)
203
+ }, null, 8, ["icon"])) : createCommentVNode("", true),
204
+ createTextVNode(" " + toDisplayString(resolvedCloseText.value), 1)
189
205
  ]),
190
206
  _: 1
191
207
  }, 8, ["disabled", "onClick"])
@@ -23,7 +23,7 @@ const ensureMessageToastMounted = () => {
23
23
  return messageToastMountPromise;
24
24
  }
25
25
  messageToastMountPromise = (async () => {
26
- const { default: MessageToast } = await import("./MessageToast-C1L25W2l.js");
26
+ const { default: MessageToast } = await import("./MessageToast-uKrMyOZf.js");
27
27
  if (document.getElementById(MESSAGE_TOAST_ROOT_ID)) {
28
28
  return;
29
29
  }
@@ -74,7 +74,7 @@ const showMessageToast = (options) => {
74
74
  const duration = options.duration ?? DEFAULT_TOAST_DURATION_MS;
75
75
  messageToastState.current = {
76
76
  message: options.message,
77
- status: options.status ?? "success"
77
+ type: options.type ?? "success"
78
78
  };
79
79
  messageToastState.isOpen = false;
80
80
  void ensureMessageToastMounted().then(() => {
@@ -1,4 +1,4 @@
1
- import { _, a } from "./NativeSelectOption.vue_vue_type_script_setup_true_lang-COnFRt8g.js";
1
+ import { _, a } from "./NativeSelectOption.vue_vue_type_script_setup_true_lang-CNcUI9Yh.js";
2
2
  import { defineComponent, openBlock, createElementBlock, normalizeClass, unref, renderSlot } from "vue";
3
3
  import { c as cn } from "./utils-Bz4m9VPB.js";
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -0,0 +1,6 @@
1
+ function isNullish(value) {
2
+ return value === null || value === void 0;
3
+ }
4
+ export {
5
+ isNullish as i
6
+ };
@@ -0,0 +1,57 @@
1
+ import { defineComponent, useSlots, computed, Comment, Text, openBlock, createElementBlock, createBlock, resolveDynamicComponent, normalizeClass, withCtx, createTextVNode, toDisplayString, renderSlot, createCommentVNode } from "vue";
2
+ const _hoisted_1 = { class: "flex flex-col gap-3 mb-6 sm:flex-row sm:justify-between sm:items-center sm:min-h-12 sm:gap-0" };
3
+ const _hoisted_2 = {
4
+ key: 0,
5
+ class: "w-full sm:w-auto"
6
+ };
7
+ const _sfc_main = /* @__PURE__ */ defineComponent({
8
+ __name: "PageHeader",
9
+ props: {
10
+ title: { type: String, required: true },
11
+ headingLevel: { type: Number, default: 1 },
12
+ size: { type: String, default: "large", validator: (value) => ["small", "medium", "large"].includes(String(value)) }
13
+ },
14
+ setup(__props) {
15
+ const props = __props;
16
+ const slots = useSlots();
17
+ const hasSlotContent = computed(() => {
18
+ if (!slots.default) return false;
19
+ return slots.default({}).some((vnode) => {
20
+ if (vnode.type === Comment) return false;
21
+ if (vnode.type === Text && typeof vnode.children === "string" && !vnode.children.trim()) return false;
22
+ return true;
23
+ });
24
+ });
25
+ const getSizeClasses = (size) => {
26
+ const baseClasses = "font-bold text-[var(--text-primary-light)] dark:text-[var(--text-primary-dark)]";
27
+ switch (size) {
28
+ case "small":
29
+ return `${baseClasses} text-base md:text-xl`;
30
+ case "medium":
31
+ return `${baseClasses} text-lg md:text-2xl`;
32
+ case "large":
33
+ default:
34
+ return `${baseClasses} text-xl md:text-3xl`;
35
+ }
36
+ };
37
+ return (_ctx, _cache) => {
38
+ return openBlock(), createElementBlock("div", _hoisted_1, [
39
+ (openBlock(), createBlock(resolveDynamicComponent(`h${__props.headingLevel}`), {
40
+ class: normalizeClass(getSizeClasses(props.size))
41
+ }, {
42
+ default: withCtx(() => [
43
+ createTextVNode(toDisplayString(props.title), 1)
44
+ ]),
45
+ _: 1
46
+ }, 8, ["class"])),
47
+ hasSlotContent.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
48
+ renderSlot(_ctx.$slots, "default")
49
+ ])) : createCommentVNode("", true)
50
+ ]);
51
+ };
52
+ }
53
+ });
54
+ export {
55
+ _sfc_main as PageHeader,
56
+ _sfc_main as default
57
+ };
package/dist/popover.js CHANGED
@@ -1,8 +1,8 @@
1
- import { i as injectPopoverRootContext } from "./PopoverTrigger.vue_vue_type_script_setup_true_lang-DFZJvU_P.js";
2
- import { _, b, a } from "./PopoverTrigger.vue_vue_type_script_setup_true_lang-DFZJvU_P.js";
1
+ import { i as injectPopoverRootContext } from "./PopoverTrigger.vue_vue_type_script_setup_true_lang-Cf33q_yT.js";
2
+ import { _, b, a } from "./PopoverTrigger.vue_vue_type_script_setup_true_lang-Cf33q_yT.js";
3
3
  import { defineComponent, onBeforeMount, onUnmounted, openBlock, createBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot, mergeProps } from "vue";
4
- import { u as useForwardExpose } from "./useForwardExpose-BiRQH8eO.js";
5
- import { P as PopperAnchor_default } from "./PopperContent-h-thLTz8.js";
4
+ import { u as useForwardExpose } from "./useForwardExpose-BcX3VRdS.js";
5
+ import { P as PopperAnchor_default } from "./PopperContent-DUJ8a4i0.js";
6
6
  var PopoverAnchor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
7
7
  __name: "PopoverAnchor",
8
8
  props: {