@shibui-ui/ui 1.24.1 → 1.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/dist/components/atoms/index.d.ts +45 -16
  2. package/dist/components/atoms/index.d.ts.map +1 -1
  3. package/dist/components/molecules/index.d.ts +20 -1
  4. package/dist/components/molecules/index.d.ts.map +1 -1
  5. package/dist/components/organisms/index.d.ts +17 -1
  6. package/dist/components/organisms/index.d.ts.map +1 -1
  7. package/dist/index.d.ts +3 -82
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +79 -80
  10. package/dist/index.js.map +1 -1
  11. package/dist/index10.js +82 -18
  12. package/dist/index10.js.map +1 -1
  13. package/dist/index11.js +84 -69
  14. package/dist/index11.js.map +1 -1
  15. package/dist/index12.js +40 -26
  16. package/dist/index12.js.map +1 -1
  17. package/dist/index13.js +16 -39
  18. package/dist/index13.js.map +1 -1
  19. package/dist/index14.js +29 -44
  20. package/dist/index14.js.map +1 -1
  21. package/dist/index15.js +16 -117
  22. package/dist/index15.js.map +1 -1
  23. package/dist/index16.js +48 -40
  24. package/dist/index16.js.map +1 -1
  25. package/dist/index17.js +41 -25
  26. package/dist/index17.js.map +1 -1
  27. package/dist/index18.js +76 -49
  28. package/dist/index18.js.map +1 -1
  29. package/dist/index19.js +19 -39
  30. package/dist/index19.js.map +1 -1
  31. package/dist/index194.js +94 -24
  32. package/dist/index194.js.map +1 -1
  33. package/dist/index195.js +2 -2
  34. package/dist/index197.js +2 -24
  35. package/dist/index197.js.map +1 -1
  36. package/dist/index198.js +74 -2
  37. package/dist/index198.js.map +1 -1
  38. package/dist/index199.js +64 -35
  39. package/dist/index199.js.map +1 -1
  40. package/dist/index20.js +21 -41
  41. package/dist/index20.js.map +1 -1
  42. package/dist/index200.js +2 -2
  43. package/dist/index201.js +54 -13
  44. package/dist/index201.js.map +1 -1
  45. package/dist/index202.js +2 -2
  46. package/dist/index203.js +2 -2
  47. package/dist/index204.js +143 -157
  48. package/dist/index204.js.map +1 -1
  49. package/dist/index205.js +43 -24
  50. package/dist/index205.js.map +1 -1
  51. package/dist/index206.js +51 -2
  52. package/dist/index206.js.map +1 -1
  53. package/dist/index207.js +2 -11
  54. package/dist/index207.js.map +1 -1
  55. package/dist/index208.js +33 -2
  56. package/dist/index208.js.map +1 -1
  57. package/dist/index209.js +2 -91
  58. package/dist/index209.js.map +1 -1
  59. package/dist/index21.js +90 -26
  60. package/dist/index21.js.map +1 -1
  61. package/dist/index210.js +6 -2
  62. package/dist/index210.js.map +1 -1
  63. package/dist/index211.js +2 -41
  64. package/dist/index211.js.map +1 -1
  65. package/dist/index212.js +260 -2
  66. package/dist/index212.js.map +1 -1
  67. package/dist/index213.js +16 -5
  68. package/dist/index213.js.map +1 -1
  69. package/dist/index214.js +2 -2
  70. package/dist/index215.js +2 -35
  71. package/dist/index215.js.map +1 -1
  72. package/dist/index216.js +59 -42
  73. package/dist/index216.js.map +1 -1
  74. package/dist/index217.js +32 -2
  75. package/dist/index217.js.map +1 -1
  76. package/dist/index218.js +2 -85
  77. package/dist/index218.js.map +1 -1
  78. package/dist/index219.js +2 -2
  79. package/dist/index22.js +41 -48
  80. package/dist/index22.js.map +1 -1
  81. package/dist/index220.js +73 -65
  82. package/dist/index220.js.map +1 -1
  83. package/dist/index221.js +81 -2
  84. package/dist/index221.js.map +1 -1
  85. package/dist/index222.js +2 -10
  86. package/dist/index222.js.map +1 -1
  87. package/dist/index223.js +133 -2
  88. package/dist/index223.js.map +1 -1
  89. package/dist/index224.js +2 -26
  90. package/dist/index224.js.map +1 -1
  91. package/dist/index225.js +2 -2
  92. package/dist/index226.js +66 -12
  93. package/dist/index226.js.map +1 -1
  94. package/dist/index227.js +97 -2
  95. package/dist/index227.js.map +1 -1
  96. package/dist/index228.js +2 -2
  97. package/dist/index229.js +62 -24
  98. package/dist/index229.js.map +1 -1
  99. package/dist/index23.js +50 -94
  100. package/dist/index23.js.map +1 -1
  101. package/dist/index230.js +2 -2
  102. package/dist/index231.js +2 -2
  103. package/dist/index232.js +12 -2
  104. package/dist/index232.js.map +1 -1
  105. package/dist/index233.js +5 -16
  106. package/dist/index233.js.map +1 -1
  107. package/dist/index234.js +2 -2
  108. package/dist/index235.js +11 -9
  109. package/dist/index235.js.map +1 -1
  110. package/dist/index236.js +2 -2
  111. package/dist/index237.js +76 -34
  112. package/dist/index237.js.map +1 -1
  113. package/dist/index238.js +2 -2
  114. package/dist/index239.js +2 -27
  115. package/dist/index239.js.map +1 -1
  116. package/dist/index24.js +37 -34
  117. package/dist/index24.js.map +1 -1
  118. package/dist/index240.js +39 -2
  119. package/dist/index240.js.map +1 -1
  120. package/dist/index241.js +2 -34
  121. package/dist/index241.js.map +1 -1
  122. package/dist/index242.js +235 -12
  123. package/dist/index242.js.map +1 -1
  124. package/dist/index243.js +82 -2
  125. package/dist/index243.js.map +1 -1
  126. package/dist/index244.js +2 -9
  127. package/dist/index244.js.map +1 -1
  128. package/dist/index245.js +94 -2
  129. package/dist/index245.js.map +1 -1
  130. package/dist/index246.js +2 -5
  131. package/dist/index246.js.map +1 -1
  132. package/dist/index247.js +268 -2
  133. package/dist/index247.js.map +1 -1
  134. package/dist/index248.js +2 -36
  135. package/dist/index248.js.map +1 -1
  136. package/dist/index249.js +21 -2
  137. package/dist/index249.js.map +1 -1
  138. package/dist/index25.js +51 -32
  139. package/dist/index25.js.map +1 -1
  140. package/dist/index250.js +2 -31
  141. package/dist/index250.js.map +1 -1
  142. package/dist/index251.js +9 -2
  143. package/dist/index251.js.map +1 -1
  144. package/dist/index252.js +2 -19
  145. package/dist/index252.js.map +1 -1
  146. package/dist/index253.js +15 -2
  147. package/dist/index253.js.map +1 -1
  148. package/dist/index254.js +2 -2
  149. package/dist/index255.js +135 -69
  150. package/dist/index255.js.map +1 -1
  151. package/dist/index256.js +2 -11
  152. package/dist/index256.js.map +1 -1
  153. package/dist/index257.js +5 -2
  154. package/dist/index257.js.map +1 -1
  155. package/dist/index258.js +2 -78
  156. package/dist/index258.js.map +1 -1
  157. package/dist/index259.js +9 -2
  158. package/dist/index259.js.map +1 -1
  159. package/dist/index26.js +31 -236
  160. package/dist/index26.js.map +1 -1
  161. package/dist/index260.js +2 -32
  162. package/dist/index260.js.map +1 -1
  163. package/dist/index261.js +2 -2
  164. package/dist/index262.js +92 -9
  165. package/dist/index262.js.map +1 -1
  166. package/dist/index263.js +59 -2
  167. package/dist/index263.js.map +1 -1
  168. package/dist/index264.js +2 -16
  169. package/dist/index264.js.map +1 -1
  170. package/dist/index265.js +41 -2
  171. package/dist/index265.js.map +1 -1
  172. package/dist/index266.js +2 -16
  173. package/dist/index266.js.map +1 -1
  174. package/dist/index267.js +34 -9
  175. package/dist/index267.js.map +1 -1
  176. package/dist/index268.js +8 -54
  177. package/dist/index268.js.map +1 -1
  178. package/dist/index269.js +2 -2
  179. package/dist/index27.js +27 -58
  180. package/dist/index27.js.map +1 -1
  181. package/dist/index270.js +42 -7
  182. package/dist/index270.js.map +1 -1
  183. package/dist/index271.js +2 -2
  184. package/dist/index272.js +2 -34
  185. package/dist/index272.js.map +1 -1
  186. package/dist/index273.js +16 -2
  187. package/dist/index273.js.map +1 -1
  188. package/dist/index274.js +9 -2
  189. package/dist/index274.js.map +1 -1
  190. package/dist/index275.js +6 -13
  191. package/dist/index275.js.map +1 -1
  192. package/dist/index276.js +2 -2
  193. package/dist/index277.js +8 -15
  194. package/dist/index277.js.map +1 -1
  195. package/dist/index278.js +2 -2
  196. package/dist/index279.js +55 -2
  197. package/dist/index279.js.map +1 -1
  198. package/dist/index28.js +247 -24
  199. package/dist/index28.js.map +1 -1
  200. package/dist/index280.js +2 -42
  201. package/dist/index280.js.map +1 -1
  202. package/dist/index281.js +2 -100
  203. package/dist/index281.js.map +1 -1
  204. package/dist/index282.js +20 -2
  205. package/dist/index282.js.map +1 -1
  206. package/dist/index283.js +2 -97
  207. package/dist/index283.js.map +1 -1
  208. package/dist/index284.js +33 -2
  209. package/dist/index284.js.map +1 -1
  210. package/dist/index285.js +6 -27
  211. package/dist/index285.js.map +1 -1
  212. package/dist/index286.js +2 -2
  213. package/dist/index287.js +9 -44
  214. package/dist/index287.js.map +1 -1
  215. package/dist/index288.js +2 -2
  216. package/dist/index289.js +2 -33
  217. package/dist/index289.js.map +1 -1
  218. package/dist/index29.js +249 -39
  219. package/dist/index29.js.map +1 -1
  220. package/dist/index290.js +36 -2
  221. package/dist/index290.js.map +1 -1
  222. package/dist/index291.js +2 -57
  223. package/dist/index291.js.map +1 -1
  224. package/dist/index292.js +24 -2
  225. package/dist/index292.js.map +1 -1
  226. package/dist/index293.js +2 -2
  227. package/dist/index294.js +26 -247
  228. package/dist/index294.js.map +1 -1
  229. package/dist/index295.js +2 -2
  230. package/dist/index296.js +2 -72
  231. package/dist/index296.js.map +1 -1
  232. package/dist/index297.js +42 -2
  233. package/dist/index297.js.map +1 -1
  234. package/dist/index298.js +7 -56
  235. package/dist/index298.js.map +1 -1
  236. package/dist/index299.js +2 -133
  237. package/dist/index299.js.map +1 -1
  238. package/dist/index30.js +32 -19
  239. package/dist/index30.js.map +1 -1
  240. package/dist/index300.js +30 -2
  241. package/dist/index300.js.map +1 -1
  242. package/dist/index301.js +2 -12
  243. package/dist/index301.js.map +1 -1
  244. package/dist/index302.js +34 -2
  245. package/dist/index302.js.map +1 -1
  246. package/dist/index303.js +2 -162
  247. package/dist/index303.js.map +1 -1
  248. package/dist/index304.js +26 -42
  249. package/dist/index304.js.map +1 -1
  250. package/dist/index305.js +2 -81
  251. package/dist/index305.js.map +1 -1
  252. package/dist/index306.js +10 -2
  253. package/dist/index306.js.map +1 -1
  254. package/dist/index307.js +2 -71
  255. package/dist/index307.js.map +1 -1
  256. package/dist/index308.js +2 -2
  257. package/dist/index309.js +19 -2
  258. package/dist/index309.js.map +1 -1
  259. package/dist/index31.js +96 -11
  260. package/dist/index31.js.map +1 -1
  261. package/dist/index310.js +2 -81
  262. package/dist/index310.js.map +1 -1
  263. package/dist/index311.js +2 -2
  264. package/dist/index312.js +42 -2
  265. package/dist/index312.js.map +1 -1
  266. package/dist/index313.js +2 -74
  267. package/dist/index313.js.map +1 -1
  268. package/dist/index314.js +25 -67
  269. package/dist/index314.js.map +1 -1
  270. package/dist/index315.js +2 -2
  271. package/dist/index316.js +9 -17
  272. package/dist/index316.js.map +1 -1
  273. package/dist/index317.js +2 -2
  274. package/dist/index318.js +84 -32
  275. package/dist/index318.js.map +1 -1
  276. package/dist/index319.js +2 -2
  277. package/dist/index32.js +40 -48
  278. package/dist/index32.js.map +1 -1
  279. package/dist/index320.js +68 -77
  280. package/dist/index320.js.map +1 -1
  281. package/dist/index321.js +2 -2
  282. package/dist/index322.js +12 -148
  283. package/dist/index322.js.map +1 -1
  284. package/dist/index323.js +1 -1
  285. package/dist/index324.js +28 -6
  286. package/dist/index324.js.map +1 -1
  287. package/dist/index325.js +2 -2
  288. package/dist/index326.js +78 -87
  289. package/dist/index326.js.map +1 -1
  290. package/dist/index327.js +2 -2
  291. package/dist/index328.js +78 -2
  292. package/dist/index328.js.map +1 -1
  293. package/dist/index329.js +2 -237
  294. package/dist/index329.js.map +1 -1
  295. package/dist/index33.js +20 -56
  296. package/dist/index33.js.map +1 -1
  297. package/dist/index330.js +11 -6
  298. package/dist/index330.js.map +1 -1
  299. package/dist/index331.js +2 -2
  300. package/dist/index332.js +18 -59
  301. package/dist/index332.js.map +1 -1
  302. package/dist/index333.js +2 -2
  303. package/dist/index334.js +12 -5
  304. package/dist/index334.js.map +1 -1
  305. package/dist/index335.js +2 -2
  306. package/dist/index336.js +2 -15
  307. package/dist/index336.js.map +1 -1
  308. package/dist/index337.js +88 -2
  309. package/dist/index337.js.map +1 -1
  310. package/dist/index338.js +24 -2
  311. package/dist/index338.js.map +1 -1
  312. package/dist/index339.js +2 -92
  313. package/dist/index339.js.map +1 -1
  314. package/dist/index34.js +59 -35
  315. package/dist/index34.js.map +1 -1
  316. package/dist/index340.js +42 -14
  317. package/dist/index340.js.map +1 -1
  318. package/dist/index341.js +2 -2
  319. package/dist/index342.js +22 -80
  320. package/dist/index342.js.map +1 -1
  321. package/dist/index343.js +2 -2
  322. package/dist/index344.js +2 -18
  323. package/dist/index344.js.map +1 -1
  324. package/dist/index345.js +16 -2
  325. package/dist/index345.js.map +1 -1
  326. package/dist/index346.js +2 -268
  327. package/dist/index346.js.map +1 -1
  328. package/dist/index347.js +176 -2
  329. package/dist/index347.js.map +1 -1
  330. package/dist/index348.js +2 -2
  331. package/dist/index349.js +35 -39
  332. package/dist/index349.js.map +1 -1
  333. package/dist/index35.js +101 -28
  334. package/dist/index35.js.map +1 -1
  335. package/dist/index350.js +3 -3
  336. package/dist/index350.js.map +1 -1
  337. package/dist/index351.js +2 -2
  338. package/dist/index352.js +19 -26
  339. package/dist/index352.js.map +1 -1
  340. package/dist/index357.js +26 -19
  341. package/dist/index357.js.map +1 -1
  342. package/dist/index36.js +115 -33
  343. package/dist/index36.js.map +1 -1
  344. package/dist/index37.js +41 -115
  345. package/dist/index37.js.map +1 -1
  346. package/dist/index38.js +34 -246
  347. package/dist/index38.js.map +1 -1
  348. package/dist/index39.js +30 -137
  349. package/dist/index39.js.map +1 -1
  350. package/dist/index4.js +26 -84
  351. package/dist/index4.js.map +1 -1
  352. package/dist/index40.js +26 -400
  353. package/dist/index40.js.map +1 -1
  354. package/dist/index41.js +28 -77
  355. package/dist/index41.js.map +1 -1
  356. package/dist/index42.js +23 -26
  357. package/dist/index42.js.map +1 -1
  358. package/dist/index43.js +36 -33
  359. package/dist/index43.js.map +1 -1
  360. package/dist/index44.js +62 -16
  361. package/dist/index44.js.map +1 -1
  362. package/dist/index45.js +138 -21
  363. package/dist/index45.js.map +1 -1
  364. package/dist/index46.js +129 -22
  365. package/dist/index46.js.map +1 -1
  366. package/dist/index47.js +41 -19
  367. package/dist/index47.js.map +1 -1
  368. package/dist/index48.js +11 -82
  369. package/dist/index48.js.map +1 -1
  370. package/dist/index49.js +56 -279
  371. package/dist/index49.js.map +1 -1
  372. package/dist/index5.js +21 -34
  373. package/dist/index5.js.map +1 -1
  374. package/dist/index50.js +280 -33
  375. package/dist/index50.js.map +1 -1
  376. package/dist/index51.js +74 -94
  377. package/dist/index51.js.map +1 -1
  378. package/dist/index52.js +66 -41
  379. package/dist/index52.js.map +1 -1
  380. package/dist/index53.js +333 -62
  381. package/dist/index53.js.map +1 -1
  382. package/dist/index54.js +96 -256
  383. package/dist/index54.js.map +1 -1
  384. package/dist/index55.js +38 -130
  385. package/dist/index55.js.map +1 -1
  386. package/dist/index56.js +251 -50
  387. package/dist/index56.js.map +1 -1
  388. package/dist/index57.js +144 -115
  389. package/dist/index57.js.map +1 -1
  390. package/dist/index58.js +93 -183
  391. package/dist/index58.js.map +1 -1
  392. package/dist/index59.js +33 -339
  393. package/dist/index59.js.map +1 -1
  394. package/dist/index6.js +2 -2
  395. package/dist/index60.js +102 -66
  396. package/dist/index60.js.map +1 -1
  397. package/dist/index61.js +73 -179
  398. package/dist/index61.js.map +1 -1
  399. package/dist/index62.js +117 -97
  400. package/dist/index62.js.map +1 -1
  401. package/dist/index63.js +113 -263
  402. package/dist/index63.js.map +1 -1
  403. package/dist/index64.js +258 -251
  404. package/dist/index64.js.map +1 -1
  405. package/dist/index65.js +177 -79
  406. package/dist/index65.js.map +1 -1
  407. package/dist/index66.js +261 -140
  408. package/dist/index66.js.map +1 -1
  409. package/dist/index67.js +183 -100
  410. package/dist/index67.js.map +1 -1
  411. package/dist/index68.js +28 -89
  412. package/dist/index68.js.map +1 -1
  413. package/dist/index69.js +20 -161
  414. package/dist/index69.js.map +1 -1
  415. package/dist/index7.js +394 -32
  416. package/dist/index7.js.map +1 -1
  417. package/dist/index70.js +190 -53
  418. package/dist/index70.js.map +1 -1
  419. package/dist/index71.js +204 -112
  420. package/dist/index71.js.map +1 -1
  421. package/dist/index72.js +2 -2
  422. package/dist/index73.js +89 -28
  423. package/dist/index73.js.map +1 -1
  424. package/dist/index74.js +126 -63
  425. package/dist/index74.js.map +1 -1
  426. package/dist/index75.js +122 -111
  427. package/dist/index75.js.map +1 -1
  428. package/dist/index76.js +67 -64
  429. package/dist/index76.js.map +1 -1
  430. package/dist/index77.js +112 -88
  431. package/dist/index77.js.map +1 -1
  432. package/dist/index78.js +87 -16
  433. package/dist/index78.js.map +1 -1
  434. package/dist/index79.js +151 -79
  435. package/dist/index79.js.map +1 -1
  436. package/dist/index8.js +25 -127
  437. package/dist/index8.js.map +1 -1
  438. package/dist/index80.js +104 -186
  439. package/dist/index80.js.map +1 -1
  440. package/dist/index81.js +59 -20
  441. package/dist/index81.js.map +1 -1
  442. package/dist/index82.js +17 -129
  443. package/dist/index82.js.map +1 -1
  444. package/dist/index83.js +88 -217
  445. package/dist/index83.js.map +1 -1
  446. package/dist/index84.js +64 -112
  447. package/dist/index84.js.map +1 -1
  448. package/dist/index9.js +30 -45
  449. package/dist/index9.js.map +1 -1
  450. package/dist/src/components/atoms/index.d.ts +45 -16
  451. package/dist/src/components/atoms/index.d.ts.map +1 -1
  452. package/dist/src/components/molecules/index.d.ts +20 -1
  453. package/dist/src/components/molecules/index.d.ts.map +1 -1
  454. package/dist/src/components/organisms/index.d.ts +17 -1
  455. package/dist/src/components/organisms/index.d.ts.map +1 -1
  456. package/dist/src/index.d.ts +3 -82
  457. package/dist/src/index.d.ts.map +1 -1
  458. package/dist/tokens.css +353 -7
  459. package/dist/vite.config.d.ts.map +1 -1
  460. package/package.json +4 -4
package/dist/index48.js CHANGED
@@ -1,96 +1,25 @@
1
1
  import { unsafeCSS, css, LitElement } from "lit";
2
- import { property, state, customElement } from "lit/decorators.js";
3
- import "./index22.js";
4
- import { breadcrumbTemplate } from "./index281.js";
5
- import componentCss from "./index282.js";
6
- import sharedTokens from "./index196.js";
7
- var __defProp = Object.defineProperty;
2
+ import { customElement } from "lit/decorators.js";
3
+ import { visuallyHiddenTemplate } from "./index350.js";
4
+ import styles from "./index351.js";
8
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
6
  var __decorateClass = (decorators, target, key, kind) => {
10
7
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
11
8
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
12
9
  if (decorator = decorators[i])
13
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
14
- if (kind && result) __defProp(target, key, result);
10
+ result = decorator(result) || result;
15
11
  return result;
16
12
  };
17
- let LibBreadcrumb = class extends LitElement {
18
- constructor() {
19
- super(...arguments);
20
- this.items = [];
21
- this.separator = "slash";
22
- this.size = "md";
23
- this.surface = "default";
24
- this.accent = "none";
25
- this.dark = false;
26
- this.maxVisible = 0;
27
- this._expanded = false;
28
- }
29
- /* ── Render ──────────────────────────────────────────── */
13
+ let LibVisuallyHidden = class extends LitElement {
30
14
  render() {
31
- return breadcrumbTemplate({
32
- items: this.items,
33
- separator: this.separator,
34
- size: this.size,
35
- surface: this.surface,
36
- accent: this.accent,
37
- dark: this.dark,
38
- maxVisible: this.maxVisible,
39
- expanded: this._expanded,
40
- onExpand: this._handleExpand.bind(this),
41
- onNavigate: this._handleNavigate.bind(this)
42
- });
43
- }
44
- /* ── Handlers ────────────────────────────────────────── */
45
- _handleExpand() {
46
- this._expanded = true;
47
- }
48
- _handleNavigate(item, index) {
49
- this.dispatchEvent(
50
- new CustomEvent("ui-lib-navigate", {
51
- detail: { item, index },
52
- bubbles: true,
53
- composed: true
54
- })
55
- );
15
+ return visuallyHiddenTemplate();
56
16
  }
57
17
  };
58
- LibBreadcrumb.styles = [
59
- css`
60
- ${unsafeCSS(sharedTokens)}
61
- `,
62
- css`
63
- ${unsafeCSS(componentCss)}
64
- `
65
- ];
66
- __decorateClass([
67
- property({ type: Array })
68
- ], LibBreadcrumb.prototype, "items", 2);
69
- __decorateClass([
70
- property({ type: String, reflect: true })
71
- ], LibBreadcrumb.prototype, "separator", 2);
72
- __decorateClass([
73
- property({ type: String, reflect: true })
74
- ], LibBreadcrumb.prototype, "size", 2);
75
- __decorateClass([
76
- property({ type: String, reflect: true })
77
- ], LibBreadcrumb.prototype, "surface", 2);
78
- __decorateClass([
79
- property({ type: String, reflect: true })
80
- ], LibBreadcrumb.prototype, "accent", 2);
81
- __decorateClass([
82
- property({ type: Boolean, reflect: true })
83
- ], LibBreadcrumb.prototype, "dark", 2);
84
- __decorateClass([
85
- property({ type: Number, attribute: "max-visible" })
86
- ], LibBreadcrumb.prototype, "maxVisible", 2);
87
- __decorateClass([
88
- state()
89
- ], LibBreadcrumb.prototype, "_expanded", 2);
90
- LibBreadcrumb = __decorateClass([
91
- customElement("lib-breadcrumb")
92
- ], LibBreadcrumb);
18
+ LibVisuallyHidden.styles = [css`${unsafeCSS(styles)}`];
19
+ LibVisuallyHidden = __decorateClass([
20
+ customElement("lib-visually-hidden")
21
+ ], LibVisuallyHidden);
93
22
  export {
94
- LibBreadcrumb
23
+ LibVisuallyHidden
95
24
  };
96
25
  //# sourceMappingURL=index48.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index48.js","sources":["../src/components/molecules/breadcrumb/lib-breadcrumb.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport \"../../atoms/icon/lib-icon.component\";\nimport type {\n BreadcrumbItem,\n BreadcrumbSeparator,\n BreadcrumbSize,\n BreadcrumbSurface,\n BreadcrumbAccent,\n} from \"./lib-breadcrumb.types\";\nimport { breadcrumbTemplate } from \"./lib-breadcrumb.html\";\nimport componentCss from \"./lib-breadcrumb.css?inline\";\nimport sharedTokens from \"../../../styles/shared/tokens.css?inline\";\n\nexport interface UiNavigateEventDetail {\n item: BreadcrumbItem;\n index: number;\n}\n\n/**\n * @element lib-breadcrumb\n * @fires ui-lib-navigate - Disparado al hacer clic en un crumb con href.\n *\n * @attr {BreadcrumbSeparator} separator - Tipo de separador: slash · chevron · dot · line\n * @attr {BreadcrumbSize} size - Tamaño: sm · md · lg\n * @attr {BreadcrumbSurface} surface - Superficie: default · filled · pill\n * @attr {BreadcrumbAccent} accent - Acento en ítem activo: none · kaki · celadon · bold\n * @attr {boolean} dark - Modo superficie oscura\n * @attr {number} max-visible - Si > 0, colapsa ítems intermedios cuando items.length > N\n */\n@customElement(\"lib-breadcrumb\")\nexport class LibBreadcrumb extends LitElement {\n static override styles = [\n css`\n ${unsafeCSS(sharedTokens)}\n `,\n css`\n ${unsafeCSS(componentCss)}\n `,\n ];\n\n /* ── Props públicas ──────────────────────────────────── */\n\n @property({ type: Array })\n items: BreadcrumbItem[] = [];\n\n @property({ type: String, reflect: true })\n separator: BreadcrumbSeparator = \"slash\";\n\n @property({ type: String, reflect: true })\n size: BreadcrumbSize = \"md\";\n\n @property({ type: String, reflect: true })\n surface: BreadcrumbSurface = \"default\";\n\n @property({ type: String, reflect: true })\n accent: BreadcrumbAccent = \"none\";\n\n @property({ type: Boolean, reflect: true })\n dark = false;\n\n @property({ type: Number, attribute: \"max-visible\" })\n maxVisible = 0;\n\n /* ── Estado interno ──────────────────────────────────── */\n\n @state()\n private _expanded = false;\n\n /* ── Render ──────────────────────────────────────────── */\n\n override render(): TemplateResult {\n return breadcrumbTemplate({\n items: this.items,\n separator: this.separator,\n size: this.size,\n surface: this.surface,\n accent: this.accent,\n dark: this.dark,\n maxVisible: this.maxVisible,\n expanded: this._expanded,\n onExpand: this._handleExpand.bind(this),\n onNavigate: this._handleNavigate.bind(this),\n });\n }\n\n /* ── Handlers ────────────────────────────────────────── */\n\n private _handleExpand(): void {\n this._expanded = true;\n }\n\n private _handleNavigate(item: BreadcrumbItem, index: number): void {\n this.dispatchEvent(\n new CustomEvent<UiNavigateEventDetail>(\"ui-lib-navigate\", {\n detail: { item, index },\n bubbles: true,\n composed: true,\n }),\n );\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"lib-breadcrumb\": LibBreadcrumb;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA+BO,IAAM,gBAAN,cAA4B,WAAW;AAAA,EAAvC,cAAA;AAAA,UAAA,GAAA,SAAA;AAaL,SAAA,QAA0B,CAAA;AAG1B,SAAA,YAAiC;AAGjC,SAAA,OAAuB;AAGvB,SAAA,UAA6B;AAG7B,SAAA,SAA2B;AAG3B,SAAA,OAAO;AAGP,SAAA,aAAa;AAKb,SAAQ,YAAY;AAAA,EAAA;AAAA;AAAA,EAIX,SAAyB;AAChC,WAAO,mBAAmB;AAAA,MACxB,OAAO,KAAK;AAAA,MACZ,WAAW,KAAK;AAAA,MAChB,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,QAAQ,KAAK;AAAA,MACb,MAAM,KAAK;AAAA,MACX,YAAY,KAAK;AAAA,MACjB,UAAU,KAAK;AAAA,MACf,UAAU,KAAK,cAAc,KAAK,IAAI;AAAA,MACtC,YAAY,KAAK,gBAAgB,KAAK,IAAI;AAAA,IAAA,CAC3C;AAAA,EACH;AAAA;AAAA,EAIQ,gBAAsB;AAC5B,SAAK,YAAY;AAAA,EACnB;AAAA,EAEQ,gBAAgB,MAAsB,OAAqB;AACjE,SAAK;AAAA,MACH,IAAI,YAAmC,mBAAmB;AAAA,QACxD,QAAQ,EAAE,MAAM,MAAA;AAAA,QAChB,SAAS;AAAA,QACT,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL;AACF;AAtEa,cACK,SAAS;AAAA,EACvB;AAAA,QACI,UAAU,YAAY,CAAC;AAAA;AAAA,EAE3B;AAAA,QACI,UAAU,YAAY,CAAC;AAAA;AAE7B;AAKA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,MAAA,CAAO;AAAA,GAZd,cAaX,WAAA,SAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAf9B,cAgBX,WAAA,aAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAlB9B,cAmBX,WAAA,QAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GArB9B,cAsBX,WAAA,WAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAxB9B,cAyBX,WAAA,UAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GA3B/B,cA4BX,WAAA,QAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,WAAW,eAAe;AAAA,GA9BzC,cA+BX,WAAA,cAAA,CAAA;AAKQ,gBAAA;AAAA,EADP,MAAA;AAAM,GAnCI,cAoCH,WAAA,aAAA,CAAA;AApCG,gBAAN,gBAAA;AAAA,EADN,cAAc,gBAAgB;AAAA,GAClB,aAAA;"}
1
+ {"version":3,"file":"index48.js","sources":["../src/components/atoms/visually-hidden/lib-visually-hidden.component.ts"],"sourcesContent":["import { LitElement, TemplateResult, css, unsafeCSS } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport { visuallyHiddenTemplate } from './lib-visually-hidden.html';\nimport styles from './lib-visually-hidden.css?inline';\n\n@customElement('lib-visually-hidden')\nexport class LibVisuallyHidden extends LitElement {\n static override styles = [css`${unsafeCSS(styles)}`];\n\n protected override render(): TemplateResult {\n return visuallyHiddenTemplate();\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;AAMO,IAAM,oBAAN,cAAgC,WAAW;AAAA,EAG7B,SAAyB;AAC1C,WAAO,uBAAA;AAAA,EACT;AACF;AANa,kBACK,SAAS,CAAC,MAAM,UAAU,MAAM,CAAC,EAAE;AADxC,oBAAN,gBAAA;AAAA,EADN,cAAc,qBAAqB;AAAA,GACvB,iBAAA;"}
package/dist/index49.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { unsafeCSS, css, LitElement } from "lit";
2
2
  import { property, state, customElement } from "lit/decorators.js";
3
- import { selectTemplate } from "./index283.js";
4
- import selectCss from "./index284.js";
3
+ import "./index25.js";
4
+ import { breadcrumbTemplate } from "./index194.js";
5
+ import componentCss from "./index195.js";
5
6
  import sharedTokens from "./index196.js";
6
7
  var __defProp = Object.defineProperty;
7
8
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -13,307 +14,83 @@ var __decorateClass = (decorators, target, key, kind) => {
13
14
  if (kind && result) __defProp(target, key, result);
14
15
  return result;
15
16
  };
16
- let LibSelect = class extends LitElement {
17
+ let LibBreadcrumb = class extends LitElement {
17
18
  constructor() {
18
19
  super(...arguments);
19
- this.label = "";
20
- this.placeholder = "Selecciona una opción";
21
- this.hint = "";
22
- this.errorMessage = "";
23
- this.required = false;
24
- this.optional = false;
25
- this.open = false;
26
- this.disabled = false;
27
- this.error = false;
28
- this.dark = false;
20
+ this.items = [];
21
+ this.separator = "slash";
29
22
  this.size = "md";
30
- this.variant = "default";
31
- this.value = "";
32
- this.multi = false;
33
- this.searchable = false;
34
- this._selectedLabel = "";
35
- this._selectedValues = [];
36
- this._selectedLabels = [];
37
- this._searchQuery = "";
38
- this._visibleCount = 0;
39
- this._handleOutsideClick = (e) => {
40
- if (this.open && !e.composedPath().includes(this)) {
41
- this._close();
42
- }
43
- };
44
- this._handleKeyDown = (e) => {
45
- if (e.key === "Escape" && this.open) {
46
- this._close();
47
- }
48
- };
49
- }
50
- connectedCallback() {
51
- super.connectedCallback();
52
- document.addEventListener("click", this._handleOutsideClick);
53
- document.addEventListener("keydown", this._handleKeyDown, true);
54
- this.addEventListener("option-selected", this._handleOptionSelected);
55
- }
56
- disconnectedCallback() {
57
- super.disconnectedCallback();
58
- document.removeEventListener("click", this._handleOutsideClick);
59
- document.removeEventListener("keydown", this._handleKeyDown, true);
60
- }
61
- /**
62
- * Reacts to external value changes.
63
- * Syncs _selectedLabel by inspecting slotted options.
64
- */
65
- updated(changed) {
66
- super.updated(changed);
67
- if (changed.has("value") && this.value) {
68
- this._syncSingleFromValue();
69
- }
70
- }
71
- /* ─────────────────────────────────────────────────────────
72
- PUBLIC API
73
- ───────────────────────────────────────────────────────── */
74
- /** Opens the dropdown panel. */
75
- openPanel() {
76
- if (!this.disabled) this._open();
77
- }
78
- /** Closes the dropdown panel. */
79
- closePanel() {
80
- this._close();
81
- }
82
- /** Clears current selection. */
83
- clear() {
84
- this.value = "";
85
- this._selectedLabel = "";
86
- this._selectedValues = [];
87
- this._selectedLabels = [];
88
- this._syncOptionStates();
23
+ this.surface = "default";
24
+ this.accent = "none";
25
+ this.dark = false;
26
+ this.maxVisible = 0;
27
+ this._expanded = false;
89
28
  }
90
- /* ─────────────────────────────────────────────────────────
91
- RENDER
92
- ───────────────────────────────────────────────────────── */
29
+ /* ── Render ──────────────────────────────────────────── */
93
30
  render() {
94
- return selectTemplate({
95
- label: this.label,
96
- placeholder: this.placeholder,
97
- hint: this.hint,
98
- errorMessage: this.errorMessage,
99
- required: this.required,
100
- optional: this.optional,
101
- open: this.open,
102
- disabled: this.disabled,
103
- error: this.error,
104
- dark: this.dark,
31
+ return breadcrumbTemplate({
32
+ items: this.items,
33
+ separator: this.separator,
105
34
  size: this.size,
106
- variant: this.variant,
107
- selectedLabel: this._selectedLabel,
108
- hasSelection: !!this._selectedLabel,
109
- multi: this.multi,
110
- selectedCount: this._selectedValues.length,
111
- searchable: this.searchable,
112
- searchQuery: this._searchQuery,
113
- visibleCount: this._visibleCount,
114
- onTriggerClick: this._handleTriggerClick.bind(this),
115
- onSearchInput: this._handleSearchInput.bind(this),
116
- onConfirm: this._handleConfirm.bind(this)
35
+ surface: this.surface,
36
+ accent: this.accent,
37
+ dark: this.dark,
38
+ maxVisible: this.maxVisible,
39
+ expanded: this._expanded,
40
+ onExpand: this._handleExpand.bind(this),
41
+ onNavigate: this._handleNavigate.bind(this)
117
42
  });
118
43
  }
119
- /* ─────────────────────────────────────────────────────────
120
- PRIVATE METHODS
121
- ───────────────────────────────────────────────────────── */
122
- _open() {
123
- this.open = true;
124
- this._updateVisibleCount();
125
- this.dispatchEvent(new CustomEvent("ui-lib-select-open", {
126
- bubbles: true,
127
- composed: true
128
- }));
129
- }
130
- _close() {
131
- this.open = false;
132
- this._searchQuery = "";
133
- this._showAllOptions();
134
- this.dispatchEvent(new CustomEvent("ui-lib-select-close", {
135
- bubbles: true,
136
- composed: true
137
- }));
138
- }
139
- _handleTriggerClick(e) {
140
- e.stopPropagation();
141
- if (this.disabled) return;
142
- if (this.open) {
143
- this._close();
144
- } else {
145
- this._open();
146
- }
147
- }
148
- _handleOptionSelected(e) {
149
- const custom = e;
150
- const { value, label } = custom.detail;
151
- if (this.multi) {
152
- this._toggleMultiValue(value, label);
153
- } else {
154
- this._selectSingle(value, label);
155
- this._close();
156
- }
157
- }
158
- _selectSingle(value, label) {
159
- this.value = value;
160
- this._selectedLabel = label;
161
- this._syncOptionStates();
162
- this.dispatchEvent(new CustomEvent("ui-lib-select-change", {
163
- detail: { value, label },
164
- bubbles: true,
165
- composed: true
166
- }));
167
- }
168
- _toggleMultiValue(value, label) {
169
- const idx = this._selectedValues.indexOf(value);
170
- if (idx === -1) {
171
- this._selectedValues = [...this._selectedValues, value];
172
- this._selectedLabels = [...this._selectedLabels, label];
173
- } else {
174
- this._selectedValues = this._selectedValues.filter((_, i) => i !== idx);
175
- this._selectedLabels = this._selectedLabels.filter((_, i) => i !== idx);
176
- }
177
- this._syncOptionStates();
178
- }
179
- _handleConfirm() {
180
- this.dispatchEvent(new CustomEvent("ui-lib-select-multi-change", {
181
- detail: {
182
- values: [...this._selectedValues],
183
- labels: [...this._selectedLabels]
184
- },
185
- bubbles: true,
186
- composed: true
187
- }));
188
- this._close();
189
- }
190
- _handleSearchInput(e) {
191
- const input = e.target;
192
- this._searchQuery = input.value;
193
- this._filterOptions(this._searchQuery);
194
- }
195
- /** Filters slotted lib-select-option elements by text match. */
196
- _filterOptions(query) {
197
- const options = Array.from(
198
- this.querySelectorAll("lib-select-option")
44
+ /* ── Handlers ────────────────────────────────────────── */
45
+ _handleExpand() {
46
+ this._expanded = true;
47
+ }
48
+ _handleNavigate(item, index) {
49
+ this.dispatchEvent(
50
+ new CustomEvent("ui-lib-navigate", {
51
+ detail: { item, index },
52
+ bubbles: true,
53
+ composed: true
54
+ })
199
55
  );
200
- const q = query.toLowerCase().trim();
201
- let visible = 0;
202
- options.forEach((opt) => {
203
- const text = (opt.textContent ?? "").toLowerCase();
204
- const match = !q || text.includes(q);
205
- opt.toggleAttribute("search-hidden", !match);
206
- if (match) visible++;
207
- });
208
- this._visibleCount = visible;
209
- }
210
- _showAllOptions() {
211
- const options = Array.from(this.querySelectorAll("lib-select-option"));
212
- options.forEach((opt) => opt.removeAttribute("search-hidden"));
213
- this._updateVisibleCount();
214
- }
215
- _updateVisibleCount() {
216
- const options = this.querySelectorAll("lib-select-option:not([search-hidden])");
217
- this._visibleCount = options.length;
218
- }
219
- /** Syncs selected/unselected state on all slotted option elements. */
220
- _syncOptionStates() {
221
- const options = Array.from(this.querySelectorAll("lib-select-option"));
222
- if (this.multi) {
223
- options.forEach((opt) => {
224
- opt.selected = this._selectedValues.includes(opt.value ?? "");
225
- });
226
- } else {
227
- options.forEach((opt) => {
228
- opt.selected = opt.value === this.value;
229
- });
230
- }
231
- }
232
- /** Called when `value` prop changes externally — syncs label from slotted options. */
233
- _syncSingleFromValue() {
234
- setTimeout(() => {
235
- var _a;
236
- const options = Array.from(
237
- this.querySelectorAll("lib-select-option")
238
- );
239
- const match = options.find((opt) => opt.value === this.value);
240
- if (match) {
241
- this._selectedLabel = ((_a = match.textContent) == null ? void 0 : _a.trim()) ?? "";
242
- options.forEach((opt) => {
243
- opt.selected = opt === match;
244
- });
245
- }
246
- }, 0);
247
56
  }
248
57
  };
249
- LibSelect.styles = [
250
- css`${unsafeCSS(sharedTokens)}`,
251
- css`${unsafeCSS(selectCss)}`
58
+ LibBreadcrumb.styles = [
59
+ css`
60
+ ${unsafeCSS(sharedTokens)}
61
+ `,
62
+ css`
63
+ ${unsafeCSS(componentCss)}
64
+ `
252
65
  ];
253
66
  __decorateClass([
254
- property({ type: String })
255
- ], LibSelect.prototype, "label", 2);
256
- __decorateClass([
257
- property({ type: String })
258
- ], LibSelect.prototype, "placeholder", 2);
259
- __decorateClass([
260
- property({ type: String })
261
- ], LibSelect.prototype, "hint", 2);
262
- __decorateClass([
263
- property({ type: String, attribute: "error-message" })
264
- ], LibSelect.prototype, "errorMessage", 2);
265
- __decorateClass([
266
- property({ type: Boolean, reflect: true })
267
- ], LibSelect.prototype, "required", 2);
268
- __decorateClass([
269
- property({ type: Boolean, reflect: true })
270
- ], LibSelect.prototype, "optional", 2);
271
- __decorateClass([
272
- property({ type: Boolean, reflect: true })
273
- ], LibSelect.prototype, "open", 2);
274
- __decorateClass([
275
- property({ type: Boolean, reflect: true })
276
- ], LibSelect.prototype, "disabled", 2);
277
- __decorateClass([
278
- property({ type: Boolean, reflect: true })
279
- ], LibSelect.prototype, "error", 2);
280
- __decorateClass([
281
- property({ type: Boolean, reflect: true })
282
- ], LibSelect.prototype, "dark", 2);
67
+ property({ type: Array })
68
+ ], LibBreadcrumb.prototype, "items", 2);
283
69
  __decorateClass([
284
70
  property({ type: String, reflect: true })
285
- ], LibSelect.prototype, "size", 2);
71
+ ], LibBreadcrumb.prototype, "separator", 2);
286
72
  __decorateClass([
287
73
  property({ type: String, reflect: true })
288
- ], LibSelect.prototype, "variant", 2);
74
+ ], LibBreadcrumb.prototype, "size", 2);
289
75
  __decorateClass([
290
- property({ type: String })
291
- ], LibSelect.prototype, "value", 2);
76
+ property({ type: String, reflect: true })
77
+ ], LibBreadcrumb.prototype, "surface", 2);
292
78
  __decorateClass([
293
- property({ type: Boolean, reflect: true })
294
- ], LibSelect.prototype, "multi", 2);
79
+ property({ type: String, reflect: true })
80
+ ], LibBreadcrumb.prototype, "accent", 2);
295
81
  __decorateClass([
296
82
  property({ type: Boolean, reflect: true })
297
- ], LibSelect.prototype, "searchable", 2);
298
- __decorateClass([
299
- state()
300
- ], LibSelect.prototype, "_selectedLabel", 2);
301
- __decorateClass([
302
- state()
303
- ], LibSelect.prototype, "_selectedValues", 2);
83
+ ], LibBreadcrumb.prototype, "dark", 2);
304
84
  __decorateClass([
305
- state()
306
- ], LibSelect.prototype, "_selectedLabels", 2);
307
- __decorateClass([
308
- state()
309
- ], LibSelect.prototype, "_searchQuery", 2);
85
+ property({ type: Number, attribute: "max-visible" })
86
+ ], LibBreadcrumb.prototype, "maxVisible", 2);
310
87
  __decorateClass([
311
88
  state()
312
- ], LibSelect.prototype, "_visibleCount", 2);
313
- LibSelect = __decorateClass([
314
- customElement("lib-select")
315
- ], LibSelect);
89
+ ], LibBreadcrumb.prototype, "_expanded", 2);
90
+ LibBreadcrumb = __decorateClass([
91
+ customElement("lib-breadcrumb")
92
+ ], LibBreadcrumb);
316
93
  export {
317
- LibSelect
94
+ LibBreadcrumb
318
95
  };
319
96
  //# sourceMappingURL=index49.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index49.js","sources":["../src/components/molecules/select/lib-select.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult, PropertyValues } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { selectTemplate } from './lib-select.html';\nimport selectCss from './lib-select.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport type { SelectSize, SelectVariant, SelectChangeDetail, SelectMultiChangeDetail } from './lib-select.types';\n\n/**\n * @element lib-select\n *\n * @fires ui-lib-select-change — Single: { value, label }\n * @fires ui-lib-select-multi-change — Multi: { values, labels }\n * @fires ui-lib-select-open — Panel abierto\n * @fires ui-lib-select-close — Panel cerrado\n *\n * @slot — lib-select-option children\n */\n@customElement('lib-select')\nexport class LibSelect extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(selectCss)}`,\n ];\n\n /* ── Field meta ── */\n @property({ type: String }) label = '';\n @property({ type: String }) placeholder = 'Selecciona una opción';\n @property({ type: String }) hint = '';\n @property({ type: String, attribute: 'error-message' }) errorMessage = '';\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n\n /* ── State ── */\n @property({ type: Boolean, reflect: true }) open = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) error = false;\n @property({ type: Boolean, reflect: true }) dark = false;\n\n /* ── Appearance ── */\n @property({ type: String, reflect: true }) size: SelectSize = 'md';\n @property({ type: String, reflect: true }) variant: SelectVariant = 'default';\n\n /* ── Single value ── */\n @property({ type: String }) value = '';\n\n /* ── Multi values (JSON array string or space-separated) ── */\n @property({ type: Boolean, reflect: true }) multi = false;\n\n /* ── Searchable ── */\n @property({ type: Boolean, reflect: true }) searchable = false;\n\n /* ── Internal state ── */\n @state() private _selectedLabel = '';\n @state() private _selectedValues: string[] = [];\n @state() private _selectedLabels: string[] = [];\n @state() private _searchQuery = '';\n @state() private _visibleCount = 0;\n\n /* ── Outside click handler (arrow fn for remove ref) ── */\n private readonly _handleOutsideClick = (e: MouseEvent): void => {\n if (this.open && !e.composedPath().includes(this)) {\n this._close();\n }\n };\n\n /* ── Escape key handler ── */\n private readonly _handleKeyDown = (e: KeyboardEvent): void => {\n if (e.key === 'Escape' && this.open) {\n this._close();\n }\n };\n\n override connectedCallback(): void {\n super.connectedCallback();\n document.addEventListener('click', this._handleOutsideClick);\n document.addEventListener('keydown', this._handleKeyDown, true);\n\n /* Listen for option-selected events bubbled from slotted lib-select-option */\n this.addEventListener('option-selected', this._handleOptionSelected as EventListener);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n document.removeEventListener('click', this._handleOutsideClick);\n document.removeEventListener('keydown', this._handleKeyDown, true);\n }\n\n /**\n * Reacts to external value changes.\n * Syncs _selectedLabel by inspecting slotted options.\n */\n protected override updated(changed: PropertyValues<this>): void {\n super.updated(changed);\n\n if (changed.has('value') && this.value) {\n this._syncSingleFromValue();\n }\n }\n\n /* ─────────────────────────────────────────────────────────\n PUBLIC API\n ───────────────────────────────────────────────────────── */\n\n /** Opens the dropdown panel. */\n public openPanel(): void {\n if (!this.disabled) this._open();\n }\n\n /** Closes the dropdown panel. */\n public closePanel(): void {\n this._close();\n }\n\n /** Clears current selection. */\n public clear(): void {\n this.value = '';\n this._selectedLabel = '';\n this._selectedValues = [];\n this._selectedLabels = [];\n this._syncOptionStates();\n }\n\n /* ─────────────────────────────────────────────────────────\n RENDER\n ───────────────────────────────────────────────────────── */\n\n override render(): TemplateResult {\n return selectTemplate({\n label: this.label,\n placeholder: this.placeholder,\n hint: this.hint,\n errorMessage: this.errorMessage,\n required: this.required,\n optional: this.optional,\n\n open: this.open,\n disabled: this.disabled,\n error: this.error,\n dark: this.dark,\n\n size: this.size,\n variant: this.variant,\n\n selectedLabel: this._selectedLabel,\n hasSelection: !!this._selectedLabel,\n\n multi: this.multi,\n selectedCount: this._selectedValues.length,\n\n searchable: this.searchable,\n searchQuery: this._searchQuery,\n visibleCount: this._visibleCount,\n\n onTriggerClick: this._handleTriggerClick.bind(this),\n onSearchInput: this._handleSearchInput.bind(this),\n onConfirm: this._handleConfirm.bind(this),\n });\n }\n\n /* ─────────────────────────────────────────────────────────\n PRIVATE METHODS\n ───────────────────────────────────────────────────────── */\n\n private _open(): void {\n this.open = true;\n this._updateVisibleCount();\n this.dispatchEvent(new CustomEvent('ui-lib-select-open', {\n bubbles: true, composed: true,\n }));\n }\n\n private _close(): void {\n this.open = false;\n this._searchQuery = '';\n this._showAllOptions();\n this.dispatchEvent(new CustomEvent('ui-lib-select-close', {\n bubbles: true, composed: true,\n }));\n }\n\n private _handleTriggerClick(e: Event): void {\n e.stopPropagation();\n if (this.disabled) return;\n if (this.open) {\n this._close();\n } else {\n this._open();\n }\n }\n\n private _handleOptionSelected(e: Event): void {\n const custom = e as CustomEvent<{ value: string; label: string }>;\n const { value, label } = custom.detail;\n\n if (this.multi) {\n this._toggleMultiValue(value, label);\n } else {\n this._selectSingle(value, label);\n this._close();\n }\n }\n\n private _selectSingle(value: string, label: string): void {\n this.value = value;\n this._selectedLabel = label;\n this._syncOptionStates();\n\n this.dispatchEvent(new CustomEvent<SelectChangeDetail>('ui-lib-select-change', {\n detail: { value, label },\n bubbles: true,\n composed: true,\n }));\n }\n\n private _toggleMultiValue(value: string, label: string): void {\n const idx = this._selectedValues.indexOf(value);\n\n if (idx === -1) {\n this._selectedValues = [...this._selectedValues, value];\n this._selectedLabels = [...this._selectedLabels, label];\n } else {\n this._selectedValues = this._selectedValues.filter((_, i) => i !== idx);\n this._selectedLabels = this._selectedLabels.filter((_, i) => i !== idx);\n }\n\n this._syncOptionStates();\n }\n\n private _handleConfirm(): void {\n this.dispatchEvent(new CustomEvent<SelectMultiChangeDetail>('ui-lib-select-multi-change', {\n detail: {\n values: [...this._selectedValues],\n labels: [...this._selectedLabels],\n },\n bubbles: true,\n composed: true,\n }));\n this._close();\n }\n\n private _handleSearchInput(e: Event): void {\n const input = e.target as HTMLInputElement;\n this._searchQuery = input.value;\n this._filterOptions(this._searchQuery);\n }\n\n /** Filters slotted lib-select-option elements by text match. */\n private _filterOptions(query: string): void {\n const options = Array.from(\n this.querySelectorAll('lib-select-option')\n ) as HTMLElement[];\n\n const q = query.toLowerCase().trim();\n let visible = 0;\n\n options.forEach(opt => {\n const text = (opt.textContent ?? '').toLowerCase();\n const match = !q || text.includes(q);\n opt.toggleAttribute('search-hidden', !match);\n if (match) visible++;\n });\n\n this._visibleCount = visible;\n }\n\n private _showAllOptions(): void {\n const options = Array.from(this.querySelectorAll('lib-select-option'));\n options.forEach(opt => opt.removeAttribute('search-hidden'));\n this._updateVisibleCount();\n }\n\n private _updateVisibleCount(): void {\n const options = this.querySelectorAll('lib-select-option:not([search-hidden])');\n this._visibleCount = options.length;\n }\n\n /** Syncs selected/unselected state on all slotted option elements. */\n private _syncOptionStates(): void {\n const options = Array.from(this.querySelectorAll('lib-select-option')) as Array<\n HTMLElement & { selected?: boolean; value?: string }\n >;\n\n if (this.multi) {\n options.forEach(opt => {\n opt.selected = this._selectedValues.includes(opt.value ?? '');\n });\n } else {\n options.forEach(opt => {\n opt.selected = opt.value === this.value;\n });\n }\n }\n\n /** Called when `value` prop changes externally — syncs label from slotted options. */\n private _syncSingleFromValue(): void {\n // Use setTimeout to allow slotted children to upgrade after hydration\n setTimeout(() => {\n const options = Array.from(\n this.querySelectorAll('lib-select-option')\n ) as Array<HTMLElement & { value?: string; selected?: boolean }>;\n\n const match = options.find(opt => opt.value === this.value);\n if (match) {\n this._selectedLabel = match.textContent?.trim() ?? '';\n options.forEach(opt => { opt.selected = opt === match; });\n }\n }, 0);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-select': LibSelect;\n }\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index49.js","sources":["../src/components/molecules/breadcrumb/lib-breadcrumb.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport \"../../atoms/icon/lib-icon.component\";\nimport type {\n BreadcrumbItem,\n BreadcrumbSeparator,\n BreadcrumbSize,\n BreadcrumbSurface,\n BreadcrumbAccent,\n} from \"./lib-breadcrumb.types\";\nimport { breadcrumbTemplate } from \"./lib-breadcrumb.html\";\nimport componentCss from \"./lib-breadcrumb.css?inline\";\nimport sharedTokens from \"../../../styles/shared/tokens.css?inline\";\n\nexport interface UiNavigateEventDetail {\n item: BreadcrumbItem;\n index: number;\n}\n\n/**\n * @element lib-breadcrumb\n * @fires ui-lib-navigate - Disparado al hacer clic en un crumb con href.\n *\n * @attr {BreadcrumbSeparator} separator - Tipo de separador: slash · chevron · dot · line\n * @attr {BreadcrumbSize} size - Tamaño: sm · md · lg\n * @attr {BreadcrumbSurface} surface - Superficie: default · filled · pill\n * @attr {BreadcrumbAccent} accent - Acento en ítem activo: none · kaki · celadon · bold\n * @attr {boolean} dark - Modo superficie oscura\n * @attr {number} max-visible - Si > 0, colapsa ítems intermedios cuando items.length > N\n */\n@customElement(\"lib-breadcrumb\")\nexport class LibBreadcrumb extends LitElement {\n static override styles = [\n css`\n ${unsafeCSS(sharedTokens)}\n `,\n css`\n ${unsafeCSS(componentCss)}\n `,\n ];\n\n /* ── Props públicas ──────────────────────────────────── */\n\n @property({ type: Array })\n items: BreadcrumbItem[] = [];\n\n @property({ type: String, reflect: true })\n separator: BreadcrumbSeparator = \"slash\";\n\n @property({ type: String, reflect: true })\n size: BreadcrumbSize = \"md\";\n\n @property({ type: String, reflect: true })\n surface: BreadcrumbSurface = \"default\";\n\n @property({ type: String, reflect: true })\n accent: BreadcrumbAccent = \"none\";\n\n @property({ type: Boolean, reflect: true })\n dark = false;\n\n @property({ type: Number, attribute: \"max-visible\" })\n maxVisible = 0;\n\n /* ── Estado interno ──────────────────────────────────── */\n\n @state()\n private _expanded = false;\n\n /* ── Render ──────────────────────────────────────────── */\n\n override render(): TemplateResult {\n return breadcrumbTemplate({\n items: this.items,\n separator: this.separator,\n size: this.size,\n surface: this.surface,\n accent: this.accent,\n dark: this.dark,\n maxVisible: this.maxVisible,\n expanded: this._expanded,\n onExpand: this._handleExpand.bind(this),\n onNavigate: this._handleNavigate.bind(this),\n });\n }\n\n /* ── Handlers ────────────────────────────────────────── */\n\n private _handleExpand(): void {\n this._expanded = true;\n }\n\n private _handleNavigate(item: BreadcrumbItem, index: number): void {\n this.dispatchEvent(\n new CustomEvent<UiNavigateEventDetail>(\"ui-lib-navigate\", {\n detail: { item, index },\n bubbles: true,\n composed: true,\n }),\n );\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"lib-breadcrumb\": LibBreadcrumb;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA+BO,IAAM,gBAAN,cAA4B,WAAW;AAAA,EAAvC,cAAA;AAAA,UAAA,GAAA,SAAA;AAaL,SAAA,QAA0B,CAAA;AAG1B,SAAA,YAAiC;AAGjC,SAAA,OAAuB;AAGvB,SAAA,UAA6B;AAG7B,SAAA,SAA2B;AAG3B,SAAA,OAAO;AAGP,SAAA,aAAa;AAKb,SAAQ,YAAY;AAAA,EAAA;AAAA;AAAA,EAIX,SAAyB;AAChC,WAAO,mBAAmB;AAAA,MACxB,OAAO,KAAK;AAAA,MACZ,WAAW,KAAK;AAAA,MAChB,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,QAAQ,KAAK;AAAA,MACb,MAAM,KAAK;AAAA,MACX,YAAY,KAAK;AAAA,MACjB,UAAU,KAAK;AAAA,MACf,UAAU,KAAK,cAAc,KAAK,IAAI;AAAA,MACtC,YAAY,KAAK,gBAAgB,KAAK,IAAI;AAAA,IAAA,CAC3C;AAAA,EACH;AAAA;AAAA,EAIQ,gBAAsB;AAC5B,SAAK,YAAY;AAAA,EACnB;AAAA,EAEQ,gBAAgB,MAAsB,OAAqB;AACjE,SAAK;AAAA,MACH,IAAI,YAAmC,mBAAmB;AAAA,QACxD,QAAQ,EAAE,MAAM,MAAA;AAAA,QAChB,SAAS;AAAA,QACT,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL;AACF;AAtEa,cACK,SAAS;AAAA,EACvB;AAAA,QACI,UAAU,YAAY,CAAC;AAAA;AAAA,EAE3B;AAAA,QACI,UAAU,YAAY,CAAC;AAAA;AAE7B;AAKA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,MAAA,CAAO;AAAA,GAZd,cAaX,WAAA,SAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAf9B,cAgBX,WAAA,aAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAlB9B,cAmBX,WAAA,QAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GArB9B,cAsBX,WAAA,WAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAxB9B,cAyBX,WAAA,UAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GA3B/B,cA4BX,WAAA,QAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,WAAW,eAAe;AAAA,GA9BzC,cA+BX,WAAA,cAAA,CAAA;AAKQ,gBAAA;AAAA,EADP,MAAA;AAAM,GAnCI,cAoCH,WAAA,aAAA,CAAA;AApCG,gBAAN,gBAAA;AAAA,EADN,cAAc,gBAAgB;AAAA,GAClB,aAAA;"}
package/dist/index5.js CHANGED
@@ -1,8 +1,8 @@
1
- import { unsafeCSS, css, LitElement } from "lit";
1
+ import { unsafeCSS, css, LitElement, html } from "lit";
2
2
  import { property, customElement } from "lit/decorators.js";
3
- import { statusDotTemplate } from "./index197.js";
4
- import statusDotCss from "./index198.js";
5
- import sharedTokens from "./index196.js";
3
+ import { styleMap as o } from "./index267.js";
4
+ import { aspectRatioTemplate } from "./index268.js";
5
+ import styles from "./index269.js";
6
6
  var __defProp = Object.defineProperty;
7
7
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
8
  var __decorateClass = (decorators, target, key, kind) => {
@@ -13,43 +13,30 @@ var __decorateClass = (decorators, target, key, kind) => {
13
13
  if (kind && result) __defProp(target, key, result);
14
14
  return result;
15
15
  };
16
- let LibStatusDot = class extends LitElement {
16
+ let LibAspectRatio = class extends LitElement {
17
17
  constructor() {
18
18
  super(...arguments);
19
- this.status = "offline";
20
- this.size = "md";
21
- this.bordered = false;
22
- this.label = false;
19
+ this.ratio = "1/1";
23
20
  }
24
21
  render() {
25
- return statusDotTemplate({
26
- status: this.status,
27
- size: this.size,
28
- bordered: this.bordered,
29
- label: this.label
30
- });
22
+ const hostStyles = {
23
+ "--lib-aspect-ratio": this.ratio
24
+ };
25
+ return html`
26
+ <div style=${o(hostStyles)}>
27
+ ${aspectRatioTemplate()}
28
+ </div>
29
+ `;
31
30
  }
32
31
  };
33
- LibStatusDot.styles = [
34
- css`${unsafeCSS(sharedTokens)}`,
35
- css`${unsafeCSS(statusDotCss)}`
36
- ];
32
+ LibAspectRatio.styles = [css`${unsafeCSS(styles)}`];
37
33
  __decorateClass([
38
- property({ type: String, reflect: true })
39
- ], LibStatusDot.prototype, "status", 2);
40
- __decorateClass([
41
- property({ type: String, reflect: true })
42
- ], LibStatusDot.prototype, "size", 2);
43
- __decorateClass([
44
- property({ type: Boolean, reflect: true })
45
- ], LibStatusDot.prototype, "bordered", 2);
46
- __decorateClass([
47
- property({ type: Boolean, reflect: true })
48
- ], LibStatusDot.prototype, "label", 2);
49
- LibStatusDot = __decorateClass([
50
- customElement("lib-status-dot")
51
- ], LibStatusDot);
34
+ property({ type: String })
35
+ ], LibAspectRatio.prototype, "ratio", 2);
36
+ LibAspectRatio = __decorateClass([
37
+ customElement("lib-aspect-ratio")
38
+ ], LibAspectRatio);
52
39
  export {
53
- LibStatusDot
40
+ LibAspectRatio
54
41
  };
55
42
  //# sourceMappingURL=index5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index5.js","sources":["../src/components/atoms/status-dot/lib-status-dot.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type { LibStatusDotStatus, LibStatusDotSize } from './lib-status-dot.html';\nimport { statusDotTemplate } from './lib-status-dot.html';\nimport statusDotCss from './lib-status-dot.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\n\n/**\n * @element lib-status-dot\n *\n * Indicador de presencia con animación semántica por estado.\n * Cada estado tiene su propio ritmo extraído de conceptos japoneses:\n * - 水 mizu : online — doble onda concéntrica (2.6s)\n * - 息 iki : away — respiración scale+opacity (3s)\n * - 速い hayai : busy — parpadeo asimétrico (1.1s)\n * - 間 ma : offline — quietud total, sin movimiento\n *\n * @example — uso básico\n * <lib-status-dot status=\"online\"></lib-status-dot>\n *\n * @example — con label inline\n * <lib-status-dot status=\"away\" label></lib-status-dot>\n *\n * @example — sobre avatar (borde blanco)\n * <lib-status-dot status=\"busy\" size=\"md\" bordered></lib-status-dot>\n *\n * @example — tamaño grande en dashboard\n * <lib-status-dot status=\"online\" size=\"lg\"></lib-status-dot>\n */\n@customElement('lib-status-dot')\nexport class LibStatusDot extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(statusDotCss)}`,\n ];\n\n /**\n * Estado de presencia.\n * - online : celadón · onda mizu\n * - away : kaki · respiración iki\n * - busy : error · parpadeo hayai\n * - offline : washi-400 · quietud ma\n */\n @property({ type: String, reflect: true })\n status: LibStatusDotStatus = 'offline';\n\n /**\n * Tamaño del punto.\n * - sm : 6px — tablas y listas densas\n * - md : 10px — uso general (default)\n * - lg : 14px — alta visibilidad\n */\n @property({ type: String, reflect: true })\n size: LibStatusDotSize = 'md';\n\n /**\n * Añade un halo blanco (`box-shadow: 0 0 0 2px --bg-elevated`)\n * para separar el punto visualmente cuando se posiciona sobre un avatar.\n */\n @property({ type: Boolean, reflect: true })\n bordered = false;\n\n /**\n * Muestra el texto del estado (Online / Away / Busy / Offline)\n * en línea con el punto. El color hereda el estado activo.\n */\n @property({ type: Boolean, reflect: true })\n label = false;\n\n override render(): TemplateResult {\n return statusDotTemplate({\n status: this.status,\n size: this.size,\n bordered: this.bordered,\n label: this.label,\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-status-dot': LibStatusDot;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AA8BO,IAAM,eAAN,cAA2B,WAAW;AAAA,EAAtC,cAAA;AAAA,UAAA,GAAA,SAAA;AAcL,SAAA,SAA6B;AAS7B,SAAA,OAAyB;AAOzB,SAAA,WAAW;AAOX,SAAA,QAAQ;AAAA,EAAA;AAAA,EAEC,SAAyB;AAChC,WAAO,kBAAkB;AAAA,MACvB,QAAU,KAAK;AAAA,MACf,MAAU,KAAK;AAAA,MACf,UAAU,KAAK;AAAA,MACf,OAAU,KAAK;AAAA,IAAA,CAChB;AAAA,EACH;AACF;AA/Ca,aACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,YAAY,CAAC;AAC/B;AAUA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAb9B,aAcX,WAAA,UAAA,CAAA;AASA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAtB9B,aAuBX,WAAA,QAAA,CAAA;AAOA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GA7B/B,aA8BX,WAAA,YAAA,CAAA;AAOA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GApC/B,aAqCX,WAAA,SAAA,CAAA;AArCW,eAAN,gBAAA;AAAA,EADN,cAAc,gBAAgB;AAAA,GAClB,YAAA;"}
1
+ {"version":3,"file":"index5.js","sources":["../src/components/atoms/aspect-ratio/lib-aspect-ratio.component.ts"],"sourcesContent":["import { LitElement, TemplateResult, css, html, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { aspectRatioTemplate } from './lib-aspect-ratio.html';\nimport styles from './lib-aspect-ratio.css?inline';\n\n@customElement('lib-aspect-ratio')\nexport class LibAspectRatio extends LitElement {\n static override styles = [css`${unsafeCSS(styles)}`];\n\n /**\n * El ratio deseado. Ejemplos: \"16/9\", \"4/3\", \"1/1\", \"21/9\"\n * @type {string}\n */\n @property({ type: String }) ratio = '1/1';\n\n protected override render(): TemplateResult {\n // Inyectamos el ratio directamente en el estilo del host\n const hostStyles = {\n '--lib-aspect-ratio': this.ratio\n };\n\n return html`\n <div style=${styleMap(hostStyles)}>\n ${aspectRatioTemplate()}\n </div>\n `;\n }\n}"],"names":["styleMap"],"mappings":";;;;;;;;;;;;;;;AAOO,IAAM,iBAAN,cAA6B,WAAW;AAAA,EAAxC,cAAA;AAAA,UAAA,GAAA,SAAA;AAOuB,SAAA,QAAQ;AAAA,EAAA;AAAA,EAEjB,SAAyB;AAE1C,UAAM,aAAa;AAAA,MACjB,sBAAsB,KAAK;AAAA,IAAA;AAG7B,WAAO;AAAA,mBACQA,EAAS,UAAU,CAAC;AAAA,UAC7B,qBAAqB;AAAA;AAAA;AAAA,EAG7B;AACF;AArBa,eACK,SAAS,CAAC,MAAM,UAAU,MAAM,CAAC,EAAE;AAMvB,gBAAA;AAAA,EAA3B,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAPf,eAOiB,WAAA,SAAA,CAAA;AAPjB,iBAAN,gBAAA;AAAA,EADN,cAAc,kBAAkB;AAAA,GACpB,cAAA;"}