@7pmlabs/design-system 2.0.8 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. package/README.md +4 -4
  2. package/dist/design-system.css +1 -1
  3. package/dist/design-system.js +65 -59
  4. package/dist/design-system100.js +1 -1
  5. package/dist/design-system100.js.map +1 -1
  6. package/dist/design-system101.js +87 -53
  7. package/dist/design-system101.js.map +1 -1
  8. package/dist/design-system103.js +5 -13
  9. package/dist/design-system103.js.map +1 -1
  10. package/dist/design-system104.js +53 -108
  11. package/dist/design-system104.js.map +1 -1
  12. package/dist/{design-system102.js → design-system105.js} +1 -1
  13. package/dist/{design-system102.js.map → design-system105.js.map} +1 -1
  14. package/dist/design-system106.js +13 -6
  15. package/dist/design-system106.js.map +1 -1
  16. package/dist/design-system107.js +93 -190
  17. package/dist/design-system107.js.map +1 -1
  18. package/dist/design-system109.js +2 -2
  19. package/dist/design-system109.js.map +1 -1
  20. package/dist/design-system110.js +183 -484
  21. package/dist/design-system110.js.map +1 -1
  22. package/dist/design-system112.js +5 -4
  23. package/dist/design-system112.js.map +1 -1
  24. package/dist/design-system113.js +507 -7
  25. package/dist/design-system113.js.map +1 -1
  26. package/dist/design-system115.js +8 -0
  27. package/dist/design-system115.js.map +1 -0
  28. package/dist/design-system116.js +7 -6
  29. package/dist/design-system116.js.map +1 -1
  30. package/dist/design-system117.js +154 -169
  31. package/dist/design-system117.js.map +1 -1
  32. package/dist/design-system119.js +2 -2
  33. package/dist/design-system119.js.map +1 -1
  34. package/dist/design-system120.js +210 -149
  35. package/dist/design-system120.js.map +1 -1
  36. package/dist/design-system122.js +5 -4
  37. package/dist/design-system122.js.map +1 -1
  38. package/dist/design-system123.js +160 -9
  39. package/dist/design-system123.js.map +1 -1
  40. package/dist/design-system125.js +8 -0
  41. package/dist/design-system125.js.map +1 -0
  42. package/dist/design-system126.js +176 -6
  43. package/dist/design-system126.js.map +1 -1
  44. package/dist/design-system128.js +8 -0
  45. package/dist/design-system128.js.map +1 -0
  46. package/dist/design-system129.js +213 -5
  47. package/dist/design-system129.js.map +1 -1
  48. package/dist/design-system131.js +5 -90
  49. package/dist/design-system131.js.map +1 -1
  50. package/dist/design-system132.js +166 -0
  51. package/dist/design-system132.js.map +1 -0
  52. package/dist/design-system134.js +5 -42
  53. package/dist/design-system134.js.map +1 -1
  54. package/dist/design-system135.js +12 -0
  55. package/dist/design-system135.js.map +1 -0
  56. package/dist/design-system136.js +274 -5
  57. package/dist/design-system136.js.map +1 -1
  58. package/dist/design-system138.js +9 -0
  59. package/dist/{design-system124.js.map → design-system138.js.map} +1 -1
  60. package/dist/design-system139.js +16 -5
  61. package/dist/design-system139.js.map +1 -1
  62. package/dist/design-system141.js +8 -0
  63. package/dist/{design-system127.js.map → design-system141.js.map} +1 -1
  64. package/dist/design-system142.js +12 -5
  65. package/dist/design-system142.js.map +1 -1
  66. package/dist/design-system143.js +78 -83
  67. package/dist/design-system143.js.map +1 -1
  68. package/dist/design-system145.js +1 -1
  69. package/dist/design-system145.js.map +1 -1
  70. package/dist/design-system146.js +42 -9
  71. package/dist/design-system146.js.map +1 -1
  72. package/dist/design-system148.js +3 -2
  73. package/dist/design-system148.js.map +1 -1
  74. package/dist/design-system149.js +230 -18
  75. package/dist/design-system149.js.map +1 -1
  76. package/dist/design-system151.js +5 -158
  77. package/dist/design-system151.js.map +1 -1
  78. package/dist/{design-system140.js → design-system152.js} +6 -6
  79. package/dist/{design-system140.js.map → design-system152.js.map} +1 -1
  80. package/dist/design-system154.js +5 -307
  81. package/dist/design-system154.js.map +1 -1
  82. package/dist/design-system155.js +98 -0
  83. package/dist/design-system155.js.map +1 -0
  84. package/dist/design-system157.js +5 -240
  85. package/dist/design-system157.js.map +1 -1
  86. package/dist/design-system158.js +12 -0
  87. package/dist/design-system158.js.map +1 -0
  88. package/dist/design-system159.js +37 -5
  89. package/dist/design-system159.js.map +1 -1
  90. package/dist/design-system160.js +4 -189
  91. package/dist/design-system160.js.map +1 -1
  92. package/dist/design-system161.js +24 -0
  93. package/dist/{design-system150.js.map → design-system161.js.map} +1 -1
  94. package/dist/design-system162.js +2 -3
  95. package/dist/design-system162.js.map +1 -1
  96. package/dist/design-system163.js +158 -3
  97. package/dist/design-system163.js.map +1 -1
  98. package/dist/{design-system153.js → design-system165.js} +2 -2
  99. package/dist/{design-system153.js.map → design-system165.js.map} +1 -1
  100. package/dist/design-system166.js +307 -6
  101. package/dist/design-system166.js.map +1 -1
  102. package/dist/{design-system156.js → design-system168.js} +2 -2
  103. package/dist/{design-system156.js.map → design-system168.js.map} +1 -1
  104. package/dist/design-system169.js +167 -6
  105. package/dist/design-system169.js.map +1 -1
  106. package/dist/design-system171.js +8 -0
  107. package/dist/design-system171.js.map +1 -0
  108. package/dist/design-system172.js +240 -6
  109. package/dist/design-system172.js.map +1 -1
  110. package/dist/design-system174.js +8 -0
  111. package/dist/design-system174.js.map +1 -0
  112. package/dist/design-system175.js +189 -6
  113. package/dist/design-system175.js.map +1 -1
  114. package/dist/design-system177.js +8 -0
  115. package/dist/design-system177.js.map +1 -0
  116. package/dist/design-system178.js +3 -5
  117. package/dist/design-system178.js.map +1 -1
  118. package/dist/design-system179.js +58 -11
  119. package/dist/design-system179.js.map +1 -1
  120. package/dist/design-system181.js +9 -0
  121. package/dist/design-system181.js.map +1 -0
  122. package/dist/design-system182.js +56 -6
  123. package/dist/design-system182.js.map +1 -1
  124. package/dist/design-system184.js +9 -0
  125. package/dist/{design-system167.js.map → design-system184.js.map} +1 -1
  126. package/dist/design-system185.js +69 -5
  127. package/dist/design-system185.js.map +1 -1
  128. package/dist/design-system187.js +9 -0
  129. package/dist/{design-system170.js.map → design-system187.js.map} +1 -1
  130. package/dist/design-system188.js +182 -5
  131. package/dist/design-system188.js.map +1 -1
  132. package/dist/design-system190.js +9 -0
  133. package/dist/design-system190.js.map +1 -0
  134. package/dist/design-system191.js +115 -5
  135. package/dist/design-system191.js.map +1 -1
  136. package/dist/design-system193.js +8 -0
  137. package/dist/{design-system176.js.map → design-system193.js.map} +1 -1
  138. package/dist/design-system194.js +11 -5
  139. package/dist/design-system194.js.map +1 -1
  140. package/dist/design-system195.js +453 -24
  141. package/dist/design-system195.js.map +1 -1
  142. package/dist/design-system197.js +5 -4
  143. package/dist/design-system197.js.map +1 -1
  144. package/dist/design-system198.js +20 -16
  145. package/dist/design-system198.js.map +1 -1
  146. package/dist/design-system200.js +1 -1
  147. package/dist/design-system200.js.map +1 -1
  148. package/dist/design-system201.js +70 -314
  149. package/dist/design-system201.js.map +1 -1
  150. package/dist/design-system203.js +1 -1
  151. package/dist/design-system203.js.map +1 -1
  152. package/dist/design-system204.js +24 -89
  153. package/dist/design-system204.js.map +1 -1
  154. package/dist/design-system206.js +1 -1
  155. package/dist/design-system206.js.map +1 -1
  156. package/dist/design-system207.js +26 -17
  157. package/dist/design-system207.js.map +1 -1
  158. package/dist/design-system209.js +5 -3
  159. package/dist/design-system209.js.map +1 -1
  160. package/dist/design-system210.js +22 -408
  161. package/dist/design-system210.js.map +1 -1
  162. package/dist/design-system212.js +1 -1
  163. package/dist/design-system212.js.map +1 -1
  164. package/dist/design-system213.js +24 -52
  165. package/dist/design-system213.js.map +1 -1
  166. package/dist/design-system215.js +1 -1
  167. package/dist/design-system215.js.map +1 -1
  168. package/dist/design-system216.js +329 -85
  169. package/dist/design-system216.js.map +1 -1
  170. package/dist/design-system218.js +5 -108
  171. package/dist/design-system218.js.map +1 -1
  172. package/dist/design-system219.js +103 -0
  173. package/dist/design-system219.js.map +1 -0
  174. package/dist/design-system221.js +5 -106
  175. package/dist/design-system221.js.map +1 -1
  176. package/dist/design-system222.js +22 -0
  177. package/dist/{design-system208.js.map → design-system222.js.map} +1 -1
  178. package/dist/design-system223.js +4 -6
  179. package/dist/design-system223.js.map +1 -1
  180. package/dist/design-system224.js +3 -737
  181. package/dist/design-system224.js.map +1 -1
  182. package/dist/design-system225.js +422 -0
  183. package/dist/design-system225.js.map +1 -0
  184. package/dist/design-system227.js +5 -11
  185. package/dist/design-system227.js.map +1 -1
  186. package/dist/design-system228.js +51 -517
  187. package/dist/design-system228.js.map +1 -1
  188. package/dist/design-system230.js +1 -1
  189. package/dist/design-system230.js.map +1 -1
  190. package/dist/design-system231.js +88 -3
  191. package/dist/design-system231.js.map +1 -1
  192. package/dist/design-system232.js +4 -46
  193. package/dist/design-system232.js.map +1 -1
  194. package/dist/design-system233.js +108 -4
  195. package/dist/design-system233.js.map +1 -1
  196. package/dist/{design-system220.js → design-system235.js} +2 -2
  197. package/dist/{design-system220.js.map → design-system235.js.map} +1 -1
  198. package/dist/design-system236.js +106 -5
  199. package/dist/design-system236.js.map +1 -1
  200. package/dist/design-system238.js +9 -0
  201. package/dist/design-system238.js.map +1 -0
  202. package/dist/design-system239.js +737 -5
  203. package/dist/design-system239.js.map +1 -1
  204. package/dist/{design-system226.js → design-system241.js} +2 -2
  205. package/dist/{design-system226.js.map → design-system241.js.map} +1 -1
  206. package/dist/design-system242.js +3 -5
  207. package/dist/design-system242.js.map +1 -1
  208. package/dist/design-system243.js +42 -50
  209. package/dist/design-system243.js.map +1 -1
  210. package/dist/design-system244.js +1 -1
  211. package/dist/design-system244.js.map +1 -1
  212. package/dist/design-system245.js +254 -141
  213. package/dist/design-system245.js.map +1 -1
  214. package/dist/design-system247.js +1 -1
  215. package/dist/design-system247.js.map +1 -1
  216. package/dist/design-system248.js +119 -7
  217. package/dist/design-system248.js.map +1 -1
  218. package/dist/design-system250.js +8 -0
  219. package/dist/design-system250.js.map +1 -0
  220. package/dist/design-system251.js +172 -5
  221. package/dist/design-system251.js.map +1 -1
  222. package/dist/design-system253.js +8 -0
  223. package/dist/design-system253.js.map +1 -0
  224. package/dist/design-system254.js +11 -6
  225. package/dist/design-system254.js.map +1 -1
  226. package/dist/design-system255.js +525 -9
  227. package/dist/design-system255.js.map +1 -1
  228. package/dist/design-system257.js +8 -0
  229. package/dist/design-system257.js.map +1 -0
  230. package/dist/design-system258.js +112 -6
  231. package/dist/design-system258.js.map +1 -1
  232. package/dist/design-system260.js +5 -374
  233. package/dist/design-system260.js.map +1 -1
  234. package/dist/design-system261.js +57 -0
  235. package/dist/design-system261.js.map +1 -0
  236. package/dist/design-system262.js +4 -6
  237. package/dist/design-system262.js.map +1 -1
  238. package/dist/design-system263.js +173 -0
  239. package/dist/design-system263.js.map +1 -0
  240. package/dist/design-system265.js +8 -0
  241. package/dist/design-system265.js.map +1 -0
  242. package/dist/design-system266.js +10 -0
  243. package/dist/design-system266.js.map +1 -0
  244. package/dist/{design-system249.js → design-system267.js} +2 -2
  245. package/dist/{design-system249.js.map → design-system267.js.map} +1 -1
  246. package/dist/design-system269.js +8 -0
  247. package/dist/design-system269.js.map +1 -0
  248. package/dist/{design-system252.js → design-system270.js} +1 -1
  249. package/dist/{design-system252.js.map → design-system270.js.map} +1 -1
  250. package/dist/design-system272.js +9 -0
  251. package/dist/design-system272.js.map +1 -0
  252. package/dist/design-system273.js +12 -0
  253. package/dist/design-system273.js.map +1 -0
  254. package/dist/{design-system256.js → design-system274.js} +2 -2
  255. package/dist/{design-system256.js.map → design-system274.js.map} +1 -1
  256. package/dist/design-system276.js +9 -0
  257. package/dist/design-system276.js.map +1 -0
  258. package/dist/{design-system259.js → design-system277.js} +1 -1
  259. package/dist/{design-system259.js.map → design-system277.js.map} +1 -1
  260. package/dist/design-system278.js +377 -0
  261. package/dist/design-system278.js.map +1 -0
  262. package/dist/design-system280.js +9 -0
  263. package/dist/design-system280.js.map +1 -0
  264. package/dist/design-system69.js +182 -13
  265. package/dist/design-system69.js.map +1 -1
  266. package/dist/design-system71.js +8 -0
  267. package/dist/design-system71.js.map +1 -0
  268. package/dist/design-system72.js +13 -5
  269. package/dist/design-system72.js.map +1 -1
  270. package/dist/design-system73.js +677 -139
  271. package/dist/design-system73.js.map +1 -1
  272. package/dist/design-system75.js +1 -1
  273. package/dist/design-system75.js.map +1 -1
  274. package/dist/design-system76.js +152 -23
  275. package/dist/design-system76.js.map +1 -1
  276. package/dist/design-system78.js +5 -49
  277. package/dist/design-system78.js.map +1 -1
  278. package/dist/design-system79.js +32 -0
  279. package/dist/design-system79.js.map +1 -0
  280. package/dist/design-system80.js +2 -3
  281. package/dist/design-system80.js.map +1 -1
  282. package/dist/design-system81.js +38 -188
  283. package/dist/design-system81.js.map +1 -1
  284. package/dist/design-system83.js +1 -1
  285. package/dist/design-system83.js.map +1 -1
  286. package/dist/design-system84.js +199 -7
  287. package/dist/design-system84.js.map +1 -1
  288. package/dist/design-system86.js +8 -0
  289. package/dist/design-system86.js.map +1 -0
  290. package/dist/design-system87.js +7 -5
  291. package/dist/design-system87.js.map +1 -1
  292. package/dist/design-system88.js +264 -48
  293. package/dist/design-system88.js.map +1 -1
  294. package/dist/design-system90.js +1 -1
  295. package/dist/design-system90.js.map +1 -1
  296. package/dist/design-system91.js +57 -11
  297. package/dist/design-system91.js.map +1 -1
  298. package/dist/design-system93.js +8 -0
  299. package/dist/design-system93.js.map +1 -0
  300. package/dist/design-system94.js +11 -5
  301. package/dist/design-system94.js.map +1 -1
  302. package/dist/design-system95.js +92 -59
  303. package/dist/design-system95.js.map +1 -1
  304. package/dist/design-system97.js +1 -1
  305. package/dist/design-system97.js.map +1 -1
  306. package/dist/design-system98.js +56 -78
  307. package/dist/design-system98.js.map +1 -1
  308. package/dist/types/components/BContextMenu/BContextMenu.spec.d.ts +1 -0
  309. package/dist/types/components/BContextMenu/BContextMenu.vue.d.ts +42 -0
  310. package/dist/types/components/BContextMenu/index.d.ts +2 -0
  311. package/dist/types/components/BContextMenu/types.d.ts +23 -0
  312. package/dist/types/components/BInputTags/BInputTags.spec.d.ts +1 -0
  313. package/dist/types/components/BInputTags/BInputTags.vue.d.ts +54 -0
  314. package/dist/types/components/BInputTags/index.d.ts +1 -0
  315. package/dist/types/components/BLink/BLink.spec.d.ts +1 -0
  316. package/dist/types/components/BLink/BLink.vue.d.ts +100 -0
  317. package/dist/types/components/BLink/index.d.ts +1 -0
  318. package/dist/types/components/BListbox/BListbox.spec.d.ts +1 -0
  319. package/dist/types/components/BListbox/BListbox.vue.d.ts +52 -0
  320. package/dist/types/components/BListbox/index.d.ts +1 -0
  321. package/dist/types/components/BModal/BModal.spec.d.ts +1 -0
  322. package/dist/types/components/BPinInput/BPinInput.spec.d.ts +1 -0
  323. package/dist/types/components/BPinInput/BPinInput.vue.d.ts +43 -0
  324. package/dist/types/components/BPinInput/index.d.ts +1 -0
  325. package/dist/types/components/BProgress/BProgress.vue.d.ts +47 -2
  326. package/dist/types/components/BTextarea/BTextarea.spec.d.ts +1 -0
  327. package/dist/types/components/BTextarea/BTextarea.vue.d.ts +77 -0
  328. package/dist/types/components/BTextarea/index.d.ts +1 -0
  329. package/dist/types/components/index.d.ts +7 -1
  330. package/package.json +1 -1
  331. package/dist/design-system114.js +0 -212
  332. package/dist/design-system114.js.map +0 -1
  333. package/dist/design-system124.js +0 -277
  334. package/dist/design-system127.js +0 -19
  335. package/dist/design-system130.js +0 -15
  336. package/dist/design-system130.js.map +0 -1
  337. package/dist/design-system133.js +0 -8
  338. package/dist/design-system133.js.map +0 -1
  339. package/dist/design-system137.js +0 -236
  340. package/dist/design-system137.js.map +0 -1
  341. package/dist/design-system147.js +0 -40
  342. package/dist/design-system147.js.map +0 -1
  343. package/dist/design-system150.js +0 -7
  344. package/dist/design-system164.js +0 -61
  345. package/dist/design-system164.js.map +0 -1
  346. package/dist/design-system167.js +0 -59
  347. package/dist/design-system170.js +0 -72
  348. package/dist/design-system173.js +0 -185
  349. package/dist/design-system173.js.map +0 -1
  350. package/dist/design-system176.js +0 -118
  351. package/dist/design-system180.js +0 -465
  352. package/dist/design-system180.js.map +0 -1
  353. package/dist/design-system183.js +0 -38
  354. package/dist/design-system183.js.map +0 -1
  355. package/dist/design-system186.js +0 -91
  356. package/dist/design-system186.js.map +0 -1
  357. package/dist/design-system189.js +0 -38
  358. package/dist/design-system189.js.map +0 -1
  359. package/dist/design-system192.js +0 -31
  360. package/dist/design-system192.js.map +0 -1
  361. package/dist/design-system208.js +0 -7
  362. package/dist/design-system217.js +0 -7
  363. package/dist/design-system217.js.map +0 -1
  364. package/dist/design-system234.js +0 -286
  365. package/dist/design-system234.js.map +0 -1
  366. package/dist/design-system237.js +0 -122
  367. package/dist/design-system237.js.map +0 -1
  368. package/dist/design-system240.js +0 -115
  369. package/dist/design-system240.js.map +0 -1
  370. package/dist/design-system70.js +0 -699
  371. package/dist/design-system70.js.map +0 -1
  372. package/dist/design-system77.js +0 -7
  373. package/dist/design-system77.js.map +0 -1
  374. package/dist/design-system85.js +0 -276
  375. package/dist/design-system85.js.map +0 -1
  376. package/dist/design-system92.js +0 -102
  377. package/dist/design-system92.js.map +0 -1
@@ -1,212 +0,0 @@
1
- import { BCommonSize as e } from "./design-system3.js";
2
- import { useComponentId as t } from "./design-system10.js";
3
- import { BInputStatus as n, BInputVariant as r } from "./design-system113.js";
4
- import { computed as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, defineComponent as c, mergeModels as l, normalizeClass as u, openBlock as d, ref as f, renderSlot as p, toDisplayString as m, unref as h, useModel as g, useSlots as _, watch as v, withModifiers as y } from "vue";
5
- //#region src/components/BInput/BInput.vue?vue&type=script&setup=true&lang.ts
6
- var b = {
7
- key: 0,
8
- class: "b-input__addon b-input__addon--before"
9
- }, x = { class: "b-input__wrapper" }, S = {
10
- key: 0,
11
- class: "b-input__prefix",
12
- "aria-hidden": "true"
13
- }, C = [
14
- "id",
15
- "value",
16
- "type",
17
- "placeholder",
18
- "disabled",
19
- "readonly",
20
- "maxlength",
21
- "aria-invalid",
22
- "aria-describedby"
23
- ], w = {
24
- key: 1,
25
- class: "b-input__clear-wrapper"
26
- }, T = {
27
- key: 2,
28
- class: "b-input__password-toggle-wrapper"
29
- }, E = ["aria-label", "aria-pressed"], D = {
30
- key: 0,
31
- viewBox: "64 64 896 896",
32
- width: "1em",
33
- height: "1em",
34
- fill: "currentColor",
35
- "aria-hidden": "true"
36
- }, O = {
37
- key: 1,
38
- viewBox: "64 64 896 896",
39
- width: "1em",
40
- height: "1em",
41
- fill: "currentColor",
42
- "aria-hidden": "true"
43
- }, k = {
44
- key: 3,
45
- class: "b-input__suffix",
46
- "aria-hidden": "true"
47
- }, A = ["id"], j = {
48
- key: 1,
49
- class: "b-input__addon b-input__addon--after"
50
- }, M = /* @__PURE__ */ c({
51
- inheritAttrs: !1,
52
- __name: "BInput",
53
- props: /* @__PURE__ */ l({
54
- size: { default: () => e.Medium },
55
- variant: { default: () => r.Outlined },
56
- disabled: {
57
- type: Boolean,
58
- default: !1
59
- },
60
- readOnly: {
61
- type: Boolean,
62
- default: !1
63
- },
64
- status: {},
65
- type: { default: "text" },
66
- maxLength: {},
67
- placeholder: {},
68
- id: {},
69
- allowClear: {
70
- type: Boolean,
71
- default: !1
72
- },
73
- showCount: {
74
- type: [Boolean, Function],
75
- default: !1
76
- },
77
- count: {}
78
- }, {
79
- modelValue: { default: "" },
80
- modelModifiers: {}
81
- }),
82
- emits: /* @__PURE__ */ l([
83
- "change",
84
- "pressEnter",
85
- "clear",
86
- "focus",
87
- "blur"
88
- ], ["update:modelValue"]),
89
- setup(e, { expose: r, emit: c }) {
90
- let l = _(), M = c, N = g(e, "modelValue"), { componentUID: P } = t(), F = i(() => e.id ?? `b-input-${P.value}`), I = f(null), L = f(!1), R = f(!1), z = i(() => !!l.addonBefore), B = i(() => !!l.addonAfter), V = i(() => !!l.prefix), H = i(() => !!l.suffix), U = i(() => e.type === "password"), W = i(() => U.value), G = i(() => U.value ? R.value ? "text" : "password" : e.type), K = i(() => {
91
- let t = N.value ?? "";
92
- return e.count?.strategy ? e.count.strategy(t) : t.length;
93
- }), q = i(() => e.count?.max ?? e.maxLength), J = i(() => e.count?.show === !1 ? !1 : e.count?.show === void 0 ? !!e.showCount : !0), Y = i(() => {
94
- let t = N.value ?? "", n = K.value;
95
- return typeof e.count?.show == "function" ? e.count.show({
96
- value: t,
97
- count: n,
98
- maxLength: q.value
99
- }) : typeof e.showCount == "function" ? e.showCount({
100
- value: t,
101
- count: n,
102
- maxLength: q.value
103
- }) : q.value === void 0 ? `${n}` : `${n} / ${q.value}`;
104
- }), X = i(() => q.value === void 0 ? !1 : K.value > q.value), Z = i(() => e.allowClear && !!N.value && !e.disabled && !e.readOnly), Q = (t) => {
105
- let n = t.target, r = n.value;
106
- e.count?.exceedFormatter && q.value !== void 0 && (e.count.strategy ?? ((e) => e.length))(r) > q.value && (r = e.count.exceedFormatter(r, { max: q.value }), n.value = r), N.value = r, M("change", r, t);
107
- }, $ = (e) => {
108
- e.key === "Enter" && M("pressEnter", e);
109
- }, ee = (e) => {
110
- L.value = !0, M("focus", e);
111
- }, te = (e) => {
112
- L.value = !1, M("blur", e);
113
- }, ne = () => {
114
- N.value = "", M("clear"), M("change", "", new Event("change")), I.value?.focus();
115
- }, re = () => {
116
- R.value = !R.value, I.value?.focus();
117
- };
118
- return v(N, (t) => {
119
- e.count?.exceedFormatter && q.value !== void 0 && (e.count.strategy ?? ((e) => e.length))(t) > q.value && (N.value = e.count.exceedFormatter(t, { max: q.value }));
120
- }), r({
121
- focus: (e) => {
122
- if (I.value?.focus({ preventScroll: e?.preventScroll }), e?.cursor && I.value) {
123
- let t = I.value.value.length;
124
- switch (e.cursor) {
125
- case "start":
126
- I.value.setSelectionRange(0, 0);
127
- break;
128
- case "end":
129
- I.value.setSelectionRange(t, t);
130
- break;
131
- case "all":
132
- I.value.setSelectionRange(0, t);
133
- break;
134
- }
135
- }
136
- },
137
- blur: () => {
138
- I.value?.blur();
139
- }
140
- }), (t, r) => (d(), o("span", { class: u(["b-input", [
141
- `b-input--${e.size}`,
142
- `b-input--${e.variant}`,
143
- {
144
- "b-input--focused": L.value,
145
- "b-input--disabled": e.disabled,
146
- "b-input--readonly": e.readOnly,
147
- "b-input--error": e.status === h(n).Error,
148
- "b-input--warning": e.status === h(n).Warning,
149
- "b-input--has-addon-before": z.value,
150
- "b-input--has-addon-after": B.value,
151
- "b-input--over-count": X.value
152
- }
153
- ]]) }, [
154
- z.value ? (d(), o("span", b, [p(t.$slots, "addonBefore", {}, void 0, !0)])) : a("", !0),
155
- s("span", x, [
156
- V.value ? (d(), o("span", S, [p(t.$slots, "prefix", {}, void 0, !0)])) : a("", !0),
157
- s("input", {
158
- id: F.value,
159
- ref_key: "inputRef",
160
- ref: I,
161
- value: N.value,
162
- type: G.value,
163
- placeholder: e.placeholder,
164
- disabled: e.disabled,
165
- readonly: e.readOnly,
166
- maxlength: e.maxLength && !e.count?.exceedFormatter ? e.maxLength : void 0,
167
- "aria-invalid": e.status === h(n).Error ? !0 : void 0,
168
- "aria-describedby": J.value ? `${F.value}-count` : void 0,
169
- class: "b-input__input",
170
- onInput: Q,
171
- onKeydown: $,
172
- onFocus: ee,
173
- onBlur: te
174
- }, null, 40, C),
175
- Z.value ? (d(), o("span", w, [s("button", {
176
- type: "button",
177
- class: "b-input__clear",
178
- "aria-label": "Clear input",
179
- tabindex: "-1",
180
- onMousedown: y(ne, ["prevent"])
181
- }, [...r[0] ||= [s("svg", {
182
- viewBox: "64 64 896 896",
183
- width: "1em",
184
- height: "1em",
185
- fill: "currentColor",
186
- "aria-hidden": "true"
187
- }, [s("path", { d: "M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z" })], -1)]], 32)])) : a("", !0),
188
- W.value ? (d(), o("span", T, [s("button", {
189
- type: "button",
190
- class: "b-input__password-toggle",
191
- "aria-label": R.value ? "Hide password" : "Show password",
192
- "aria-pressed": R.value,
193
- tabindex: "-1",
194
- onMousedown: y(re, ["prevent"])
195
- }, [R.value ? (d(), o("svg", O, [...r[2] ||= [s("path", { d: "M942.2 486.2C847.4 286.5 704.1 186 512 186c-53.8 0-104.5 9.6-151.7 28.4L212.7 67.2a8.03 8.03 0 00-11.3 0L160 108.5a8.03 8.03 0 000 11.3l740.3 740.3a8.03 8.03 0 0011.3 0l41.3-41.3a8.03 8.03 0 000-11.3l-106.8-106.8c53.1-57.6 94.3-127.4 106.2-153a60.3 60.3 0 000-51.5zM512 730c-114.9 0-208-93.1-208-208 0-40.1 11.4-77.6 31-109.4L297 374.6C270.6 414.1 256 466 256 522c0 141.4 114.6 256 256 256 56 0 107.9-18 150.2-48.5l-38-38C597.6 714.6 556.1 730 512 730zm0-520c114.9 0 208 93.1 208 208 0 40.1-11.4 77.6-31 109.4L727 565.4C753.4 525.9 768 474 768 418c0-141.4-114.6-256-256-256-56 0-107.9 18-150.2 48.5l38 38C426.4 225.4 467.9 210 512 210z" }, null, -1)]])) : (d(), o("svg", D, [...r[1] ||= [s("path", { d: "M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 730c-114.9 0-208-93.1-208-208s93.1-208 208-208 208 93.1 208 208-93.1 208-208 208zm0-319.8c-61.7 0-111.8 50.1-111.8 111.8S450.3 633.8 512 633.8 623.8 583.7 623.8 522 573.7 410.2 512 410.2z" }, null, -1)]]))], 40, E)])) : a("", !0),
196
- H.value ? (d(), o("span", k, [p(t.$slots, "suffix", {}, void 0, !0)])) : a("", !0),
197
- J.value ? (d(), o("span", {
198
- key: 4,
199
- id: `${F.value}-count`,
200
- class: u(["b-input__count", { "b-input__count--over": X.value }]),
201
- "aria-live": "polite",
202
- "aria-atomic": "true"
203
- }, m(Y.value), 11, A)) : a("", !0)
204
- ]),
205
- B.value ? (d(), o("span", j, [p(t.$slots, "addonAfter", {}, void 0, !0)])) : a("", !0)
206
- ], 2));
207
- }
208
- });
209
- //#endregion
210
- export { M as default };
211
-
212
- //# sourceMappingURL=design-system114.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"design-system114.js","names":[],"sources":["../src/components/BInput/BInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useComponentId } from '@/composables/useComponentId.ts';\nimport { BCommonSize } from '@/types.ts';\nimport { computed, ref, useSlots, watch } from 'vue';\nimport {\n BInputStatus,\n BInputVariant,\n type BInputCountConfig,\n type BInputFocusOptions,\n} from './types.ts';\n\ndefineOptions({ inheritAttrs: false });\n\nconst slots = useSlots();\n\nconst {\n size = BCommonSize.Medium,\n variant = BInputVariant.Outlined,\n type = 'text',\n allowClear = false,\n showCount = false,\n disabled = false,\n readOnly = false,\n placeholder,\n maxLength,\n id,\n count,\n status,\n} = defineProps<{\n /** The size of the input. */\n size?: `${BCommonSize}`;\n /** Visual variant of the input. */\n variant?: `${BInputVariant}`;\n /** Whether the input is disabled. */\n disabled?: boolean;\n /** Whether the input is read-only. */\n readOnly?: boolean;\n /** Validation status. */\n status?: `${BInputStatus}`;\n /** HTML input type (text, password, email, etc.). */\n type?: string;\n /** Maximum number of characters. */\n maxLength?: number;\n /** Placeholder text. */\n placeholder?: string;\n /** HTML id attribute. */\n id?: string;\n /** Show clear button when input has value. */\n allowClear?: boolean;\n /** Display character count. Can be boolean or a formatter function. */\n showCount?: boolean | ((args: { value: string; count: number; maxLength?: number }) => string);\n /** Advanced character counting configuration. */\n count?: BInputCountConfig;\n}>();\n\nconst emit = defineEmits<{\n /** Fired when input value changes. */\n change: [value: string, event: Event];\n /** Fired when Enter key is pressed. */\n pressEnter: [event: KeyboardEvent];\n /** Fired when clear button is clicked. */\n clear: [];\n /** Fired on input focus. */\n focus: [event: FocusEvent];\n /** Fired on input blur. */\n blur: [event: FocusEvent];\n}>();\n\nconst model = defineModel<string>({ default: '' });\n\nconst { componentUID } = useComponentId();\nconst inputId = computed(() => id ?? `b-input-${componentUID.value}`);\n\nconst inputRef = ref<HTMLInputElement | null>(null);\nconst isFocused = ref(false);\nconst passwordVisible = ref(false);\n\nconst hasAddonBefore = computed(() => !!slots.addonBefore);\nconst hasAddonAfter = computed(() => !!slots.addonAfter);\nconst hasPrefix = computed(() => !!slots.prefix);\nconst hasSuffix = computed(() => !!slots.suffix);\nconst isPasswordType = computed(() => type === 'password');\nconst showPasswordToggle = computed(() => isPasswordType.value);\nconst computedType = computed(() => {\n if (isPasswordType.value) {\n return passwordVisible.value ? 'text' : 'password';\n }\n return type;\n});\n\nconst charCount = computed(() => {\n const val = model.value ?? '';\n if (count?.strategy) return count.strategy(val);\n return val.length;\n});\n\nconst countMax = computed(() => count?.max ?? maxLength);\n\nconst showCountIndicator = computed(() => {\n if (count?.show === false) return false;\n if (count?.show !== undefined) return true;\n return !!showCount;\n});\n\nconst countText = computed(() => {\n const val = model.value ?? '';\n const currentCount = charCount.value;\n\n if (typeof count?.show === 'function') {\n return count.show({ value: val, count: currentCount, maxLength: countMax.value });\n }\n if (typeof showCount === 'function') {\n return showCount({ value: val, count: currentCount, maxLength: countMax.value });\n }\n if (countMax.value !== undefined) {\n return `${currentCount} / ${countMax.value}`;\n }\n return `${currentCount}`;\n});\n\nconst isOverCount = computed(() => {\n if (countMax.value === undefined) return false;\n return charCount.value > countMax.value;\n});\n\nconst showClearButton = computed(() => {\n return allowClear && !!model.value && !disabled && !readOnly;\n});\n\nconst handleInput = (e: Event) => {\n const target = e.target as HTMLInputElement;\n let value = target.value;\n\n if (count?.exceedFormatter && countMax.value !== undefined) {\n const strategy = count.strategy ?? ((v: string) => v.length);\n if (strategy(value) > countMax.value) {\n value = count.exceedFormatter(value, { max: countMax.value });\n target.value = value;\n }\n }\n\n model.value = value;\n emit('change', value, e);\n};\n\nconst handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n emit('pressEnter', e);\n }\n};\n\nconst handleFocus = (e: FocusEvent) => {\n isFocused.value = true;\n emit('focus', e);\n};\n\nconst handleBlur = (e: FocusEvent) => {\n isFocused.value = false;\n emit('blur', e);\n};\n\nconst handleClear = () => {\n model.value = '';\n emit('clear');\n emit('change', '', new Event('change'));\n inputRef.value?.focus();\n};\n\nconst togglePasswordVisibility = () => {\n passwordVisible.value = !passwordVisible.value;\n inputRef.value?.focus();\n};\n\nconst focus = (options?: BInputFocusOptions) => {\n inputRef.value?.focus({ preventScroll: options?.preventScroll });\n if (options?.cursor && inputRef.value) {\n const len = inputRef.value.value.length;\n switch (options.cursor) {\n case 'start':\n inputRef.value.setSelectionRange(0, 0);\n break;\n case 'end':\n inputRef.value.setSelectionRange(len, len);\n break;\n case 'all':\n inputRef.value.setSelectionRange(0, len);\n break;\n }\n }\n};\n\nconst blur = () => {\n inputRef.value?.blur();\n};\n\nwatch(model, (val) => {\n if (count?.exceedFormatter && countMax.value !== undefined) {\n const strategy = count.strategy ?? ((v: string) => v.length);\n if (strategy(val) > countMax.value) {\n model.value = count.exceedFormatter(val, { max: countMax.value });\n }\n }\n});\n\ndefineExpose({ focus, blur });\n</script>\n\n<template>\n <span\n class=\"b-input\"\n :class=\"[\n `b-input--${size}`,\n `b-input--${variant}`,\n {\n 'b-input--focused': isFocused,\n 'b-input--disabled': disabled,\n 'b-input--readonly': readOnly,\n 'b-input--error': status === BInputStatus.Error,\n 'b-input--warning': status === BInputStatus.Warning,\n 'b-input--has-addon-before': hasAddonBefore,\n 'b-input--has-addon-after': hasAddonAfter,\n 'b-input--over-count': isOverCount,\n },\n ]\"\n >\n <span v-if=\"hasAddonBefore\" class=\"b-input__addon b-input__addon--before\">\n <slot name=\"addonBefore\" />\n </span>\n\n <span class=\"b-input__wrapper\">\n <span v-if=\"hasPrefix\" class=\"b-input__prefix\" aria-hidden=\"true\">\n <slot name=\"prefix\" />\n </span>\n\n <input\n :id=\"inputId\"\n ref=\"inputRef\"\n :value=\"model\"\n :type=\"computedType\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :readonly=\"readOnly\"\n :maxlength=\"maxLength && !count?.exceedFormatter ? maxLength : undefined\"\n :aria-invalid=\"status === BInputStatus.Error ? true : undefined\"\n :aria-describedby=\"showCountIndicator ? `${inputId}-count` : undefined\"\n class=\"b-input__input\"\n @input=\"handleInput\"\n @keydown=\"handleKeyDown\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n />\n\n <span v-if=\"showClearButton\" class=\"b-input__clear-wrapper\">\n <button\n type=\"button\"\n class=\"b-input__clear\"\n aria-label=\"Clear input\"\n tabindex=\"-1\"\n @mousedown.prevent=\"handleClear\"\n >\n <svg\n viewBox=\"64 64 896 896\"\n width=\"1em\"\n height=\"1em\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z\"\n />\n </svg>\n </button>\n </span>\n\n <span v-if=\"showPasswordToggle\" class=\"b-input__password-toggle-wrapper\">\n <button\n type=\"button\"\n class=\"b-input__password-toggle\"\n :aria-label=\"passwordVisible ? 'Hide password' : 'Show password'\"\n :aria-pressed=\"passwordVisible\"\n tabindex=\"-1\"\n @mousedown.prevent=\"togglePasswordVisibility\"\n >\n <svg\n v-if=\"!passwordVisible\"\n viewBox=\"64 64 896 896\"\n width=\"1em\"\n height=\"1em\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 730c-114.9 0-208-93.1-208-208s93.1-208 208-208 208 93.1 208 208-93.1 208-208 208zm0-319.8c-61.7 0-111.8 50.1-111.8 111.8S450.3 633.8 512 633.8 623.8 583.7 623.8 522 573.7 410.2 512 410.2z\"\n />\n </svg>\n <svg\n v-else\n viewBox=\"64 64 896 896\"\n width=\"1em\"\n height=\"1em\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M942.2 486.2C847.4 286.5 704.1 186 512 186c-53.8 0-104.5 9.6-151.7 28.4L212.7 67.2a8.03 8.03 0 00-11.3 0L160 108.5a8.03 8.03 0 000 11.3l740.3 740.3a8.03 8.03 0 0011.3 0l41.3-41.3a8.03 8.03 0 000-11.3l-106.8-106.8c53.1-57.6 94.3-127.4 106.2-153a60.3 60.3 0 000-51.5zM512 730c-114.9 0-208-93.1-208-208 0-40.1 11.4-77.6 31-109.4L297 374.6C270.6 414.1 256 466 256 522c0 141.4 114.6 256 256 256 56 0 107.9-18 150.2-48.5l-38-38C597.6 714.6 556.1 730 512 730zm0-520c114.9 0 208 93.1 208 208 0 40.1-11.4 77.6-31 109.4L727 565.4C753.4 525.9 768 474 768 418c0-141.4-114.6-256-256-256-56 0-107.9 18-150.2 48.5l38 38C426.4 225.4 467.9 210 512 210z\"\n />\n </svg>\n </button>\n </span>\n\n <span v-if=\"hasSuffix\" class=\"b-input__suffix\" aria-hidden=\"true\">\n <slot name=\"suffix\" />\n </span>\n\n <span\n v-if=\"showCountIndicator\"\n :id=\"`${inputId}-count`\"\n class=\"b-input__count\"\n :class=\"{ 'b-input__count--over': isOverCount }\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {{ countText }}\n </span>\n </span>\n\n <span v-if=\"hasAddonAfter\" class=\"b-input__addon b-input__addon--after\">\n <slot name=\"addonAfter\" />\n </span>\n </span>\n</template>\n\n<style scoped>\n.b-input {\n --b-input-active-bg: #ffffff;\n --b-input-active-border-color: #1677ff;\n --b-input-active-shadow: 0 0 0 2px rgba(5, 145, 255, 0.1);\n --b-input-addon-bg: rgba(0, 0, 0, 0.02);\n --b-input-error-active-shadow: 0 0 0 2px rgba(255, 38, 5, 0.06);\n --b-input-hover-bg: #ffffff;\n --b-input-hover-border-color: #4096ff;\n --b-input-font-size: 14px;\n --b-input-font-size-lg: 16px;\n --b-input-font-size-sm: 14px;\n --b-input-padding-block: 4px;\n --b-input-padding-block-lg: 7px;\n --b-input-padding-block-sm: 0px;\n --b-input-padding-inline: 11px;\n --b-input-padding-inline-lg: 11px;\n --b-input-padding-inline-sm: 7px;\n --b-input-warning-active-shadow: 0 0 0 2px rgba(255, 215, 5, 0.1);\n --b-input-border-color: #d9d9d9;\n --b-input-bg: #ffffff;\n --b-input-color: rgba(0, 0, 0, 0.88);\n --b-input-placeholder-color: rgba(0, 0, 0, 0.25);\n --b-input-border-radius: 6px;\n --b-input-clear-color: rgba(0, 0, 0, 0.25);\n --b-input-clear-hover-color: rgba(0, 0, 0, 0.45);\n --b-input-count-color: rgba(0, 0, 0, 0.65);\n --b-input-disabled-bg: rgba(0, 0, 0, 0.04);\n --b-input-disabled-color: rgba(0, 0, 0, 0.25);\n --b-input-error-border-color: #ff4d4f;\n --b-input-error-hover-border-color: #ff7875;\n --b-input-warning-border-color: #faad14;\n --b-input-warning-hover-border-color: #ffc53d;\n --b-input-filled-bg: rgba(0, 0, 0, 0.04);\n --b-input-filled-hover-bg: rgba(0, 0, 0, 0.04);\n\n display: inline-flex;\n align-items: stretch;\n width: 100%;\n font-size: var(--b-input-font-size);\n color: var(--b-input-color);\n line-height: 1.5714;\n}\n\n.b-input--lg {\n font-size: var(--b-input-font-size-lg);\n}\n\n.b-input--sm {\n font-size: var(--b-input-font-size-sm);\n}\n\n.b-input__wrapper {\n display: inline-flex;\n align-items: center;\n flex: 1;\n min-width: 0;\n position: relative;\n transition: all 0.2s;\n}\n\n/* Outlined */\n.b-input--outlined .b-input__wrapper {\n background: var(--b-input-bg);\n border: 1px solid var(--b-input-border-color);\n border-radius: var(--b-input-border-radius);\n}\n\n.b-input--outlined:not(.b-input--disabled):hover .b-input__wrapper {\n border-color: var(--b-input-hover-border-color);\n background: var(--b-input-hover-bg);\n}\n\n.b-input--outlined.b-input--focused .b-input__wrapper {\n border-color: var(--b-input-active-border-color);\n background: var(--b-input-active-bg);\n box-shadow: var(--b-input-active-shadow);\n}\n\n/* Filled */\n.b-input--filled .b-input__wrapper {\n background: var(--b-input-filled-bg);\n border: 1px solid transparent;\n border-radius: var(--b-input-border-radius);\n}\n\n.b-input--filled:not(.b-input--disabled):hover .b-input__wrapper {\n background: var(--b-input-filled-hover-bg);\n}\n\n.b-input--filled.b-input--focused .b-input__wrapper {\n background: var(--b-input-active-bg);\n border-color: var(--b-input-active-border-color);\n box-shadow: var(--b-input-active-shadow);\n}\n\n/* Borderless */\n.b-input--borderless .b-input__wrapper {\n background: transparent;\n border: 1px solid transparent;\n border-radius: var(--b-input-border-radius);\n}\n\n/* Underlined */\n.b-input--underlined .b-input__wrapper {\n background: transparent;\n border: none;\n border-bottom: 1px solid var(--b-input-border-color);\n border-radius: 0;\n}\n\n.b-input--underlined:not(.b-input--disabled):hover .b-input__wrapper {\n border-bottom-color: var(--b-input-hover-border-color);\n}\n\n.b-input--underlined.b-input--focused .b-input__wrapper {\n border-bottom-color: var(--b-input-active-border-color);\n box-shadow: 0 1px 0 0 var(--b-input-active-border-color);\n}\n\n/* Error */\n.b-input--error.b-input--outlined .b-input__wrapper {\n border-color: var(--b-input-error-border-color);\n}\n\n.b-input--error.b-input--outlined:not(.b-input--disabled):hover .b-input__wrapper {\n border-color: var(--b-input-error-hover-border-color);\n}\n\n.b-input--error.b-input--outlined.b-input--focused .b-input__wrapper,\n.b-input--error.b-input--filled.b-input--focused .b-input__wrapper {\n border-color: var(--b-input-error-border-color);\n box-shadow: var(--b-input-error-active-shadow);\n}\n\n.b-input--error.b-input--underlined .b-input__wrapper {\n border-bottom-color: var(--b-input-error-border-color);\n}\n\n.b-input--error.b-input--underlined.b-input--focused .b-input__wrapper {\n border-bottom-color: var(--b-input-error-border-color);\n box-shadow: 0 1px 0 0 var(--b-input-error-border-color);\n}\n\n/* Warning */\n.b-input--warning.b-input--outlined .b-input__wrapper {\n border-color: var(--b-input-warning-border-color);\n}\n\n.b-input--warning.b-input--outlined:not(.b-input--disabled):hover .b-input__wrapper {\n border-color: var(--b-input-warning-hover-border-color);\n}\n\n.b-input--warning.b-input--outlined.b-input--focused .b-input__wrapper,\n.b-input--warning.b-input--filled.b-input--focused .b-input__wrapper {\n border-color: var(--b-input-warning-border-color);\n box-shadow: var(--b-input-warning-active-shadow);\n}\n\n.b-input--warning.b-input--underlined .b-input__wrapper {\n border-bottom-color: var(--b-input-warning-border-color);\n}\n\n.b-input--warning.b-input--underlined.b-input--focused .b-input__wrapper {\n border-bottom-color: var(--b-input-warning-border-color);\n box-shadow: 0 1px 0 0 var(--b-input-warning-border-color);\n}\n\n/* Disabled */\n.b-input--disabled .b-input__wrapper {\n background: var(--b-input-disabled-bg);\n cursor: not-allowed;\n}\n\n.b-input--disabled .b-input__input {\n color: var(--b-input-disabled-color);\n cursor: not-allowed;\n}\n\n/* Addon border radius */\n.b-input--has-addon-before .b-input__wrapper {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.b-input--has-addon-after .b-input__wrapper {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n/* Input element */\n.b-input__input {\n flex: 1;\n min-width: 0;\n width: 100%;\n border: none;\n outline: none;\n background: transparent;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n}\n\n.b-input--md .b-input__input {\n padding: var(--b-input-padding-block) var(--b-input-padding-inline);\n}\n\n.b-input--lg .b-input__input {\n padding: var(--b-input-padding-block-lg) var(--b-input-padding-inline-lg);\n}\n\n.b-input--sm .b-input__input {\n padding: var(--b-input-padding-block-sm) var(--b-input-padding-inline-sm);\n}\n\n.b-input__input::placeholder {\n color: var(--b-input-placeholder-color);\n}\n\n/* Prefix & Suffix */\n.b-input__prefix,\n.b-input__suffix {\n display: inline-flex;\n align-items: center;\n color: var(--b-input-color);\n flex-shrink: 0;\n}\n\n.b-input__prefix {\n margin-left: var(--b-input-padding-inline);\n}\n\n.b-input__suffix {\n margin-right: var(--b-input-padding-inline);\n}\n\n.b-input__prefix ~ .b-input__input {\n padding-left: 4px;\n}\n\n/* Clear & password toggle */\n.b-input__clear-wrapper,\n.b-input__password-toggle-wrapper {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n margin-right: var(--b-input-padding-inline);\n}\n\n.b-input__clear,\n.b-input__password-toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: none;\n padding: 0;\n cursor: pointer;\n color: var(--b-input-clear-color);\n font-size: 14px;\n line-height: 1;\n transition: color 0.2s;\n}\n\n.b-input__clear:hover,\n.b-input__password-toggle:hover {\n color: var(--b-input-clear-hover-color);\n}\n\n/* Count */\n.b-input__count {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n margin-right: var(--b-input-padding-inline);\n color: var(--b-input-count-color);\n font-size: 0.857em;\n white-space: nowrap;\n pointer-events: none;\n}\n\n.b-input__count--over {\n color: var(--b-input-error-border-color);\n}\n\n/* Addons */\n.b-input__addon {\n display: inline-flex;\n align-items: center;\n padding: 0 11px;\n background: var(--b-input-addon-bg);\n border: 1px solid var(--b-input-border-color);\n color: var(--b-input-color);\n font-size: inherit;\n white-space: nowrap;\n}\n\n.b-input__addon--before {\n border-right: none;\n border-radius: var(--b-input-border-radius) 0 0 var(--b-input-border-radius);\n}\n\n.b-input__addon--after {\n border-left: none;\n border-radius: 0 var(--b-input-border-radius) var(--b-input-border-radius) 0;\n}\n\n/* Dark mode — activated via data attribute on ancestor */\n[data-prefers-color='dark'] .b-input {\n --b-input-active-bg: #141414;\n --b-input-active-border-color: #1668dc;\n --b-input-active-shadow: 0 0 0 2px rgba(22, 104, 220, 0.15);\n --b-input-addon-bg: rgba(255, 255, 255, 0.04);\n --b-input-error-active-shadow: 0 0 0 2px rgba(220, 56, 56, 0.1);\n --b-input-hover-bg: #141414;\n --b-input-hover-border-color: #3c89e8;\n --b-input-warning-active-shadow: 0 0 0 2px rgba(209, 163, 0, 0.1);\n --b-input-border-color: #424242;\n --b-input-bg: #141414;\n --b-input-color: rgba(255, 255, 255, 0.88);\n --b-input-placeholder-color: rgba(255, 255, 255, 0.25);\n --b-input-clear-color: rgba(255, 255, 255, 0.25);\n --b-input-clear-hover-color: rgba(255, 255, 255, 0.45);\n --b-input-count-color: rgba(255, 255, 255, 0.65);\n --b-input-disabled-bg: rgba(255, 255, 255, 0.08);\n --b-input-disabled-color: rgba(255, 255, 255, 0.25);\n --b-input-error-border-color: #dc3838;\n --b-input-error-hover-border-color: #e86e6e;\n --b-input-warning-border-color: #d1a300;\n --b-input-warning-hover-border-color: #e8c631;\n --b-input-filled-bg: rgba(255, 255, 255, 0.08);\n --b-input-filled-hover-bg: rgba(255, 255, 255, 0.12);\n}\n\n@media (prefers-color-scheme: dark) {\n [data-prefers-color='system'] .b-input {\n --b-input-active-bg: #141414;\n --b-input-active-border-color: #1668dc;\n --b-input-active-shadow: 0 0 0 2px rgba(22, 104, 220, 0.15);\n --b-input-addon-bg: rgba(255, 255, 255, 0.04);\n --b-input-error-active-shadow: 0 0 0 2px rgba(220, 56, 56, 0.1);\n --b-input-hover-bg: #141414;\n --b-input-hover-border-color: #3c89e8;\n --b-input-warning-active-shadow: 0 0 0 2px rgba(209, 163, 0, 0.1);\n --b-input-border-color: #424242;\n --b-input-bg: #141414;\n --b-input-color: rgba(255, 255, 255, 0.88);\n --b-input-placeholder-color: rgba(255, 255, 255, 0.25);\n --b-input-clear-color: rgba(255, 255, 255, 0.25);\n --b-input-clear-hover-color: rgba(255, 255, 255, 0.45);\n --b-input-count-color: rgba(255, 255, 255, 0.65);\n --b-input-disabled-bg: rgba(255, 255, 255, 0.08);\n --b-input-disabled-color: rgba(255, 255, 255, 0.25);\n --b-input-error-border-color: #dc3838;\n --b-input-error-hover-border-color: #e86e6e;\n --b-input-warning-border-color: #d1a300;\n --b-input-warning-hover-border-color: #e8c631;\n --b-input-filled-bg: rgba(255, 255, 255, 0.08);\n --b-input-filled-hover-bg: rgba(255, 255, 255, 0.12);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .b-input__wrapper,\n .b-input__clear,\n .b-input__password-toggle {\n transition: none;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -1,277 +0,0 @@
1
- import { BCommonSize as e } from "./design-system3.js";
2
- import { useComponentId as t } from "./design-system10.js";
3
- import { BMentionsStatus as n, BMentionsVariant as r } from "./design-system123.js";
4
- import { Fragment as i, computed as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createTextVNode as l, defineComponent as u, mergeModels as d, mergeProps as f, nextTick as p, normalizeClass as m, openBlock as h, ref as g, renderList as _, renderSlot as v, toDisplayString as y, unref as b, useAttrs as ee, useCssVars as x, useModel as te, watch as S, withModifiers as C } from "vue";
5
- //#region src/components/BMentions/BMentions.vue?vue&type=script&setup=true&lang.ts
6
- var w = [
7
- "aria-label",
8
- "aria-expanded",
9
- "aria-controls"
10
- ], T = [
11
- "value",
12
- "placeholder",
13
- "disabled",
14
- "readonly",
15
- "rows",
16
- "aria-label",
17
- "aria-activedescendant"
18
- ], E = ["id", "aria-label"], D = {
19
- key: 0,
20
- class: "b-mentions__options"
21
- }, O = [
22
- "id",
23
- "data-active",
24
- "aria-selected",
25
- "aria-disabled",
26
- "onMousedown",
27
- "onMouseenter"
28
- ], k = {
29
- key: 1,
30
- class: "b-mentions__not-found"
31
- }, A = /* @__PURE__ */ u({
32
- inheritAttrs: !1,
33
- __name: "BMentions",
34
- props: /* @__PURE__ */ d({
35
- options: { default: () => [] },
36
- size: { default: () => e.Medium },
37
- variant: { default: () => r.Outlined },
38
- placement: {},
39
- prefix: { default: "@" },
40
- split: { default: " " },
41
- autoSize: {
42
- type: [Boolean, Object],
43
- default: !1
44
- },
45
- allowClear: {
46
- type: Boolean,
47
- default: !1
48
- },
49
- filterOption: {
50
- type: [Boolean, Function],
51
- default: !0
52
- },
53
- notFoundContent: { default: "Not Found" },
54
- disabled: { type: Boolean },
55
- readOnly: { type: Boolean },
56
- status: {},
57
- placeholder: {},
58
- rows: { default: 3 }
59
- }, {
60
- modelValue: { default: "" },
61
- modelModifiers: {}
62
- }),
63
- emits: /* @__PURE__ */ d([
64
- "change",
65
- "select",
66
- "search",
67
- "focus",
68
- "blur",
69
- "clear",
70
- "resize",
71
- "popupScroll"
72
- ], ["update:modelValue"]),
73
- setup(e, { expose: r, emit: u }) {
74
- x((e) => ({ v21fd39a6: N.value }));
75
- let d = ee(), A = u, j = te(e, "modelValue"), { componentUID: M } = t(), N = a(() => `--b-mentions-anchor-${M.value}`), P = a(() => `b-mentions-listbox-${M.value}`), F = g(null), I = g(null), L = g(!1), R = g(!1), z = g(-1), B = g(!1), V = g(""), H = g(""), U = g(0), W = a(() => Array.isArray(e.prefix) ? e.prefix : [e.prefix]), G = a(() => {
76
- let t = H.value.toLowerCase();
77
- return e.filterOption ? typeof e.filterOption == "function" ? e.options.filter((n) => e.filterOption(t, n)) : t ? e.options.filter((e) => (e.label ?? e.value).toLowerCase().includes(t)) : e.options : e.options;
78
- }), K = a(() => !B.value || G.value.length === 0 && e.notFoundContent === null ? !1 : R.value), q = (e) => e.label ?? e.value;
79
- function J() {
80
- R.value || I.value?.showPopover();
81
- }
82
- function Y() {
83
- R.value && I.value?.hidePopover();
84
- }
85
- function X({ newState: e }) {
86
- let t = e === "open";
87
- R.value = t, t && G.value.length > 0 ? z.value = 0 : t || (z.value = -1, B.value = !1);
88
- }
89
- function Z(t, n) {
90
- for (let r of W.value) {
91
- let i = t.slice(0, n), a = i.lastIndexOf(r);
92
- if (a < 0) continue;
93
- let o = i.slice(a + r.length);
94
- if (!/\s/.test(o) && (a === 0 || t[a - 1] === e.split || /\s/.test(t[a - 1]))) return {
95
- start: a,
96
- prefix: r
97
- };
98
- }
99
- return null;
100
- }
101
- function ne(e, t) {
102
- let n = Z(e, t);
103
- n ? (B.value = !0, V.value = n.prefix, U.value = n.start, H.value = e.slice(n.start + n.prefix.length, t), A("search", H.value, n.prefix), p(() => J())) : Q();
104
- }
105
- function Q() {
106
- Y(), B.value = !1, H.value = "", V.value = "", U.value = 0;
107
- }
108
- function $(t) {
109
- if (t.disabled) return;
110
- let n = F.value;
111
- if (!n) return;
112
- let r = j.value ?? "", i = n.selectionStart, a = r.slice(0, U.value), o = r.slice(i), s = `${V.value}${t.value}`, c = o && !o.startsWith(e.split) && e.split, l = `${a}${s}${c ? e.split : ""}${o}`;
113
- j.value = l, A("change", l), A("select", t, V.value), Q();
114
- let u = a.length + s.length + (c ? e.split.length : 0);
115
- p(() => {
116
- n.focus(), n.setSelectionRange(u, u);
117
- });
118
- }
119
- function re(e) {
120
- let t = e.target, n = t.value;
121
- j.value = n, A("change", n);
122
- let r = t.selectionStart;
123
- ne(n, r), le();
124
- }
125
- function ie(e) {
126
- L.value = !0, A("focus", e);
127
- }
128
- function ae(e) {
129
- let t = e.relatedTarget;
130
- I.value?.contains(t) || (L.value = !1, A("blur", e), Q());
131
- }
132
- function oe(e) {
133
- if (K.value) switch (e.key) {
134
- case "ArrowDown": {
135
- e.preventDefault();
136
- let t = G.value;
137
- if (t.length === 0) return;
138
- let n = z.value + 1;
139
- for (let e = 0; e < t.length; e++) {
140
- let r = (n + e) % t.length;
141
- if (!t[r].disabled) {
142
- z.value = r;
143
- break;
144
- }
145
- }
146
- break;
147
- }
148
- case "ArrowUp": {
149
- e.preventDefault();
150
- let t = G.value;
151
- if (t.length === 0) return;
152
- let n = z.value - 1;
153
- for (let e = 0; e < t.length; e++) {
154
- let r = ((n - e) % t.length + t.length) % t.length;
155
- if (!t[r].disabled) {
156
- z.value = r;
157
- break;
158
- }
159
- }
160
- break;
161
- }
162
- case "Enter":
163
- if (e.preventDefault(), z.value >= 0) {
164
- let e = G.value[z.value];
165
- e && !e.disabled && $(e);
166
- }
167
- break;
168
- case "Escape":
169
- e.preventDefault(), Q();
170
- break;
171
- }
172
- }
173
- function se() {
174
- j.value = "", A("change", ""), A("clear"), Q(), F.value?.focus();
175
- }
176
- function ce(e) {
177
- A("popupScroll", e);
178
- }
179
- function le() {
180
- if (!e.autoSize || !F.value) return;
181
- let t = F.value;
182
- t.style.height = "auto";
183
- let n = typeof e.autoSize == "object" ? e.autoSize : {}, r = parseFloat(getComputedStyle(t).lineHeight) || 20, i = t.scrollHeight;
184
- n.minRows && (i = Math.max(i, n.minRows * r)), n.maxRows && (i = Math.min(i, n.maxRows * r)), t.style.height = `${i}px`, A("resize", {
185
- width: t.offsetWidth,
186
- height: i
187
- });
188
- }
189
- return S(z, () => {
190
- p(() => {
191
- (I.value?.querySelector("[data-active=\"true\"]"))?.scrollIntoView({ block: "nearest" });
192
- });
193
- }), S(j, (e) => {
194
- F.value && F.value.value !== e && (F.value.value = e ?? "");
195
- }), r({
196
- focus: () => F.value?.focus(),
197
- blur: () => F.value?.blur()
198
- }), (t, r) => (h(), s("div", {
199
- class: m(["b-mentions", [
200
- `b-mentions--${e.size}`,
201
- `b-mentions--${e.variant}`,
202
- {
203
- "b-mentions--focused": L.value,
204
- "b-mentions--disabled": e.disabled,
205
- "b-mentions--error": e.status === b(n).Error,
206
- "b-mentions--warning": e.status === b(n).Warning,
207
- "b-mentions--has-clear": e.allowClear
208
- }
209
- ]]),
210
- role: "combobox",
211
- "aria-label": e.placeholder || "Mentions input",
212
- "aria-expanded": K.value,
213
- "aria-haspopup": "listbox",
214
- "aria-controls": K.value ? P.value : void 0
215
- }, [
216
- c("textarea", f({
217
- ref_key: "textareaRef",
218
- ref: F
219
- }, b(d), {
220
- value: j.value,
221
- class: "b-mentions__textarea",
222
- placeholder: e.placeholder,
223
- disabled: e.disabled,
224
- readonly: e.readOnly,
225
- rows: e.autoSize ? void 0 : e.rows,
226
- "aria-label": e.placeholder || "Mentions input",
227
- autocomplete: "off",
228
- "aria-activedescendant": z.value >= 0 ? `${P.value}-option-${z.value}` : void 0,
229
- "aria-autocomplete": "list",
230
- onInput: re,
231
- onFocus: ie,
232
- onBlur: ae,
233
- onKeydown: oe
234
- }), null, 16, T),
235
- e.allowClear && j.value && !e.disabled ? (h(), s("button", {
236
- key: 0,
237
- type: "button",
238
- class: "b-mentions__clear",
239
- "aria-label": "Clear input",
240
- tabindex: "-1",
241
- onMousedown: C(se, ["prevent"])
242
- }, null, 32)) : o("", !0),
243
- B.value || R.value ? (h(), s("div", {
244
- key: 1,
245
- ref_key: "menuRef",
246
- ref: I,
247
- id: P.value,
248
- class: "b-mentions__dropdown",
249
- popover: "manual",
250
- role: "listbox",
251
- "aria-label": `Mention suggestions for ${V.value}`,
252
- onToggle: X,
253
- onScroll: ce
254
- }, [G.value.length > 0 ? (h(), s("ul", D, [(h(!0), s(i, null, _(G.value, (e, n) => (h(), s("li", {
255
- key: e.value,
256
- id: `${P.value}-option-${n}`,
257
- class: m(["b-mentions__option", {
258
- "b-mentions__option--active": n === z.value && !e.disabled,
259
- "b-mentions__option--disabled": e.disabled
260
- }]),
261
- "data-active": n === z.value,
262
- "aria-selected": n === z.value,
263
- "aria-disabled": e.disabled ?? !1,
264
- role: "option",
265
- onMousedown: C((t) => $(e), ["prevent"]),
266
- onMouseenter: (e) => z.value = n
267
- }, [v(t.$slots, "option", {
268
- option: e,
269
- index: n
270
- }, () => [l(y(q(e)), 1)], !0)], 42, O))), 128))])) : e.notFoundContent ? (h(), s("div", k, [v(t.$slots, "notFoundContent", {}, () => [l(y(e.notFoundContent), 1)], !0)])) : o("", !0)], 40, E)) : o("", !0)
271
- ], 10, w));
272
- }
273
- });
274
- //#endregion
275
- export { A as default };
276
-
277
- //# sourceMappingURL=design-system124.js.map
@@ -1,19 +0,0 @@
1
- import { createElementBlock as e, defineComponent as t, normalizeClass as n, openBlock as r } from "vue";
2
- //#region src/components/BMenu/BMenuDivider.vue?vue&type=script&setup=true&lang.ts
3
- var i = /* @__PURE__ */ t({
4
- __name: "BMenuDivider",
5
- props: { dashed: {
6
- type: Boolean,
7
- default: !1
8
- } },
9
- setup(t) {
10
- return (i, a) => (r(), e("li", {
11
- class: n(["b-menu-divider", { "b-menu-divider--dashed": t.dashed }]),
12
- role: "separator"
13
- }, null, 2));
14
- }
15
- });
16
- //#endregion
17
- export { i as default };
18
-
19
- //# sourceMappingURL=design-system127.js.map
@@ -1,15 +0,0 @@
1
- //#region src/components/BMenu/types.ts
2
- var e = Symbol("BMenuContext"), t = Symbol("BMenuSubMenuContext");
3
- function n(e) {
4
- return "children" in e && ("type" in e ? e.type !== "group" : !0);
5
- }
6
- function r(e) {
7
- return "type" in e && e.type === "group";
8
- }
9
- function i(e) {
10
- return "type" in e && e.type === "divider";
11
- }
12
- //#endregion
13
- export { e as BMenuContextKey, t as BMenuSubMenuContextKey, i as isDivider, r as isItemGroup, n as isSubMenu };
14
-
15
- //# sourceMappingURL=design-system130.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"design-system130.js","names":[],"sources":["../src/components/BMenu/types.ts"],"sourcesContent":["import type { ComputedRef, InjectionKey } from 'vue';\n\n// ─────────────────────────────────────────────\n// Enums & Literals\n// ─────────────────────────────────────────────\nexport type BMenuMode = 'horizontal' | 'vertical' | 'inline';\nexport type BMenuTheme = 'light' | 'dark';\nexport type BMenuTriggerAction = 'hover' | 'click';\n\n// ─────────────────────────────────────────────\n// Item types (data-driven API)\n// ─────────────────────────────────────────────\nexport interface BMenuItemType {\n key: string;\n label?: string;\n icon?: string;\n disabled?: boolean;\n danger?: boolean;\n title?: string;\n extra?: string;\n}\n\nexport interface BMenuSubMenuType {\n key: string;\n label?: string;\n icon?: string;\n disabled?: boolean;\n children?: BMenuItemUnion[];\n popupClassName?: string;\n}\n\nexport interface BMenuItemGroupType {\n type: 'group';\n key?: string;\n label?: string;\n children?: BMenuItemType[];\n}\n\nexport interface BMenuDividerType {\n type: 'divider';\n key?: string;\n dashed?: boolean;\n}\n\nexport type BMenuItemUnion =\n | BMenuItemType\n | BMenuSubMenuType\n | BMenuItemGroupType\n | BMenuDividerType;\n\n// ─────────────────────────────────────────────\n// Event payloads\n// ─────────────────────────────────────────────\nexport interface BMenuClickInfo {\n key: string;\n keyPath: string[];\n domEvent: MouseEvent | KeyboardEvent;\n}\n\nexport interface BMenuSelectInfo {\n key: string;\n keyPath: string[];\n selectedKeys: string[];\n domEvent: MouseEvent | KeyboardEvent;\n}\n\n// ─────────────────────────────────────────────\n// Context (provided by BMenu to children)\n// ─────────────────────────────────────────────\nexport interface BMenuContext {\n mode: ComputedRef<BMenuMode>;\n theme: ComputedRef<BMenuTheme>;\n inlineCollapsed: ComputedRef<boolean>;\n inlineIndent: ComputedRef<number>;\n selectedKeys: ComputedRef<string[]>;\n openKeys: ComputedRef<string[]>;\n multiple: ComputedRef<boolean>;\n selectable: ComputedRef<boolean>;\n triggerSubMenuAction: ComputedRef<BMenuTriggerAction>;\n subMenuOpenDelay: ComputedRef<number>;\n subMenuCloseDelay: ComputedRef<number>;\n onItemClick: (info: BMenuClickInfo) => void;\n onOpenChange: (key: string, open: boolean) => void;\n registerKeyPath: (key: string, path: string[]) => void;\n}\n\nexport const BMenuContextKey: InjectionKey<BMenuContext> = Symbol('BMenuContext');\n\n// ─────────────────────────────────────────────\n// SubMenu context (nesting depth)\n// ─────────────────────────────────────────────\nexport interface BMenuSubMenuContext {\n level: number;\n keyPath: string[];\n}\n\nexport const BMenuSubMenuContextKey: InjectionKey<BMenuSubMenuContext> =\n Symbol('BMenuSubMenuContext');\n\n// ─────────────────────────────────────────────\n// Helpers\n// ─────────────────────────────────────────────\nexport function isSubMenu(item: BMenuItemUnion): item is BMenuSubMenuType {\n return 'children' in item && ('type' in item ? item.type !== 'group' : true);\n}\n\nexport function isItemGroup(item: BMenuItemUnion): item is BMenuItemGroupType {\n return 'type' in item && item.type === 'group';\n}\n\nexport function isDivider(item: BMenuItemUnion): item is BMenuDividerType {\n return 'type' in item && item.type === 'divider';\n}\n\nexport function isMenuItem(item: BMenuItemUnion): item is BMenuItemType {\n return !isSubMenu(item) && !isItemGroup(item) && !isDivider(item);\n}\n"],"mappings":";AAsFA,IAAa,IAA8C,OAAO,eAAe,EAUpE,IACX,OAAO,sBAAsB;AAK/B,SAAgB,EAAU,GAAgD;AACxE,QAAO,cAAc,MAAS,UAAU,IAAO,EAAK,SAAS,UAAU;;AAGzE,SAAgB,EAAY,GAAkD;AAC5E,QAAO,UAAU,KAAQ,EAAK,SAAS;;AAGzC,SAAgB,EAAU,GAAgD;AACxE,QAAO,UAAU,KAAQ,EAAK,SAAS"}
@@ -1,8 +0,0 @@
1
- import e from "./design-system131.js";
2
- /* empty css */
3
- //#region src/components/BMenu/BMenuItem.vue
4
- var t = e;
5
- //#endregion
6
- export { t as default };
7
-
8
- //# sourceMappingURL=design-system133.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"design-system133.js","names":[],"sources":["../src/components/BMenu/BMenuItem.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject, onMounted } from 'vue';\nimport {\n BMenuContextKey,\n BMenuSubMenuContextKey,\n type BMenuClickInfo,\n type BMenuContext,\n type BMenuSubMenuContext,\n} from './types';\n\n// ─────────────────────────────────────────────\n// Props\n// ─────────────────────────────────────────────\nconst {\n itemKey,\n label = '',\n icon = undefined,\n disabled = false,\n danger = false,\n extra = undefined,\n title = undefined,\n} = defineProps<{\n /** Unique key identifying this menu item. */\n itemKey: string;\n /** Display label text. */\n label?: string;\n /** Icon name rendered before the label. */\n icon?: string;\n /** Whether the item is disabled. @default false */\n disabled?: boolean;\n /** Display with danger (red) styling. @default false */\n danger?: boolean;\n /** Extra content at the right side. */\n extra?: string;\n /** Tooltip title when collapsed. */\n title?: string;\n}>();\n\ndefineSlots<{\n default?(): unknown;\n icon?(): unknown;\n extra?(): unknown;\n}>();\n\n// ─────────────────────────────────────────────\n// Inject context\n// ─────────────────────────────────────────────\nconst menu = inject<BMenuContext>(BMenuContextKey)!;\nconst subMenuCtx = inject<BMenuSubMenuContext | null>(BMenuSubMenuContextKey, null);\n\nconst level = computed(() => (subMenuCtx?.level ?? 0) + 1);\nconst keyPath = computed(() => [...(subMenuCtx?.keyPath ?? []), itemKey]);\n\n// Register key path with root menu\nonMounted(() => {\n menu.registerKeyPath(itemKey, keyPath.value);\n});\n\n// ─────────────────────────────────────────────\n// Computed\n// ─────────────────────────────────────────────\nconst isSelected = computed(() => menu.selectedKeys.value.includes(itemKey));\n\nconst itemRole = computed(() => {\n if (!menu.selectable.value) return 'menuitem';\n return menu.multiple.value ? 'menuitemcheckbox' : 'menuitemradio';\n});\n\nconst paddingLeft = computed(() => {\n if (menu.mode.value !== 'inline') return undefined;\n if (menu.inlineCollapsed.value) return undefined;\n return `${level.value * menu.inlineIndent.value}px`;\n});\n\nconst itemClasses = computed(() => [\n 'b-menu-item',\n {\n 'b-menu-item--selected': isSelected.value,\n 'b-menu-item--disabled': disabled,\n 'b-menu-item--danger': danger,\n 'b-menu-item--collapsed': menu.inlineCollapsed.value,\n 'b-menu-item--horizontal': menu.mode.value === 'horizontal',\n },\n]);\n\n// ─────────────────────────────────────────────\n// Handlers\n// ─────────────────────────────────────────────\nfunction handleClick(e: MouseEvent) {\n if (disabled) return;\n\n const info: BMenuClickInfo = {\n key: itemKey,\n keyPath: keyPath.value,\n domEvent: e,\n };\n menu.onItemClick(info);\n}\n\nfunction handleKeydown(e: KeyboardEvent) {\n if (disabled) return;\n\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n const info: BMenuClickInfo = {\n key: itemKey,\n keyPath: keyPath.value,\n domEvent: e,\n };\n menu.onItemClick(info);\n }\n}\n</script>\n\n<template>\n <li\n :class=\"itemClasses\"\n :style=\"{ paddingInlineStart: paddingLeft }\"\n :role=\"itemRole\"\n :tabindex=\"disabled ? -1 : 0\"\n :aria-disabled=\"disabled || undefined\"\n :aria-checked=\"menu.selectable.value ? isSelected : undefined\"\n :title=\"title ?? (menu.inlineCollapsed.value ? label : undefined)\"\n :data-menu-key=\"itemKey\"\n @click=\"handleClick\"\n @keydown=\"handleKeydown\"\n >\n <span v-if=\"icon || $slots.icon\" class=\"b-menu-item__icon\" aria-hidden=\"true\">\n <slot name=\"icon\">{{ icon }}</slot>\n </span>\n <span v-if=\"!menu.inlineCollapsed.value\" class=\"b-menu-item__label\">\n <slot>{{ label }}</slot>\n </span>\n <span v-if=\"extra && !menu.inlineCollapsed.value\" class=\"b-menu-item__extra\">\n <slot name=\"extra\">{{ extra }}</slot>\n </span>\n </li>\n</template>\n\n<style>\n/* ─────────────────────────────────────────────\n BMenuItem\n ───────────────────────────────────────────── */\n.b-menu-item {\n display: flex;\n align-items: center;\n height: var(--b-menu-item-height);\n margin-block: var(--b-menu-item-margin-block);\n margin-inline: var(--b-menu-item-margin-inline);\n padding-inline: var(--b-menu-item-padding-inline);\n border-radius: var(--b-menu-item-border-radius);\n color: var(--b-menu-item-color);\n cursor: pointer;\n user-select: none;\n list-style: none;\n outline: none;\n position: relative;\n transition:\n background var(--b-menu-transition-duration),\n color var(--b-menu-transition-duration),\n padding var(--b-menu-transition-duration);\n box-sizing: border-box;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.b-menu-item:hover:not(.b-menu-item--disabled) {\n background: var(--b-menu-item-hover-bg);\n color: var(--b-menu-item-hover-color);\n}\n\n.b-menu-item:focus-visible {\n outline: 2px solid #1677ff;\n outline-offset: -2px;\n}\n\n/* ── Selected ── */\n.b-menu-item--selected {\n background: var(--b-menu-item-selected-bg);\n color: var(--b-menu-item-selected-color);\n font-weight: 500;\n}\n\n/* ── Disabled ── */\n.b-menu-item--disabled {\n color: var(--b-menu-item-disabled-color);\n cursor: not-allowed;\n}\n\n/* ── Danger ── */\n.b-menu-item--danger {\n color: var(--b-menu-danger-item-color);\n}\n\n.b-menu-item--danger:hover:not(.b-menu-item--disabled) {\n color: var(--b-menu-danger-item-hover-color);\n background: var(--b-menu-danger-item-active-bg);\n}\n\n.b-menu-item--danger.b-menu-item--selected {\n background: var(--b-menu-danger-item-selected-bg);\n color: var(--b-menu-danger-item-selected-color);\n}\n\n/* ── Collapsed ── */\n.b-menu-item--collapsed {\n justify-content: center;\n padding-inline: 0;\n}\n\n.b-menu-item--collapsed .b-menu-item__icon {\n font-size: var(--b-menu-collapsed-icon-size);\n margin-inline-end: 0;\n}\n\n/* ── Horizontal mode ── */\n.b-menu-item--horizontal {\n margin-block: 0;\n border-radius: var(--b-menu-horizontal-item-border-radius);\n height: auto;\n line-height: var(--b-menu-horizontal-line-height);\n position: relative;\n}\n\n.b-menu-item--horizontal::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: var(--b-menu-item-padding-inline);\n right: var(--b-menu-item-padding-inline);\n height: var(--b-menu-active-bar-height);\n background: transparent;\n transition: background var(--b-menu-transition-duration);\n}\n\n.b-menu-item--horizontal:hover:not(.b-menu-item--disabled) {\n background: var(--b-menu-horizontal-item-hover-bg);\n color: var(--b-menu-horizontal-item-hover-color);\n}\n\n.b-menu-item--horizontal.b-menu-item--selected {\n background: var(--b-menu-horizontal-item-selected-bg);\n color: var(--b-menu-horizontal-item-selected-color);\n}\n\n.b-menu-item--horizontal.b-menu-item--selected::after {\n background: var(--b-menu-horizontal-item-selected-color);\n}\n\n/* ─────────────────────────────────────────────\n Icon & Label\n ───────────────────────────────────────────── */\n.b-menu-item__icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n font-size: var(--b-menu-icon-size);\n margin-inline-end: var(--b-menu-icon-margin-inline-end);\n}\n\n.b-menu-item__label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.b-menu-item__extra {\n margin-inline-start: auto;\n padding-inline-start: 8px;\n color: var(--b-menu-group-title-color);\n font-size: 12px;\n}\n\n/* ── Reduced motion ── */\n@media (prefers-reduced-motion: reduce) {\n .b-menu-item {\n transition: none;\n }\n\n .b-menu-item--horizontal::after {\n transition: none;\n }\n}\n</style>\n"],"mappings":""}