@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
@@ -1 +1 @@
1
- {"version":3,"file":"index51.js","sources":["../src/components/molecules/dropdown/lib-dropdown.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { dropdownTemplate } from './lib-dropdown.html';\nimport dropdownCss from './lib-dropdown.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport type { DropdownTriggerVariant, DropdownAlign } from './lib-dropdown.types';\n\n/**\n * lib-dropdownMenú contextual flotante Shibui (SG-25)\n *\n * @prop label — Texto del trigger (si no hay slot \"trigger\")\n * @prop variant — 'default' | 'ghost' | 'filled' | 'kaki'\n * @prop align — 'left' (default) | 'right'\n * @prop open — Estado abierto (refleja en atributo)\n * @prop dark Menú con tema oscuro\n * @prop min-width Ancho mínimo del panel (e.g. '240px')\n * @prop aria-label aria-label del trigger (fallback: label)\n *\n * @fires ui-lib-dropdown-toggle { detail: { open: boolean } }\n * @fires ui-lib-dropdown-item{ detail: { target: HTMLElement } } al activar un item\n *\n * @slot triggerContenido personalizado del botón (reemplaza `label`)\n * @slot header Cabecera del panel (búsqueda, título)\n * @slot Items del menú (.dd-item, .dd-sep, .dd-group-label)\n * @slot footer Pie del panel (acciones de confirmación)\n *\n * ─── Clases de item (light DOM, sin shadow) ─────────────────\n * .dd-item — fila de acción (button o a)\n * .dd-item.is-activeseleccionado\n * .dd-item.is-danger acción destructiva\n * .dd-item.is-disabled — no interactivo\n * .dd-sep separador horizontal (div o hr)\n * .dd-group-label — etiqueta de sección (div o span)\n *\n * ─── Clases internas de item (requieren CSS global) ─────────\n * .dd-item-icon icono a la izquierda\n * .dd-item-body wrapper para label + desc de dos líneas\n * .dd-item-label primera línea del body\n * .dd-item-desc segunda línea (mono, muted)\n * .dd-item-hint shortcut a la derecha (margin-left:auto)\n * .dd-item-check check de selección (opacity:0 por defecto)\n */\n@customElement('lib-dropdown')\nexport class LibDropdown extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(dropdownCss)}`,\n ];\n\n @property({ type: String })\n label = 'Opciones';\n\n @property({ type: String, reflect: true })\n variant: DropdownTriggerVariant = 'default';\n\n @property({ type: String, reflect: true })\n align: DropdownAlign = 'left';\n\n @property({ type: Boolean, reflect: true })\n open = false;\n\n @property({ type: Boolean, reflect: true })\n dark = false;\n\n @property({ type: String, attribute: 'min-width' })\n minWidth = '';\n\n @property({ type: String, attribute: 'aria-label' })\n override ariaLabel = '';\n\n /* ── Lifecycle ── */\n override connectedCallback(): void {\n super.connectedCallback();\n window.addEventListener('click', this._onOutsideClick);\n window.addEventListener('keydown', this._onWindowKey);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener('click', this._onOutsideClick);\n window.removeEventListener('keydown', this._onWindowKey);\n }\n\n /* ── Toggle ── */\n _toggle(): void {\n this.open = !this.open;\n this.dispatchEvent(new CustomEvent('ui-lib-dropdown-toggle', {\n detail: { open: this.open },\n bubbles: true,\n composed: true,\n }));\n if (this.open) {\n // Foco al primer item al abrir con teclado\n requestAnimationFrame((): void => {\n const first = this._getItems()[0];\n first?.focus();\n });\n }\n }\n\n /* ── Outside click ── */\n private _onOutsideClick = (e: Event): void => {\n if (this.open && !e.composedPath().includes(this)) {\n this.open = false;\n }\n };\n\n /* ── Global Escape ── */\n private _onWindowKey = (e: KeyboardEvent): void => {\n if (this.open && e.key === 'Escape') {\n this.open = false;\n // Devolver foco al trigger\n const trigger = this.shadowRoot?.querySelector<HTMLButtonElement>('.dd-trigger');\n trigger?.focus();\n }\n };\n\n /* ── Trigger keydown (Arrow Down abre el menú) ── */\n _handleTriggerKey(e: KeyboardEvent): void {\n if (e.key === 'ArrowDown' || e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if (!this.open) this._toggle();\n }\n }\n\n /* ── Menu keydown (Arrow Up/Down navega entre items) ── */\n _handleMenuKey(e: KeyboardEvent): void {\n const items = this._getItems();\n if (!items.length) return;\n\n const current = document.activeElement as HTMLElement;\n const idx = items.indexOf(current);\n\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n const next = items[(idx + 1) % items.length];\n next?.focus();\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n const prev = items[(idx - 1 + items.length) % items.length];\n prev?.focus();\n } else if (e.key === 'Tab') {\n this.open = false;\n }\n }\n\n /* ── Obtiene los items focusables del slot default ── */\n private _getItems(): HTMLElement[] {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>('slot:not([name])');\n if (!slot) return [];\n return slot.assignedElements({ flatten: true })\n .filter(el =>\n el.classList.contains('dd-item') &&\n !el.classList.contains('is-disabled')\n ) as HTMLElement[];\n }\n\n /* ── Detecta si un slot con nombre tiene contenido ── */\n _hasSlot(name: string): boolean {\n return !!this.querySelector(`[slot=\"${name}\"]`);\n }\n\n protected override render(): TemplateResult {\n return dropdownTemplate(this);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-dropdown': LibDropdown;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AA2CO,IAAM,cAAN,cAA0B,WAAW;AAAA,EAArC,cAAA;AAAA,UAAA,GAAA,SAAA;AAOL,SAAA,QAAQ;AAGR,SAAA,UAAkC;AAGlC,SAAA,QAAuB;AAGvB,SAAA,OAAO;AAGP,SAAA,OAAO;AAGP,SAAA,WAAW;AAGX,SAAS,YAAY;AAiCrB,SAAQ,kBAAkB,CAAC,MAAmB;AAC5C,UAAI,KAAK,QAAQ,CAAC,EAAE,eAAe,SAAS,IAAI,GAAG;AACjD,aAAK,OAAO;AAAA,MACd;AAAA,IACF;AAGA,SAAQ,eAAe,CAAC,MAA2B;;AACjD,UAAI,KAAK,QAAQ,EAAE,QAAQ,UAAU;AACnC,aAAK,OAAO;AAEZ,cAAM,WAAU,UAAK,eAAL,mBAAiB,cAAiC;AAClE,2CAAS;AAAA,MACX;AAAA,IACF;AAAA,EAAA;AAAA;AAAA,EA5CS,oBAA0B;AACjC,UAAM,kBAAA;AACN,WAAO,iBAAiB,SAAS,KAAK,eAAe;AACrD,WAAO,iBAAiB,WAAW,KAAK,YAAY;AAAA,EACtD;AAAA,EAES,uBAA6B;AACpC,UAAM,qBAAA;AACN,WAAO,oBAAoB,SAAS,KAAK,eAAe;AACxD,WAAO,oBAAoB,WAAW,KAAK,YAAY;AAAA,EACzD;AAAA;AAAA,EAGA,UAAgB;AACd,SAAK,OAAO,CAAC,KAAK;AAClB,SAAK,cAAc,IAAI,YAAY,0BAA0B;AAAA,MAC3D,QAAQ,EAAE,MAAM,KAAK,KAAA;AAAA,MACrB,SAAS;AAAA,MACT,UAAU;AAAA,IAAA,CACX,CAAC;AACF,QAAI,KAAK,MAAM;AAEb,4BAAsB,MAAY;AAChC,cAAM,QAAQ,KAAK,UAAA,EAAY,CAAC;AAChC,uCAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,EACF;AAAA;AAAA,EAoBA,kBAAkB,GAAwB;AACxC,QAAI,EAAE,QAAQ,eAAe,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AAC/D,QAAE,eAAA;AACF,UAAI,CAAC,KAAK,KAAM,MAAK,QAAA;AAAA,IACvB;AAAA,EACF;AAAA;AAAA,EAGA,eAAe,GAAwB;AACrC,UAAM,QAAQ,KAAK,UAAA;AACnB,QAAI,CAAC,MAAM,OAAQ;AAEnB,UAAM,UAAU,SAAS;AACzB,UAAM,MAAM,MAAM,QAAQ,OAAO;AAEjC,QAAI,EAAE,QAAQ,aAAa;AACzB,QAAE,eAAA;AACF,YAAM,OAAO,OAAO,MAAM,KAAK,MAAM,MAAM;AAC3C,mCAAM;AAAA,IACR,WAAW,EAAE,QAAQ,WAAW;AAC9B,QAAE,eAAA;AACF,YAAM,OAAO,OAAO,MAAM,IAAI,MAAM,UAAU,MAAM,MAAM;AAC1D,mCAAM;AAAA,IACR,WAAW,EAAE,QAAQ,OAAO;AAC1B,WAAK,OAAO;AAAA,IACd;AAAA,EACF;AAAA;AAAA,EAGQ,YAA2B;;AACjC,UAAM,QAAO,UAAK,eAAL,mBAAiB,cAA+B;AAC7D,QAAI,CAAC,KAAM,QAAO,CAAA;AAClB,WAAO,KAAK,iBAAiB,EAAE,SAAS,KAAA,CAAM,EAC3C;AAAA,MAAO,CAAA,OACN,GAAG,UAAU,SAAS,SAAS,KAC/B,CAAC,GAAG,UAAU,SAAS,aAAa;AAAA,IAAA;AAAA,EAE1C;AAAA;AAAA,EAGA,SAAS,MAAuB;AAC9B,WAAO,CAAC,CAAC,KAAK,cAAc,UAAU,IAAI,IAAI;AAAA,EAChD;AAAA,EAEmB,SAAyB;AAC1C,WAAO,iBAAiB,IAAI;AAAA,EAC9B;AACF;AA1Ha,YACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,WAAW,CAAC;AAC9B;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GANf,YAOX,WAAA,SAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAT9B,YAUX,WAAA,WAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAZ9B,YAaX,WAAA,SAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAf/B,YAgBX,WAAA,QAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAlB/B,YAmBX,WAAA,QAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,WAAW,aAAa;AAAA,GArBvC,YAsBX,WAAA,YAAA,CAAA;AAGS,gBAAA;AAAA,EADR,SAAS,EAAE,MAAM,QAAQ,WAAW,cAAc;AAAA,GAxBxC,YAyBF,WAAA,aAAA,CAAA;AAzBE,cAAN,gBAAA;AAAA,EADN,cAAc,cAAc;AAAA,GAChB,WAAA;"}
1
+ {"version":3,"file":"index51.js","sources":["../src/components/molecules/checkbox-card/lib-checkbox-card.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { checkboxCardTemplate } from './lib-checkbox-card.html';\nimport checkboxCardCss from './lib-checkbox-card.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport type {\n CheckboxCardColor,\n CheckboxCardLayout,\n CheckboxCardInputType,\n} from './lib-checkbox-card.types';\n\n/**\n * lib-checkbox-cardTarjeta seleccionable Shibui (SG-57)\n *\n * La mecánica de checked se gestiona con CSS puro vía\n * `input:checked ~ .cc-body`. El componente solo gestiona\n * el estado, el ripple y los eventos.\n *\n * @prop checked — Estado checked (refleja en atributo)\n * @prop input-type 'checkbox' | 'radio'\n * @prop name Nombre del grupo (requerido en radio)\n * @prop value Valor del input\n * @prop color — 'kaki' | 'celadon'\n * @prop layout 'vertical' | 'horizontal' | 'compact'\n * @prop card-titleTítulo (alternativa a slot)\n * @prop desc — Descripción (alternativa a slot)\n * @prop check-shape'square' | 'pill'\n * @prop dark Surface oscura\n * @prop disabled Estado deshabilitado\n * @prop error Estado de error\n * @prop image — Modo imagen (sin padding en .cc-body)\n *\n * @fires ui-lib-checkbox-card-change{ detail: { checked: boolean, value: string } }\n *\n * @slot icon Icono SVG o imagen\n * @slot badgeBadge/etiqueta\n * @slot title — Título (sobreescribe card-title prop)\n * @slot desc Descripción (sobreescribe desc prop)\n * @slot price Bloque de precio\n * @slot divider Línea divisoria\n * @slot features Lista de características\n * @slot image Imagen con aspect-ratio 16/9\n * @slot Contenido libre\n */\n@customElement('lib-checkbox-card')\nexport class LibCheckboxCard extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(checkboxCardCss)}`,\n ];\n\n @property({ type: Boolean, reflect: true })\n checked = false;\n\n @property({ type: String, reflect: true, attribute: 'input-type' })\n inputType: CheckboxCardInputType = 'checkbox';\n\n @property({ type: String })\n name = '';\n\n @property({ type: String })\n value = '';\n\n @property({ type: String, reflect: true })\n color: CheckboxCardColor = 'kaki';\n\n @property({ type: String, reflect: true })\n layout: CheckboxCardLayout = 'vertical';\n\n @property({ type: String, attribute: 'card-title' })\n cardTitle = '';\n\n @property({ type: String })\n desc = '';\n\n @property({ type: String, attribute: 'check-shape' })\n checkShape: 'square' | 'pill' = 'square';\n\n @property({ type: Boolean, reflect: true })\n dark = false;\n\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @property({ type: Boolean, reflect: true })\n error = false;\n\n @property({ type: Boolean, reflect: true })\n image = false;\n\n @query('.cc-ripple')\n declare private _rippleEl: HTMLElement | null;\n\n /* ── Ripple en click ── */\n _handleClick(e: MouseEvent): void {\n if (this.disabled) return;\n this._spawnRipple(e);\n }\n\n private _spawnRipple(e: MouseEvent): void {\n const ripple = this._rippleEl;\n if (!ripple) return;\n\n const rect = ripple.getBoundingClientRect();\n const dot = document.createElement('span');\n dot.className = 'cc-ripple-dot';\n dot.style.left = `${e.clientX - rect.left - 2}px`;\n dot.style.top = `${e.clientY - rect.top - 2}px`;\n ripple.appendChild(dot);\n dot.addEventListener('animationend', (): void => dot.remove(), { once: true });\n }\n\n /* ── Cambio de estado ── */\n _handleChange(e: Event): void {\n const input = e.target as HTMLInputElement;\n this.checked = input.checked;\n this.dispatchEvent(new CustomEvent('ui-lib-checkbox-card-change', {\n detail: { checked: this.checked, value: this.value },\n bubbles: true,\n composed: true,\n }));\n }\n\n /* Helper para detectar slots con contenido */\n _hasSlot(name: string): boolean {\n return !!this.querySelector(`[slot=\"${name}\"]`);\n }\n\n protected override render(): TemplateResult {\n return checkboxCardTemplate(this);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-checkbox-card': LibCheckboxCard;\n }\n}"],"names":[],"mappings":"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"}
package/dist/index52.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { unsafeCSS, css, LitElement } from "lit";
2
- import { property, customElement } from "lit/decorators.js";
3
- import { emptyStateTemplate } from "./index289.js";
4
- import emptyStateCss from "./index290.js";
2
+ import { property, query, customElement } from "lit/decorators.js";
3
+ import { chipTemplate } from "./index201.js";
4
+ import chipCss from "./index202.js";
5
5
  import sharedTokens from "./index196.js";
6
6
  var __defProp = Object.defineProperty;
7
7
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -13,63 +13,88 @@ var __decorateClass = (decorators, target, key, kind) => {
13
13
  if (kind && result) __defProp(target, key, result);
14
14
  return result;
15
15
  };
16
- let LibEmptyState = class extends LitElement {
16
+ let LibChip = class extends LitElement {
17
17
  constructor() {
18
18
  super(...arguments);
19
- this.heading = "";
20
- this.description = "";
21
- this.kanji = "";
22
- this.tone = "neutral";
23
- this.layout = "default";
19
+ this.kind = "static";
24
20
  this.size = "md";
25
- this.bordered = false;
26
- this.ghost = false;
21
+ this.color = "default";
22
+ this.selected = false;
23
+ this.dot = false;
24
+ this.ariaLabel = "";
25
+ }
26
+ /* ── Toggle ── */
27
+ _handleToggle() {
28
+ this.selected = !this.selected;
29
+ this.dispatchEvent(new CustomEvent("ui-lib-chip-toggle", {
30
+ detail: { selected: this.selected },
31
+ bubbles: true,
32
+ composed: true
33
+ }));
34
+ }
35
+ /* ── Remove con animación de salida ── */
36
+ _handleRemove(e) {
37
+ e.stopPropagation();
38
+ const el = this._inputEl;
39
+ if (!el) {
40
+ this._emitRemove();
41
+ return;
42
+ }
43
+ el.classList.add("is-removing");
44
+ el.addEventListener("animationend", () => {
45
+ this._emitRemove();
46
+ }, { once: true });
47
+ }
48
+ _emitRemove() {
49
+ this.dispatchEvent(new CustomEvent("ui-lib-chip-remove", {
50
+ detail: {},
51
+ bubbles: true,
52
+ composed: true
53
+ }));
54
+ }
55
+ /* ── Animación de entrada (llamar desde fuera si se crea dinámicamente) ── */
56
+ animateIn() {
57
+ var _a;
58
+ const el = this._inputEl ?? ((_a = this.shadowRoot) == null ? void 0 : _a.querySelector(".chip, .chip-toggle"));
59
+ if (!el) return;
60
+ el.classList.remove("is-entering");
61
+ void el.offsetWidth;
62
+ el.classList.add("is-entering");
63
+ el.addEventListener("animationend", () => el.classList.remove("is-entering"), { once: true });
27
64
  }
28
65
  render() {
29
- return emptyStateTemplate({
30
- heading: this.heading,
31
- description: this.description,
32
- kanji: this.kanji,
33
- tone: this.tone,
34
- layout: this.layout,
35
- size: this.size,
36
- bordered: this.bordered,
37
- ghost: this.ghost
38
- });
66
+ return chipTemplate(this);
39
67
  }
40
68
  };
41
- LibEmptyState.styles = [
69
+ LibChip.styles = [
42
70
  css`${unsafeCSS(sharedTokens)}`,
43
- css`${unsafeCSS(emptyStateCss)}`
71
+ css`${unsafeCSS(chipCss)}`
44
72
  ];
45
- __decorateClass([
46
- property({ type: String })
47
- ], LibEmptyState.prototype, "heading", 2);
48
- __decorateClass([
49
- property({ type: String })
50
- ], LibEmptyState.prototype, "description", 2);
51
- __decorateClass([
52
- property({ type: String })
53
- ], LibEmptyState.prototype, "kanji", 2);
54
73
  __decorateClass([
55
74
  property({ type: String, reflect: true })
56
- ], LibEmptyState.prototype, "tone", 2);
75
+ ], LibChip.prototype, "kind", 2);
57
76
  __decorateClass([
58
77
  property({ type: String, reflect: true })
59
- ], LibEmptyState.prototype, "layout", 2);
78
+ ], LibChip.prototype, "size", 2);
60
79
  __decorateClass([
61
80
  property({ type: String, reflect: true })
62
- ], LibEmptyState.prototype, "size", 2);
81
+ ], LibChip.prototype, "color", 2);
63
82
  __decorateClass([
64
83
  property({ type: Boolean, reflect: true })
65
- ], LibEmptyState.prototype, "bordered", 2);
84
+ ], LibChip.prototype, "selected", 2);
66
85
  __decorateClass([
67
86
  property({ type: Boolean, reflect: true })
68
- ], LibEmptyState.prototype, "ghost", 2);
69
- LibEmptyState = __decorateClass([
70
- customElement("lib-empty-state")
71
- ], LibEmptyState);
87
+ ], LibChip.prototype, "dot", 2);
88
+ __decorateClass([
89
+ property({ type: String, attribute: "aria-label" })
90
+ ], LibChip.prototype, "ariaLabel", 2);
91
+ __decorateClass([
92
+ query(".chip-input")
93
+ ], LibChip.prototype, "_inputEl", 2);
94
+ LibChip = __decorateClass([
95
+ customElement("lib-chip")
96
+ ], LibChip);
72
97
  export {
73
- LibEmptyState
98
+ LibChip
74
99
  };
75
100
  //# sourceMappingURL=index52.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index52.js","sources":["../src/components/molecules/empty-state/lib-empty-state.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { emptyStateTemplate } from './lib-empty-state.html';\nimport type { LibEmptyStateTone, LibEmptyStateLayout, LibEmptyStateSize } from './lib-empty-state.html';\nimport emptyStateCss from './lib-empty-state.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\n\nexport type { LibEmptyStateTone, LibEmptyStateLayout, LibEmptyStateSize };\n\n/**\n * @element lib-empty-state\n *\n * Tres zonas: ilustración (icono Phosphor o kanji), copy, acciones.\n * Todas las zonas son opcionales la mínima expresión es solo `heading`.\n *\n * @slot illustration Icono Phosphor (o cualquier elemento visual)\n * @slot actions Botones de acción (lib-button u otros)\n *\n * @example — default con icono\n * <lib-empty-state heading=\"Carpeta vacía\" description=\"Sube tu primer archivo.\">\n * <ph-folder-open slot=\"illustration\" weight=\"regular\"></ph-folder-open>\n * <lib-button slot=\"actions\" variant=\"primary\">Subir</lib-button>\n * </lib-empty-state>\n *\n * @examplekanji como ilustración\n * <lib-empty-state kanji=\"無\" heading=\"Sin resultados\" description=\"Prueba otros términos.\">\n * <lib-button slot=\"actions\" variant=\"ghost\">Limpiar filtros</lib-button>\n * </lib-empty-state>\n *\n * @example inline con tone\n * <lib-empty-state layout=\"inline\" tone=\"kaki\" heading=\"Empieza aquí\" size=\"sm\">\n * <ph-sparkle slot=\"illustration\" weight=\"regular\"></ph-sparkle>\n * <lib-button slot=\"actions\" variant=\"accent\">Crear</lib-button>\n * </lib-empty-state>\n *\n * @example — bordered (dropzone)\n * <lib-empty-state bordered heading=\"Arrastra aquí tus archivos\">\n * <ph-plus slot=\"illustration\" weight=\"regular\"></ph-plus>\n * </lib-empty-state>\n */\n@customElement('lib-empty-state')\nexport class LibEmptyState extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(emptyStateCss)}`,\n ];\n\n /**\n * Título principal del estado vacío.\n * Se usa `heading` en lugar de `title` para evitar colisión con `HTMLElement.title`.\n */\n @property({ type: String })\n heading = '';\n\n /** Texto descriptivo secundario bajo el título. */\n @property({ type: String })\n description = '';\n\n /**\n * Carácter kanji como ilustración tipográfica (ej: 無, 空, 迷).\n * Cuando se especifica, sustituye al slot `illustration`.\n */\n @property({ type: String })\n kanji = '';\n\n /**\n * Tono cromático del icono.\n * - neutral (default): washi\n * - kaki: cálido, primer uso, atención\n * - celadon: completado, éxito\n * - error: fallo, acceso denegado\n */\n @property({ type: String, reflect: true })\n tone: LibEmptyStateTone = 'neutral';\n\n /**\n * Disposición del componente.\n * - default: columna centrada (pantallas, modales, paneles)\n * - inline: fila con icono a la izquierda (tablas, banners)\n */\n @property({ type: String, reflect: true })\n layout: LibEmptyStateLayout = 'default';\n\n /**\n * Tamaño del componente.\n * - md (default): padding generoso, icono 72px\n * - sm: compacto para sidebars y paneles secundarios\n */\n @property({ type: String, reflect: true })\n size: LibEmptyStateSize = 'md';\n\n /** Borde punteado + fondo `bg-surface`. Para zonas drop o sin contenido explícito. */\n @property({ type: Boolean, reflect: true })\n bordered = false;\n\n /** Elimina el fondo y borde del icono. Para contextos de mínimo ruido visual. */\n @property({ type: Boolean, reflect: true })\n ghost = false;\n\n override render(): TemplateResult {\n return emptyStateTemplate({\n heading: this.heading,\n description: this.description,\n kanji: this.kanji,\n tone: this.tone,\n layout: this.layout,\n size: this.size,\n bordered: this.bordered,\n ghost: this.ghost,\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-empty-state': LibEmptyState;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AAyCO,IAAM,gBAAN,cAA4B,WAAW;AAAA,EAAvC,cAAA;AAAA,UAAA,GAAA,SAAA;AAWL,SAAA,UAAU;AAIV,SAAA,cAAc;AAOd,SAAA,QAAQ;AAUR,SAAA,OAA0B;AAQ1B,SAAA,SAA8B;AAQ9B,SAAA,OAA0B;AAI1B,SAAA,WAAW;AAIX,SAAA,QAAQ;AAAA,EAAA;AAAA,EAEC,SAAyB;AAChC,WAAO,mBAAmB;AAAA,MACxB,SAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,OAAa,KAAK;AAAA,MAClB,MAAa,KAAK;AAAA,MAClB,QAAa,KAAK;AAAA,MAClB,MAAa,KAAK;AAAA,MAClB,UAAa,KAAK;AAAA,MAClB,OAAa,KAAK;AAAA,IAAA,CACnB;AAAA,EACH;AACF;AAtEa,cACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,aAAa,CAAC;AAChC;AAOA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAVf,cAWX,WAAA,WAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAdf,cAeX,WAAA,eAAA,CAAA;AAOA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GArBf,cAsBX,WAAA,SAAA,CAAA;AAUA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GA/B9B,cAgCX,WAAA,QAAA,CAAA;AAQA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAvC9B,cAwCX,WAAA,UAAA,CAAA;AAQA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GA/C9B,cAgDX,WAAA,QAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAnD/B,cAoDX,WAAA,YAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAvD/B,cAwDX,WAAA,SAAA,CAAA;AAxDW,gBAAN,gBAAA;AAAA,EADN,cAAc,iBAAiB;AAAA,GACnB,aAAA;"}
1
+ {"version":3,"file":"index52.js","sources":["../src/components/molecules/chip/lib-chip.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { chipTemplate } from './lib-chip.html';\nimport chipCss from './lib-chip.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport type { ChipKind, ChipSize, ChipColor } from './lib-chip.types';\n\n/**\n * lib-chip — Chip Shibui (SG-26)\n *\n * Tres familias semánticas controladas por `kind`:\n * - static → etiqueta read-only, taxonomía\n * - toggle → filtro seleccionable (aria-checkbox)\n * - input → tag removible con botón ×\n *\n * @prop kind 'static' | 'toggle' | 'input'\n * @prop size 'xs' | 'sm' | 'md' | 'lg'\n * @prop color 'default' | 'kaki' | 'celadon' | 'error' | 'info' | 'dark'\n * @prop selected Estado seleccionado (solo kind=toggle)\n * @prop dot Dot de color antes del texto\n * @prop aria-label Texto accesible del chip\n *\n * @fires ui-lib-chip-toggle — { detail: { selected: boolean } } (kind=toggle)\n * @fires ui-lib-chip-remove — { detail: {} } (kind=input)\n *\n * @slot Texto/label del chip\n * @slot icon — Icono a la izquierda del texto\n * @slot avatar — Avatar circular (solo kind=input, opcionalmente static)\n */\n@customElement('lib-chip')\nexport class LibChip extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(chipCss)}`,\n ];\n\n @property({ type: String, reflect: true })\n kind: ChipKind = 'static';\n\n @property({ type: String, reflect: true })\n size: ChipSize = 'md';\n\n @property({ type: String, reflect: true })\n color: ChipColor = 'default';\n\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n @property({ type: Boolean, reflect: true })\n dot = false;\n\n @property({ type: String, attribute: 'aria-label' })\n override ariaLabel = '';\n\n @query('.chip-input')\n declare private _inputEl: HTMLElement | null;\n\n /* ── Toggle ── */\n _handleToggle(): void {\n this.selected = !this.selected;\n this.dispatchEvent(new CustomEvent('ui-lib-chip-toggle', {\n detail: { selected: this.selected },\n bubbles: true,\n composed: true,\n }));\n }\n\n /* ── Remove con animación de salida ── */\n _handleRemove(e: MouseEvent): void {\n e.stopPropagation();\n const el = this._inputEl;\n if (!el) {\n this._emitRemove();\n return;\n }\n el.classList.add('is-removing');\n el.addEventListener('animationend', (): void => {\n this._emitRemove();\n }, { once: true });\n }\n\n private _emitRemove(): void {\n this.dispatchEvent(new CustomEvent('ui-lib-chip-remove', {\n detail: {},\n bubbles: true,\n composed: true,\n }));\n }\n\n /* ── Animación de entrada (llamar desde fuera si se crea dinámicamente) ── */\n animateIn(): void {\n const el = this._inputEl ?? this.shadowRoot?.querySelector('.chip, .chip-toggle') as HTMLElement | null;\n if (!el) return;\n el.classList.remove('is-entering');\n void el.offsetWidth; // reflow\n el.classList.add('is-entering');\n el.addEventListener('animationend', (): void => el.classList.remove('is-entering'), { once: true });\n }\n\n protected override render(): TemplateResult {\n return chipTemplate(this);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-chip': LibChip;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AA8BO,IAAM,UAAN,cAAsB,WAAW;AAAA,EAAjC,cAAA;AAAA,UAAA,GAAA,SAAA;AAOL,SAAA,OAAiB;AAGjB,SAAA,OAAiB;AAGjB,SAAA,QAAmB;AAGnB,SAAA,WAAW;AAGX,SAAA,MAAM;AAGN,SAAS,YAAY;AAAA,EAAA;AAAA;AAAA,EAMrB,gBAAsB;AACpB,SAAK,WAAW,CAAC,KAAK;AACtB,SAAK,cAAc,IAAI,YAAY,sBAAsB;AAAA,MACvD,QAAQ,EAAE,UAAU,KAAK,SAAA;AAAA,MACzB,SAAS;AAAA,MACT,UAAU;AAAA,IAAA,CACX,CAAC;AAAA,EACJ;AAAA;AAAA,EAGA,cAAc,GAAqB;AACjC,MAAE,gBAAA;AACF,UAAM,KAAK,KAAK;AAChB,QAAI,CAAC,IAAI;AACP,WAAK,YAAA;AACL;AAAA,IACF;AACA,OAAG,UAAU,IAAI,aAAa;AAC9B,OAAG,iBAAiB,gBAAgB,MAAY;AAC9C,WAAK,YAAA;AAAA,IACP,GAAG,EAAE,MAAM,MAAM;AAAA,EACnB;AAAA,EAEQ,cAAoB;AAC1B,SAAK,cAAc,IAAI,YAAY,sBAAsB;AAAA,MACvD,QAAQ,CAAA;AAAA,MACR,SAAS;AAAA,MACT,UAAU;AAAA,IAAA,CACX,CAAC;AAAA,EACJ;AAAA;AAAA,EAGA,YAAkB;;AAChB,UAAM,KAAK,KAAK,cAAY,UAAK,eAAL,mBAAiB,cAAc;AAC3D,QAAI,CAAC,GAAI;AACT,OAAG,UAAU,OAAO,aAAa;AACjC,SAAK,GAAG;AACR,OAAG,UAAU,IAAI,aAAa;AAC9B,OAAG,iBAAiB,gBAAgB,MAAY,GAAG,UAAU,OAAO,aAAa,GAAG,EAAE,MAAM,KAAA,CAAM;AAAA,EACpG;AAAA,EAEmB,SAAyB;AAC1C,WAAO,aAAa,IAAI;AAAA,EAC1B;AACF;AAxEa,QACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,OAAO,CAAC;AAC1B;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAN9B,QAOX,WAAA,QAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAT9B,QAUX,WAAA,QAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAZ9B,QAaX,WAAA,SAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAf/B,QAgBX,WAAA,YAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAlB/B,QAmBX,WAAA,OAAA,CAAA;AAGS,gBAAA;AAAA,EADR,SAAS,EAAE,MAAM,QAAQ,WAAW,cAAc;AAAA,GArBxC,QAsBF,WAAA,aAAA,CAAA;AAGO,gBAAA;AAAA,EADf,MAAM,aAAa;AAAA,GAxBT,QAyBK,WAAA,YAAA,CAAA;AAzBL,UAAN,gBAAA;AAAA,EADN,cAAc,UAAU;AAAA,GACZ,OAAA;"}