@7pmlabs/design-system 1.0.10 → 1.0.11

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 (427) hide show
  1. package/README.md +57 -6
  2. package/dist/design-system.css +1 -1
  3. package/dist/design-system.js +66 -60
  4. package/dist/design-system100.js +4 -5
  5. package/dist/design-system100.js.map +1 -1
  6. package/dist/design-system101.js +53 -506
  7. package/dist/design-system101.js.map +1 -1
  8. package/dist/{design-system93.js → design-system102.js} +1 -1
  9. package/dist/design-system102.js.map +1 -0
  10. package/dist/design-system103.js +13 -5
  11. package/dist/design-system103.js.map +1 -1
  12. package/dist/design-system104.js +109 -7
  13. package/dist/design-system104.js.map +1 -1
  14. package/dist/design-system106.js +9 -0
  15. package/dist/design-system106.js.map +1 -0
  16. package/dist/design-system107.js +206 -6
  17. package/dist/design-system107.js.map +1 -1
  18. package/dist/design-system109.js +9 -0
  19. package/dist/design-system109.js.map +1 -0
  20. package/dist/design-system110.js +507 -6
  21. package/dist/design-system110.js.map +1 -1
  22. package/dist/design-system112.js +8 -0
  23. package/dist/design-system112.js.map +1 -0
  24. package/dist/design-system113.js +7 -5
  25. package/dist/design-system113.js.map +1 -1
  26. package/dist/design-system114.js +209 -9
  27. package/dist/design-system114.js.map +1 -1
  28. package/dist/design-system116.js +9 -0
  29. package/dist/design-system116.js.map +1 -0
  30. package/dist/design-system117.js +224 -6
  31. package/dist/design-system117.js.map +1 -1
  32. package/dist/design-system119.js +9 -0
  33. package/dist/design-system119.js.map +1 -0
  34. package/dist/design-system12.js.map +1 -1
  35. package/dist/design-system120.js +163 -5
  36. package/dist/design-system120.js.map +1 -1
  37. package/dist/design-system122.js +5 -90
  38. package/dist/design-system122.js.map +1 -1
  39. package/dist/design-system123.js +12 -0
  40. package/dist/design-system123.js.map +1 -0
  41. package/dist/design-system124.js +274 -5
  42. package/dist/design-system124.js.map +1 -1
  43. package/dist/design-system126.js +9 -0
  44. package/dist/design-system126.js.map +1 -0
  45. package/dist/design-system127.js +16 -5
  46. package/dist/design-system127.js.map +1 -1
  47. package/dist/design-system129.js +8 -0
  48. package/dist/design-system129.js.map +1 -0
  49. package/dist/design-system130.js +12 -5
  50. package/dist/design-system130.js.map +1 -1
  51. package/dist/design-system131.js +76 -137
  52. package/dist/design-system131.js.map +1 -1
  53. package/dist/design-system133.js +1 -1
  54. package/dist/design-system133.js.map +1 -1
  55. package/dist/design-system134.js +37 -90
  56. package/dist/design-system134.js.map +1 -1
  57. package/dist/design-system136.js +1 -1
  58. package/dist/design-system136.js.map +1 -1
  59. package/dist/design-system137.js +226 -20
  60. package/dist/design-system137.js.map +1 -1
  61. package/dist/design-system139.js +4 -5
  62. package/dist/design-system139.js.map +1 -1
  63. package/dist/design-system140.js +151 -9
  64. package/dist/design-system140.js.map +1 -1
  65. package/dist/design-system142.js +3 -2
  66. package/dist/design-system142.js.map +1 -1
  67. package/dist/design-system143.js +93 -19
  68. package/dist/design-system143.js.map +1 -1
  69. package/dist/design-system145.js +5 -158
  70. package/dist/design-system145.js.map +1 -1
  71. package/dist/design-system146.js +12 -0
  72. package/dist/design-system146.js.map +1 -0
  73. package/dist/design-system147.js +37 -5
  74. package/dist/design-system147.js.map +1 -1
  75. package/dist/design-system148.js +4 -307
  76. package/dist/design-system148.js.map +1 -1
  77. package/dist/design-system149.js +24 -0
  78. package/dist/{design-system144.js.map → design-system149.js.map} +1 -1
  79. package/dist/design-system150.js +2 -3
  80. package/dist/design-system150.js.map +1 -1
  81. package/dist/design-system151.js +131 -213
  82. package/dist/design-system151.js.map +1 -1
  83. package/dist/design-system153.js +1 -1
  84. package/dist/design-system153.js.map +1 -1
  85. package/dist/design-system154.js +278 -160
  86. package/dist/design-system154.js.map +1 -1
  87. package/dist/design-system156.js +1 -1
  88. package/dist/design-system156.js.map +1 -1
  89. package/dist/design-system157.js +240 -3
  90. package/dist/design-system157.js.map +1 -1
  91. package/dist/design-system159.js +8 -0
  92. package/dist/design-system159.js.map +1 -0
  93. package/dist/design-system16.js.map +1 -1
  94. package/dist/design-system160.js +189 -6
  95. package/dist/design-system160.js.map +1 -1
  96. package/dist/design-system162.js +8 -0
  97. package/dist/design-system162.js.map +1 -0
  98. package/dist/design-system163.js +3 -6
  99. package/dist/design-system163.js.map +1 -1
  100. package/dist/design-system164.js +46 -57
  101. package/dist/design-system164.js.map +1 -1
  102. package/dist/design-system166.js +2 -2
  103. package/dist/design-system166.js.map +1 -1
  104. package/dist/design-system167.js +44 -170
  105. package/dist/design-system167.js.map +1 -1
  106. package/dist/design-system169.js +2 -2
  107. package/dist/design-system169.js.map +1 -1
  108. package/dist/design-system170.js +55 -101
  109. package/dist/design-system170.js.map +1 -1
  110. package/dist/design-system172.js +5 -4
  111. package/dist/design-system172.js.map +1 -1
  112. package/dist/design-system173.js +182 -11
  113. package/dist/design-system173.js.map +1 -1
  114. package/dist/design-system175.js +9 -0
  115. package/dist/design-system175.js.map +1 -0
  116. package/dist/design-system176.js +115 -6
  117. package/dist/design-system176.js.map +1 -1
  118. package/dist/design-system178.js +8 -0
  119. package/dist/design-system178.js.map +1 -0
  120. package/dist/design-system179.js +11 -5
  121. package/dist/design-system179.js.map +1 -1
  122. package/dist/design-system180.js +444 -70
  123. package/dist/design-system180.js.map +1 -1
  124. package/dist/design-system182.js +5 -4
  125. package/dist/design-system182.js.map +1 -1
  126. package/dist/design-system183.js +21 -21
  127. package/dist/design-system183.js.map +1 -1
  128. package/dist/design-system185.js +1 -1
  129. package/dist/design-system185.js.map +1 -1
  130. package/dist/design-system186.js +85 -25
  131. package/dist/design-system186.js.map +1 -1
  132. package/dist/design-system188.js +1 -1
  133. package/dist/design-system188.js.map +1 -1
  134. package/dist/design-system189.js +7 -5
  135. package/dist/design-system189.js.map +1 -1
  136. package/dist/design-system19.js.map +1 -1
  137. package/dist/design-system191.js +1 -1
  138. package/dist/design-system191.js.map +1 -1
  139. package/dist/design-system192.js +20 -23
  140. package/dist/design-system192.js.map +1 -1
  141. package/dist/design-system194.js +1 -1
  142. package/dist/design-system194.js.map +1 -1
  143. package/dist/design-system195.js +24 -323
  144. package/dist/design-system195.js.map +1 -1
  145. package/dist/design-system197.js +1 -1
  146. package/dist/design-system197.js.map +1 -1
  147. package/dist/design-system198.js +19 -88
  148. package/dist/design-system198.js.map +1 -1
  149. package/dist/design-system200.js +1 -1
  150. package/dist/design-system200.js.map +1 -1
  151. package/dist/design-system201.js +330 -17
  152. package/dist/design-system201.js.map +1 -1
  153. package/dist/design-system203.js +5 -3
  154. package/dist/design-system203.js.map +1 -1
  155. package/dist/design-system204.js +88 -407
  156. package/dist/design-system204.js.map +1 -1
  157. package/dist/design-system206.js +1 -1
  158. package/dist/design-system206.js.map +1 -1
  159. package/dist/design-system207.js +17 -106
  160. package/dist/design-system207.js.map +1 -1
  161. package/dist/{design-system202.js → design-system208.js} +2 -2
  162. package/dist/{design-system202.js.map → design-system208.js.map} +1 -1
  163. package/dist/design-system209.js +3 -6
  164. package/dist/design-system209.js.map +1 -1
  165. package/dist/design-system210.js +403 -90
  166. package/dist/design-system210.js.map +1 -1
  167. package/dist/design-system212.js +4 -5
  168. package/dist/design-system212.js.map +1 -1
  169. package/dist/design-system213.js +45 -723
  170. package/dist/design-system213.js.map +1 -1
  171. package/dist/design-system215.js +1 -1
  172. package/dist/design-system215.js.map +1 -1
  173. package/dist/design-system216.js +88 -11
  174. package/dist/design-system216.js.map +1 -1
  175. package/dist/design-system217.js +4 -525
  176. package/dist/design-system217.js.map +1 -1
  177. package/dist/design-system218.js +111 -0
  178. package/dist/design-system218.js.map +1 -0
  179. package/dist/design-system22.js.map +1 -1
  180. package/dist/design-system220.js +6 -3
  181. package/dist/design-system220.js.map +1 -1
  182. package/dist/design-system221.js +103 -43
  183. package/dist/design-system221.js.map +1 -1
  184. package/dist/design-system223.js +6 -283
  185. package/dist/design-system223.js.map +1 -1
  186. package/dist/design-system224.js +740 -0
  187. package/dist/design-system224.js.map +1 -0
  188. package/dist/design-system226.js +5 -119
  189. package/dist/design-system226.js.map +1 -1
  190. package/dist/{design-system60.js → design-system227.js} +6 -8
  191. package/dist/design-system227.js.map +1 -0
  192. package/dist/design-system228.js +525 -5
  193. package/dist/design-system228.js.map +1 -1
  194. package/dist/{design-system219.js → design-system230.js} +2 -2
  195. package/dist/{design-system219.js.map → design-system230.js.map} +1 -1
  196. package/dist/design-system231.js +3 -5
  197. package/dist/design-system231.js.map +1 -1
  198. package/dist/design-system232.js +42 -50
  199. package/dist/design-system232.js.map +1 -1
  200. package/dist/design-system233.js +1 -1
  201. package/dist/design-system233.js.map +1 -1
  202. package/dist/design-system234.js +254 -141
  203. package/dist/design-system234.js.map +1 -1
  204. package/dist/design-system236.js +1 -1
  205. package/dist/design-system236.js.map +1 -1
  206. package/dist/design-system237.js +119 -7
  207. package/dist/design-system237.js.map +1 -1
  208. package/dist/design-system239.js +8 -0
  209. package/dist/design-system239.js.map +1 -0
  210. package/dist/design-system240.js +112 -5
  211. package/dist/design-system240.js.map +1 -1
  212. package/dist/design-system242.js +8 -0
  213. package/dist/design-system242.js.map +1 -0
  214. package/dist/design-system243.js +54 -6
  215. package/dist/design-system243.js.map +1 -1
  216. package/dist/design-system244.js +4 -7
  217. package/dist/design-system244.js.map +1 -1
  218. package/dist/design-system245.js +139 -343
  219. package/dist/design-system245.js.map +1 -1
  220. package/dist/design-system247.js +4 -5
  221. package/dist/design-system247.js.map +1 -1
  222. package/dist/design-system248.js +10 -0
  223. package/dist/design-system248.js.map +1 -0
  224. package/dist/{design-system238.js → design-system249.js} +2 -2
  225. package/dist/design-system249.js.map +1 -0
  226. package/dist/design-system25.js.map +1 -1
  227. package/dist/design-system251.js +8 -0
  228. package/dist/design-system251.js.map +1 -0
  229. package/dist/{design-system241.js → design-system252.js} +1 -1
  230. package/dist/design-system252.js.map +1 -0
  231. package/dist/design-system254.js +9 -0
  232. package/dist/design-system254.js.map +1 -0
  233. package/dist/design-system255.js +12 -0
  234. package/dist/design-system255.js.map +1 -0
  235. package/dist/design-system256.js +769 -0
  236. package/dist/design-system256.js.map +1 -0
  237. package/dist/design-system258.js +9 -0
  238. package/dist/design-system258.js.map +1 -0
  239. package/dist/design-system259.js +10 -0
  240. package/dist/design-system259.js.map +1 -0
  241. package/dist/design-system260.js +377 -0
  242. package/dist/design-system260.js.map +1 -0
  243. package/dist/design-system262.js +9 -0
  244. package/dist/design-system262.js.map +1 -0
  245. package/dist/design-system28.js.map +1 -1
  246. package/dist/design-system3.js.map +1 -1
  247. package/dist/design-system30.js +21 -138
  248. package/dist/design-system30.js.map +1 -1
  249. package/dist/design-system32.js +5 -4
  250. package/dist/design-system32.js.map +1 -1
  251. package/dist/design-system33.js +488 -14
  252. package/dist/design-system33.js.map +1 -1
  253. package/dist/design-system35.js +1 -1
  254. package/dist/design-system35.js.map +1 -1
  255. package/dist/design-system36.js +135 -17
  256. package/dist/design-system36.js.map +1 -1
  257. package/dist/design-system38.js +1 -1
  258. package/dist/design-system38.js.map +1 -1
  259. package/dist/design-system39.js +16 -11
  260. package/dist/design-system39.js.map +1 -1
  261. package/dist/design-system4.js.map +1 -1
  262. package/dist/design-system41.js +8 -0
  263. package/dist/design-system41.js.map +1 -0
  264. package/dist/design-system42.js +26 -5
  265. package/dist/design-system42.js.map +1 -1
  266. package/dist/design-system44.js +5 -71
  267. package/dist/design-system44.js.map +1 -1
  268. package/dist/design-system45.js +353 -0
  269. package/dist/design-system45.js.map +1 -0
  270. package/dist/design-system47.js +5 -50
  271. package/dist/design-system47.js.map +1 -1
  272. package/dist/design-system48.js +11 -4
  273. package/dist/design-system48.js.map +1 -1
  274. package/dist/design-system49.js +476 -3
  275. package/dist/design-system49.js.map +1 -1
  276. package/dist/design-system51.js +8 -0
  277. package/dist/design-system51.js.map +1 -0
  278. package/dist/design-system52.js +3 -5
  279. package/dist/design-system52.js.map +1 -1
  280. package/dist/design-system53.js +56 -83
  281. package/dist/design-system53.js.map +1 -1
  282. package/dist/design-system55.js +5 -4
  283. package/dist/design-system55.js.map +1 -1
  284. package/dist/design-system56.js +50 -11
  285. package/dist/design-system56.js.map +1 -1
  286. package/dist/design-system57.js +4 -591
  287. package/dist/design-system57.js.map +1 -1
  288. package/dist/design-system58.js +6 -0
  289. package/dist/design-system58.js.map +1 -0
  290. package/dist/design-system59.js +64 -5
  291. package/dist/design-system59.js.map +1 -1
  292. package/dist/design-system61.js +5 -696
  293. package/dist/design-system61.js.map +1 -1
  294. package/dist/design-system62.js +101 -0
  295. package/dist/design-system62.js.map +1 -0
  296. package/dist/design-system64.js +5 -158
  297. package/dist/design-system64.js.map +1 -1
  298. package/dist/design-system65.js +14 -0
  299. package/dist/design-system65.js.map +1 -0
  300. package/dist/design-system66.js +591 -5
  301. package/dist/design-system66.js.map +1 -1
  302. package/dist/design-system68.js +3 -2
  303. package/dist/design-system68.js.map +1 -1
  304. package/dist/design-system69.js +13 -49
  305. package/dist/design-system69.js.map +1 -1
  306. package/dist/design-system7.js.map +1 -1
  307. package/dist/design-system70.js +699 -0
  308. package/dist/{design-system63.js.map → design-system70.js.map} +1 -1
  309. package/dist/design-system72.js +5 -199
  310. package/dist/design-system72.js.map +1 -1
  311. package/dist/design-system73.js +161 -0
  312. package/dist/design-system73.js.map +1 -0
  313. package/dist/design-system75.js +5 -7
  314. package/dist/design-system75.js.map +1 -1
  315. package/dist/design-system76.js +25 -269
  316. package/dist/design-system76.js.map +1 -1
  317. package/dist/design-system77.js +7 -0
  318. package/dist/design-system77.js.map +1 -0
  319. package/dist/design-system78.js +49 -5
  320. package/dist/design-system78.js.map +1 -1
  321. package/dist/{design-system71.js → design-system80.js} +2 -2
  322. package/dist/{design-system71.js.map → design-system80.js.map} +1 -1
  323. package/dist/design-system81.js +199 -5
  324. package/dist/design-system81.js.map +1 -1
  325. package/dist/design-system83.js +5 -99
  326. package/dist/design-system83.js.map +1 -1
  327. package/dist/design-system84.js +10 -0
  328. package/dist/design-system84.js.map +1 -0
  329. package/dist/design-system85.js +273 -5
  330. package/dist/design-system85.js.map +1 -1
  331. package/dist/design-system87.js +8 -0
  332. package/dist/design-system87.js.map +1 -0
  333. package/dist/design-system88.js +57 -5
  334. package/dist/design-system88.js.map +1 -1
  335. package/dist/design-system90.js +8 -0
  336. package/dist/design-system90.js.map +1 -0
  337. package/dist/design-system91.js +11 -5
  338. package/dist/design-system91.js.map +1 -1
  339. package/dist/design-system92.js +98 -53
  340. package/dist/design-system92.js.map +1 -1
  341. package/dist/design-system94.js +5 -13
  342. package/dist/design-system94.js.map +1 -1
  343. package/dist/design-system95.js +61 -104
  344. package/dist/design-system95.js.map +1 -1
  345. package/dist/design-system97.js +4 -5
  346. package/dist/design-system97.js.map +1 -1
  347. package/dist/design-system98.js +80 -198
  348. package/dist/design-system98.js.map +1 -1
  349. package/dist/types/components/BCalendar/BCalendar.spec.d.ts +1 -0
  350. package/dist/types/components/BCalendar/BCalendar.vue.d.ts +114 -0
  351. package/dist/types/components/BCalendar/index.d.ts +2 -0
  352. package/dist/types/components/BCalendar/types.d.ts +54 -0
  353. package/dist/types/components/BCarousel/BCarousel.spec.d.ts +1 -0
  354. package/dist/types/components/BCarousel/BCarousel.vue.d.ts +133 -0
  355. package/dist/types/components/BCarousel/index.d.ts +2 -0
  356. package/dist/types/components/BCarousel/types.d.ts +15 -0
  357. package/dist/types/components/BPagination/BPagination.vue.d.ts +1 -1
  358. package/dist/types/components/BStatistic/BStatistic.spec.d.ts +1 -0
  359. package/dist/types/components/BStatistic/BStatistic.vue.d.ts +44 -0
  360. package/dist/types/components/BStatistic/BStatisticTimer.vue.d.ts +50 -0
  361. package/dist/types/components/BStatistic/index.d.ts +3 -0
  362. package/dist/types/components/BStatistic/types.d.ts +6 -0
  363. package/dist/types/components/BTreeSelect/BTreeSelect.spec.d.ts +1 -0
  364. package/dist/types/components/BTreeSelect/BTreeSelect.vue.d.ts +143 -0
  365. package/dist/types/components/BTreeSelect/index.d.ts +2 -0
  366. package/dist/types/components/BTreeSelect/types.d.ts +77 -0
  367. package/dist/types/components/index.d.ts +4 -0
  368. package/dist/types/types.d.ts +3 -0
  369. package/package.json +6 -3
  370. package/dist/design-system105.js +0 -212
  371. package/dist/design-system105.js.map +0 -1
  372. package/dist/design-system108.js +0 -227
  373. package/dist/design-system108.js.map +0 -1
  374. package/dist/design-system111.js +0 -166
  375. package/dist/design-system111.js.map +0 -1
  376. package/dist/design-system115.js +0 -277
  377. package/dist/design-system115.js.map +0 -1
  378. package/dist/design-system118.js +0 -19
  379. package/dist/design-system118.js.map +0 -1
  380. package/dist/design-system121.js +0 -15
  381. package/dist/design-system121.js.map +0 -1
  382. package/dist/design-system125.js +0 -45
  383. package/dist/design-system125.js.map +0 -1
  384. package/dist/design-system128.js +0 -236
  385. package/dist/design-system128.js.map +0 -1
  386. package/dist/design-system141.js +0 -40
  387. package/dist/design-system141.js.map +0 -1
  388. package/dist/design-system144.js +0 -7
  389. package/dist/design-system158.js +0 -61
  390. package/dist/design-system158.js.map +0 -1
  391. package/dist/design-system161.js +0 -59
  392. package/dist/design-system161.js.map +0 -1
  393. package/dist/design-system174.js +0 -465
  394. package/dist/design-system174.js.map +0 -1
  395. package/dist/design-system177.js +0 -38
  396. package/dist/design-system177.js.map +0 -1
  397. package/dist/design-system222.js +0 -7
  398. package/dist/design-system222.js.map +0 -1
  399. package/dist/design-system225.js +0 -8
  400. package/dist/design-system225.js.map +0 -1
  401. package/dist/design-system229.js +0 -115
  402. package/dist/design-system229.js.map +0 -1
  403. package/dist/design-system238.js.map +0 -1
  404. package/dist/design-system241.js.map +0 -1
  405. package/dist/design-system40.js +0 -479
  406. package/dist/design-system40.js.map +0 -1
  407. package/dist/design-system43.js +0 -6
  408. package/dist/design-system43.js.map +0 -1
  409. package/dist/design-system46.js +0 -9
  410. package/dist/design-system46.js.map +0 -1
  411. package/dist/design-system50.js +0 -67
  412. package/dist/design-system50.js.map +0 -1
  413. package/dist/design-system60.js.map +0 -1
  414. package/dist/design-system63.js +0 -8
  415. package/dist/design-system67.js +0 -32
  416. package/dist/design-system67.js.map +0 -1
  417. package/dist/design-system74.js +0 -8
  418. package/dist/design-system74.js.map +0 -1
  419. package/dist/design-system79.js +0 -60
  420. package/dist/design-system79.js.map +0 -1
  421. package/dist/design-system82.js +0 -14
  422. package/dist/design-system82.js.map +0 -1
  423. package/dist/design-system86.js +0 -69
  424. package/dist/design-system86.js.map +0 -1
  425. package/dist/design-system89.js +0 -91
  426. package/dist/design-system89.js.map +0 -1
  427. package/dist/design-system93.js.map +0 -1
@@ -1,19 +1,493 @@
1
- import { createElementBlock as e, defineComponent as t, normalizeClass as n, openBlock as r, renderSlot as i } from "vue";
2
- //#region src/components/BCard/BCardGrid.vue?vue&type=script&setup=true&lang.ts
3
- var a = ["role"], o = /* @__PURE__ */ t({
4
- __name: "BCardGrid",
5
- props: { hoverable: {
6
- type: Boolean,
7
- default: !1
8
- } },
9
- setup(t) {
10
- return (o, s) => (r(), e("div", {
11
- class: n(["b-card-grid", { "b-card-grid--hoverable": t.hoverable }]),
12
- role: o.$attrs["aria-label"] ? "region" : void 0
13
- }, [i(o.$slots, "default")], 10, a));
1
+ import { useComponentId as e } from "./design-system10.js";
2
+ import t from "./design-system32.js";
3
+ import { Fragment as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, defineComponent as c, guardReactiveProps as ee, mergeProps as l, normalizeClass as u, normalizeProps as te, openBlock as d, ref as f, renderList as p, renderSlot as m, toDisplayString as h, watch as ne, withCtx as re, withKeys as g, withModifiers as _ } from "vue";
4
+ //#region src/components/BCalendar/BCalendar.vue?vue&type=script&setup=true&lang.ts
5
+ var ie = ["aria-label"], ae = {
6
+ key: 0,
7
+ class: "b-calendar__header"
8
+ }, oe = {
9
+ key: 1,
10
+ class: "b-calendar__header"
11
+ }, se = { class: "b-calendar__header-controls" }, ce = ["for"], le = { class: "b-calendar__select-wrapper" }, ue = ["id", "value"], de = ["value"], fe = ["for"], pe = { class: "b-calendar__select-wrapper" }, me = ["id", "value"], he = ["value", "disabled"], ge = {
12
+ class: "b-calendar__mode-switch",
13
+ role: "radiogroup",
14
+ "aria-label": "Calendar mode"
15
+ }, _e = ["name", "checked"], ve = ["name", "checked"], ye = { class: "b-calendar__body" }, be = ["aria-label"], xe = { role: "row" }, Se = {
16
+ key: 0,
17
+ class: "b-calendar__weekday b-calendar__weekday--week",
18
+ scope: "col",
19
+ "aria-label": "Week"
20
+ }, Ce = ["aria-label"], we = {
21
+ key: 0,
22
+ class: "b-calendar__week-number",
23
+ role: "rowheader"
24
+ }, Te = [
25
+ "aria-selected",
26
+ "aria-disabled",
27
+ "aria-current",
28
+ "data-b-calendar-date",
29
+ "tabindex",
30
+ "onClick",
31
+ "onKeydown"
32
+ ], Ee = {
33
+ key: 1,
34
+ class: "b-calendar__date"
35
+ }, De = { class: "b-calendar__date-value" }, Oe = { class: "b-calendar__date-content" }, ke = { class: "b-calendar__events" }, Ae = ["title"], je = { class: "b-calendar__event-title" }, Me = {
36
+ key: 0,
37
+ class: "b-calendar__events-more"
38
+ }, Ne = ["aria-label"], Pe = [
39
+ "aria-selected",
40
+ "aria-disabled",
41
+ "tabindex",
42
+ "onClick",
43
+ "onKeydown"
44
+ ], Fe = {
45
+ key: 1,
46
+ class: "b-calendar__month"
47
+ }, Ie = { class: "b-calendar__month-value" }, Le = { class: "b-calendar__month-content" }, Re = {
48
+ class: "b-calendar__sr-only",
49
+ "aria-live": "polite",
50
+ "aria-atomic": "true"
51
+ }, ze = {
52
+ key: 1,
53
+ class: "b-calendar__modal-body"
54
+ }, Be = { class: "b-calendar__modal-header" }, Ve = { class: "b-calendar__modal-title" }, He = {
55
+ key: 0,
56
+ class: "b-calendar__modal-events"
57
+ }, Ue = { class: "b-calendar__modal-event-text" }, We = { class: "b-calendar__modal-event-title" }, Ge = {
58
+ key: 0,
59
+ class: "b-calendar__modal-event-description"
60
+ }, Ke = {
61
+ key: 1,
62
+ class: "b-calendar__modal-empty"
63
+ }, v = /* @__PURE__ */ c({
64
+ __name: "BCalendar",
65
+ props: {
66
+ modelValue: {},
67
+ defaultValue: {},
68
+ mode: {},
69
+ defaultMode: { default: "month" },
70
+ fullscreen: {
71
+ type: Boolean,
72
+ default: !0
73
+ },
74
+ showWeek: {
75
+ type: Boolean,
76
+ default: !1
77
+ },
78
+ validRange: {},
79
+ locale: {},
80
+ disabledDate: { type: Function },
81
+ ariaLabel: { default: "Calendar" },
82
+ events: { type: Function },
83
+ showEventDetails: {
84
+ type: Boolean,
85
+ default: !0
86
+ },
87
+ maxEventsVisible: { default: 3 }
88
+ },
89
+ emits: [
90
+ "update:modelValue",
91
+ "update:mode",
92
+ "change",
93
+ "select",
94
+ "panelChange"
95
+ ],
96
+ setup(c, { expose: v, emit: qe }) {
97
+ let y = qe, { componentUID: Je } = e(), b = `b-calendar-${Je.value}`, x = f(c.defaultValue ?? null), S = f(c.defaultMode), C = f(A(c.defaultValue ?? c.modelValue ?? /* @__PURE__ */ new Date())), w = r(() => c.modelValue !== void 0), T = r(() => c.mode !== void 0), E = r(() => w.value ? c.modelValue ?? null : x.value), D = r(() => T.value ? c.mode : S.value);
98
+ ne(() => c.modelValue, (e) => {
99
+ e && (C.value = A(e));
100
+ });
101
+ let O = r(() => {
102
+ let e = c.locale ?? (typeof navigator < "u" ? navigator.language : void 0) ?? "en-US";
103
+ try {
104
+ return Intl.DateTimeFormat(e), e;
105
+ } catch {
106
+ return "en-US";
107
+ }
108
+ }), Ye = r(() => {
109
+ let e = O.value;
110
+ return Array.from({ length: 7 }, (t, n) => new Date(2024, 0, 7 + n).toLocaleDateString(e, { weekday: "short" }));
111
+ }), k = r(() => {
112
+ let e = O.value;
113
+ return Array.from({ length: 12 }, (t, n) => new Date(2024, n, 1).toLocaleDateString(e, { month: c.fullscreen ? "long" : "short" }));
114
+ }), Xe = r(() => {
115
+ let e = O.value;
116
+ return Array.from({ length: 12 }, (t, n) => new Date(2024, n, 1).toLocaleDateString(e, { month: "short" }));
117
+ }), Ze = r(() => {
118
+ try {
119
+ let e = new Intl.RelativeTimeFormat(O.value, { numeric: "auto" }).formatToParts(0, "day").find((e) => e.type === "literal")?.value;
120
+ if (e && e.trim()) return e.trim().charAt(0).toUpperCase() + e.trim().slice(1);
121
+ } catch {}
122
+ return "Today";
123
+ });
124
+ function A(e) {
125
+ return new Date(e.getFullYear(), e.getMonth(), e.getDate());
126
+ }
127
+ function j(e, t) {
128
+ return e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth() && e.getDate() === t.getDate();
129
+ }
130
+ function M(e, t) {
131
+ return e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth();
132
+ }
133
+ function Qe(e) {
134
+ let t = new Date(Date.UTC(e.getFullYear(), e.getMonth(), e.getDate()));
135
+ t.setUTCDate(t.getUTCDate() + 4 - (t.getUTCDay() || 7));
136
+ let n = new Date(Date.UTC(t.getUTCFullYear(), 0, 1));
137
+ return Math.ceil(((t.getTime() - n.getTime()) / 864e5 + 1) / 7);
138
+ }
139
+ function $e(e) {
140
+ if (!c.validRange) return !1;
141
+ let t = A(c.validRange[0]), n = A(c.validRange[1]), r = A(e);
142
+ return r < t || r > n;
143
+ }
144
+ function N(e) {
145
+ return $e(e) ? !0 : c.disabledDate ? c.disabledDate(e) : !1;
146
+ }
147
+ function P(e, t) {
148
+ if (!c.validRange) return !1;
149
+ let n = new Date(c.validRange[0].getFullYear(), c.validRange[0].getMonth(), 1), r = new Date(c.validRange[1].getFullYear(), c.validRange[1].getMonth(), 1), i = new Date(e, t, 1);
150
+ return i < n || i > r;
151
+ }
152
+ let F = r(() => A(/* @__PURE__ */ new Date())), et = r(() => {
153
+ let e = C.value.getFullYear(), t = C.value.getMonth(), n = new Date(e, t, 1).getDay(), r = [];
154
+ for (let i = n - 1; i >= 0; i--) r.push({
155
+ date: new Date(e, t, -i),
156
+ outside: !0
157
+ });
158
+ let i = new Date(e, t + 1, 0).getDate();
159
+ for (let n = 1; n <= i; n++) r.push({
160
+ date: new Date(e, t, n),
161
+ outside: !1
162
+ });
163
+ let a = 1;
164
+ for (; r.length < 42;) r.push({
165
+ date: new Date(e, t + 1, a++),
166
+ outside: !0
167
+ });
168
+ return r;
169
+ }), tt = r(() => {
170
+ let e = [], t = et.value;
171
+ for (let n = 0; n < 6; n++) e.push(t.slice(n * 7, n * 7 + 7));
172
+ return e;
173
+ }), nt = r(() => {
174
+ let e = C.value.getFullYear();
175
+ return Array.from({ length: 12 }, (t, n) => ({
176
+ date: new Date(e, n, 1),
177
+ month: n,
178
+ year: e
179
+ }));
180
+ }), rt = r(() => {
181
+ let e = C.value.getFullYear(), t = c.validRange ? c.validRange[0].getFullYear() : e - 10, n = c.validRange ? c.validRange[1].getFullYear() : e + 10, r = [];
182
+ for (let e = t; e <= n; e++) r.push(e);
183
+ return r;
184
+ }), it = r(() => k.value.map((e, t) => ({
185
+ label: e,
186
+ value: t,
187
+ disabled: P(C.value.getFullYear(), t)
188
+ }))), I = r(() => C.value.getFullYear()), L = r(() => C.value.getMonth());
189
+ function R(e) {
190
+ if (!c.events) return [];
191
+ try {
192
+ return c.events(e) ?? [];
193
+ } catch {
194
+ return [];
195
+ }
196
+ }
197
+ let z = f(!1), B = f(null), V = r(() => B.value ? R(B.value) : []);
198
+ function H() {
199
+ z.value = !1;
200
+ }
201
+ let at = r(() => {
202
+ if (!B.value) return "";
203
+ try {
204
+ return B.value.toLocaleDateString(O.value, {
205
+ weekday: "long",
206
+ year: "numeric",
207
+ month: "long",
208
+ day: "numeric"
209
+ });
210
+ } catch {
211
+ return Z(B.value);
212
+ }
213
+ });
214
+ function U(e) {
215
+ w.value || (x.value = e), y("update:modelValue", e), y("change", e);
216
+ }
217
+ function W(e) {
218
+ T.value || (S.value = e), y("update:mode", e), y("panelChange", C.value, e);
219
+ }
220
+ function G(e) {
221
+ C.value = A(e), y("panelChange", C.value, D.value);
222
+ }
223
+ function K(e) {
224
+ N(e) || (C.value = A(e), U(A(e)), y("select", A(e), { source: "date" }), c.showEventDetails && c.events && R(e).length > 0 && (B.value = A(e), z.value = !0));
225
+ }
226
+ function q(e, t) {
227
+ if (P(e, t)) return;
228
+ let n = new Date(e, t, 1);
229
+ C.value = n, D.value === "year" ? (W("month"), y("select", n, { source: "month" })) : (U(n), y("select", n, { source: "month" }));
230
+ }
231
+ function ot(e) {
232
+ let t = Number(e.target.value);
233
+ if (Number.isNaN(t)) return;
234
+ let n = new Date(t, C.value.getMonth(), 1);
235
+ C.value = n, y("select", n, { source: "year" }), y("panelChange", n, D.value);
236
+ }
237
+ function st(e) {
238
+ let t = Number(e.target.value);
239
+ if (Number.isNaN(t)) return;
240
+ let n = new Date(C.value.getFullYear(), t, 1);
241
+ C.value = n, y("panelChange", n, D.value);
242
+ }
243
+ function J(e) {
244
+ W(e.target.value);
245
+ }
246
+ function ct() {
247
+ let e = A(/* @__PURE__ */ new Date());
248
+ C.value = e, U(e), y("select", e, { source: "date" });
249
+ }
250
+ let lt = f(null), Y = f(null);
251
+ function ut(e, t) {
252
+ let n = 0;
253
+ switch (e.key) {
254
+ case "ArrowLeft":
255
+ n = -1;
256
+ break;
257
+ case "ArrowRight":
258
+ n = 1;
259
+ break;
260
+ case "ArrowUp":
261
+ n = -7;
262
+ break;
263
+ case "ArrowDown":
264
+ n = 7;
265
+ break;
266
+ case "PageUp":
267
+ n = e.shiftKey ? -365 : -30;
268
+ break;
269
+ case "PageDown":
270
+ n = e.shiftKey ? 365 : 30;
271
+ break;
272
+ case "Home":
273
+ e.preventDefault(), X(new Date(t.date.getFullYear(), t.date.getMonth(), 1));
274
+ return;
275
+ case "End":
276
+ e.preventDefault(), X(new Date(t.date.getFullYear(), t.date.getMonth() + 1, 0));
277
+ return;
278
+ case "Enter":
279
+ case " ":
280
+ e.preventDefault(), K(t.date);
281
+ return;
282
+ default: return;
283
+ }
284
+ e.preventDefault();
285
+ let r = new Date(t.date);
286
+ r.setDate(r.getDate() + n), X(r);
287
+ }
288
+ function X(e) {
289
+ M(e, C.value) || (C.value = new Date(e.getFullYear(), e.getMonth(), 1), y("panelChange", C.value, D.value)), lt.value = A(e), queueMicrotask(() => {
290
+ let t = `[data-b-calendar-date="${Z(e)}"]`;
291
+ (Y.value?.querySelector(t))?.focus();
292
+ });
293
+ }
294
+ function Z(e) {
295
+ return `${e.getFullYear()}-${String(e.getMonth() + 1).padStart(2, "0")}-${String(e.getDate()).padStart(2, "0")}`;
296
+ }
297
+ function dt(e) {
298
+ let t = lt.value ?? E.value ?? F.value;
299
+ if (M(t, C.value)) return j(e.date, t) && !e.outside;
300
+ let n = new Date(C.value.getFullYear(), C.value.getMonth(), 1);
301
+ return j(e.date, n) && !e.outside;
302
+ }
303
+ let ft = r(() => ({
304
+ value: C.value,
305
+ mode: D.value,
306
+ onTypeChange: W,
307
+ onChange: G
308
+ }));
309
+ function Q(e) {
310
+ return {
311
+ date: e.date,
312
+ selected: !!E.value && j(e.date, E.value),
313
+ today: j(e.date, F.value),
314
+ outside: e.outside,
315
+ disabled: N(e.date)
316
+ };
317
+ }
318
+ function $(e, t) {
319
+ return {
320
+ date: new Date(e, t, 1),
321
+ selected: !!E.value && E.value.getFullYear() === e && E.value.getMonth() === t,
322
+ today: F.value.getFullYear() === e && F.value.getMonth() === t,
323
+ outside: !1,
324
+ disabled: P(e, t)
325
+ };
326
+ }
327
+ return v({
328
+ select: (e) => K(e),
329
+ setMode: W,
330
+ goTo: G
331
+ }), (e, r) => (d(), o("section", {
332
+ id: b,
333
+ class: u(["b-calendar", {
334
+ "b-calendar--fullscreen": c.fullscreen,
335
+ "b-calendar--mini": !c.fullscreen,
336
+ "b-calendar--mode-month": D.value === "month",
337
+ "b-calendar--mode-year": D.value === "year",
338
+ "b-calendar--show-week": c.showWeek
339
+ }]),
340
+ role: "region",
341
+ "aria-label": c.ariaLabel
342
+ }, [
343
+ e.$slots.header ? (d(), o("header", ae, [m(e.$slots, "header", te(ee(ft.value)))])) : (d(), o("header", oe, [s("div", se, [
344
+ s("label", {
345
+ class: "b-calendar__sr-only",
346
+ for: `${b}-year`
347
+ }, "Year", 8, ce),
348
+ s("span", le, [s("select", {
349
+ id: `${b}-year`,
350
+ class: "b-calendar__select b-calendar__select--year",
351
+ value: I.value,
352
+ "aria-label": "Select year",
353
+ onChange: ot
354
+ }, [(d(!0), o(n, null, p(rt.value, (e) => (d(), o("option", {
355
+ key: e,
356
+ value: e
357
+ }, h(e), 9, de))), 128))], 40, ue)]),
358
+ D.value === "month" ? (d(), o(n, { key: 0 }, [s("label", {
359
+ class: "b-calendar__sr-only",
360
+ for: `${b}-month`
361
+ }, "Month", 8, fe), s("span", pe, [s("select", {
362
+ id: `${b}-month`,
363
+ class: "b-calendar__select b-calendar__select--month",
364
+ value: L.value,
365
+ "aria-label": "Select month",
366
+ onChange: st
367
+ }, [(d(!0), o(n, null, p(it.value, (e) => (d(), o("option", {
368
+ key: e.value,
369
+ value: e.value,
370
+ disabled: e.disabled
371
+ }, h(e.label), 9, he))), 128))], 40, me)])], 64)) : a("", !0),
372
+ s("div", ge, [s("label", { class: u(["b-calendar__mode-option", { "b-calendar__mode-option--active": D.value === "month" }]) }, [s("input", {
373
+ type: "radio",
374
+ name: `${b}-mode`,
375
+ value: "month",
376
+ checked: D.value === "month",
377
+ class: "b-calendar__sr-only",
378
+ onChange: J
379
+ }, null, 40, _e), r[1] ||= s("span", null, "Month", -1)], 2), s("label", { class: u(["b-calendar__mode-option", { "b-calendar__mode-option--active": D.value === "year" }]) }, [s("input", {
380
+ type: "radio",
381
+ name: `${b}-mode`,
382
+ value: "year",
383
+ checked: D.value === "year",
384
+ class: "b-calendar__sr-only",
385
+ onChange: J
386
+ }, null, 40, ve), r[2] ||= s("span", null, "Year", -1)], 2)])
387
+ ]), s("button", {
388
+ type: "button",
389
+ class: "b-calendar__today-btn",
390
+ onClick: ct
391
+ }, h(Ze.value), 1)])),
392
+ s("div", ye, [D.value === "month" ? (d(), o("table", {
393
+ key: 0,
394
+ ref_key: "gridRef",
395
+ ref: Y,
396
+ class: "b-calendar__table",
397
+ role: "grid",
398
+ "aria-label": `${c.ariaLabel} dates`
399
+ }, [s("thead", null, [s("tr", xe, [c.showWeek ? (d(), o("th", Se, " # ")) : a("", !0), (d(!0), o(n, null, p(Ye.value, (e) => (d(), o("th", {
400
+ key: e,
401
+ class: "b-calendar__weekday",
402
+ scope: "col",
403
+ "aria-label": e
404
+ }, h(e), 9, Ce))), 128))])]), s("tbody", null, [(d(!0), o(n, null, p(tt.value, (t, i) => (d(), o("tr", {
405
+ key: i,
406
+ role: "row"
407
+ }, [c.showWeek ? (d(), o("td", we, h(Qe(t[0].date)), 1)) : a("", !0), (d(!0), o(n, null, p(t, (t) => (d(), o("td", {
408
+ key: Z(t.date),
409
+ class: u(["b-calendar__cell", {
410
+ "b-calendar__cell--outside": t.outside,
411
+ "b-calendar__cell--today": j(t.date, F.value),
412
+ "b-calendar__cell--selected": Q(t).selected,
413
+ "b-calendar__cell--disabled": N(t.date)
414
+ }]),
415
+ role: "gridcell",
416
+ "aria-selected": Q(t).selected || void 0,
417
+ "aria-disabled": N(t.date) || void 0,
418
+ "aria-current": j(t.date, F.value) ? "date" : void 0,
419
+ "data-b-calendar-date": Z(t.date),
420
+ tabindex: dt(t) ? 0 : -1,
421
+ onClick: (e) => !N(t.date) && K(t.date),
422
+ onKeydown: (e) => ut(e, t)
423
+ }, [e.$slots.dateFullCell ? m(e.$slots, "dateFullCell", l({
424
+ key: 0,
425
+ ref_for: !0
426
+ }, Q(t))) : (d(), o("div", Ee, [s("div", De, h(t.date.getDate()), 1), s("div", Oe, [e.$slots.dateCell ? m(e.$slots, "dateCell", l({
427
+ key: 0,
428
+ ref_for: !0
429
+ }, Q(t))) : c.events && R(t.date).length > 0 ? (d(), o(n, { key: 1 }, [s("ul", ke, [(d(!0), o(n, null, p(R(t.date).slice(0, c.maxEventsVisible), (e, t) => (d(), o("li", {
430
+ key: t,
431
+ class: u(["b-calendar__event", `b-calendar__event--${e.type ?? "default"}`]),
432
+ title: e.title
433
+ }, [r[3] ||= s("span", {
434
+ class: "b-calendar__event-dot",
435
+ "aria-hidden": "true"
436
+ }, null, -1), s("span", je, h(e.title), 1)], 10, Ae))), 128))]), R(t.date).length > c.maxEventsVisible ? (d(), o("div", Me, " +" + h(R(t.date).length - c.maxEventsVisible) + " more ", 1)) : a("", !0)], 64)) : a("", !0)])]))], 42, Te))), 128))]))), 128))])], 8, be)) : (d(), o("table", {
437
+ key: 1,
438
+ class: "b-calendar__table b-calendar__table--year",
439
+ role: "grid",
440
+ "aria-label": `${c.ariaLabel} months`
441
+ }, [s("tbody", null, [(d(), o(n, null, p(4, (t) => s("tr", {
442
+ key: t,
443
+ role: "row"
444
+ }, [(d(!0), o(n, null, p(nt.value.slice((t - 1) * 3, t * 3), (t) => (d(), o("td", {
445
+ key: t.month,
446
+ class: u(["b-calendar__cell b-calendar__cell--month", {
447
+ "b-calendar__cell--selected": $(t.year, t.month).selected,
448
+ "b-calendar__cell--today": $(t.year, t.month).today,
449
+ "b-calendar__cell--disabled": P(t.year, t.month)
450
+ }]),
451
+ role: "gridcell",
452
+ "aria-selected": $(t.year, t.month).selected || void 0,
453
+ "aria-disabled": P(t.year, t.month) || void 0,
454
+ tabindex: $(t.year, t.month).selected || !E.value && t.month === F.value.getMonth() && t.year === F.value.getFullYear() ? 0 : -1,
455
+ onClick: (e) => !P(t.year, t.month) && q(t.year, t.month),
456
+ onKeydown: [g(_((e) => q(t.year, t.month), ["prevent"]), ["enter"]), g(_((e) => q(t.year, t.month), ["prevent"]), ["space"])]
457
+ }, [e.$slots.monthFullCell ? m(e.$slots, "monthFullCell", l({
458
+ key: 0,
459
+ ref_for: !0
460
+ }, $(t.year, t.month))) : (d(), o("div", Fe, [s("div", Ie, h(Xe.value[t.month]), 1), s("div", Le, [m(e.$slots, "monthCell", l({ ref_for: !0 }, $(t.year, t.month)))])]))], 42, Pe))), 128))])), 64))])], 8, Ne))]),
461
+ s("div", Re, h(D.value === "month" ? k.value[L.value] : "") + " " + h(I.value), 1),
462
+ c.showEventDetails && c.events ? (d(), i(t, {
463
+ key: 2,
464
+ modelValue: z.value,
465
+ "onUpdate:modelValue": r[0] ||= (e) => z.value = e,
466
+ class: "b-calendar__modal"
467
+ }, {
468
+ default: re(() => [e.$slots.eventDetails && B.value ? m(e.$slots, "eventDetails", {
469
+ key: 0,
470
+ date: B.value,
471
+ events: V.value,
472
+ close: H
473
+ }) : B.value ? (d(), o("div", ze, [s("header", Be, [s("h3", Ve, h(at.value), 1), s("button", {
474
+ type: "button",
475
+ class: "b-calendar__modal-close",
476
+ "aria-label": "Close",
477
+ onClick: H
478
+ }, " × ")]), V.value.length > 0 ? (d(), o("ul", He, [(d(!0), o(n, null, p(V.value, (e, t) => (d(), o("li", {
479
+ key: t,
480
+ class: u(["b-calendar__modal-event", `b-calendar__modal-event--${e.type ?? "default"}`])
481
+ }, [r[4] ||= s("span", {
482
+ class: "b-calendar__event-dot",
483
+ "aria-hidden": "true"
484
+ }, null, -1), s("div", Ue, [s("div", We, h(e.title), 1), e.description ? (d(), o("div", Ge, h(e.description), 1)) : a("", !0)])], 2))), 128))])) : (d(), o("p", Ke, "No events."))])) : a("", !0)]),
485
+ _: 3
486
+ }, 8, ["modelValue"])) : a("", !0)
487
+ ], 10, ie));
14
488
  }
15
489
  });
16
490
  //#endregion
17
- export { o as default };
491
+ export { v as default };
18
492
 
19
493
  //# sourceMappingURL=design-system33.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"design-system33.js","names":[],"sources":["../src/components/BCard/BCardGrid.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"role\"]\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'BCardGrid',\n props: {\n hoverable: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\n// ─────────────────────────────────────────────\n// Props\n// ─────────────────────────────────────────────\n\n\n// ─────────────────────────────────────────────\n// Slots\n// ─────────────────────────────────────────────\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"b-card-grid\", { 'b-card-grid--hoverable': __props.hoverable }]),\n role: _ctx.$attrs['aria-label'] ? 'region' : undefined\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 10, _hoisted_1))\n}\n}\n\n})"],"mappings":";;AAGA,IAAM,IAAa,CAAC,OAAO,EAG3B,IAA4B,kBAAiB;CAC3C,QAAQ;CACR,OAAO,EACL,WAAW;EAAE,MAAM;EAAS,SAAS;EAAO,EAC7C;CACD,MAAM,GAAc;AAYtB,UAAQ,GAAU,OACR,GAAY,EAAE,EAAoB,OAAO;GAC/C,OAAO,EAAgB,CAAC,eAAe,EAAE,0BAA0B,EAAQ,WAAW,CAAC,CAAC;GACxF,MAAM,EAAK,OAAO,gBAAgB,WAAW,KAAA;GAC9C,EAAE,CACD,EAAY,EAAK,QAAQ,UAAU,CACpC,EAAE,IAAI,EAAW;;CAInB,CAAA"}
1
+ {"version":3,"file":"design-system33.js","names":["$slots"],"sources":["../src/components/BCalendar/BCalendar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\n\nimport { useComponentId } from '@/composables/useComponentId';\nimport BModal from '@/components/BModal/BModal.vue';\n\nimport type {\n BCalendarCellSlotScope,\n BCalendarEvent,\n BCalendarEventDetailsSlotScope,\n BCalendarHeaderSlotScope,\n BCalendarMode,\n BCalendarSelectInfo,\n} from './types';\n\n// ─────────────────────────────────────────────\n// Props\n// ─────────────────────────────────────────────\nconst {\n modelValue,\n defaultValue,\n mode,\n defaultMode = 'month',\n fullscreen = true,\n showWeek = false,\n validRange,\n locale,\n disabledDate,\n ariaLabel = 'Calendar',\n events,\n showEventDetails = true,\n maxEventsVisible = 3,\n} = defineProps<{\n /**\n * Controlled selected date. Pair with `v-model` for two-way binding.\n * AntD: `value`.\n */\n modelValue?: Date | null;\n /**\n * Initial selected date when uncontrolled.\n * AntD: `defaultValue`.\n */\n defaultValue?: Date;\n /**\n * Controlled panel mode (month / year). When omitted, the component\n * manages its own mode starting from `defaultMode`.\n * AntD: `mode`.\n */\n mode?: BCalendarMode;\n /**\n * Initial panel mode when uncontrolled.\n * @default 'month'\n */\n defaultMode?: BCalendarMode;\n /**\n * Full-screen layout when `true`, mini layout when `false`.\n * AntD: `fullscreen`.\n * @default true\n */\n fullscreen?: boolean;\n /**\n * Show a week-number column in month mode.\n * AntD: `showWeek`.\n * @default false\n */\n showWeek?: boolean;\n /**\n * Inclusive [start, end] range outside which dates are disabled.\n * AntD: `validRange`.\n */\n validRange?: [Date, Date];\n /**\n * BCP 47 locale tag for weekday / month labels (e.g. `'en-US'`, `'vi-VN'`).\n * AntD: `locale` (object). We accept a locale string and use Intl.\n */\n locale?: string;\n /**\n * Predicate to disable specific dates.\n * AntD: `disabledDate`.\n */\n disabledDate?: (date: Date) => boolean;\n /** Accessible label for the calendar root region. */\n ariaLabel?: string;\n /**\n * Returns events for a given date. When provided, event titles are auto-rendered\n * inside each day cell (unless the `dateCell` slot replaces them).\n */\n events?: (date: Date) => BCalendarEvent[];\n /**\n * Open a details modal when clicking a date that has events.\n * Set `false` to keep clicks selection-only.\n * @default true\n */\n showEventDetails?: boolean;\n /**\n * Maximum number of events shown inline per day cell. Extra events collapse\n * into a \"+N more\" indicator (full list is still available in the modal).\n * @default 3\n */\n maxEventsVisible?: number;\n}>();\n\n// ─────────────────────────────────────────────\n// Emits\n// ─────────────────────────────────────────────\nconst emit = defineEmits<{\n /** Two-way binding for the selected date. */\n 'update:modelValue': [date: Date];\n /** Two-way binding for the panel mode. */\n 'update:mode': [mode: BCalendarMode];\n /** Fires when the selected date changes. AntD: `onChange`. */\n change: [date: Date];\n /** Fires on date / month / year selection. AntD: `onSelect`. */\n select: [date: Date, info: BCalendarSelectInfo];\n /** Fires when panel value or mode changes. AntD: `onPanelChange`. */\n panelChange: [date: Date, mode: BCalendarMode];\n}>();\n\n// ─────────────────────────────────────────────\n// Slots (parity with AntD render props)\n// ─────────────────────────────────────────────\ndefineSlots<{\n /** Custom header. AntD: `headerRender`. */\n header?(scope: BCalendarHeaderSlotScope): unknown;\n /** Inject extra content into a date cell. AntD: `cellRender` (date). */\n dateCell?(scope: BCalendarCellSlotScope): unknown;\n /** Inject extra content into a month cell. AntD: `cellRender` (month). */\n monthCell?(scope: BCalendarCellSlotScope): unknown;\n /** Replace the entire date cell. AntD: `fullCellRender` / `dateFullCellRender`. */\n dateFullCell?(scope: BCalendarCellSlotScope): unknown;\n /** Replace the entire month cell. AntD: `fullCellRender` / `monthFullCellRender`. */\n monthFullCell?(scope: BCalendarCellSlotScope): unknown;\n /** Replace the contents of the event-details modal. */\n eventDetails?(scope: BCalendarEventDetailsSlotScope): unknown;\n}>();\n\n// ─────────────────────────────────────────────\n// State\n// ─────────────────────────────────────────────\nconst { componentUID } = useComponentId();\nconst ROOT_ID = `b-calendar-${componentUID.value}`;\n\nconst internalValue = ref<Date | null>(defaultValue ?? null);\nconst internalMode = ref<BCalendarMode>(defaultMode);\n// The currently displayed panel anchor. Always a real Date (today as fallback).\nconst panelDate = ref<Date>(stripTime(defaultValue ?? modelValue ?? new Date()));\n\nconst isControlledValue = computed(() => modelValue !== undefined);\nconst isControlledMode = computed(() => mode !== undefined);\n\nconst selectedDate = computed<Date | null>(() =>\n isControlledValue.value ? (modelValue ?? null) : internalValue.value,\n);\n\nconst activeMode = computed<BCalendarMode>(() =>\n isControlledMode.value ? (mode as BCalendarMode) : internalMode.value,\n);\n\nwatch(\n () => modelValue,\n (val) => {\n if (val) panelDate.value = stripTime(val);\n },\n);\n\n// ─────────────────────────────────────────────\n// Locale helpers\n// ─────────────────────────────────────────────\nconst resolvedLocale = computed(() => {\n const tag =\n locale ??\n (typeof navigator !== 'undefined' ? navigator.language : undefined) ??\n 'en-US';\n try {\n Intl.DateTimeFormat(tag);\n return tag;\n } catch {\n return 'en-US';\n }\n});\n\nconst weekdayLabels = computed(() => {\n const loc = resolvedLocale.value;\n // Sunday-start: 2024-01-07 is a Sunday.\n return Array.from({ length: 7 }, (_, i) =>\n new Date(2024, 0, 7 + i).toLocaleDateString(loc, { weekday: 'short' }),\n );\n});\n\nconst monthLabels = computed(() => {\n const loc = resolvedLocale.value;\n return Array.from({ length: 12 }, (_, i) =>\n new Date(2024, i, 1).toLocaleDateString(loc, { month: fullscreen ? 'long' : 'short' }),\n );\n});\n\nconst monthLabelsShort = computed(() => {\n const loc = resolvedLocale.value;\n return Array.from({ length: 12 }, (_, i) =>\n new Date(2024, i, 1).toLocaleDateString(loc, { month: 'short' }),\n );\n});\n\nconst todayLabel = computed(() => {\n try {\n const rtf = new Intl.RelativeTimeFormat(resolvedLocale.value, { numeric: 'auto' });\n const v = rtf.formatToParts(0, 'day').find((p) => p.type === 'literal')?.value;\n if (v && v.trim()) return v.trim().charAt(0).toUpperCase() + v.trim().slice(1);\n } catch {\n /* no-op */\n }\n return 'Today';\n});\n\n// ─────────────────────────────────────────────\n// Date helpers\n// ─────────────────────────────────────────────\nfunction stripTime(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate());\n}\n\nfunction isSameDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nfunction isSameMonth(a: Date, b: Date): boolean {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();\n}\n\nfunction getWeekNumber(d: Date): number {\n const c = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));\n c.setUTCDate(c.getUTCDate() + 4 - (c.getUTCDay() || 7));\n const yearStart = new Date(Date.UTC(c.getUTCFullYear(), 0, 1));\n return Math.ceil(((c.getTime() - yearStart.getTime()) / 86400000 + 1) / 7);\n}\n\nfunction isOutOfValidRange(d: Date): boolean {\n if (!validRange) return false;\n const start = stripTime(validRange[0]);\n const end = stripTime(validRange[1]);\n const t = stripTime(d);\n return t < start || t > end;\n}\n\nfunction isDateDisabled(d: Date): boolean {\n if (isOutOfValidRange(d)) return true;\n if (disabledDate) return disabledDate(d);\n return false;\n}\n\nfunction isMonthDisabled(year: number, month: number): boolean {\n // Month is disabled only when no day in it falls inside the valid range.\n if (!validRange) return false;\n const startMonth = new Date(validRange[0].getFullYear(), validRange[0].getMonth(), 1);\n const endMonth = new Date(validRange[1].getFullYear(), validRange[1].getMonth(), 1);\n const m = new Date(year, month, 1);\n return m < startMonth || m > endMonth;\n}\n\n// ─────────────────────────────────────────────\n// Grid generation\n// ─────────────────────────────────────────────\nconst today = computed(() => stripTime(new Date()));\n\ninterface DateCell {\n date: Date;\n outside: boolean;\n}\n\nconst monthGrid = computed<DateCell[]>(() => {\n const year = panelDate.value.getFullYear();\n const month = panelDate.value.getMonth();\n const firstDay = new Date(year, month, 1);\n const startOffset = firstDay.getDay(); // 0..6 (Sunday-start)\n const cells: DateCell[] = [];\n\n // Leading days from previous month.\n for (let i = startOffset - 1; i >= 0; i--) {\n cells.push({ date: new Date(year, month, -i), outside: true });\n }\n // Current month.\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n for (let i = 1; i <= daysInMonth; i++) {\n cells.push({ date: new Date(year, month, i), outside: false });\n }\n // Trailing days to fill 6 weeks (42 cells).\n let trailing = 1;\n while (cells.length < 42) {\n cells.push({ date: new Date(year, month + 1, trailing++), outside: true });\n }\n return cells;\n});\n\nconst monthRows = computed(() => {\n const rows: DateCell[][] = [];\n const cells = monthGrid.value;\n for (let i = 0; i < 6; i++) rows.push(cells.slice(i * 7, i * 7 + 7));\n return rows;\n});\n\nconst yearGrid = computed(() => {\n const year = panelDate.value.getFullYear();\n return Array.from({ length: 12 }, (_, i) => ({\n date: new Date(year, i, 1),\n month: i,\n year,\n }));\n});\n\nconst headerYearOptions = computed(() => {\n const center = panelDate.value.getFullYear();\n const min = validRange ? validRange[0].getFullYear() : center - 10;\n const max = validRange ? validRange[1].getFullYear() : center + 10;\n const out: number[] = [];\n for (let y = min; y <= max; y++) out.push(y);\n return out;\n});\n\nconst headerMonthOptions = computed(() =>\n monthLabels.value.map((label, idx) => ({\n label,\n value: idx,\n disabled: isMonthDisabled(panelDate.value.getFullYear(), idx),\n })),\n);\n\nconst panelYear = computed(() => panelDate.value.getFullYear());\nconst panelMonth = computed(() => panelDate.value.getMonth());\n\n// ─────────────────────────────────────────────\n// Events feature\n// ─────────────────────────────────────────────\nfunction getEventsForDate(date: Date): BCalendarEvent[] {\n if (!events) return [];\n try {\n return events(date) ?? [];\n } catch {\n return [];\n }\n}\n\nconst eventModalOpen = ref(false);\nconst modalDate = ref<Date | null>(null);\nconst modalEvents = computed<BCalendarEvent[]>(() =>\n modalDate.value ? getEventsForDate(modalDate.value) : [],\n);\n\nfunction closeEventModal() {\n eventModalOpen.value = false;\n}\n\nconst modalDateLabel = computed(() => {\n if (!modalDate.value) return '';\n try {\n return modalDate.value.toLocaleDateString(resolvedLocale.value, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n });\n } catch {\n return formatISODate(modalDate.value);\n }\n});\n\n// ─────────────────────────────────────────────\n// Behavior\n// ─────────────────────────────────────────────\nfunction setSelected(date: Date) {\n if (!isControlledValue.value) {\n internalValue.value = date;\n }\n emit('update:modelValue', date);\n emit('change', date);\n}\n\nfunction setMode(next: BCalendarMode) {\n if (!isControlledMode.value) {\n internalMode.value = next;\n }\n emit('update:mode', next);\n emit('panelChange', panelDate.value, next);\n}\n\nfunction setPanelDate(date: Date) {\n panelDate.value = stripTime(date);\n emit('panelChange', panelDate.value, activeMode.value);\n}\n\nfunction selectDate(date: Date) {\n if (isDateDisabled(date)) return;\n panelDate.value = stripTime(date);\n setSelected(stripTime(date));\n emit('select', stripTime(date), { source: 'date' });\n if (showEventDetails && events) {\n const list = getEventsForDate(date);\n if (list.length > 0) {\n modalDate.value = stripTime(date);\n eventModalOpen.value = true;\n }\n }\n}\n\nfunction selectMonth(year: number, month: number) {\n if (isMonthDisabled(year, month)) return;\n const date = new Date(year, month, 1);\n panelDate.value = date;\n if (activeMode.value === 'year') {\n // Drill down: go to month view, no actual selection yet.\n setMode('month');\n emit('select', date, { source: 'month' });\n } else {\n setSelected(date);\n emit('select', date, { source: 'month' });\n }\n}\n\nfunction onYearSelectChange(e: Event) {\n const y = Number((e.target as HTMLSelectElement).value);\n if (Number.isNaN(y)) return;\n const next = new Date(y, panelDate.value.getMonth(), 1);\n panelDate.value = next;\n emit('select', next, { source: 'year' });\n emit('panelChange', next, activeMode.value);\n}\n\nfunction onMonthSelectChange(e: Event) {\n const m = Number((e.target as HTMLSelectElement).value);\n if (Number.isNaN(m)) return;\n const next = new Date(panelDate.value.getFullYear(), m, 1);\n panelDate.value = next;\n emit('panelChange', next, activeMode.value);\n}\n\nfunction onModeChange(e: Event) {\n setMode((e.target as HTMLInputElement).value as BCalendarMode);\n}\n\nfunction selectToday() {\n const t = stripTime(new Date());\n panelDate.value = t;\n setSelected(t);\n emit('select', t, { source: 'date' });\n}\n\n// ─────────────────────────────────────────────\n// Keyboard navigation (month grid)\n// ─────────────────────────────────────────────\nconst focusedDate = ref<Date | null>(null);\nconst gridRef = ref<HTMLElement | null>(null);\n\nfunction onCellKeydown(e: KeyboardEvent, cell: DateCell) {\n let delta = 0;\n switch (e.key) {\n case 'ArrowLeft':\n delta = -1;\n break;\n case 'ArrowRight':\n delta = 1;\n break;\n case 'ArrowUp':\n delta = -7;\n break;\n case 'ArrowDown':\n delta = 7;\n break;\n case 'PageUp':\n delta = e.shiftKey ? -365 : -30;\n break;\n case 'PageDown':\n delta = e.shiftKey ? 365 : 30;\n break;\n case 'Home':\n e.preventDefault();\n moveFocusTo(new Date(cell.date.getFullYear(), cell.date.getMonth(), 1));\n return;\n case 'End': {\n e.preventDefault();\n const eom = new Date(cell.date.getFullYear(), cell.date.getMonth() + 1, 0);\n moveFocusTo(eom);\n return;\n }\n case 'Enter':\n case ' ':\n e.preventDefault();\n selectDate(cell.date);\n return;\n default:\n return;\n }\n e.preventDefault();\n const next = new Date(cell.date);\n next.setDate(next.getDate() + delta);\n moveFocusTo(next);\n}\n\nfunction moveFocusTo(date: Date) {\n if (!isSameMonth(date, panelDate.value)) {\n panelDate.value = new Date(date.getFullYear(), date.getMonth(), 1);\n emit('panelChange', panelDate.value, activeMode.value);\n }\n focusedDate.value = stripTime(date);\n // Wait one tick so the rendered cell with new tabindex=0 can be focused.\n queueMicrotask(() => {\n const sel = `[data-b-calendar-date=\"${formatISODate(date)}\"]`;\n const el = gridRef.value?.querySelector<HTMLElement>(sel);\n el?.focus();\n });\n}\n\nfunction formatISODate(d: Date): string {\n return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`;\n}\n\nfunction isCellFocusable(cell: DateCell): boolean {\n // Roving tabindex anchor: focusedDate || selectedDate || today (clamped to current panel).\n const anchor = focusedDate.value ?? selectedDate.value ?? today.value;\n if (isSameMonth(anchor, panelDate.value)) {\n return isSameDay(cell.date, anchor) && !cell.outside;\n }\n // Anchor is in another month: pick first non-outside day of the panel.\n const firstOfMonth = new Date(panelDate.value.getFullYear(), panelDate.value.getMonth(), 1);\n return isSameDay(cell.date, firstOfMonth) && !cell.outside;\n}\n\n// ─────────────────────────────────────────────\n// Header scope (for custom slot)\n// ─────────────────────────────────────────────\nconst headerScope = computed<BCalendarHeaderSlotScope>(() => ({\n value: panelDate.value,\n mode: activeMode.value,\n onTypeChange: setMode,\n onChange: setPanelDate,\n}));\n\n// ─────────────────────────────────────────────\n// Cell scope helper\n// ─────────────────────────────────────────────\nfunction dateCellScope(cell: DateCell): BCalendarCellSlotScope {\n return {\n date: cell.date,\n selected: !!selectedDate.value && isSameDay(cell.date, selectedDate.value),\n today: isSameDay(cell.date, today.value),\n outside: cell.outside,\n disabled: isDateDisabled(cell.date),\n };\n}\n\nfunction monthCellScope(year: number, month: number): BCalendarCellSlotScope {\n const date = new Date(year, month, 1);\n return {\n date,\n selected:\n !!selectedDate.value &&\n selectedDate.value.getFullYear() === year &&\n selectedDate.value.getMonth() === month,\n today: today.value.getFullYear() === year && today.value.getMonth() === month,\n outside: false,\n disabled: isMonthDisabled(year, month),\n };\n}\n\n// ─────────────────────────────────────────────\n// Expose\n// ─────────────────────────────────────────────\ndefineExpose({\n /** Programmatically select a date. */\n select: (d: Date) => selectDate(d),\n /** Programmatically change the panel mode. */\n setMode,\n /** Move the panel to a specific date without selecting. */\n goTo: setPanelDate,\n});\n</script>\n\n<template>\n <section\n :id=\"ROOT_ID\"\n class=\"b-calendar\"\n :class=\"{\n 'b-calendar--fullscreen': fullscreen,\n 'b-calendar--mini': !fullscreen,\n 'b-calendar--mode-month': activeMode === 'month',\n 'b-calendar--mode-year': activeMode === 'year',\n 'b-calendar--show-week': showWeek,\n }\"\n role=\"region\"\n :aria-label=\"ariaLabel\"\n >\n <!-- ── Header ── -->\n <header v-if=\"$slots.header\" class=\"b-calendar__header\">\n <slot name=\"header\" v-bind=\"headerScope\" />\n </header>\n <header v-else class=\"b-calendar__header\">\n <div class=\"b-calendar__header-controls\">\n <label class=\"b-calendar__sr-only\" :for=\"`${ROOT_ID}-year`\">Year</label>\n <span class=\"b-calendar__select-wrapper\">\n <select\n :id=\"`${ROOT_ID}-year`\"\n class=\"b-calendar__select b-calendar__select--year\"\n :value=\"panelYear\"\n aria-label=\"Select year\"\n @change=\"onYearSelectChange\"\n >\n <option v-for=\"y in headerYearOptions\" :key=\"y\" :value=\"y\">\n {{ y }}\n </option>\n </select>\n </span>\n\n <template v-if=\"activeMode === 'month'\">\n <label class=\"b-calendar__sr-only\" :for=\"`${ROOT_ID}-month`\">Month</label>\n <span class=\"b-calendar__select-wrapper\">\n <select\n :id=\"`${ROOT_ID}-month`\"\n class=\"b-calendar__select b-calendar__select--month\"\n :value=\"panelMonth\"\n aria-label=\"Select month\"\n @change=\"onMonthSelectChange\"\n >\n <option\n v-for=\"opt in headerMonthOptions\"\n :key=\"opt.value\"\n :value=\"opt.value\"\n :disabled=\"opt.disabled\"\n >\n {{ opt.label }}\n </option>\n </select>\n </span>\n </template>\n\n <div\n class=\"b-calendar__mode-switch\"\n role=\"radiogroup\"\n aria-label=\"Calendar mode\"\n >\n <label\n class=\"b-calendar__mode-option\"\n :class=\"{ 'b-calendar__mode-option--active': activeMode === 'month' }\"\n >\n <input\n type=\"radio\"\n :name=\"`${ROOT_ID}-mode`\"\n value=\"month\"\n :checked=\"activeMode === 'month'\"\n class=\"b-calendar__sr-only\"\n @change=\"onModeChange\"\n />\n <span>Month</span>\n </label>\n <label\n class=\"b-calendar__mode-option\"\n :class=\"{ 'b-calendar__mode-option--active': activeMode === 'year' }\"\n >\n <input\n type=\"radio\"\n :name=\"`${ROOT_ID}-mode`\"\n value=\"year\"\n :checked=\"activeMode === 'year'\"\n class=\"b-calendar__sr-only\"\n @change=\"onModeChange\"\n />\n <span>Year</span>\n </label>\n </div>\n </div>\n <button\n type=\"button\"\n class=\"b-calendar__today-btn\"\n @click=\"selectToday\"\n >\n {{ todayLabel }}\n </button>\n </header>\n\n <!-- ── Body ── -->\n <div class=\"b-calendar__body\">\n <!-- Month grid -->\n <table\n v-if=\"activeMode === 'month'\"\n ref=\"gridRef\"\n class=\"b-calendar__table\"\n role=\"grid\"\n :aria-label=\"`${ariaLabel} dates`\"\n >\n <thead>\n <tr role=\"row\">\n <th\n v-if=\"showWeek\"\n class=\"b-calendar__weekday b-calendar__weekday--week\"\n scope=\"col\"\n aria-label=\"Week\"\n >\n #\n </th>\n <th\n v-for=\"day in weekdayLabels\"\n :key=\"day\"\n class=\"b-calendar__weekday\"\n scope=\"col\"\n :aria-label=\"day\"\n >\n {{ day }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"(row, ri) in monthRows\" :key=\"ri\" role=\"row\">\n <td\n v-if=\"showWeek\"\n class=\"b-calendar__week-number\"\n role=\"rowheader\"\n >\n {{ getWeekNumber(row[0].date) }}\n </td>\n <td\n v-for=\"cell in row\"\n :key=\"formatISODate(cell.date)\"\n class=\"b-calendar__cell\"\n :class=\"{\n 'b-calendar__cell--outside': cell.outside,\n 'b-calendar__cell--today': isSameDay(cell.date, today),\n 'b-calendar__cell--selected': dateCellScope(cell).selected,\n 'b-calendar__cell--disabled': isDateDisabled(cell.date),\n }\"\n role=\"gridcell\"\n :aria-selected=\"dateCellScope(cell).selected || undefined\"\n :aria-disabled=\"isDateDisabled(cell.date) || undefined\"\n :aria-current=\"isSameDay(cell.date, today) ? 'date' : undefined\"\n :data-b-calendar-date=\"formatISODate(cell.date)\"\n :tabindex=\"isCellFocusable(cell) ? 0 : -1\"\n @click=\"!isDateDisabled(cell.date) && selectDate(cell.date)\"\n @keydown=\"onCellKeydown($event, cell)\"\n >\n <slot\n v-if=\"$slots.dateFullCell\"\n name=\"dateFullCell\"\n v-bind=\"dateCellScope(cell)\"\n />\n <div v-else class=\"b-calendar__date\">\n <div class=\"b-calendar__date-value\">{{ cell.date.getDate() }}</div>\n <div class=\"b-calendar__date-content\">\n <slot\n v-if=\"$slots.dateCell\"\n name=\"dateCell\"\n v-bind=\"dateCellScope(cell)\"\n />\n <template v-else-if=\"events && getEventsForDate(cell.date).length > 0\">\n <ul class=\"b-calendar__events\">\n <li\n v-for=\"(ev, idx) in getEventsForDate(cell.date).slice(0, maxEventsVisible)\"\n :key=\"idx\"\n class=\"b-calendar__event\"\n :class=\"`b-calendar__event--${ev.type ?? 'default'}`\"\n :title=\"ev.title\"\n >\n <span class=\"b-calendar__event-dot\" aria-hidden=\"true\" />\n <span class=\"b-calendar__event-title\">{{ ev.title }}</span>\n </li>\n </ul>\n <div\n v-if=\"getEventsForDate(cell.date).length > maxEventsVisible\"\n class=\"b-calendar__events-more\"\n >\n +{{ getEventsForDate(cell.date).length - maxEventsVisible }} more\n </div>\n </template>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n\n <!-- Year grid -->\n <table\n v-else\n class=\"b-calendar__table b-calendar__table--year\"\n role=\"grid\"\n :aria-label=\"`${ariaLabel} months`\"\n >\n <tbody>\n <tr v-for=\"rowIdx in 4\" :key=\"rowIdx\" role=\"row\">\n <td\n v-for=\"m in yearGrid.slice((rowIdx - 1) * 3, rowIdx * 3)\"\n :key=\"m.month\"\n class=\"b-calendar__cell b-calendar__cell--month\"\n :class=\"{\n 'b-calendar__cell--selected': monthCellScope(m.year, m.month).selected,\n 'b-calendar__cell--today': monthCellScope(m.year, m.month).today,\n 'b-calendar__cell--disabled': isMonthDisabled(m.year, m.month),\n }\"\n role=\"gridcell\"\n :aria-selected=\"monthCellScope(m.year, m.month).selected || undefined\"\n :aria-disabled=\"isMonthDisabled(m.year, m.month) || undefined\"\n :tabindex=\"\n monthCellScope(m.year, m.month).selected ||\n (!selectedDate && m.month === today.getMonth() && m.year === today.getFullYear())\n ? 0\n : -1\n \"\n @click=\"!isMonthDisabled(m.year, m.month) && selectMonth(m.year, m.month)\"\n @keydown.enter.prevent=\"selectMonth(m.year, m.month)\"\n @keydown.space.prevent=\"selectMonth(m.year, m.month)\"\n >\n <slot\n v-if=\"$slots.monthFullCell\"\n name=\"monthFullCell\"\n v-bind=\"monthCellScope(m.year, m.month)\"\n />\n <div v-else class=\"b-calendar__month\">\n <div class=\"b-calendar__month-value\">{{ monthLabelsShort[m.month] }}</div>\n <div class=\"b-calendar__month-content\">\n <slot name=\"monthCell\" v-bind=\"monthCellScope(m.year, m.month)\" />\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <!-- ── Live region for screen readers ── -->\n <div class=\"b-calendar__sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\n {{ activeMode === 'month' ? monthLabels[panelMonth] : '' }} {{ panelYear }}\n </div>\n\n <!-- ── Event details modal ── -->\n <BModal\n v-if=\"showEventDetails && events\"\n v-model=\"eventModalOpen\"\n class=\"b-calendar__modal\"\n >\n <slot\n v-if=\"$slots.eventDetails && modalDate\"\n name=\"eventDetails\"\n :date=\"modalDate\"\n :events=\"modalEvents\"\n :close=\"closeEventModal\"\n />\n <div v-else-if=\"modalDate\" class=\"b-calendar__modal-body\">\n <header class=\"b-calendar__modal-header\">\n <h3 class=\"b-calendar__modal-title\">{{ modalDateLabel }}</h3>\n <button\n type=\"button\"\n class=\"b-calendar__modal-close\"\n aria-label=\"Close\"\n @click=\"closeEventModal\"\n >\n ×\n </button>\n </header>\n <ul v-if=\"modalEvents.length > 0\" class=\"b-calendar__modal-events\">\n <li\n v-for=\"(ev, idx) in modalEvents\"\n :key=\"idx\"\n class=\"b-calendar__modal-event\"\n :class=\"`b-calendar__modal-event--${ev.type ?? 'default'}`\"\n >\n <span class=\"b-calendar__event-dot\" aria-hidden=\"true\" />\n <div class=\"b-calendar__modal-event-text\">\n <div class=\"b-calendar__modal-event-title\">{{ ev.title }}</div>\n <div\n v-if=\"ev.description\"\n class=\"b-calendar__modal-event-description\"\n >\n {{ ev.description }}\n </div>\n </div>\n </li>\n </ul>\n <p v-else class=\"b-calendar__modal-empty\">No events.</p>\n </div>\n </BModal>\n </section>\n</template>\n\n<style>\n/* ─────────────────────────────────────────────\n BCalendar - tokens scoped to .b-calendar\n ───────────────────────────────────────────── */\n.b-calendar {\n /* ── AntD-aligned tokens ── */\n --b-calendar-full-bg: oklch(100% 0 0);\n --b-calendar-full-panel-bg: oklch(100% 0 0);\n --b-calendar-item-active-bg: oklch(95% 0.04 250);\n --b-calendar-mini-content-height: 256px;\n --b-calendar-month-control-width: 70px;\n --b-calendar-year-control-width: 80px;\n\n /* ── Local extras ── */\n --b-calendar-text-color: oklch(20% 0.005 260 / 88%);\n --b-calendar-text-color-secondary: oklch(45% 0.005 260);\n --b-calendar-text-color-disabled: oklch(50% 0.005 260);\n --b-calendar-border-color: oklch(85% 0.005 260);\n --b-calendar-border-radius: 8px;\n --b-calendar-cell-radius: 4px;\n --b-calendar-primary-color: oklch(54.6% 0.245 262.881);\n --b-calendar-primary-color-text: oklch(100% 0 0);\n --b-calendar-cell-hover-bg: oklch(95% 0.005 260);\n --b-calendar-cell-disabled-bg: oklch(96% 0.002 260);\n --b-calendar-padding: 16px;\n --b-calendar-font-size: 14px;\n --b-calendar-motion-duration: 200ms;\n --b-calendar-focus-ring: 0 0 0 2px oklch(54.6% 0.245 262.881 / 35%);\n\n /* ── Event tokens (WCAG-friendly defaults) ── */\n --b-calendar-event-color-default: oklch(45% 0.005 260);\n --b-calendar-event-color-success: oklch(48% 0.16 145);\n --b-calendar-event-color-info: oklch(50% 0.18 250);\n --b-calendar-event-color-warning: oklch(58% 0.16 75);\n --b-calendar-event-color-error: oklch(48% 0.21 25);\n\n position: relative;\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-family:\n -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n font-size: var(--b-calendar-font-size);\n color: var(--b-calendar-text-color);\n background: var(--b-calendar-full-bg);\n border-radius: var(--b-calendar-border-radius);\n}\n\n.b-calendar--fullscreen {\n padding: var(--b-calendar-padding);\n}\n\n.b-calendar--mini {\n padding: 8px;\n border: 1px solid var(--b-calendar-border-color);\n}\n\n/* ── Header ── */\n.b-calendar__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 0 0 12px;\n flex-wrap: wrap;\n}\n\n.b-calendar__header-controls {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.b-calendar__select-wrapper {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.b-calendar__select-wrapper::after {\n content: '';\n position: absolute;\n right: 8px;\n top: 50%;\n width: 8px;\n height: 8px;\n border: solid var(--b-calendar-text-color-secondary);\n border-width: 0 1.5px 1.5px 0;\n transform: translateY(-75%) rotate(45deg);\n pointer-events: none;\n}\n\n.b-calendar__select {\n appearance: none;\n -webkit-appearance: none;\n height: 28px;\n padding: 0 24px 0 11px;\n border: 1px solid var(--b-calendar-border-color);\n border-radius: var(--b-calendar-cell-radius);\n background-color: var(--b-calendar-full-bg);\n color: inherit;\n font: inherit;\n cursor: pointer;\n transition:\n border-color var(--b-calendar-motion-duration),\n background-color var(--b-calendar-motion-duration);\n}\n\n.b-calendar__select--year {\n min-width: var(--b-calendar-year-control-width);\n}\n\n.b-calendar__select--month {\n min-width: var(--b-calendar-month-control-width);\n}\n\n.b-calendar__select:hover {\n border-color: var(--b-calendar-primary-color);\n}\n\n.b-calendar__select:focus-visible {\n outline: none;\n border-color: var(--b-calendar-primary-color);\n box-shadow: var(--b-calendar-focus-ring);\n}\n\n.b-calendar__mode-switch {\n display: inline-flex;\n gap: 4px;\n}\n\n.b-calendar__mode-option {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 28px;\n padding: 0 14px;\n border: 1px solid var(--b-calendar-border-color);\n border-radius: var(--b-calendar-cell-radius);\n background: transparent;\n cursor: pointer;\n transition:\n border-color var(--b-calendar-motion-duration),\n color var(--b-calendar-motion-duration);\n}\n\n.b-calendar__mode-option:hover {\n color: var(--b-calendar-primary-color);\n border-color: var(--b-calendar-primary-color);\n}\n\n.b-calendar__mode-option--active {\n border-color: var(--b-calendar-primary-color);\n color: var(--b-calendar-primary-color);\n}\n\n.b-calendar__mode-option:has(input:focus-visible) {\n box-shadow: var(--b-calendar-focus-ring);\n}\n\n.b-calendar__today-btn {\n height: 28px;\n padding: 0 12px;\n border: 1px solid var(--b-calendar-border-color);\n border-radius: var(--b-calendar-cell-radius);\n background: transparent;\n color: inherit;\n font: inherit;\n cursor: pointer;\n transition:\n background var(--b-calendar-motion-duration),\n color var(--b-calendar-motion-duration);\n}\n\n.b-calendar__today-btn:hover {\n color: var(--b-calendar-primary-color);\n border-color: var(--b-calendar-primary-color);\n}\n\n.b-calendar__today-btn:focus-visible {\n outline: none;\n border-color: var(--b-calendar-primary-color);\n box-shadow: var(--b-calendar-focus-ring);\n}\n\n/* ── Body / table ── */\n.b-calendar__body {\n background: var(--b-calendar-full-panel-bg);\n}\n\n.b-calendar--mini .b-calendar__body {\n min-height: var(--b-calendar-mini-content-height);\n}\n\n.b-calendar__table {\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n table-layout: fixed;\n}\n\n.b-calendar__weekday {\n padding: 8px 12px;\n font-size: 12px;\n font-weight: 500;\n color: var(--b-calendar-text-color-secondary);\n text-align: right;\n}\n\n.b-calendar--mini .b-calendar__weekday {\n text-align: center;\n padding: 8px 0;\n}\n\n.b-calendar__weekday--week {\n width: 32px;\n text-align: center;\n}\n\n.b-calendar__week-number {\n width: 32px;\n text-align: center;\n font-size: 12px;\n color: var(--b-calendar-text-color-disabled);\n vertical-align: top;\n padding-top: 8px;\n}\n\n.b-calendar__cell {\n padding: 0;\n vertical-align: top;\n cursor: pointer;\n}\n\n.b-calendar--mini .b-calendar__cell {\n text-align: center;\n padding: 0;\n}\n\n.b-calendar__cell:focus-visible {\n outline: none;\n}\n\n.b-calendar__cell:focus-visible .b-calendar__date,\n.b-calendar__cell:focus-visible .b-calendar__month {\n box-shadow: var(--b-calendar-focus-ring);\n border-radius: var(--b-calendar-cell-radius);\n}\n\n.b-calendar__cell--outside .b-calendar__date-value {\n color: var(--b-calendar-text-color-disabled);\n}\n\n.b-calendar__cell--today .b-calendar__date,\n.b-calendar__cell--today .b-calendar__month {\n border-top-color: var(--b-calendar-primary-color);\n}\n\n.b-calendar__cell--selected .b-calendar__date,\n.b-calendar__cell--selected .b-calendar__month {\n border-top-color: var(--b-calendar-primary-color);\n background: var(--b-calendar-item-active-bg);\n}\n\n.b-calendar__cell--selected .b-calendar__date-value,\n.b-calendar__cell--selected .b-calendar__month-value {\n color: var(--b-calendar-primary-color);\n font-weight: 600;\n}\n\n.b-calendar__cell--disabled {\n cursor: not-allowed;\n}\n\n.b-calendar__cell--disabled .b-calendar__date,\n.b-calendar__cell--disabled .b-calendar__month {\n background: var(--b-calendar-cell-disabled-bg);\n}\n\n.b-calendar__cell--disabled .b-calendar__date-value,\n.b-calendar__cell--disabled .b-calendar__month-value {\n color: var(--b-calendar-text-color-disabled);\n}\n\n.b-calendar__date {\n height: 116px;\n margin: 0 4px;\n padding: 4px 8px 0;\n display: flex;\n flex-direction: column;\n border-top: 2px solid var(--b-calendar-border-color);\n overflow: hidden;\n transition:\n border-color var(--b-calendar-motion-duration),\n background var(--b-calendar-motion-duration);\n}\n\n.b-calendar__cell:hover:not(.b-calendar__cell--disabled) .b-calendar__date,\n.b-calendar__cell:hover:not(.b-calendar__cell--disabled) .b-calendar__month {\n background: var(--b-calendar-cell-hover-bg);\n}\n\n.b-calendar--mini .b-calendar__date {\n min-height: 24px;\n height: auto;\n margin: 0;\n padding: 4px 0;\n border-top: none;\n align-items: center;\n overflow: visible;\n}\n\n.b-calendar__date-value {\n text-align: right;\n font-size: 14px;\n font-weight: 500;\n line-height: 1.5;\n margin-bottom: 2px;\n}\n\n.b-calendar--mini .b-calendar__date-value {\n text-align: center;\n}\n\n.b-calendar__date-content {\n flex: 1;\n font-size: 12px;\n color: var(--b-calendar-text-color-secondary);\n overflow: hidden;\n min-height: 0;\n}\n\n.b-calendar--mini .b-calendar__date-content {\n display: none;\n}\n\n/* ── Year (month-grid) view ── */\n.b-calendar__table--year .b-calendar__cell--month {\n padding: 0;\n text-align: left;\n}\n\n.b-calendar__month {\n min-height: 116px;\n margin: 0 4px;\n padding: 4px 8px 0;\n display: flex;\n flex-direction: column;\n border-top: 2px solid var(--b-calendar-border-color);\n transition:\n border-color var(--b-calendar-motion-duration),\n background var(--b-calendar-motion-duration);\n}\n\n.b-calendar--mini .b-calendar__month {\n min-height: 36px;\n margin: 0;\n padding: 8px 0;\n border-top: none;\n align-items: center;\n}\n\n.b-calendar__month-value {\n text-align: right;\n font-size: 14px;\n font-weight: 500;\n}\n\n.b-calendar--mini .b-calendar__month-value {\n text-align: center;\n}\n\n.b-calendar__month-content {\n flex: 1;\n font-size: 12px;\n color: var(--b-calendar-text-color-secondary);\n}\n\n.b-calendar--mini .b-calendar__month-content {\n display: none;\n}\n\n/* ── Visually hidden helper ── */\n.b-calendar__sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* ── Events inside day cells ── */\n.b-calendar__events {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.b-calendar__event {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 1px 4px;\n font-size: 12px;\n line-height: 1.4;\n border-radius: 3px;\n color: var(--b-calendar-text-color);\n background: oklch(95% 0.005 260);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.b-calendar__event-dot {\n flex: 0 0 auto;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--b-event-color, var(--b-calendar-event-color-default));\n}\n\n.b-calendar__event--default {\n --b-event-color: var(--b-calendar-event-color-default);\n}\n\n.b-calendar__event--success {\n --b-event-color: var(--b-calendar-event-color-success);\n}\n\n.b-calendar__event--info {\n --b-event-color: var(--b-calendar-event-color-info);\n}\n\n.b-calendar__event--warning {\n --b-event-color: var(--b-calendar-event-color-warning);\n}\n\n.b-calendar__event--error {\n --b-event-color: var(--b-calendar-event-color-error);\n}\n\n.b-calendar__event-title {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.b-calendar__events-more {\n margin-top: 2px;\n padding: 0 4px;\n font-size: 12px;\n font-weight: 500;\n color: var(--b-calendar-text-color-secondary);\n}\n\n/* ── Event details modal ── */\n.b-calendar__modal-body {\n min-width: 320px;\n max-width: 480px;\n color: var(--b-calendar-text-color);\n}\n\n.b-calendar__modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.b-calendar__modal-title {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n}\n\n.b-calendar__modal-close {\n width: 28px;\n height: 28px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n border-radius: var(--b-calendar-cell-radius);\n font-size: 20px;\n line-height: 1;\n cursor: pointer;\n color: inherit;\n transition: background var(--b-calendar-motion-duration);\n}\n\n.b-calendar__modal-close:hover {\n background: var(--b-calendar-cell-hover-bg);\n}\n\n.b-calendar__modal-close:focus-visible {\n outline: none;\n box-shadow: var(--b-calendar-focus-ring);\n}\n\n.b-calendar__modal-events {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.b-calendar__modal-event {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n padding: 8px 10px;\n border-radius: var(--b-calendar-cell-radius);\n background: oklch(97% 0.003 260);\n}\n\n.b-calendar__modal-event--default {\n --b-event-color: var(--b-calendar-event-color-default);\n}\n\n.b-calendar__modal-event--success {\n --b-event-color: var(--b-calendar-event-color-success);\n}\n\n.b-calendar__modal-event--info {\n --b-event-color: var(--b-calendar-event-color-info);\n}\n\n.b-calendar__modal-event--warning {\n --b-event-color: var(--b-calendar-event-color-warning);\n}\n\n.b-calendar__modal-event--error {\n --b-event-color: var(--b-calendar-event-color-error);\n}\n\n.b-calendar__modal-event .b-calendar__event-dot {\n width: 10px;\n height: 10px;\n margin-top: 6px;\n}\n\n.b-calendar__modal-event-text {\n flex: 1;\n min-width: 0;\n}\n\n.b-calendar__modal-event-title {\n font-weight: 600;\n color: var(--b-event-color, inherit);\n}\n\n.b-calendar__modal-event-description {\n margin-top: 2px;\n color: var(--b-calendar-text-color-secondary);\n font-size: 13px;\n line-height: 1.5;\n}\n\n.b-calendar__modal-empty {\n margin: 0;\n color: var(--b-calendar-text-color-secondary);\n}\n\n/* ── Dark mode ── */\n[data-prefers-color='dark'] .b-calendar {\n --b-calendar-full-bg: oklch(20% 0.005 260);\n --b-calendar-full-panel-bg: oklch(20% 0.005 260);\n --b-calendar-item-active-bg: oklch(35% 0.06 262);\n --b-calendar-text-color: oklch(95% 0 0 / 88%);\n --b-calendar-text-color-secondary: oklch(95% 0 0 / 65%);\n --b-calendar-text-color-disabled: oklch(95% 0 0 / 50%);\n --b-calendar-border-color: oklch(35% 0.005 260);\n --b-calendar-cell-hover-bg: oklch(28% 0.005 260);\n --b-calendar-cell-disabled-bg: oklch(24% 0.005 260);\n --b-calendar-primary-color: oklch(58% 0.22 262);\n --b-calendar-event-color-default: oklch(75% 0.005 260);\n --b-calendar-event-color-success: oklch(72% 0.18 145);\n --b-calendar-event-color-info: oklch(72% 0.18 250);\n --b-calendar-event-color-warning: oklch(80% 0.16 75);\n --b-calendar-event-color-error: oklch(70% 0.21 25);\n}\n\n[data-prefers-color='dark'] .b-calendar__event {\n background: oklch(28% 0.005 260);\n}\n\n[data-prefers-color='dark'] .b-calendar__modal-event {\n background: oklch(25% 0.005 260);\n}\n\n@media (prefers-color-scheme: dark) {\n [data-prefers-color='system'] .b-calendar {\n --b-calendar-full-bg: oklch(20% 0.005 260);\n --b-calendar-full-panel-bg: oklch(20% 0.005 260);\n --b-calendar-item-active-bg: oklch(35% 0.06 262);\n --b-calendar-text-color: oklch(95% 0 0 / 88%);\n --b-calendar-text-color-secondary: oklch(95% 0 0 / 45%);\n --b-calendar-text-color-disabled: oklch(95% 0 0 / 25%);\n --b-calendar-border-color: oklch(35% 0.005 260);\n --b-calendar-cell-hover-bg: oklch(28% 0.005 260);\n --b-calendar-cell-disabled-bg: oklch(24% 0.005 260);\n --b-calendar-primary-color: oklch(58% 0.22 262);\n }\n}\n\n/* ── Reduced motion ── */\n@media (prefers-reduced-motion: reduce) {\n .b-calendar,\n .b-calendar__select,\n .b-calendar__cell,\n .b-calendar__mode-option,\n .b-calendar__today-btn {\n transition: none !important;\n }\n}\n</style>\n"],"mappings":"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"}