@astryx-vue/core 0.1.3 → 0.2.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 (269) hide show
  1. package/dist/AlertDialog/index.js +1 -1
  2. package/dist/{AlertDialog-BylcA4vV.js → AlertDialog-ovx4cBjM.js} +1 -1
  3. package/dist/AppShell/index.js +1 -1
  4. package/dist/{AppShell-b0PWt9Fz.js → AppShell-1wNIEtK_.js} +2 -2
  5. package/dist/Avatar/index.d.ts +1 -1
  6. package/dist/Avatar/index.js +1 -1
  7. package/dist/Avatar-jmHInHwj.js +244 -0
  8. package/dist/AvatarGroup/index.d.ts +1 -1
  9. package/dist/AvatarGroup/index.js +1 -1
  10. package/dist/{AvatarGroup-CZcgAMjM.js → AvatarGroup-QyzSrpYA.js} +8 -7
  11. package/dist/Badge/index.d.ts +1 -1
  12. package/dist/Badge/index.js +1 -1
  13. package/dist/Badge-CjDQPF5g.js +30 -0
  14. package/dist/Banner/index.d.ts +1 -1
  15. package/dist/Breadcrumbs/index.d.ts +2 -2
  16. package/dist/Breadcrumbs/index.js +1 -1
  17. package/dist/{Breadcrumbs-C3YZFQ9w.js → Breadcrumbs-C97HmjkC.js} +45 -11
  18. package/dist/Button/index.d.ts +1 -1
  19. package/dist/ButtonGroup/index.d.ts +1 -1
  20. package/dist/Calendar/index.d.ts +2 -2
  21. package/dist/Calendar/index.js +1 -1
  22. package/dist/Calendar-DqC3EDN1.js +352 -0
  23. package/dist/Card/index.d.ts +1 -1
  24. package/dist/Carousel/index.d.ts +2 -0
  25. package/dist/Carousel/index.js +2 -0
  26. package/dist/Carousel-BGUnskjo.js +363 -0
  27. package/dist/Chat/index.js +1 -1
  28. package/dist/{Chat-C1aWl5V3.js → Chat-DCjXRiOF.js} +8 -8
  29. package/dist/CheckboxInput/index.d.ts +1 -1
  30. package/dist/CheckboxList/index.d.ts +1 -1
  31. package/dist/CheckboxList/index.js +1 -1
  32. package/dist/Citation/index.js +1 -1
  33. package/dist/{Citation-C1X0Rde8.js → Citation-DunoAqVH.js} +2 -2
  34. package/dist/ClickableCard/index.d.ts +1 -1
  35. package/dist/Code/index.d.ts +3 -2
  36. package/dist/Code/index.js +4 -2
  37. package/dist/Code-yb_KOFtJ.js +299 -0
  38. package/dist/{CodeBlock-BQdooQy2.js → CodeBlock-CAF-VJnh.js} +8 -2
  39. package/dist/Collapsible/index.js +1 -1
  40. package/dist/{Collapsible-BS9ctCQV.js → Collapsible-DvMiYJp7.js} +1 -1
  41. package/dist/CommandPalette/index.js +1 -1
  42. package/dist/{CommandPalette-u5h_E05P.js → CommandPalette-xfm9ldUI.js} +1 -1
  43. package/dist/ComplexSelector/index.d.ts +1 -1
  44. package/dist/ComplexSelector/index.js +1 -1
  45. package/dist/{ComplexSelector-BHmGWml0.js → ComplexSelector-B6lBTRhP.js} +2 -2
  46. package/dist/ContextMenu/index.d.ts +2 -2
  47. package/dist/ContextMenu/index.js +1 -1
  48. package/dist/{ContextMenu-dA-ppaRQ.js → ContextMenu-DUkED3Z3.js} +101 -63
  49. package/dist/DateInput/index.d.ts +2 -2
  50. package/dist/DateInput/index.js +1 -1
  51. package/dist/DateInput-Crcg-CCj.js +376 -0
  52. package/dist/DateRangeInput/index.d.ts +1 -1
  53. package/dist/DateRangeInput/index.js +1 -1
  54. package/dist/{DateRangeInput-fmQlr_A7.js → DateRangeInput-e9KSxBBK.js} +2 -2
  55. package/dist/DateTimeInput/index.d.ts +1 -1
  56. package/dist/DateTimeInput/index.js +1 -1
  57. package/dist/{DateTimeInput-Bs1JmcIp.js → DateTimeInput-fSOfuLex.js} +5 -3
  58. package/dist/DropdownMenu/index.d.ts +3 -2
  59. package/dist/DropdownMenu/index.js +3 -2
  60. package/dist/{DropdownMenu-B0gogrvG.js → DropdownMenu-8G0B1UND.js} +63 -16
  61. package/dist/DropdownMenu-XvW4BJob.js +164 -0
  62. package/dist/EmptyState/index.js +1 -1
  63. package/dist/{EmptyState-Bhlqgsg4.js → EmptyState-CUJdTYKV.js} +1 -1
  64. package/dist/FileInput/index.d.ts +1 -1
  65. package/dist/FileInput/index.js +1 -1
  66. package/dist/{FileInput-CmAfOpkA.js → FileInput-D-fchyQH.js} +2 -2
  67. package/dist/Icon/index.d.ts +4 -0
  68. package/dist/Icon/index.js +3 -0
  69. package/dist/Icon/plugin.d.ts +45 -0
  70. package/dist/Icon/plugin.js +177 -0
  71. package/dist/Icon-Bku25g_K.js +193 -0
  72. package/dist/Lightbox/index.d.ts +2 -0
  73. package/dist/Lightbox/index.js +2 -0
  74. package/dist/Lightbox-uuVGgHxW.js +384 -0
  75. package/dist/Link/index.d.ts +1 -1
  76. package/dist/Link/index.js +1 -1
  77. package/dist/Link-DqdQZ37C.js +141 -0
  78. package/dist/List/index.d.ts +1 -1
  79. package/dist/Markdown/index.js +1 -1
  80. package/dist/{Markdown-CwtLr3f_.js → Markdown-DLICa3db.js} +3 -3
  81. package/dist/MetadataList/index.d.ts +1 -1
  82. package/dist/MetadataList/index.js +1 -1
  83. package/dist/{MetadataList-DlXQTLog.js → MetadataList-h492rqEN.js} +1 -1
  84. package/dist/MobileNav/index.js +1 -1
  85. package/dist/{MobileNavToggle-CgQamG6E.js → MobileNavToggle-BMj3Wtuq.js} +1 -1
  86. package/dist/MoreMenu/index.d.ts +1 -1
  87. package/dist/MoreMenu/index.js +1 -1
  88. package/dist/{MoreMenu-BXL6Dqsu.js → MoreMenu-DkYi5az5.js} +2 -2
  89. package/dist/MultiSelector/index.d.ts +1 -1
  90. package/dist/MultiSelector/index.js +1 -1
  91. package/dist/{MultiSelector-DT8ZccMI.js → MultiSelector-C2IS-EaU.js} +2 -2
  92. package/dist/NavItem/index.d.ts +1 -1
  93. package/dist/NavMenu/index.d.ts +1 -1
  94. package/dist/NavMenu/index.js +1 -1
  95. package/dist/{NavMenuItem-mzNQESpB.js → NavMenuItem-B-k7olt5.js} +2 -1
  96. package/dist/NumberInput/index.d.ts +2 -2
  97. package/dist/NumberInput/index.js +1 -1
  98. package/dist/NumberInput-CjfAsFwj.js +210 -0
  99. package/dist/Outline/index.d.ts +2 -0
  100. package/dist/Outline/index.js +2 -0
  101. package/dist/Outline-BTmrtvXR.js +325 -0
  102. package/dist/OverflowList/index.d.ts +1 -1
  103. package/dist/OverflowList/index.js +1 -1
  104. package/dist/{OverflowList-zXg3g6fy.js → OverflowList-CRE8BE7V.js} +2 -2
  105. package/dist/Overlay/index.d.ts +1 -1
  106. package/dist/Pagination/index.d.ts +2 -2
  107. package/dist/Pagination/index.js +1 -1
  108. package/dist/{Pagination-DXfgMUKJ.js → Pagination-BpGXPmc7.js} +76 -22
  109. package/dist/Popover/index.d.ts +1 -1
  110. package/dist/ProgressBar/index.d.ts +1 -1
  111. package/dist/ProgressBar/index.js +1 -1
  112. package/dist/{ProgressBar-ChDp-7oe.js → ProgressBar-DO9Chic6.js} +31 -11
  113. package/dist/Radio/index.d.ts +1 -1
  114. package/dist/RadioList/index.d.ts +1 -1
  115. package/dist/Resizable/index.js +1 -1
  116. package/dist/{Resizable-BuGKvU9I.js → Resizable-CE8XQDL2.js} +1 -1
  117. package/dist/ScrollableArea/index.d.ts +1 -1
  118. package/dist/SegmentedControl/index.d.ts +1 -1
  119. package/dist/SelectableCard/index.d.ts +1 -1
  120. package/dist/Selector/index.d.ts +2 -2
  121. package/dist/Selector/index.js +1 -1
  122. package/dist/Selector-DkJOLZSR.js +468 -0
  123. package/dist/SideNav/index.d.ts +1 -1
  124. package/dist/SideNav/index.js +1 -1
  125. package/dist/{SideNav-Cdrigq2A.js → SideNav-DcDWBnXJ.js} +17 -17
  126. package/dist/Stepper/index.d.ts +1 -1
  127. package/dist/Stepper/index.js +1 -1
  128. package/dist/{Stepper-DxmLfh8O.js → Stepper-DZKaqEoz.js} +1 -1
  129. package/dist/Switch/index.d.ts +1 -1
  130. package/dist/TabList/index.d.ts +1 -1
  131. package/dist/TabList/index.js +1 -1
  132. package/dist/{TabList-C411uNQU.js → TabList-hm06QPiW.js} +10 -3
  133. package/dist/Table/index.js +1 -1
  134. package/dist/{Table-7qRmlIQd.js → Table-DwehtMap.js} +4 -4
  135. package/dist/Text/index.d.ts +3 -2
  136. package/dist/Text/index.js +1 -1
  137. package/dist/{Text-CKd7e3gK.js → Text-BHVghsWo.js} +12 -2
  138. package/dist/TextArea/index.d.ts +1 -1
  139. package/dist/TextArea/index.js +1 -1
  140. package/dist/{TextArea-Cv9UVbzS.js → TextArea-CPwSytdO.js} +12 -6
  141. package/dist/TextInput/index.d.ts +1 -1
  142. package/dist/Theme/index.d.ts +2 -0
  143. package/dist/Theme/index.js +2 -0
  144. package/dist/Theme-BuUiiJNr.js +429 -0
  145. package/dist/Thumbnail/index.js +1 -1
  146. package/dist/{Thumbnail-BWVzLLyI.js → Thumbnail-CAOYds8t.js} +11 -11
  147. package/dist/{TimeField-l3QzU6vC.js → TimeField-BGbxCoKU.js} +2 -2
  148. package/dist/TimeInput/index.d.ts +1 -1
  149. package/dist/TimeInput/index.js +1 -1
  150. package/dist/{TimeInput-OkgX-xbQ.js → TimeInput-DJP3l4ZS.js} +1 -1
  151. package/dist/Timer/index.d.ts +2 -0
  152. package/dist/Timer/index.js +2 -0
  153. package/dist/Timer-B7GV6hqd.js +134 -0
  154. package/dist/Timestamp/index.d.ts +1 -1
  155. package/dist/Timestamp/index.js +2 -1
  156. package/dist/{Timestamp-DUoP9ari.js → Timestamp-BzRp8uWc.js} +5 -122
  157. package/dist/Toast/index.d.ts +2 -2
  158. package/dist/Toast/index.js +1 -1
  159. package/dist/{Toast-BKXPvEMp.js → Toast-C2ML-bmi.js} +37 -7
  160. package/dist/ToggleButton/index.d.ts +1 -1
  161. package/dist/Token/index.d.ts +1 -1
  162. package/dist/Token/index.js +1 -1
  163. package/dist/{Token-C4KD0fZD.js → Token-CjocuhzE.js} +1 -1
  164. package/dist/Tokenizer/index.d.ts +1 -1
  165. package/dist/Tokenizer/index.js +1 -1
  166. package/dist/{Tokenizer-BA8sTMPZ.js → Tokenizer-mYES5SPM.js} +2 -2
  167. package/dist/Toolbar/index.d.ts +1 -1
  168. package/dist/TopNav/index.d.ts +1 -1
  169. package/dist/TopNav/index.js +1 -1
  170. package/dist/{TopNav-CZokS7E_.js → TopNav-C2t6JkZb.js} +4 -4
  171. package/dist/TreeList/index.d.ts +1 -1
  172. package/dist/TreeList/index.js +1 -1
  173. package/dist/{TreeList-CIbAGOMf.js → TreeList-THJ0KamE.js} +3 -3
  174. package/dist/Typeahead/index.d.ts +1 -1
  175. package/dist/Typeahead/index.js +1 -1
  176. package/dist/{Typeahead-DIw-K4aa.js → Typeahead-D7VnvRpK.js} +2 -2
  177. package/dist/{context-D6ECRdc5.js → context-DzcK4T_C.js} +58 -2
  178. package/dist/context-O2Vb8cJl.js +57 -0
  179. package/dist/formatInstant-BDWUIxS7.js +119 -0
  180. package/dist/index-1AZ4KZhg.d.ts +96 -0
  181. package/dist/index-3p2BDVHq.d.ts +31 -0
  182. package/dist/{index-BuubzuE8.d.ts → index-BDZCJ9ri.d.ts} +2 -2
  183. package/dist/{index-FEy8qFSD.d.ts → index-BHqRH7QW.d.ts} +2 -2
  184. package/dist/{index-CTolyeii.d.ts → index-BLOEjvaM.d.ts} +16 -2
  185. package/dist/index-BMrggCw-.d.ts +52 -0
  186. package/dist/{index-z4p2k9VR.d.ts → index-Bgv4ZmBl.d.ts} +20 -2
  187. package/dist/{index-BoRIw-bP.d.ts → index-Bt7ewoz2.d.ts} +32 -2
  188. package/dist/{index-CjtAH60j.d.ts → index-Bu0Zd1uw.d.ts} +1 -1
  189. package/dist/{index-uQrLBZfF.d.ts → index-Bu3oXIIS.d.ts} +24 -0
  190. package/dist/{index-CX97hlld.d.ts → index-CBym0hSq.d.ts} +2 -19
  191. package/dist/index-CJlBAXwj.d.ts +100 -0
  192. package/dist/{index-DT9S92sh.d.ts → index-CNjbOgty.d.ts} +15 -0
  193. package/dist/{index-gW0HW02U.d.ts → index-COxy6LEW.d.ts} +1 -1
  194. package/dist/index-CRizexSC.d.ts +147 -0
  195. package/dist/{index-DYChvBOM.d.ts → index-Clmz00IK.d.ts} +31 -0
  196. package/dist/index-Cm_TiLXU.d.ts +22 -0
  197. package/dist/index-Cn-sSds-.d.ts +68 -0
  198. package/dist/index-CsVS37na.d.ts +81 -0
  199. package/dist/{index-DRmb-oUa.d.ts → index-CuFLztiI.d.ts} +6 -1
  200. package/dist/{index-CT8KEpec.d.ts → index-D0TlUOtG.d.ts} +1 -1
  201. package/dist/{index-fa72tWIU.d.ts → index-D2bSSSBP.d.ts} +1 -1
  202. package/dist/{index-2u4l3wq8.d.ts → index-DAiGhkNZ.d.ts} +15 -2
  203. package/dist/{index-DGNqi2za.d.ts → index-DQAnGHu7.d.ts} +5 -5
  204. package/dist/{index-BfOtLyNH.d.ts → index-D_nYxnNv.d.ts} +1 -1
  205. package/dist/{index-Df2YvC8o.d.ts → index-DeOftUMq.d.ts} +191 -75
  206. package/dist/{index-DXDGk38y.d.ts → index-Dg3ZmwEg.d.ts} +11 -0
  207. package/dist/{index-BiMGXtD-.d.ts → index-DimuSES0.d.ts} +14 -1
  208. package/dist/{index-C_2Z65Rp.d.ts → index-DnEh-HA0.d.ts} +1 -1
  209. package/dist/{index-D-ZuubCK.d.ts → index-DnSrjbjP.d.ts} +1 -1
  210. package/dist/{index-mQ6EPmaG.d.ts → index-DsyKhauk.d.ts} +78 -9
  211. package/dist/{index-C6RecznD.d.ts → index-I4J7gwa1.d.ts} +51 -9
  212. package/dist/{index-utZGF4GR.d.ts → index-NOXYEdOI.d.ts} +1 -1
  213. package/dist/{index-B4OOtNP8.d.ts → index-Z_onS2lR.d.ts} +1 -1
  214. package/dist/{index-CVn0GBdB.d.ts → index-cG1E0U2s.d.ts} +1 -1
  215. package/dist/{index-DEeJowZf.d.ts → index-cGagYM1g.d.ts} +15 -2
  216. package/dist/{index-Ck8qy6Rf.d.ts → index-c_TaW8mM.d.ts} +24 -2
  217. package/dist/{index-Bqb_Fyju.d.ts → index-jdjcb3Js.d.ts} +2 -2
  218. package/dist/index.d.ts +78 -68
  219. package/dist/index.js +107 -96
  220. package/dist/locale/index.d.ts +1 -1
  221. package/dist/locale/index.js +1 -1
  222. package/dist/registry-B1ObuP--.d.ts +45 -0
  223. package/dist/registry-C7OZb0PJ.js +135 -0
  224. package/dist/syntaxTheme-Bcs1YMF7.d.ts +38 -0
  225. package/dist/syntaxTheme-ClpWALZX.js +75 -0
  226. package/dist/types-BKcxXW--.d.ts +114 -0
  227. package/dist/types-Bt-lSgYX.d.ts +65 -0
  228. package/dist/{index-B8MbfMwV.d.ts → types-DDAAT1Xd.d.ts} +36 -82
  229. package/package.json +30 -1
  230. package/styles/avatar.css +14 -0
  231. package/styles/badge.css +8 -0
  232. package/styles/breadcrumbs.css +6 -1
  233. package/styles/button.css +13 -0
  234. package/styles/calendar.css +16 -0
  235. package/styles/card.css +2 -0
  236. package/styles/carousel.css +120 -0
  237. package/styles/chat.css +5 -2
  238. package/styles/dropdown-menu.css +11 -0
  239. package/styles/heading.css +6 -2
  240. package/styles/icon.css +38 -8
  241. package/styles/lightbox.css +144 -0
  242. package/styles/link.css +5 -0
  243. package/styles/media-theme.css +51 -0
  244. package/styles/number-input.css +22 -0
  245. package/styles/outline.css +124 -0
  246. package/styles/pagination.css +45 -1
  247. package/styles/progress-bar.css +4 -0
  248. package/styles/selector.css +58 -0
  249. package/styles/tab-list.css +15 -0
  250. package/styles/text-area.css +17 -0
  251. package/styles/text-input.css +5 -0
  252. package/styles/text.css +63 -14
  253. package/styles/theme.css +29 -0
  254. package/styles/timer.css +34 -0
  255. package/styles/toast.css +7 -0
  256. package/styles/toolbar.css +11 -0
  257. package/styles.css +6 -0
  258. package/dist/Avatar-5s3HSrtN.js +0 -136
  259. package/dist/Badge-Ba0EwsTj.js +0 -19
  260. package/dist/Calendar-CYhGDT6f.js +0 -277
  261. package/dist/DateInput-D2ErjXYO.js +0 -250
  262. package/dist/Icon-5MdZQ18k.js +0 -86
  263. package/dist/Link-CprjOuTI.js +0 -92
  264. package/dist/NumberInput-DspJO6z6.js +0 -147
  265. package/dist/Selector-DlZpQh42.js +0 -325
  266. package/dist/index-BzqRns96.d.ts +0 -64
  267. package/dist/index-ZJyk8RtQ.d.ts +0 -68
  268. package/dist/{CheckboxList-EsIEXjK_.js → CheckboxList-BbCPiend.js} +1 -1
  269. package/dist/{index-4FM5lQdV.d.ts → index-BUXNRekN.d.ts} +1 -1
@@ -0,0 +1,352 @@
1
+ import { t as useGridRovingFocus } from "./useGridRovingFocus-DQQAOYH5.js";
2
+ import { a as useAstryxMessages, i as useAstryxLocale } from "./context-DzcK4T_C.js";
3
+ import { n as weekdayNames, t as formatCalendarMonth } from "./locale-Cpk_nrLA.js";
4
+ import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, normalizeClass, openBlock, ref, renderList, renderSlot, toDisplayString, unref, useId, withKeys } from "vue";
5
+ import { CalendarDate, getLocalTimeZone, today } from "@internationalized/date";
6
+ import "../styles/calendar.css";
7
+ //#region src/composables/useCalendar.ts
8
+ function calendarDateToJSDate(date) {
9
+ return new Date(date.year, date.month - 1, date.day);
10
+ }
11
+ function jsDateToCalendarDate(date) {
12
+ return new CalendarDate(date.getFullYear(), date.getMonth() + 1, date.getDate());
13
+ }
14
+ /**
15
+ * 日历逻辑:日期计算、月份导航、日期选择。
16
+ */
17
+ function useCalendar(options) {
18
+ const { value, min, max, isDateDisabled, onChange, initialDate } = options;
19
+ const timeZone = getLocalTimeZone();
20
+ const focusedDate = ref(initialDate ? jsDateToCalendarDate(initialDate) : value.value ? jsDateToCalendarDate(value.value) : today(timeZone));
21
+ function datesFor(month) {
22
+ const firstDay = new CalendarDate(month.year, month.month, 1);
23
+ const firstDayOfWeek = firstDay.toDate(timeZone).getDay();
24
+ const startDate = firstDay.subtract({ days: firstDayOfWeek });
25
+ const weeks = [];
26
+ let currentDate = startDate;
27
+ for (let week = 0; week < 6; week++) {
28
+ const weekDates = [];
29
+ for (let day = 0; day < 7; day++) {
30
+ weekDates.push(currentDate);
31
+ currentDate = currentDate.add({ days: 1 });
32
+ }
33
+ weeks.push(weekDates);
34
+ }
35
+ return weeks;
36
+ }
37
+ const dates = computed(() => datesFor(focusedDate.value));
38
+ function select(date) {
39
+ if (isDisabled(date)) return;
40
+ onChange(calendarDateToJSDate(date));
41
+ }
42
+ function previousMonth() {
43
+ focusedDate.value = focusedDate.value.subtract({ months: 1 });
44
+ }
45
+ function nextMonth() {
46
+ focusedDate.value = focusedDate.value.add({ months: 1 });
47
+ }
48
+ function isSelected(date) {
49
+ if (!value.value) return false;
50
+ const selected = jsDateToCalendarDate(value.value);
51
+ return date.compare(selected) === 0;
52
+ }
53
+ function isDisabled(date) {
54
+ const jsDate = calendarDateToJSDate(date);
55
+ if (min && jsDate < min) return true;
56
+ if (max && jsDate > max) return true;
57
+ if (isDateDisabled?.(jsDate)) return true;
58
+ return false;
59
+ }
60
+ function isInMonth(date) {
61
+ return date.month === focusedDate.value.month;
62
+ }
63
+ return {
64
+ focusedDate,
65
+ dates,
66
+ datesFor,
67
+ select,
68
+ previousMonth,
69
+ nextMonth,
70
+ isSelected,
71
+ isDisabled,
72
+ isInMonth
73
+ };
74
+ }
75
+ //#endregion
76
+ //#region src/Calendar/Calendar.vue
77
+ const _hoisted_1 = ["data-months", "aria-label"];
78
+ const _hoisted_2 = { class: "astryx-calendar-header" };
79
+ const _hoisted_3 = ["disabled", "aria-label"];
80
+ const _hoisted_4 = { class: "astryx-calendar-month-year" };
81
+ const _hoisted_5 = ["disabled", "aria-label"];
82
+ const _hoisted_6 = { class: "astryx-calendar-month-year" };
83
+ const _hoisted_7 = ["disabled", "aria-label"];
84
+ const _hoisted_8 = {
85
+ class: "astryx-calendar-weekdays",
86
+ role: "row"
87
+ };
88
+ const _hoisted_9 = ["aria-label"];
89
+ const _hoisted_10 = ["aria-activedescendant", "onKeydown"];
90
+ const _hoisted_11 = [
91
+ "id",
92
+ "aria-selected",
93
+ "aria-disabled",
94
+ "aria-current",
95
+ "onClick",
96
+ "onKeydown"
97
+ ];
98
+ const _hoisted_12 = { class: "astryx-calendar-day" };
99
+ const _sfc_main = /*@__PURE__*/ defineComponent({
100
+ name: "AstryxCalendar",
101
+ __name: "Calendar",
102
+ props: {
103
+ modelValue: { default: null },
104
+ mode: { default: "single" },
105
+ range: { default: null },
106
+ numberOfMonths: { default: 1 },
107
+ focusDate: {},
108
+ min: {},
109
+ max: {},
110
+ isDateDisabled: {},
111
+ label: {},
112
+ disabled: {
113
+ type: Boolean,
114
+ default: false
115
+ }
116
+ },
117
+ emits: [
118
+ "update:modelValue",
119
+ "update:range",
120
+ "change"
121
+ ],
122
+ setup(__props, { emit: __emit }) {
123
+ const props = __props;
124
+ const emit = __emit;
125
+ const calendarId = `astryx-calendar-${useId()}`;
126
+ const locale = useAstryxLocale();
127
+ const messages = useAstryxMessages();
128
+ const resolvedLabel = computed(() => props.label ?? messages.value.calendar.label);
129
+ const weekDays = computed(() => weekdayNames(locale.value, "narrow"));
130
+ const weekDayLabels = computed(() => weekdayNames(locale.value, "long"));
131
+ const modelValueRef = computed({
132
+ get: () => props.modelValue,
133
+ set: (value) => {
134
+ emit("update:modelValue", value);
135
+ emit("change", value);
136
+ }
137
+ });
138
+ const calendar = useCalendar({
139
+ value: modelValueRef,
140
+ initialDate: props.focusDate,
141
+ min: props.min,
142
+ max: props.max,
143
+ isDateDisabled: props.isDateDisabled,
144
+ onChange: (value) => {
145
+ modelValueRef.value = value;
146
+ }
147
+ });
148
+ const months = computed(() => {
149
+ const first = calendar.focusedDate.value;
150
+ return props.numberOfMonths === 2 ? [first, first.add({ months: 1 })] : [first];
151
+ });
152
+ const timeZone = getLocalTimeZone();
153
+ const todayDate = today(timeZone);
154
+ const activeIndex = ref(0);
155
+ const isEnabled = computed(() => !props.disabled);
156
+ const grid = useGridRovingFocus({
157
+ rows: computed(() => 6),
158
+ columns: computed(() => 7),
159
+ activeIndex,
160
+ isEnabled,
161
+ isDisabled: (row, col) => {
162
+ const dateIndex = row * 7 + col;
163
+ const date = calendar.dates.value.flat()[dateIndex];
164
+ return date ? calendar.isDisabled(date) : true;
165
+ },
166
+ onChange: (index) => {
167
+ activeIndex.value = index;
168
+ }
169
+ });
170
+ function getCellId(rowIndex, colIndex) {
171
+ return `${calendarId}-cell-${rowIndex}-${colIndex}`;
172
+ }
173
+ function isToday(date) {
174
+ return date.compare(todayDate) === 0;
175
+ }
176
+ function sameDay(date, day) {
177
+ return !!date && date.getFullYear() === day.year && date.getMonth() + 1 === day.month && date.getDate() === day.day;
178
+ }
179
+ function isRangeStart(date) {
180
+ return props.mode === "range" && sameDay(props.range?.start ?? null, date);
181
+ }
182
+ function isRangeEnd(date) {
183
+ return props.mode === "range" && sameDay(props.range?.end ?? null, date);
184
+ }
185
+ function isInRange(date) {
186
+ if (props.mode !== "range") return false;
187
+ const start = props.range?.start;
188
+ const end = props.range?.end;
189
+ if (!start || !end) return false;
190
+ const day = new Date(date.year, date.month - 1, date.day);
191
+ return day > (start < end ? start : end) && day < (start < end ? end : start);
192
+ }
193
+ function selectRange(date) {
194
+ const day = new Date(date.year, date.month - 1, date.day);
195
+ const start = props.range?.start ?? null;
196
+ const end = props.range?.end ?? null;
197
+ emit("update:range", !start || end ? {
198
+ start: day,
199
+ end: null
200
+ } : day < start ? {
201
+ start: day,
202
+ end: start
203
+ } : {
204
+ start,
205
+ end: day
206
+ });
207
+ emit("change", day);
208
+ }
209
+ function onDateClick(date, rowIndex, colIndex) {
210
+ if (props.disabled || calendar.isDisabled(date)) return;
211
+ activeIndex.value = rowIndex * 7 + colIndex;
212
+ if (props.mode === "range") {
213
+ selectRange(date);
214
+ return;
215
+ }
216
+ calendar.select(date);
217
+ }
218
+ function onKeyDown(event) {
219
+ if (props.disabled) return;
220
+ grid.onKeyDown(event);
221
+ if (event.key === "Enter" || event.key === " ") {
222
+ event.preventDefault();
223
+ const date = calendar.dates.value.flat()[activeIndex.value];
224
+ if (date && !calendar.isDisabled(date)) calendar.select(date);
225
+ }
226
+ }
227
+ return (_ctx, _cache) => {
228
+ return openBlock(), createElementBlock("div", {
229
+ id: calendarId,
230
+ class: normalizeClass(["astryx-calendar", { "is-disabled": props.disabled }]),
231
+ "data-months": props.numberOfMonths,
232
+ role: "application",
233
+ "aria-label": resolvedLabel.value
234
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(months.value, (month, monthIndex) => {
235
+ return openBlock(), createElementBlock("div", {
236
+ key: `${month.year}-${month.month}`,
237
+ class: "astryx-calendar-month"
238
+ }, [
239
+ createElementVNode("div", _hoisted_2, [monthIndex === 0 ? renderSlot(_ctx.$slots, "header", {}, () => [
240
+ createElementVNode("button", {
241
+ type: "button",
242
+ class: "astryx-calendar-nav-button",
243
+ disabled: props.disabled,
244
+ "aria-label": unref(messages).calendar.previousMonth,
245
+ onClick: _cache[0] || (_cache[0] = (...args) => unref(calendar).previousMonth && unref(calendar).previousMonth(...args))
246
+ }, [..._cache[3] || (_cache[3] = [createElementVNode("svg", {
247
+ width: "16",
248
+ height: "16",
249
+ viewBox: "0 0 16 16",
250
+ fill: "none"
251
+ }, [createElementVNode("path", {
252
+ d: "M10 12L6 8L10 4",
253
+ stroke: "currentColor",
254
+ "stroke-width": "1.5",
255
+ "stroke-linecap": "round",
256
+ "stroke-linejoin": "round"
257
+ })], -1)])], 8, _hoisted_3),
258
+ createElementVNode("span", _hoisted_4, toDisplayString(unref(formatCalendarMonth)(month.year, month.month, unref(locale))), 1),
259
+ props.numberOfMonths === 1 ? (openBlock(), createElementBlock("button", {
260
+ key: 0,
261
+ type: "button",
262
+ class: "astryx-calendar-nav-button",
263
+ disabled: props.disabled,
264
+ "aria-label": unref(messages).calendar.nextMonth,
265
+ onClick: _cache[1] || (_cache[1] = (...args) => unref(calendar).nextMonth && unref(calendar).nextMonth(...args))
266
+ }, [..._cache[4] || (_cache[4] = [createElementVNode("svg", {
267
+ width: "16",
268
+ height: "16",
269
+ viewBox: "0 0 16 16",
270
+ fill: "none"
271
+ }, [createElementVNode("path", {
272
+ d: "M6 4L10 8L6 12",
273
+ stroke: "currentColor",
274
+ "stroke-width": "1.5",
275
+ "stroke-linecap": "round",
276
+ "stroke-linejoin": "round"
277
+ })], -1)])], 8, _hoisted_5)) : createCommentVNode("v-if", true)
278
+ ], void 0, 0) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createElementVNode("span", _hoisted_6, toDisplayString(unref(formatCalendarMonth)(month.year, month.month, unref(locale))), 1), createElementVNode("button", {
279
+ type: "button",
280
+ class: "astryx-calendar-nav-button",
281
+ disabled: props.disabled,
282
+ "aria-label": unref(messages).calendar.nextMonth,
283
+ onClick: _cache[2] || (_cache[2] = (...args) => unref(calendar).nextMonth && unref(calendar).nextMonth(...args))
284
+ }, [..._cache[5] || (_cache[5] = [createElementVNode("svg", {
285
+ width: "16",
286
+ height: "16",
287
+ viewBox: "0 0 16 16",
288
+ fill: "none"
289
+ }, [createElementVNode("path", {
290
+ d: "M6 4L10 8L6 12",
291
+ stroke: "currentColor",
292
+ "stroke-width": "1.5",
293
+ "stroke-linecap": "round",
294
+ "stroke-linejoin": "round"
295
+ })], -1)])], 8, _hoisted_7)], 64))]),
296
+ createElementVNode("div", _hoisted_8, [(openBlock(true), createElementBlock(Fragment, null, renderList(weekDays.value, (day, index) => {
297
+ return openBlock(), createElementBlock("div", {
298
+ key: index,
299
+ class: "astryx-calendar-weekday",
300
+ role: "columnheader",
301
+ "aria-label": weekDayLabels.value[index]
302
+ }, toDisplayString(day), 9, _hoisted_9);
303
+ }), 128))]),
304
+ createElementVNode("div", {
305
+ class: "astryx-calendar-grid",
306
+ role: "grid",
307
+ "aria-labelledby": calendarId,
308
+ "aria-activedescendant": monthIndex === 0 ? getCellId(unref(grid).row.value, unref(grid).column.value) : void 0,
309
+ tabindex: "0",
310
+ onKeydown: ($event) => monthIndex === 0 ? onKeyDown($event) : void 0
311
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(calendar).datesFor(month), (week, rowIndex) => {
312
+ return openBlock(), createElementBlock("div", {
313
+ key: rowIndex,
314
+ class: "astryx-calendar-row",
315
+ role: "row"
316
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(week, (date, colIndex) => {
317
+ return openBlock(), createElementBlock("div", {
318
+ id: monthIndex === 0 ? getCellId(rowIndex, colIndex) : void 0,
319
+ key: colIndex,
320
+ class: normalizeClass(["astryx-calendar-cell", {
321
+ "is-selected": props.mode === "range" ? isRangeStart(date) || isRangeEnd(date) : unref(calendar).isSelected(date),
322
+ "is-range-start": isRangeStart(date),
323
+ "is-range-end": isRangeEnd(date),
324
+ "is-in-range": isInRange(date),
325
+ "is-disabled": unref(calendar).isDisabled(date),
326
+ "is-today": isToday(date),
327
+ "is-other-month": date.month !== month.month || date.year !== month.year,
328
+ "is-active": monthIndex === 0 && activeIndex.value === rowIndex * 7 + colIndex
329
+ }]),
330
+ role: "gridcell",
331
+ "aria-selected": props.mode === "range" ? isRangeStart(date) || isRangeEnd(date) : unref(calendar).isSelected(date),
332
+ "aria-disabled": unref(calendar).isDisabled(date),
333
+ "aria-current": isToday(date) ? "date" : void 0,
334
+ tabindex: "-1",
335
+ onClick: ($event) => onDateClick(date, rowIndex, colIndex),
336
+ onKeydown: withKeys(($event) => onDateClick(date, rowIndex, colIndex), ["enter"])
337
+ }, [renderSlot(_ctx.$slots, "day", {
338
+ date,
339
+ isSelected: props.mode === "range" ? isRangeStart(date) || isRangeEnd(date) : unref(calendar).isSelected(date),
340
+ isDisabled: unref(calendar).isDisabled(date),
341
+ isToday: isToday(date),
342
+ isInMonth: date.month === month.month && date.year === month.year
343
+ }, () => [createElementVNode("span", _hoisted_12, toDisplayString(date.day), 1)])], 42, _hoisted_11);
344
+ }), 128))]);
345
+ }), 128))], 40, _hoisted_10)
346
+ ]);
347
+ }), 128))], 10, _hoisted_1);
348
+ };
349
+ }
350
+ });
351
+ //#endregion
352
+ export { _sfc_main as t };
@@ -1,2 +1,2 @@
1
- import { a as CardSlots, i as CardSizeValue, n as CardElevation, o as CardVariant, r as CardProps, t as _default } from "../index-BfOtLyNH.js";
1
+ import { a as CardSlots, i as CardSizeValue, n as CardElevation, o as CardVariant, r as CardProps, t as _default } from "../index-D_nYxnNv.js";
2
2
  export { _default as Card, type CardElevation, type CardProps, type CardSizeValue, type CardSlots, type CardVariant };
@@ -0,0 +1,2 @@
1
+ import { a as CarouselSlots, i as CarouselProps, n as CarouselGap, r as CarouselHandle, t as _default } from "../index-CsVS37na.js";
2
+ export { _default as Carousel, type CarouselGap, type CarouselHandle, type CarouselProps, type CarouselSlots };
@@ -0,0 +1,2 @@
1
+ import { t as _sfc_main } from "../Carousel-BGUnskjo.js";
2
+ export { _sfc_main as Carousel };