@astryx-vue/core 0.2.0 → 0.2.2

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 (225) hide show
  1. package/dist/AppShell/index.js +1 -1
  2. package/dist/{AppShell-EiGyPFbA.js → AppShell-Cb41gIAj.js} +2 -2
  3. package/dist/Avatar/index.d.ts +1 -1
  4. package/dist/Avatar/index.js +1 -1
  5. package/dist/Avatar-jmHInHwj.js +244 -0
  6. package/dist/AvatarGroup/index.d.ts +1 -1
  7. package/dist/AvatarGroup/index.js +1 -1
  8. package/dist/{AvatarGroup-CZcgAMjM.js → AvatarGroup-QyzSrpYA.js} +8 -7
  9. package/dist/Badge/index.d.ts +2 -1
  10. package/dist/Badge/index.js +1 -1
  11. package/dist/Badge-CjDQPF5g.js +30 -0
  12. package/dist/Banner/index.d.ts +1 -1
  13. package/dist/Breadcrumbs/index.d.ts +2 -2
  14. package/dist/Breadcrumbs/index.js +1 -1
  15. package/dist/{Breadcrumbs-C3YZFQ9w.js → Breadcrumbs-CTQ7fjDn.js} +45 -11
  16. package/dist/ButtonGroup/index.d.ts +1 -1
  17. package/dist/Calendar/index.d.ts +2 -2
  18. package/dist/Calendar/index.js +1 -1
  19. package/dist/Calendar-BFaI5AMv.js +352 -0
  20. package/dist/Card/index.d.ts +1 -1
  21. package/dist/Carousel/index.js +1 -1
  22. package/dist/{Carousel-BTtHkKea.js → Carousel-X0cuQkvg.js} +2 -2
  23. package/dist/Chat/index.d.ts +2 -2
  24. package/dist/Chat/index.js +2 -2
  25. package/dist/Chat-M0tiGrNT.js +3148 -0
  26. package/dist/CheckboxInput/index.d.ts +1 -1
  27. package/dist/CheckboxList/index.d.ts +1 -1
  28. package/dist/CheckboxList/index.js +1 -1
  29. package/dist/Citation/index.js +1 -1
  30. package/dist/{Citation-DijdbUUu.js → Citation-C1veUk5p.js} +2 -2
  31. package/dist/ClickableCard/index.d.ts +1 -1
  32. package/dist/Code/index.js +1 -1
  33. package/dist/{CodeBlock-CxTb6j9_.js → CodeBlock-DesTJAkm.js} +1 -1
  34. package/dist/Collapsible/index.js +1 -1
  35. package/dist/{Collapsible-9MC08X39.js → Collapsible-BestK35V.js} +1 -1
  36. package/dist/CommandPalette/index.js +1 -1
  37. package/dist/{CommandPalette-BD2iODF5.js → CommandPalette-BArt97V8.js} +1 -1
  38. package/dist/ComplexSelector/index.d.ts +1 -1
  39. package/dist/ComplexSelector/index.js +1 -1
  40. package/dist/{ComplexSelector-D9iXd5cH.js → ComplexSelector-CAoig1RK.js} +2 -2
  41. package/dist/ContextMenu/index.d.ts +2 -2
  42. package/dist/ContextMenu/index.js +1 -1
  43. package/dist/{ContextMenu-HS_WqYIg.js → ContextMenu-9Im6i43E.js} +101 -63
  44. package/dist/DateInput/index.d.ts +2 -2
  45. package/dist/DateInput/index.js +1 -1
  46. package/dist/DateInput-BLocxqC3.js +376 -0
  47. package/dist/DateRangeInput/index.d.ts +1 -1
  48. package/dist/DateRangeInput/index.js +1 -1
  49. package/dist/{DateRangeInput-1bhPGG2s.js → DateRangeInput-DwDy3eRo.js} +2 -2
  50. package/dist/DateTimeInput/index.d.ts +1 -1
  51. package/dist/DateTimeInput/index.js +1 -1
  52. package/dist/{DateTimeInput-SnPdgk6P.js → DateTimeInput-BYiaC9bn.js} +5 -3
  53. package/dist/DropdownMenu/index.d.ts +3 -2
  54. package/dist/DropdownMenu/index.js +3 -2
  55. package/dist/DropdownMenu-Ddfr-aEC.js +164 -0
  56. package/dist/{DropdownMenu-UJGych6v.js → DropdownMenu-Dh-WAHKb.js} +63 -16
  57. package/dist/FileInput/index.d.ts +1 -1
  58. package/dist/FileInput/index.js +1 -1
  59. package/dist/{FileInput-BQiwE-GB.js → FileInput-DLO6V12n.js} +2 -2
  60. package/dist/Icon/index.d.ts +4 -3
  61. package/dist/Icon/index.js +3 -2
  62. package/dist/Icon/plugin.d.ts +45 -0
  63. package/dist/Icon/plugin.js +177 -0
  64. package/dist/Icon-CJKjdJy-.js +198 -0
  65. package/dist/Lightbox/index.js +1 -1
  66. package/dist/{Lightbox-CshKoB0r.js → Lightbox-CdFCS_EA.js} +2 -2
  67. package/dist/Link/index.d.ts +1 -1
  68. package/dist/Link/index.js +1 -1
  69. package/dist/Link-DqdQZ37C.js +141 -0
  70. package/dist/Markdown/index.js +1 -1
  71. package/dist/{Markdown-D-Ua055V.js → Markdown-BqKloI3w.js} +3 -3
  72. package/dist/MetadataList/index.js +1 -1
  73. package/dist/{MetadataList-sYph_d8Q.js → MetadataList-CvZkmisf.js} +1 -1
  74. package/dist/MobileNav/index.js +1 -1
  75. package/dist/{MobileNavToggle-DD9D01aj.js → MobileNavToggle-Bwi0qXXM.js} +1 -1
  76. package/dist/MoreMenu/index.d.ts +1 -1
  77. package/dist/MoreMenu/index.js +1 -1
  78. package/dist/{MoreMenu-BVrK5kkk.js → MoreMenu-BwJaJrkB.js} +2 -2
  79. package/dist/MultiSelector/index.js +1 -1
  80. package/dist/{MultiSelector-DiYov9sF.js → MultiSelector-C-ETfFy_.js} +2 -2
  81. package/dist/NumberInput/index.d.ts +2 -2
  82. package/dist/NumberInput/index.js +1 -1
  83. package/dist/NumberInput-DjetVB8O.js +210 -0
  84. package/dist/Outline/index.js +1 -1
  85. package/dist/{Outline-DQfEBxlc.js → Outline-Bz9c-u5y.js} +1 -1
  86. package/dist/OverflowList/index.d.ts +1 -1
  87. package/dist/OverflowList/index.js +1 -1
  88. package/dist/{OverflowList-BU5VCntl.js → OverflowList-ED-KN9Y5.js} +1 -1
  89. package/dist/Overlay/index.d.ts +1 -1
  90. package/dist/Pagination/index.d.ts +2 -2
  91. package/dist/Pagination/index.js +1 -1
  92. package/dist/{Pagination-HdhtykeF.js → Pagination-Cb66HMEf.js} +76 -22
  93. package/dist/PowerSearch/index.d.ts +2 -0
  94. package/dist/PowerSearch/index.js +2 -0
  95. package/dist/PowerSearch-CjU8y4mi.js +2386 -0
  96. package/dist/ProgressBar/index.d.ts +1 -1
  97. package/dist/ProgressBar/index.js +1 -1
  98. package/dist/{ProgressBar-ChDp-7oe.js → ProgressBar-DO9Chic6.js} +31 -11
  99. package/dist/Radio/index.d.ts +1 -1
  100. package/dist/RadioList/index.d.ts +1 -1
  101. package/dist/Resizable/index.d.ts +1 -1
  102. package/dist/Resizable/index.js +1 -1
  103. package/dist/{Resizable-BhSMfO5B.js → Resizable-D-TBCg0Y.js} +1 -1
  104. package/dist/ScrollableArea/index.d.ts +1 -1
  105. package/dist/SelectableCard/index.d.ts +1 -1
  106. package/dist/Selector/index.d.ts +2 -2
  107. package/dist/Selector/index.js +1 -1
  108. package/dist/Selector-DE2IEFML.js +468 -0
  109. package/dist/SideNav/index.d.ts +1 -1
  110. package/dist/SideNav/index.js +1 -1
  111. package/dist/{SideNav-B-Om6Bz3.js → SideNav-DonEfiAx.js} +17 -17
  112. package/dist/Stepper/index.js +1 -1
  113. package/dist/{Stepper-BZ_8SEZt.js → Stepper-D2ZIcUNx.js} +1 -1
  114. package/dist/Switch/index.d.ts +1 -1
  115. package/dist/TabList/index.d.ts +1 -1
  116. package/dist/TabList/index.js +1 -1
  117. package/dist/{TabList-Cnc2Hs1H.js → TabList-D3F-stq-.js} +10 -3
  118. package/dist/Table/index.d.ts +3 -3
  119. package/dist/Table/index.js +2 -2
  120. package/dist/Table-CrP2Uffq.js +1982 -0
  121. package/dist/TextArea/index.d.ts +1 -1
  122. package/dist/TextArea/index.js +1 -1
  123. package/dist/{TextArea-Cv9UVbzS.js → TextArea-CPwSytdO.js} +12 -6
  124. package/dist/TextInput/index.d.ts +1 -1
  125. package/dist/Thumbnail/index.js +1 -1
  126. package/dist/{Thumbnail-Dc1UpykG.js → Thumbnail-BC5JGPGZ.js} +11 -11
  127. package/dist/{TimeField-C7t9Knq9.js → TimeField-DpHFrNv0.js} +2 -2
  128. package/dist/TimeInput/index.d.ts +1 -1
  129. package/dist/TimeInput/index.js +1 -1
  130. package/dist/{TimeInput-BXxCOY98.js → TimeInput-DJLV0_4z.js} +1 -1
  131. package/dist/Timestamp/index.d.ts +1 -1
  132. package/dist/Timestamp/index.js +2 -1
  133. package/dist/{Timestamp-DlZSmgCJ.js → Timestamp-GKNjjt5g.js} +4 -121
  134. package/dist/Toast/index.d.ts +2 -2
  135. package/dist/Toast/index.js +1 -1
  136. package/dist/{Toast-BKXPvEMp.js → Toast-C2ML-bmi.js} +37 -7
  137. package/dist/ToggleButton/index.d.ts +1 -1
  138. package/dist/Token/index.js +1 -1
  139. package/dist/{Token-wt4e80IM.js → Token-Chu_eCVs.js} +1 -1
  140. package/dist/Tokenizer/index.js +1 -1
  141. package/dist/{Tokenizer-nmTqdS9n.js → Tokenizer-DRDpvQ_l.js} +3 -3
  142. package/dist/Toolbar/index.d.ts +1 -1
  143. package/dist/TopNav/index.d.ts +1 -1
  144. package/dist/TopNav/index.js +1 -1
  145. package/dist/{TopNav-notp-mJx.js → TopNav-CEyWddtA.js} +3 -3
  146. package/dist/TreeList/index.js +1 -1
  147. package/dist/{TreeList-s1xBQ0qq.js → TreeList-COS8US8e.js} +3 -3
  148. package/dist/Typeahead/index.js +1 -1
  149. package/dist/{Typeahead-VAuiCurV.js → Typeahead-P7cCqtaQ.js} +3 -3
  150. package/dist/{useTypeaheadMenu-Ba7XpcZl.js → TypeaheadMenu-CGvo0Tud.js} +107 -107
  151. package/dist/composables/index.d.ts +3 -3
  152. package/dist/{context-Dbo22sck.js → context-CiKncNSH.js} +184 -6
  153. package/dist/formatInstant-BDWUIxS7.js +119 -0
  154. package/dist/{index-SMh42NI8.d.ts → index-B1TG2GPS.d.ts} +2 -2
  155. package/dist/{index-DRmb-oUa.d.ts → index-B9WzWqzk.d.ts} +3 -29
  156. package/dist/{index-BuubzuE8.d.ts → index-BDZCJ9ri.d.ts} +2 -2
  157. package/dist/{index-z4p2k9VR.d.ts → index-Bgv4ZmBl.d.ts} +20 -2
  158. package/dist/{index-BoRIw-bP.d.ts → index-Bt7ewoz2.d.ts} +32 -2
  159. package/dist/{index-uQrLBZfF.d.ts → index-Bu3oXIIS.d.ts} +24 -0
  160. package/dist/index-CJlBAXwj.d.ts +100 -0
  161. package/dist/{index-DT9S92sh.d.ts → index-CNjbOgty.d.ts} +15 -0
  162. package/dist/{index-DXSs3rwa.d.ts → index-CngORuiq.d.ts} +137 -2
  163. package/dist/index-Cs5pcwY3.d.ts +416 -0
  164. package/dist/{index-NzLDrOkk.d.ts → index-D4I_obqR.d.ts} +14 -1
  165. package/dist/{index-BtPZKO20.d.ts → index-DGXviOlp.d.ts} +49 -7
  166. package/dist/{index-CTolyeii.d.ts → index-DN7MXPHM.d.ts} +15 -1
  167. package/dist/{index-C6iJwTL0.d.ts → index-DNRBbwp_.d.ts} +165 -55
  168. package/dist/{index-C59PdX9L.d.ts → index-DWH_HzXi.d.ts} +1 -1
  169. package/dist/{index-BfOtLyNH.d.ts → index-D_nYxnNv.d.ts} +1 -1
  170. package/dist/{index-Bn_odHQ9.d.ts → index-Dg3ZmwEg.d.ts} +12 -1
  171. package/dist/{index-BiMGXtD-.d.ts → index-DimuSES0.d.ts} +14 -1
  172. package/dist/{index-DEeJowZf.d.ts → index-cGagYM1g.d.ts} +15 -2
  173. package/dist/{index-Ck8qy6Rf.d.ts → index-c_TaW8mM.d.ts} +24 -2
  174. package/dist/index-kVhSuA9t.d.ts +902 -0
  175. package/dist/{index-1uRMrk63.d.ts → index-nCEmW6wa.d.ts} +1 -1
  176. package/dist/{index-DoFCm2Q2.d.ts → index-qiZtHnGK.d.ts} +26 -0
  177. package/dist/{index-Bainr_3n.d.ts → index-u5ozu0G7.d.ts} +2 -2
  178. package/dist/index.d.ts +79 -76
  179. package/dist/index.js +111 -100
  180. package/dist/locale/index.d.ts +1 -1
  181. package/dist/locale/index.js +1 -1
  182. package/dist/power-search-DrDfcoL1.d.ts +68 -0
  183. package/dist/registry-B1ObuP--.d.ts +45 -0
  184. package/dist/registry-C7OZb0PJ.js +135 -0
  185. package/dist/{types-JktRxujg.d.ts → types-Cp4liug-.d.ts} +66 -3
  186. package/dist/{index-B8MbfMwV.d.ts → types-DDAAT1Xd.d.ts} +36 -82
  187. package/dist/types-DIYwbkpe.d.ts +33 -0
  188. package/dist/{types-DZoEm_DG.d.ts → types-pnljWjEE.d.ts} +23 -6
  189. package/dist/{useResizable-CeESZS1v.d.ts → useResizable-CUoNPmUw.d.ts} +1 -1
  190. package/package.json +10 -1
  191. package/styles/avatar.css +14 -0
  192. package/styles/badge.css +8 -0
  193. package/styles/breadcrumbs.css +6 -1
  194. package/styles/button.css +13 -0
  195. package/styles/calendar.css +16 -0
  196. package/styles/card.css +2 -0
  197. package/styles/chat.css +474 -3
  198. package/styles/dropdown-menu.css +11 -0
  199. package/styles/icon.css +58 -8
  200. package/styles/link.css +5 -0
  201. package/styles/number-input.css +22 -0
  202. package/styles/pagination.css +45 -1
  203. package/styles/power-search.css +303 -0
  204. package/styles/progress-bar.css +4 -0
  205. package/styles/selector.css +58 -0
  206. package/styles/tab-list.css +15 -0
  207. package/styles/table.css +304 -1
  208. package/styles/text-area.css +17 -0
  209. package/styles/text-input.css +5 -0
  210. package/styles/toast.css +7 -0
  211. package/styles/toolbar.css +11 -0
  212. package/styles.css +1 -0
  213. package/dist/Avatar-5s3HSrtN.js +0 -136
  214. package/dist/Badge-Ba0EwsTj.js +0 -19
  215. package/dist/Calendar-BG7wEsro.js +0 -277
  216. package/dist/Chat-DjNxw5gv.js +0 -1051
  217. package/dist/DateInput-DE2TN1Rq.js +0 -250
  218. package/dist/Icon-Dfr4k6-S.js +0 -86
  219. package/dist/Link-CprjOuTI.js +0 -92
  220. package/dist/NumberInput-CTYiQxHq.js +0 -147
  221. package/dist/Selector-Da-2BO3q.js +0 -325
  222. package/dist/Table-D-LhAy_J.js +0 -967
  223. package/dist/index-DJo-BmXZ.d.ts +0 -431
  224. package/dist/index-DtjAdYEc.d.ts +0 -68
  225. package/dist/{CheckboxList-EsIEXjK_.js → CheckboxList-BbCPiend.js} +1 -1
@@ -1,2 +1,2 @@
1
- import { t as _sfc_main } from "../AppShell-EiGyPFbA.js";
1
+ import { t as _sfc_main } from "../AppShell-Cb41gIAj.js";
2
2
  export { _sfc_main as AppShell };
@@ -1,7 +1,7 @@
1
1
  import { t as appShellMobileKey } from "./useAppShellMobile-DTsyuAJ4.js";
2
2
  import { a as _sfc_main$2, n as _sfc_main$4, r as _sfc_main$3, t as _sfc_main$5 } from "./LayoutPanel-C34uOq3e.js";
3
- import { a as useAstryxMessages } from "./context-Dbo22sck.js";
4
- import { n as _sfc_main$7, t as _sfc_main$6 } from "./MobileNavToggle-DD9D01aj.js";
3
+ import { a as useAstryxMessages } from "./context-CiKncNSH.js";
4
+ import { n as _sfc_main$7, t as _sfc_main$6 } from "./MobileNavToggle-Bwi0qXXM.js";
5
5
  import { n as sideNavRenderModeKey } from "./context-BjNya0v8.js";
6
6
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createVNode, defineComponent, mergeModels, mergeProps, openBlock, provide, reactive, ref, renderSlot, toDisplayString, unref, useAttrs, useId, useModel, useSlots, useTemplateRef, watch, withCtx } from "vue";
7
7
  import "../styles/app-shell.css";
@@ -1,2 +1,2 @@
1
- import { a as AvatarProps, c as AvatarStatusDotProps, i as AvatarNumericSize, l as AvatarStatusDotVariant, n as _default, o as AvatarShape, r as AvatarNamedSize, s as AvatarSize, t as _default$1 } from "../index-uQrLBZfF.js";
1
+ import { a as AvatarProps, c as AvatarStatusDotProps, i as AvatarNumericSize, l as AvatarStatusDotVariant, n as _default, o as AvatarShape, r as AvatarNamedSize, s as AvatarSize, t as _default$1 } from "../index-Bu3oXIIS.js";
2
2
  export { _default as Avatar, type AvatarNamedSize, type AvatarNumericSize, type AvatarProps, type AvatarShape, type AvatarSize, _default$1 as AvatarStatusDot, type AvatarStatusDotProps, type AvatarStatusDotVariant };
@@ -1,2 +1,2 @@
1
- import { n as _sfc_main, t as _sfc_main$1 } from "../Avatar-5s3HSrtN.js";
1
+ import { n as _sfc_main, t as _sfc_main$1 } from "../Avatar-jmHInHwj.js";
2
2
  export { _sfc_main as Avatar, _sfc_main$1 as AvatarStatusDot };
@@ -0,0 +1,244 @@
1
+ import { n as AvatarGroupContext, t as resolveSize } from "./utils-C9r3UD_y.js";
2
+ import { t as _sfc_main$2 } from "./Tooltip-mp0NMh_Y.js";
3
+ import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, inject, mergeProps, normalizeStyle, openBlock, ref, renderSlot, resolveDynamicComponent, toDisplayString, unref, useAttrs, withCtx } from "vue";
4
+ import "../styles/avatar.css";
5
+ //#region src/Avatar/Avatar.vue
6
+ const _hoisted_1$1 = { class: "astryx-avatar__content" };
7
+ const _hoisted_2 = ["src"];
8
+ const _hoisted_3 = ["src"];
9
+ const _hoisted_4 = {
10
+ key: 0,
11
+ class: "astryx-avatar__status"
12
+ };
13
+ const _hoisted_5 = { class: "astryx-avatar__content" };
14
+ const _hoisted_6 = ["src"];
15
+ const _hoisted_7 = ["src"];
16
+ const _hoisted_8 = {
17
+ key: 0,
18
+ class: "astryx-avatar__status"
19
+ };
20
+ const INITIALS_FONT_SIZE_RATIO = 16 / 36;
21
+ const DEFAULT_ICON_RATIO = .6;
22
+ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
23
+ inheritAttrs: false,
24
+ __name: "Avatar",
25
+ props: {
26
+ alt: {},
27
+ fallbackSrc: {},
28
+ name: {},
29
+ size: { default: "md" },
30
+ shape: { default: "circle" },
31
+ src: {},
32
+ href: {},
33
+ target: {},
34
+ rel: {},
35
+ tooltip: {
36
+ type: [Boolean, String],
37
+ default: true
38
+ }
39
+ },
40
+ emits: ["error"],
41
+ setup(__props, { emit: __emit }) {
42
+ const props = __props;
43
+ const emit = __emit;
44
+ const attrs = useAttrs();
45
+ const erroredSrc = ref(void 0);
46
+ const erroredFallbackSrc = ref(void 0);
47
+ const avatarGroup = inject(AvatarGroupContext, void 0);
48
+ const resolvedSize = computed(() => avatarGroup?.size.value ?? props.size);
49
+ const resolvedShape = computed(() => avatarGroup?.shape.value ?? props.shape);
50
+ const numericSize = computed(() => resolveSize(resolvedSize.value));
51
+ const groupStyle = computed(() => {
52
+ if (!avatarGroup) return {};
53
+ return {
54
+ marginInlineStart: `${-avatarGroup.overlap.value}px`,
55
+ borderWidth: "2px"
56
+ };
57
+ });
58
+ const rootStyle = computed(() => ({
59
+ width: `${numericSize.value}px`,
60
+ height: `${numericSize.value}px`
61
+ }));
62
+ const showImage = computed(() => props.src && erroredSrc.value !== props.src);
63
+ const showFallbackImage = computed(() => !showImage.value && props.fallbackSrc && erroredFallbackSrc.value !== props.fallbackSrc);
64
+ const meaningfulName = computed(() => {
65
+ return typeof props.name === "string" && props.name.trim() !== "" ? props.name.trim() : void 0;
66
+ });
67
+ const meaningfulAlt = computed(() => {
68
+ return typeof props.alt === "string" && props.alt.trim() !== "" ? props.alt.trim() : void 0;
69
+ });
70
+ const initials = computed(() => {
71
+ if (!meaningfulName.value) return "";
72
+ const words = meaningfulName.value.split(/\s+/);
73
+ const first = words.at(0);
74
+ const last = words.length > 1 ? words.at(-1) : void 0;
75
+ const initial = (word) => {
76
+ if (!word) return "";
77
+ const match = word.match(/[\p{L}\p{N}]/u);
78
+ return match ? match[0].toUpperCase() : "";
79
+ };
80
+ return `${initial(first)}${initial(last)}`;
81
+ });
82
+ const showInitials = computed(() => !showImage.value && !showFallbackImage.value && initials.value !== "");
83
+ const showIcon = computed(() => !showImage.value && !showFallbackImage.value && initials.value === "");
84
+ const accessibleName = computed(() => {
85
+ return meaningfulAlt.value || meaningfulName.value;
86
+ });
87
+ const isLink = computed(() => props.href != null);
88
+ const isButton = computed(() => !isLink.value && attrs.onClick != null);
89
+ const isInteractive = computed(() => isLink.value || isButton.value);
90
+ const rootTag = computed(() => isLink.value ? "a" : isButton.value ? "button" : "span");
91
+ const linkRel = computed(() => {
92
+ const parts = new Set((props.rel ?? "").split(/\s+/).filter(Boolean));
93
+ if (props.target === "_blank") {
94
+ parts.add("noopener");
95
+ parts.add("noreferrer");
96
+ }
97
+ return parts.size > 0 ? Array.from(parts).join(" ") : void 0;
98
+ });
99
+ const tooltipText = computed(() => {
100
+ if (props.tooltip === false) return void 0;
101
+ if (typeof props.tooltip === "string") {
102
+ const custom = props.tooltip.trim();
103
+ return custom === "" ? void 0 : custom;
104
+ }
105
+ return meaningfulName.value;
106
+ });
107
+ const a11yProps = computed(() => {
108
+ if (isInteractive.value) return accessibleName.value ? { "aria-label": accessibleName.value } : {};
109
+ if (accessibleName.value) return {
110
+ "role": "img",
111
+ "aria-label": accessibleName.value
112
+ };
113
+ return {
114
+ "role": "presentation",
115
+ "aria-hidden": "true"
116
+ };
117
+ });
118
+ const rootBindings = computed(() => {
119
+ const bindings = {
120
+ ...a11yProps.value,
121
+ ...attrs
122
+ };
123
+ if (isLink.value) {
124
+ bindings.href = props.href;
125
+ bindings.target = props.target;
126
+ bindings.rel = linkRel.value;
127
+ }
128
+ if (isButton.value) bindings.type = attrs.type ?? "button";
129
+ if (!isInteractive.value && tooltipText.value != null && bindings.tabindex == null && bindings.tabIndex == null) bindings.tabindex = 0;
130
+ return bindings;
131
+ });
132
+ function handleImageError(event) {
133
+ if (props.src) erroredSrc.value = props.src;
134
+ emit("error", event);
135
+ }
136
+ function handleFallbackError() {
137
+ if (props.fallbackSrc) erroredFallbackSrc.value = props.fallbackSrc;
138
+ }
139
+ return (_ctx, _cache) => {
140
+ return tooltipText.value ? (openBlock(), createBlock(_sfc_main$2, {
141
+ key: 0,
142
+ content: tooltipText.value
143
+ }, {
144
+ default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(rootTag.value), mergeProps({
145
+ class: ["astryx-avatar", [`astryx-avatar--${resolvedShape.value}`, {
146
+ "astryx-avatar--group-item": unref(avatarGroup),
147
+ "astryx-avatar--interactive": isInteractive.value
148
+ }]],
149
+ style: [rootStyle.value, groupStyle.value]
150
+ }, rootBindings.value), {
151
+ default: withCtx(() => [createElementVNode("span", _hoisted_1$1, [showImage.value ? (openBlock(), createElementBlock("img", {
152
+ key: 0,
153
+ class: "astryx-avatar__image",
154
+ src: __props.src,
155
+ alt: "",
156
+ onError: handleImageError
157
+ }, null, 40, _hoisted_2)) : showFallbackImage.value ? (openBlock(), createElementBlock("img", {
158
+ key: 1,
159
+ class: "astryx-avatar__image",
160
+ src: __props.fallbackSrc,
161
+ alt: "",
162
+ onError: handleFallbackError
163
+ }, null, 40, _hoisted_3)) : showInitials.value ? (openBlock(), createElementBlock("span", {
164
+ key: 2,
165
+ class: "astryx-avatar__fallback astryx-avatar__fallback--initials",
166
+ style: normalizeStyle({ fontSize: `${numericSize.value * INITIALS_FONT_SIZE_RATIO}px` })
167
+ }, toDisplayString(initials.value), 5)) : showIcon.value ? (openBlock(), createElementBlock("span", {
168
+ key: 3,
169
+ class: "astryx-avatar__fallback astryx-avatar__fallback--icon",
170
+ style: normalizeStyle({ fontSize: `${numericSize.value * DEFAULT_ICON_RATIO}px` })
171
+ }, [renderSlot(_ctx.$slots, "default", {}, () => [_cache[0] || (_cache[0] = createElementVNode("svg", {
172
+ viewBox: "0 0 24 24",
173
+ fill: "currentColor",
174
+ "aria-hidden": "true"
175
+ }, [createElementVNode("path", { d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" })], -1))])], 4)) : createCommentVNode("v-if", true)]), _ctx.$slots.status ? (openBlock(), createElementBlock("span", _hoisted_4, [renderSlot(_ctx.$slots, "status")])) : createCommentVNode("v-if", true)]),
176
+ _: 3
177
+ }, 16, ["class", "style"]))]),
178
+ _: 3
179
+ }, 8, ["content"])) : (openBlock(), createBlock(resolveDynamicComponent(rootTag.value), mergeProps({
180
+ key: 1,
181
+ class: ["astryx-avatar", [`astryx-avatar--${resolvedShape.value}`, {
182
+ "astryx-avatar--group-item": unref(avatarGroup),
183
+ "astryx-avatar--interactive": isInteractive.value
184
+ }]],
185
+ style: [rootStyle.value, groupStyle.value]
186
+ }, rootBindings.value), {
187
+ default: withCtx(() => [createElementVNode("span", _hoisted_5, [showImage.value ? (openBlock(), createElementBlock("img", {
188
+ key: 0,
189
+ class: "astryx-avatar__image",
190
+ src: __props.src,
191
+ alt: "",
192
+ onError: handleImageError
193
+ }, null, 40, _hoisted_6)) : showFallbackImage.value ? (openBlock(), createElementBlock("img", {
194
+ key: 1,
195
+ class: "astryx-avatar__image",
196
+ src: __props.fallbackSrc,
197
+ alt: "",
198
+ onError: handleFallbackError
199
+ }, null, 40, _hoisted_7)) : showInitials.value ? (openBlock(), createElementBlock("span", {
200
+ key: 2,
201
+ class: "astryx-avatar__fallback astryx-avatar__fallback--initials",
202
+ style: normalizeStyle({ fontSize: `${numericSize.value * INITIALS_FONT_SIZE_RATIO}px` })
203
+ }, toDisplayString(initials.value), 5)) : showIcon.value ? (openBlock(), createElementBlock("span", {
204
+ key: 3,
205
+ class: "astryx-avatar__fallback astryx-avatar__fallback--icon",
206
+ style: normalizeStyle({ fontSize: `${numericSize.value * DEFAULT_ICON_RATIO}px` })
207
+ }, [renderSlot(_ctx.$slots, "default", {}, () => [_cache[1] || (_cache[1] = createElementVNode("svg", {
208
+ viewBox: "0 0 24 24",
209
+ fill: "currentColor",
210
+ "aria-hidden": "true"
211
+ }, [createElementVNode("path", { d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" })], -1))])], 4)) : createCommentVNode("v-if", true)]), _ctx.$slots.status ? (openBlock(), createElementBlock("span", _hoisted_8, [renderSlot(_ctx.$slots, "status")])) : createCommentVNode("v-if", true)]),
212
+ _: 3
213
+ }, 16, ["class", "style"]));
214
+ };
215
+ }
216
+ });
217
+ //#endregion
218
+ //#region src/Avatar/AvatarStatusDot.vue
219
+ const _hoisted_1 = [
220
+ "data-variant",
221
+ "role",
222
+ "aria-label",
223
+ "aria-hidden"
224
+ ];
225
+ const _sfc_main = /*@__PURE__*/ defineComponent({
226
+ __name: "AvatarStatusDot",
227
+ props: {
228
+ variant: { default: "neutral" },
229
+ label: {}
230
+ },
231
+ setup(__props) {
232
+ return (_ctx, _cache) => {
233
+ return openBlock(), createElementBlock("span", {
234
+ class: "astryx-avatar-status-dot",
235
+ "data-variant": __props.variant,
236
+ role: __props.label ? "img" : void 0,
237
+ "aria-label": __props.label || void 0,
238
+ "aria-hidden": __props.label ? void 0 : "true"
239
+ }, null, 8, _hoisted_1);
240
+ };
241
+ }
242
+ });
243
+ //#endregion
244
+ export { _sfc_main$1 as n, _sfc_main as t };
@@ -1,2 +1,2 @@
1
- import { i as AvatarGroupProps, n as _default, r as AvatarGroupOverflowProps, t as _default$1 } from "../index-C6iJwTL0.js";
1
+ import { i as AvatarGroupProps, n as _default, r as AvatarGroupOverflowProps, t as _default$1 } from "../index-DNRBbwp_.js";
2
2
  export { _default as AvatarGroup, _default$1 as AvatarGroupOverflow, type AvatarGroupOverflowProps, type AvatarGroupProps };
@@ -1,2 +1,2 @@
1
- import { n as _sfc_main, t as _sfc_main$1 } from "../AvatarGroup-CZcgAMjM.js";
1
+ import { n as _sfc_main, t as _sfc_main$1 } from "../AvatarGroup-QyzSrpYA.js";
2
2
  export { _sfc_main as AvatarGroup, _sfc_main$1 as AvatarGroupOverflow };
@@ -2,17 +2,14 @@ import { n as AvatarGroupContext, t as resolveSize } from "./utils-C9r3UD_y.js";
2
2
  import { computed, createElementBlock, defineComponent, inject, normalizeClass, normalizeStyle, openBlock, provide, renderSlot, toDisplayString } from "vue";
3
3
  import "../styles/avatar-group.css";
4
4
  //#region src/AvatarGroup/AvatarGroup.vue
5
- const _hoisted_1$1 = {
6
- class: "astryx-avatar-group",
7
- role: "group",
8
- "aria-label": "Avatar group"
9
- };
5
+ const _hoisted_1$1 = ["aria-label"];
10
6
  const OVERLAP_RATIO = .25;
11
7
  const _sfc_main$1 = /*@__PURE__*/ defineComponent({
12
8
  __name: "AvatarGroup",
13
9
  props: {
14
10
  size: { default: "md" },
15
- shape: { default: "circle" }
11
+ shape: { default: "circle" },
12
+ label: { default: "Avatar group" }
16
13
  },
17
14
  setup(__props) {
18
15
  const props = __props;
@@ -24,7 +21,11 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
24
21
  overlap
25
22
  });
26
23
  return (_ctx, _cache) => {
27
- return openBlock(), createElementBlock("div", _hoisted_1$1, [renderSlot(_ctx.$slots, "default")]);
24
+ return openBlock(), createElementBlock("div", {
25
+ class: "astryx-avatar-group",
26
+ role: "group",
27
+ "aria-label": __props.label
28
+ }, [renderSlot(_ctx.$slots, "default")], 8, _hoisted_1$1);
28
29
  };
29
30
  }
30
31
  });
@@ -1,2 +1,3 @@
1
- import { i as BadgeVariantMap, n as BadgeProps, r as BadgeVariant, t as _default } from "../index-DRmb-oUa.js";
1
+ import { n as BadgeVariant, r as BadgeVariantMap, t as BadgeProps } from "../types-DIYwbkpe.js";
2
+ import { t as _default } from "../index-B9WzWqzk.js";
2
3
  export { _default as Badge, type BadgeProps, type BadgeVariant, type BadgeVariantMap };
@@ -1,2 +1,2 @@
1
- import { t as _sfc_main } from "../Badge-Ba0EwsTj.js";
1
+ import { t as _sfc_main } from "../Badge-CjDQPF5g.js";
2
2
  export { _sfc_main as Badge };
@@ -0,0 +1,30 @@
1
+ import { computed, createElementBlock, createElementVNode, createTextVNode, defineComponent, openBlock, renderSlot, toDisplayString } from "vue";
2
+ import "../styles/badge.css";
3
+ //#region src/Badge/Badge.vue
4
+ const _hoisted_1 = ["data-variant", "title"];
5
+ const _hoisted_2 = { class: "astryx-badge__label" };
6
+ const _sfc_main = /*@__PURE__*/ defineComponent({
7
+ name: "Badge",
8
+ __name: "Badge",
9
+ props: {
10
+ variant: { default: "neutral" },
11
+ label: {}
12
+ },
13
+ setup(__props) {
14
+ const props = __props;
15
+ const labelTitle = computed(() => {
16
+ const label = props.label;
17
+ if (typeof label === "number") return String(label);
18
+ if (typeof label === "string" && label.length > 0) return label;
19
+ });
20
+ return (_ctx, _cache) => {
21
+ return openBlock(), createElementBlock("span", {
22
+ class: "astryx-badge",
23
+ "data-variant": __props.variant,
24
+ title: labelTitle.value
25
+ }, [renderSlot(_ctx.$slots, "icon"), createElementVNode("span", _hoisted_2, [renderSlot(_ctx.$slots, "default", {}, () => [createTextVNode(toDisplayString(__props.label), 1)])])], 8, _hoisted_1);
26
+ };
27
+ }
28
+ });
29
+ //#endregion
30
+ export { _sfc_main as t };
@@ -1,2 +1,2 @@
1
- import { Cr as _default, Dr as BannerSlots, Er as BannerProps, Or as BannerStatus, Tr as BannerEmits, wr as BannerContainer } from "../index-C6iJwTL0.js";
1
+ import { Fr as BannerProps, Ir as BannerSlots, Lr as BannerStatus, Mr as _default, Nr as BannerContainer, Pr as BannerEmits } from "../index-DNRBbwp_.js";
2
2
  export { _default as Banner, type BannerContainer, type BannerEmits, type BannerProps, type BannerSlots, type BannerStatus };
@@ -1,2 +1,2 @@
1
- import { a as BreadcrumbsVariant, i as BreadcrumbsProps, n as _default, r as BreadcrumbItemProps, t as _default$1 } from "../index-BiMGXtD-.js";
2
- export { _default as BreadcrumbItem, type BreadcrumbItemProps, _default$1 as Breadcrumbs, type BreadcrumbsProps, type BreadcrumbsVariant };
1
+ import { a as BreadcrumbsProps, i as BreadcrumbMenuOption, n as _default, o as BreadcrumbsVariant, r as BreadcrumbItemProps, t as _default$1 } from "../index-DimuSES0.js";
2
+ export { _default as BreadcrumbItem, type BreadcrumbItemProps, type BreadcrumbMenuOption, _default$1 as Breadcrumbs, type BreadcrumbsProps, type BreadcrumbsVariant };
@@ -1,2 +1,2 @@
1
- import { n as _sfc_main, t as _sfc_main$1 } from "../Breadcrumbs-C3YZFQ9w.js";
1
+ import { n as _sfc_main, t as _sfc_main$1 } from "../Breadcrumbs-CTQ7fjDn.js";
2
2
  export { _sfc_main as BreadcrumbItem, _sfc_main$1 as Breadcrumbs };
@@ -1,4 +1,6 @@
1
- import { computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, inject, normalizeClass, openBlock, provide, renderSlot, toDisplayString } from "vue";
1
+ import { t as _sfc_main$2 } from "./Icon-CJKjdJy-.js";
2
+ import { t as _sfc_main$3 } from "./DropdownMenu-Dh-WAHKb.js";
3
+ import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, inject, mergeProps, normalizeClass, openBlock, provide, renderSlot, toDisplayString, withCtx } from "vue";
2
4
  import "../styles/breadcrumbs.css";
3
5
  //#region src/Breadcrumbs/context.ts
4
6
  const breadcrumbContextKey = Symbol("breadcrumbContext");
@@ -8,16 +10,21 @@ const _hoisted_1$1 = {
8
10
  class: "astryx-breadcrumb-item__separator",
9
11
  "aria-hidden": "true"
10
12
  };
11
- const _hoisted_2$1 = ["href"];
13
+ const _hoisted_2$1 = ["aria-current"];
12
14
  const _hoisted_3 = {
13
15
  key: 0,
14
16
  class: "astryx-breadcrumb-item__icon"
15
17
  };
16
- const _hoisted_4 = {
18
+ const _hoisted_4 = ["href"];
19
+ const _hoisted_5 = {
17
20
  key: 0,
18
21
  class: "astryx-breadcrumb-item__icon"
19
22
  };
20
- const _hoisted_5 = {
23
+ const _hoisted_6 = {
24
+ key: 0,
25
+ class: "astryx-breadcrumb-item__icon"
26
+ };
27
+ const _hoisted_7 = {
21
28
  key: 0,
22
29
  class: "astryx-breadcrumb-item__icon"
23
30
  };
@@ -25,7 +32,9 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
25
32
  __name: "BreadcrumbItem",
26
33
  props: {
27
34
  href: {},
28
- isCurrent: { type: Boolean }
35
+ isCurrent: { type: Boolean },
36
+ menu: {},
37
+ menuSize: {}
29
38
  },
30
39
  emits: ["click"],
31
40
  setup(__props, { emit: __emit }) {
@@ -34,8 +43,11 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
34
43
  const context = inject(breadcrumbContextKey, void 0);
35
44
  const variant = computed(() => context?.variant.value ?? "default");
36
45
  const separator = computed(() => context?.separator.value ?? "/");
46
+ const hasMenu = computed(() => props.menu != null);
37
47
  const classes = computed(() => ["astryx-breadcrumb-item", `astryx-breadcrumb-item--variant-${variant.value}`]);
38
48
  const contentClasses = computed(() => ["astryx-breadcrumb-item__content", props.isCurrent && "astryx-breadcrumb-item__content--current"]);
49
+ const menuSize = computed(() => props.menuSize ?? (variant.value === "supporting" ? "sm" : "md"));
50
+ if (import.meta.env?.DEV !== false && hasMenu.value && props.href) console.warn("BreadcrumbItem: `menu` and `href` are mutually exclusive; `menu` takes precedence and `href` is ignored.");
39
51
  function handleClick(event) {
40
52
  if (props.isCurrent) {
41
53
  event.preventDefault();
@@ -44,21 +56,43 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
44
56
  emit("click", event);
45
57
  }
46
58
  return (_ctx, _cache) => {
47
- return openBlock(), createElementBlock("li", { class: normalizeClass(classes.value) }, [createElementVNode("span", _hoisted_1$1, toDisplayString(separator.value), 1), __props.href && !__props.isCurrent ? (openBlock(), createElementBlock("a", {
59
+ return openBlock(), createElementBlock("li", { class: normalizeClass(classes.value) }, [createElementVNode("span", _hoisted_1$1, toDisplayString(separator.value), 1), hasMenu.value ? (openBlock(), createBlock(_sfc_main$3, {
48
60
  key: 0,
61
+ button: {
62
+ label: "Menu",
63
+ size: menuSize.value
64
+ },
65
+ items: __props.menu,
66
+ "menu-width": "max-content"
67
+ }, {
68
+ trigger: withCtx((triggerProps) => [createElementVNode("button", mergeProps({
69
+ type: "button",
70
+ class: contentClasses.value
71
+ }, triggerProps, { "aria-current": __props.isCurrent ? "page" : void 0 }), [
72
+ _ctx.$slots.startIcon ? (openBlock(), createElementBlock("span", _hoisted_3, [renderSlot(_ctx.$slots, "startIcon")])) : createCommentVNode("v-if", true),
73
+ renderSlot(_ctx.$slots, "default"),
74
+ createVNode(_sfc_main$2, {
75
+ class: "astryx-breadcrumb-item__chevron",
76
+ icon: "chevronDown",
77
+ size: "sm"
78
+ })
79
+ ], 16, _hoisted_2$1)]),
80
+ _: 3
81
+ }, 8, ["button", "items"])) : __props.href && !__props.isCurrent ? (openBlock(), createElementBlock("a", {
82
+ key: 1,
49
83
  href: __props.href,
50
84
  class: "astryx-breadcrumb-item__content",
51
85
  onClick: handleClick
52
- }, [_ctx.$slots.startIcon ? (openBlock(), createElementBlock("span", _hoisted_3, [renderSlot(_ctx.$slots, "startIcon")])) : createCommentVNode("v-if", true), renderSlot(_ctx.$slots, "default")], 8, _hoisted_2$1)) : !__props.isCurrent ? (openBlock(), createElementBlock("button", {
53
- key: 1,
86
+ }, [_ctx.$slots.startIcon ? (openBlock(), createElementBlock("span", _hoisted_5, [renderSlot(_ctx.$slots, "startIcon")])) : createCommentVNode("v-if", true), renderSlot(_ctx.$slots, "default")], 8, _hoisted_4)) : !__props.isCurrent ? (openBlock(), createElementBlock("button", {
87
+ key: 2,
54
88
  type: "button",
55
89
  class: "astryx-breadcrumb-item__content",
56
90
  onClick: handleClick
57
- }, [_ctx.$slots.startIcon ? (openBlock(), createElementBlock("span", _hoisted_4, [renderSlot(_ctx.$slots, "startIcon")])) : createCommentVNode("v-if", true), renderSlot(_ctx.$slots, "default")])) : (openBlock(), createElementBlock("span", {
58
- key: 2,
91
+ }, [_ctx.$slots.startIcon ? (openBlock(), createElementBlock("span", _hoisted_6, [renderSlot(_ctx.$slots, "startIcon")])) : createCommentVNode("v-if", true), renderSlot(_ctx.$slots, "default")])) : (openBlock(), createElementBlock("span", {
92
+ key: 3,
59
93
  class: normalizeClass(contentClasses.value),
60
94
  "aria-current": "page"
61
- }, [_ctx.$slots.startIcon ? (openBlock(), createElementBlock("span", _hoisted_5, [renderSlot(_ctx.$slots, "startIcon")])) : createCommentVNode("v-if", true), renderSlot(_ctx.$slots, "default")], 2))], 2);
95
+ }, [_ctx.$slots.startIcon ? (openBlock(), createElementBlock("span", _hoisted_7, [renderSlot(_ctx.$slots, "startIcon")])) : createCommentVNode("v-if", true), renderSlot(_ctx.$slots, "default")], 2))], 2);
62
96
  };
63
97
  }
64
98
  });
@@ -1,2 +1,2 @@
1
- import { Sr as ButtonGroupOrientation, br as ButtonGroupProps, xr as ButtonGroupSlots, yr as _default } from "../index-C6iJwTL0.js";
1
+ import { Ar as ButtonGroupSlots, Or as _default, jr as ButtonGroupOrientation, kr as ButtonGroupProps } from "../index-DNRBbwp_.js";
2
2
  export { _default as ButtonGroup, _default as default, type ButtonGroupOrientation, type ButtonGroupProps, type ButtonGroupSlots };
@@ -1,2 +1,2 @@
1
- import { i as CalendarSlots, n as CalendarEmits, r as CalendarProps, t as _default } from "../index-z4p2k9VR.js";
2
- export { _default as Calendar, type CalendarEmits, type CalendarProps, type CalendarSlots };
1
+ import { a as CalendarSlots, i as CalendarRangeValue, n as CalendarEmits, r as CalendarProps, t as _default } from "../index-Bgv4ZmBl.js";
2
+ export { _default as Calendar, type CalendarEmits, type CalendarProps, type CalendarRangeValue, type CalendarSlots };
@@ -1,2 +1,2 @@
1
- import { t as _sfc_main } from "../Calendar-BG7wEsro.js";
1
+ import { t as _sfc_main } from "../Calendar-BFaI5AMv.js";
2
2
  export { _sfc_main as Calendar };