@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/index15.js CHANGED
@@ -1,133 +1,32 @@
1
- import { unsafeCSS, css, LitElement } from "lit";
2
- import { property, state, customElement } from "lit/decorators.js";
3
- import { ratingTemplate } from "./index218.js";
4
- import ratingCss from "./index219.js";
1
+ import { unsafeCSS, css, LitElement, html } from "lit";
2
+ import { customElement } from "lit/decorators.js";
3
+ import gridCss from "./index289.js";
5
4
  import sharedTokens from "./index196.js";
6
- var __defProp = Object.defineProperty;
7
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
6
  var __decorateClass = (decorators, target, key, kind) => {
9
7
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
10
8
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
11
9
  if (decorator = decorators[i])
12
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
13
- if (kind && result) __defProp(target, key, result);
10
+ result = decorator(result) || result;
14
11
  return result;
15
12
  };
16
- let LibRating = class extends LitElement {
17
- constructor() {
18
- super(...arguments);
19
- this.value = 0;
20
- this.max = 5;
21
- this.size = "md";
22
- this.color = "gold";
23
- this.icon = "star";
24
- this.readonly = false;
25
- this.disabled = false;
26
- this.showCount = false;
27
- this.count = null;
28
- this._hoverValue = 0;
29
- this._popTimer = null;
30
- }
31
- /* ════════════════════════════════════════
32
- Manejadores de eventos (llamados desde html.ts)
33
- ════════════════════════════════════════ */
34
- _onEnter(pos) {
35
- if (this.readonly || this.disabled) return;
36
- this._hoverValue = pos;
37
- }
38
- _onLeave() {
39
- this._hoverValue = 0;
40
- }
41
- _onClick(pos) {
42
- if (this.readonly || this.disabled) return;
43
- const prev = this.value;
44
- this.value = this.value === pos ? 0 : pos;
45
- this._triggerPop(pos);
46
- this.dispatchEvent(new CustomEvent("ui-lib-rating-change", {
47
- detail: { value: this.value, prev },
48
- bubbles: true,
49
- composed: true
50
- }));
51
- }
52
- _onKeyItem(e, pos) {
53
- if (e.key === "Enter" || e.key === " ") {
54
- e.preventDefault();
55
- this._onClick(pos);
56
- }
57
- if (e.key === "ArrowRight" || e.key === "ArrowUp") {
58
- e.preventDefault();
59
- this._focusItem(pos + 1);
60
- }
61
- if (e.key === "ArrowLeft" || e.key === "ArrowDown") {
62
- e.preventDefault();
63
- this._focusItem(pos - 1);
64
- }
65
- }
66
- /* ── Focus al item por posición ── */
67
- _focusItem(pos) {
68
- var _a, _b;
69
- const clamped = Math.min(Math.max(1, pos), this.max);
70
- const items = (_a = this.shadowRoot) == null ? void 0 : _a.querySelectorAll(".rt-item:not(.rt-item-half)");
71
- (_b = items == null ? void 0 : items[clamped - 1]) == null ? void 0 : _b.focus();
72
- }
73
- /* ── Añade clase is-pop y la quita tras la animación ── */
74
- _triggerPop(pos) {
75
- var _a;
76
- if (this._popTimer) clearTimeout(this._popTimer);
77
- const items = (_a = this.shadowRoot) == null ? void 0 : _a.querySelectorAll(".rt-item");
78
- items == null ? void 0 : items.forEach((el, idx) => {
79
- if (idx + 1 <= pos) el.classList.add("is-pop");
80
- });
81
- this._popTimer = setTimeout(() => {
82
- items == null ? void 0 : items.forEach((el) => el.classList.remove("is-pop"));
83
- }, 350);
84
- }
85
- disconnectedCallback() {
86
- super.disconnectedCallback();
87
- if (this._popTimer) clearTimeout(this._popTimer);
88
- }
13
+ let LibComponentGrid = class extends LitElement {
89
14
  render() {
90
- return ratingTemplate(this);
15
+ return html`
16
+ <div class="grid" part="grid">
17
+ <slot></slot>
18
+ </div>
19
+ `;
91
20
  }
92
21
  };
93
- LibRating.styles = [
22
+ LibComponentGrid.styles = [
94
23
  css`${unsafeCSS(sharedTokens)}`,
95
- css`${unsafeCSS(ratingCss)}`
24
+ css`${unsafeCSS(gridCss)}`
96
25
  ];
97
- __decorateClass([
98
- property({ type: Number, reflect: true })
99
- ], LibRating.prototype, "value", 2);
100
- __decorateClass([
101
- property({ type: Number })
102
- ], LibRating.prototype, "max", 2);
103
- __decorateClass([
104
- property({ type: String, reflect: true })
105
- ], LibRating.prototype, "size", 2);
106
- __decorateClass([
107
- property({ type: String, reflect: true })
108
- ], LibRating.prototype, "color", 2);
109
- __decorateClass([
110
- property({ type: String })
111
- ], LibRating.prototype, "icon", 2);
112
- __decorateClass([
113
- property({ type: Boolean, reflect: true })
114
- ], LibRating.prototype, "readonly", 2);
115
- __decorateClass([
116
- property({ type: Boolean, reflect: true })
117
- ], LibRating.prototype, "disabled", 2);
118
- __decorateClass([
119
- property({ type: Boolean, attribute: "show-count" })
120
- ], LibRating.prototype, "showCount", 2);
121
- __decorateClass([
122
- property({ type: Number })
123
- ], LibRating.prototype, "count", 2);
124
- __decorateClass([
125
- state()
126
- ], LibRating.prototype, "_hoverValue", 2);
127
- LibRating = __decorateClass([
128
- customElement("lib-rating")
129
- ], LibRating);
26
+ LibComponentGrid = __decorateClass([
27
+ customElement("lib-component-grid")
28
+ ], LibComponentGrid);
130
29
  export {
131
- LibRating
30
+ LibComponentGrid
132
31
  };
133
32
  //# sourceMappingURL=index15.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index15.js","sources":["../src/components/atoms/rating/lib-rating.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ratingTemplate } from './lib-rating.html';\nimport ratingCss from './lib-rating.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport type { RatingSize, RatingColor, RatingIcon } from './lib-rating.types';\n\n/**\n * lib-ratingShibui UI · SG-19\n *\n * @prop value — Valor actual (0–max). Soporta decimales en readonly para half-star.\n * @prop max — Máximo de items (default 5)\n * @prop size — 'xs' | 'sm' | 'md'(default) | 'lg' | 'xl'\n * @prop color — 'gold'(default) | 'kaki' | 'washi' | 'celadon'\n * @prop icon — 'star'(default) | 'heart' | 'diamond'\n * @prop readonly — Solo display, sin interacción\n * @prop disabled — Opacity 0.4, sin interacción\n * @prop show-count — Muestra el valor numérico junto a las estrellas\n * @prop count — Número de reseñas a mostrar junto al valor numérico\n *\n * @fires ui-lib-rating-change { detail: { value: number, prev: number } }\n */\n@customElement('lib-rating')\nexport class LibRating extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(ratingCss)}`,\n ];\n\n @property({ type: Number, reflect: true })\n value = 0;\n\n @property({ type: Number })\n max = 5;\n\n @property({ type: String, reflect: true })\n size: RatingSize = 'md';\n\n @property({ type: String, reflect: true })\n color: RatingColor = 'gold';\n\n @property({ type: String })\n icon: RatingIcon = 'star';\n\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @property({ type: Boolean, attribute: 'show-count' })\n showCount = false;\n\n @property({ type: Number })\n count: number | null = null;\n\n /* ── Estado interno de hover ── */\n @state() _hoverValue = 0;\n\n /* ── ID del timeout de pop animation ── */\n private _popTimer: ReturnType<typeof setTimeout> | null = null;\n\n /* ════════════════════════════════════════\n Manejadores de eventos (llamados desde html.ts)\n ════════════════════════════════════════ */\n\n _onEnter(pos: number): void {\n if (this.readonly || this.disabled) return;\n this._hoverValue = pos;\n }\n\n _onLeave(): void {\n this._hoverValue = 0;\n }\n\n _onClick(pos: number): void {\n if (this.readonly || this.disabled) return;\n\n /* Toggle: clic en la estrella activa → reset a 0 */\n const prev = this.value;\n this.value = this.value === pos ? 0 : pos;\n\n /* Animación pop */\n this._triggerPop(pos);\n\n this.dispatchEvent(new CustomEvent('ui-lib-rating-change', {\n detail: { value: this.value, prev },\n bubbles: true,\n composed: true,\n }));\n }\n\n _onKeyItem(e: KeyboardEvent, pos: number): void {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this._onClick(pos);\n }\n if (e.key === 'ArrowRight' || e.key === 'ArrowUp') {\n e.preventDefault();\n this._focusItem(pos + 1);\n }\n if (e.key === 'ArrowLeft' || e.key === 'ArrowDown') {\n e.preventDefault();\n this._focusItem(pos - 1);\n }\n }\n\n /* ── Focus al item por posición ── */\n private _focusItem(pos: number): void {\n const clamped = Math.min(Math.max(1, pos), this.max);\n const items = this.shadowRoot?.querySelectorAll<HTMLElement>('.rt-item:not(.rt-item-half)');\n items?.[clamped - 1]?.focus();\n }\n\n /* ── Añade clase is-pop y la quita tras la animación ── */\n private _triggerPop(pos: number): void {\n if (this._popTimer) clearTimeout(this._popTimer);\n\n const items = this.shadowRoot?.querySelectorAll<HTMLElement>('.rt-item');\n items?.forEach((el, idx) => {\n if (idx + 1 <= pos) el.classList.add('is-pop');\n });\n\n this._popTimer = setTimeout(() => {\n items?.forEach(el => el.classList.remove('is-pop'));\n }, 350);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this._popTimer) clearTimeout(this._popTimer);\n }\n\n protected override render(): TemplateResult {\n return ratingTemplate(this);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-rating': LibRating;\n }\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index15.js","sources":["../src/components/atoms/card/card-grid/lib-card-grid.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport gridCss from './lib-card-grid.css?inline';\nimport sharedTokens from '../../../../styles/shared/tokens.css?inline';\n\n/**\n * `<lib-component-grid>`Grid contenedor de `<lib-component-card>`.\n *\n * Gestiona el layout CSS Grid y aplica automáticamente `grid-column: span 2`\n * a las tarjetas con el atributo `featured`.\n *\n * @tag lib-component-grid\n *\n * @slot - Acepta uno o más `<lib-component-card>`.\n *\n * @cssprop --cg-cols - Grid template columns. Default: `repeat(auto-fill, minmax(280px, 1fr))`.\n * @cssprop --cg-gap - Gap entre celdas. Default: `1.5px`.\n *\n * @example\n * <lib-component-grid>\n * <lib-component-card featured num=\"✦ Kintsugi\" name=\"La cicatriz\" name-accent=\"de oro\">\n * <div slot=\"preview\">...</div>\n * </lib-component-card>\n * <lib-component-card num=\"01–05\" name=\"Buttons\" .tags=${[...]}>\n * <div slot=\"preview\">...</div>\n * </lib-component-card>\n * </lib-component-grid>\n */\n@customElement('lib-component-grid')\nexport class LibComponentGrid extends LitElement {\n\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(gridCss)}`,\n ];\n\n protected override render(): TemplateResult {\n return html`\n <div class=\"grid\" part=\"grid\">\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-component-grid': LibComponentGrid;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;AA6BO,IAAM,mBAAN,cAA+B,WAAW;AAAA,EAO5B,SAAyB;AAC1C,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKT;AACF;AAda,iBAEK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,OAAO,CAAC;AAC1B;AALW,mBAAN,gBAAA;AAAA,EADN,cAAc,oBAAoB;AAAA,GACtB,gBAAA;"}
package/dist/index16.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { unsafeCSS, css, LitElement } from "lit";
2
2
  import { property, customElement } from "lit/decorators.js";
3
- import { progressCircleTemplate } from "./index220.js";
4
- import progressCss from "./index221.js";
3
+ import { checkboxTemplate } from "./index290.js";
4
+ import checkboxCss from "./index291.js";
5
5
  import sharedTokens from "./index196.js";
6
6
  var __defProp = Object.defineProperty;
7
7
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -13,68 +13,76 @@ var __decorateClass = (decorators, target, key, kind) => {
13
13
  if (kind && result) __defProp(target, key, result);
14
14
  return result;
15
15
  };
16
- let LibProgressCircle = class extends LitElement {
16
+ let LibCheckbox = class extends LitElement {
17
17
  constructor() {
18
18
  super(...arguments);
19
- this.value = 0;
20
- this.max = 100;
19
+ this.checked = false;
20
+ this.disabled = false;
21
+ this.indeterminate = false;
22
+ this.label = "";
23
+ this.sublabel = "";
24
+ this.value = "";
21
25
  this.size = "md";
22
- this.strokeWidth = null;
23
26
  this.variant = "default";
27
+ }
28
+ _handleChange(e) {
29
+ const input = e.target;
30
+ this.checked = input.checked;
24
31
  this.indeterminate = false;
25
- this.bare = false;
26
- this.sub = "";
27
- this.icon = null;
32
+ this.dispatchEvent(
33
+ new CustomEvent("change", {
34
+ detail: { checked: this.checked, value: this.value },
35
+ bubbles: true,
36
+ composed: true
37
+ })
38
+ );
28
39
  }
29
40
  render() {
30
- return progressCircleTemplate({
41
+ return checkboxTemplate({
42
+ checked: this.checked,
43
+ disabled: this.disabled,
44
+ indeterminate: this.indeterminate,
45
+ label: this.label,
46
+ sublabel: this.sublabel,
31
47
  value: this.value,
32
- max: this.max,
33
48
  size: this.size,
34
- strokeWidth: this.strokeWidth,
35
49
  variant: this.variant,
36
- indeterminate: this.indeterminate,
37
- bare: this.bare,
38
- sub: this.sub,
39
- icon: this.icon
50
+ onChange: this._handleChange.bind(this)
40
51
  });
41
52
  }
42
53
  };
43
- LibProgressCircle.styles = [
54
+ LibCheckbox.styles = [
44
55
  css`${unsafeCSS(sharedTokens)}`,
45
- css`${unsafeCSS(progressCss)}`
56
+ css`${unsafeCSS(checkboxCss)}`
46
57
  ];
47
58
  __decorateClass([
48
- property({ type: Number })
49
- ], LibProgressCircle.prototype, "value", 2);
50
- __decorateClass([
51
- property({ type: Number })
52
- ], LibProgressCircle.prototype, "max", 2);
53
- __decorateClass([
54
- property({ type: String, reflect: true })
55
- ], LibProgressCircle.prototype, "size", 2);
56
- __decorateClass([
57
- property({ type: Number, attribute: "stroke-width" })
58
- ], LibProgressCircle.prototype, "strokeWidth", 2);
59
- __decorateClass([
60
- property({ type: String, reflect: true })
61
- ], LibProgressCircle.prototype, "variant", 2);
59
+ property({ type: Boolean, reflect: true })
60
+ ], LibCheckbox.prototype, "checked", 2);
62
61
  __decorateClass([
63
62
  property({ type: Boolean, reflect: true })
64
- ], LibProgressCircle.prototype, "indeterminate", 2);
63
+ ], LibCheckbox.prototype, "disabled", 2);
65
64
  __decorateClass([
66
65
  property({ type: Boolean, reflect: true })
67
- ], LibProgressCircle.prototype, "bare", 2);
66
+ ], LibCheckbox.prototype, "indeterminate", 2);
67
+ __decorateClass([
68
+ property({ type: String })
69
+ ], LibCheckbox.prototype, "label", 2);
68
70
  __decorateClass([
69
71
  property({ type: String })
70
- ], LibProgressCircle.prototype, "sub", 2);
72
+ ], LibCheckbox.prototype, "sublabel", 2);
71
73
  __decorateClass([
72
74
  property({ type: String })
73
- ], LibProgressCircle.prototype, "icon", 2);
74
- LibProgressCircle = __decorateClass([
75
- customElement("lib-progress-circle")
76
- ], LibProgressCircle);
75
+ ], LibCheckbox.prototype, "value", 2);
76
+ __decorateClass([
77
+ property({ type: String, reflect: true })
78
+ ], LibCheckbox.prototype, "size", 2);
79
+ __decorateClass([
80
+ property({ type: String, reflect: true })
81
+ ], LibCheckbox.prototype, "variant", 2);
82
+ LibCheckbox = __decorateClass([
83
+ customElement("lib-checkbox")
84
+ ], LibCheckbox);
77
85
  export {
78
- LibProgressCircle
86
+ LibCheckbox
79
87
  };
80
88
  //# sourceMappingURL=index16.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index16.js","sources":["../src/components/atoms/progress-circle/lib-progress-circle.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type { LibProgressCircleSize, LibProgressCircleVariant } from './lib-progress-circle.component.html';\nimport { progressCircleTemplate } from './lib-progress-circle.component.html';\nimport progressCss from './lib-progress-circle.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\n\n/**\n * @element lib-progress-circle\n *\n * Indicador de progreso circular basado en SVG stroke-dashoffset.\n * Cinco tamaños semánticos, cuatro colores, variante indeterminate.\n *\n * @example uso básico\n * <lib-progress-circle value=\"72\"></lib-progress-circle>\n *\n * @example kaki con subtítulo\n * <lib-progress-circle value=\"61\" variant=\"kaki\" sub=\"61 GB\"></lib-progress-circle>\n *\n * @example — celadon completado con icono\n * <lib-progress-circle value=\"100\" variant=\"celadon\" icon=\"check\" size=\"lg\"></lib-progress-circle>\n *\n * @example — indeterminate\n * <lib-progress-circle indeterminate variant=\"kaki\"></lib-progress-circle>\n *\n * @example — sin label (bare)\n * <lib-progress-circle value=\"38\" size=\"xs\" bare></lib-progress-circle>\n */\n@customElement('lib-progress-circle')\nexport class LibProgressCircle extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(progressCss)}`,\n ];\n\n /** Valor actual */\n @property({ type: Number })\n value = 0;\n\n /** Valor máximo */\n @property({ type: Number })\n max = 100;\n\n /**\n * Tamaño semántico del círculo.\n * Mapea a dimensiones fijas con strokeWidth proporcional:\n * - xs : 40px · stroke 3 (sin label)\n * - sm : 64px · stroke 4\n * - md : 96px · stroke 6 (default)\n * - lg : 128px · stroke 7\n * - xl : 176px · stroke 6\n */\n @property({ type: String, reflect: true })\n size: LibProgressCircleSize = 'md';\n\n /**\n * Sobreescribe el strokeWidth por defecto del tamaño.\n * null → usa el valor canónico del tamaño seleccionado.\n */\n @property({ type: Number, attribute: 'stroke-width' })\n strokeWidth: number | null = null;\n\n /**\n * Paleta de color del arco.\n * El track toma automáticamente el tono -100 de cada variante.\n * - default : washi-900 (tinta)\n * - kaki : persimmon orgánico\n * - celadon : jade sereno\n * - error : estado crítico\n */\n @property({ type: String, reflect: true })\n variant: LibProgressCircleVariant = 'default';\n\n /**\n * Modo de carga de duración desconocida.\n * El arco es un segmento corto que rota continuamente.\n * Ignora `value`, `bare`, `sub` e `icon`.\n */\n @property({ type: Boolean, reflect: true })\n indeterminate = false;\n\n /** Oculta el label central (solo muestra el arco) */\n @property({ type: Boolean, reflect: true })\n bare = false;\n\n /** Subtítulo bajo el valor numérico. Oculto en xs. */\n @property({ type: String })\n sub = '';\n\n /**\n * Icono SVG en el centro en lugar del texto numérico.\n * - 'check' : polyline checkmark en color de la variante\n * - null : muestra el valor (default)\n */\n @property({ type: String })\n icon: 'check' | null = null;\n\n override render(): TemplateResult {\n return progressCircleTemplate({\n value: this.value,\n max: this.max,\n size: this.size,\n strokeWidth: this.strokeWidth,\n variant: this.variant,\n indeterminate: this.indeterminate,\n bare: this.bare,\n sub: this.sub,\n icon: this.icon,\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-progress-circle': LibProgressCircle;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AA6BO,IAAM,oBAAN,cAAgC,WAAW;AAAA,EAA3C,cAAA;AAAA,UAAA,GAAA,SAAA;AAQL,SAAA,QAAQ;AAIR,SAAA,MAAM;AAYN,SAAA,OAA8B;AAO9B,SAAA,cAA6B;AAW7B,SAAA,UAAoC;AAQpC,SAAA,gBAAgB;AAIhB,SAAA,OAAO;AAIP,SAAA,MAAM;AAQN,SAAA,OAAuB;AAAA,EAAA;AAAA,EAEd,SAAyB;AAChC,WAAO,uBAAuB;AAAA,MAC5B,OAAe,KAAK;AAAA,MACpB,KAAe,KAAK;AAAA,MACpB,MAAe,KAAK;AAAA,MACpB,aAAe,KAAK;AAAA,MACpB,SAAe,KAAK;AAAA,MACpB,eAAe,KAAK;AAAA,MACpB,MAAe,KAAK;AAAA,MACpB,KAAe,KAAK;AAAA,MACpB,MAAe,KAAK;AAAA,IAAA,CACrB;AAAA,EACH;AACF;AAjFa,kBACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,WAAW,CAAC;AAC9B;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAPf,kBAQX,WAAA,SAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAXf,kBAYX,WAAA,OAAA,CAAA;AAYA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAvB9B,kBAwBX,WAAA,QAAA,CAAA;AAOA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,WAAW,gBAAgB;AAAA,GA9B1C,kBA+BX,WAAA,eAAA,CAAA;AAWA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAzC9B,kBA0CX,WAAA,WAAA,CAAA;AAQA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAjD/B,kBAkDX,WAAA,iBAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GArD/B,kBAsDX,WAAA,QAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAzDf,kBA0DX,WAAA,OAAA,CAAA;AAQA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAjEf,kBAkEX,WAAA,QAAA,CAAA;AAlEW,oBAAN,gBAAA;AAAA,EADN,cAAc,qBAAqB;AAAA,GACvB,iBAAA;"}
1
+ {"version":3,"file":"index16.js","sources":["../src/components/atoms/checkbox/lib-checkbox.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type { LibCheckboxSize, LibCheckboxVariant } from './lib-checkbox.html';\nimport { checkboxTemplate } from './lib-checkbox.html';\nimport checkboxCss from './lib-checkbox.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\n\nexport interface CheckboxChangeDetail {\n checked: boolean;\n value: string;\n}\n\n/**\n * @element lib-checkbox\n *\n * Control de seleccion multiple con soporte para indeterminate.\n *\n * @slot - Contenido de label alternativo (cuando no se usa prop label)\n *\n * @fires change - Emitido al cambiar el estado.\n * detail: { checked: boolean, value: string }\n *\n * @example\n * <lib-checkbox label=\"Aceptar terminos\" value=\"terms\"></lib-checkbox>\n * <lib-checkbox label=\"Seleccion parcial\" indeterminate></lib-checkbox>\n * <lib-checkbox label=\"Acento kaki\" variant=\"kaki\" checked></lib-checkbox>\n */\n@customElement('lib-checkbox')\nexport class LibCheckbox extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(checkboxCss)}`,\n ];\n\n /** Estado marcado */\n @property({ type: Boolean, reflect: true })\n checked = false;\n\n /** Estado deshabilitado */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Estado indeterminate seleccion parcial de grupo.\n * Muestra un dash en lugar del check.\n */\n @property({ type: Boolean, reflect: true })\n indeterminate = false;\n\n /** Texto principal del label */\n @property({ type: String })\n label = '';\n\n /** Texto secundario bajo el label */\n @property({ type: String })\n sublabel = '';\n\n /** Valor enviado en el evento change */\n @property({ type: String })\n value = '';\n\n /** Tamano del checkbox */\n @property({ type: String, reflect: true })\n size: LibCheckboxSize = 'md';\n\n /** Variante de color */\n @property({ type: String, reflect: true })\n variant: LibCheckboxVariant = 'default';\n\n private _handleChange(e: Event): void {\n const input = e.target as HTMLInputElement;\n this.checked = input.checked;\n this.indeterminate = false; // el click resuelve el estado indeterminate\n\n this.dispatchEvent(\n new CustomEvent<CheckboxChangeDetail>('change', {\n detail: { checked: this.checked, value: this.value },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n override render(): TemplateResult {\n return checkboxTemplate({\n checked: this.checked,\n disabled: this.disabled,\n indeterminate: this.indeterminate,\n label: this.label,\n sublabel: this.sublabel,\n value: this.value,\n size: this.size,\n variant: this.variant,\n onChange: this._handleChange.bind(this),\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-checkbox': LibCheckbox;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AA4BO,IAAM,cAAN,cAA0B,WAAW;AAAA,EAArC,cAAA;AAAA,UAAA,GAAA,SAAA;AAQL,SAAA,UAAU;AAIV,SAAA,WAAW;AAOX,SAAA,gBAAgB;AAIhB,SAAA,QAAQ;AAIR,SAAA,WAAW;AAIX,SAAA,QAAQ;AAIR,SAAA,OAAwB;AAIxB,SAAA,UAA8B;AAAA,EAAA;AAAA,EAEtB,cAAc,GAAgB;AACpC,UAAM,QAAQ,EAAE;AAChB,SAAK,UAAU,MAAM;AACrB,SAAK,gBAAgB;AAErB,SAAK;AAAA,MACH,IAAI,YAAkC,UAAU;AAAA,QAC9C,QAAQ,EAAE,SAAS,KAAK,SAAS,OAAO,KAAK,MAAA;AAAA,QAC7C,SAAS;AAAA,QACT,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL;AAAA,EAES,SAAyB;AAChC,WAAO,iBAAiB;AAAA,MACtB,SAAS,KAAK;AAAA,MACd,UAAU,KAAK;AAAA,MACf,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,UAAU,KAAK;AAAA,MACf,OAAO,KAAK;AAAA,MACZ,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,UAAU,KAAK,cAAc,KAAK,IAAI;AAAA,IAAA,CACvC;AAAA,EACH;AACF;AApEa,YACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,WAAW,CAAC;AAC9B;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAP/B,YAQX,WAAA,WAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAX/B,YAYX,WAAA,YAAA,CAAA;AAOA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAlB/B,YAmBX,WAAA,iBAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAtBf,YAuBX,WAAA,SAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GA1Bf,YA2BX,WAAA,YAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GA9Bf,YA+BX,WAAA,SAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAlC9B,YAmCX,WAAA,QAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAtC9B,YAuCX,WAAA,WAAA,CAAA;AAvCW,cAAN,gBAAA;AAAA,EADN,cAAc,cAAc;AAAA,GAChB,WAAA;"}
package/dist/index17.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { unsafeCSS, css, LitElement } from "lit";
2
2
  import { property, customElement } from "lit/decorators.js";
3
- import { badgeTemplate } from "./index222.js";
4
- import badgeCss from "./index223.js";
3
+ import "./index25.js";
4
+ import { closeButtonTemplate } from "./index292.js";
5
+ import closeButtonCss from "./index293.js";
5
6
  import sharedTokens from "./index196.js";
6
7
  var __defProp = Object.defineProperty;
7
8
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -13,47 +14,62 @@ var __decorateClass = (decorators, target, key, kind) => {
13
14
  if (kind && result) __defProp(target, key, result);
14
15
  return result;
15
16
  };
16
- let LibBadge = class extends LitElement {
17
+ let LibCloseButton = class extends LitElement {
17
18
  constructor() {
18
19
  super(...arguments);
19
- this.variant = "default";
20
+ this.variant = "ghost";
20
21
  this.size = "md";
21
- this.dot = false;
22
- this.pill = false;
22
+ this.icon = "x";
23
+ this.disabled = false;
24
+ this.ariaLabel = "Cerrar";
25
+ }
26
+ _handleClick(e) {
27
+ if (this.disabled) {
28
+ e.preventDefault();
29
+ e.stopPropagation();
30
+ return;
31
+ }
32
+ this.dispatchEvent(
33
+ new CustomEvent("lib-close", {
34
+ bubbles: true,
35
+ composed: true
36
+ })
37
+ );
23
38
  }
24
39
  render() {
25
- return badgeTemplate({
40
+ return closeButtonTemplate({
26
41
  variant: this.variant,
27
42
  size: this.size,
28
- dot: this.dot,
29
- pill: this.pill
43
+ icon: this.icon,
44
+ disabled: this.disabled,
45
+ ariaLabel: this.ariaLabel ?? "Cerrar",
46
+ onClick: this._handleClick.bind(this)
30
47
  });
31
48
  }
32
49
  };
33
- LibBadge.styles = [
34
- css`
35
- ${unsafeCSS(sharedTokens)}
36
- `,
37
- css`
38
- ${unsafeCSS(badgeCss)}
39
- `
50
+ LibCloseButton.styles = [
51
+ css`${unsafeCSS(sharedTokens)}`,
52
+ css`${unsafeCSS(closeButtonCss)}`
40
53
  ];
41
54
  __decorateClass([
42
55
  property({ type: String, reflect: true })
43
- ], LibBadge.prototype, "variant", 2);
56
+ ], LibCloseButton.prototype, "variant", 2);
44
57
  __decorateClass([
45
58
  property({ type: String, reflect: true })
46
- ], LibBadge.prototype, "size", 2);
59
+ ], LibCloseButton.prototype, "size", 2);
47
60
  __decorateClass([
48
- property({ type: Boolean, reflect: true })
49
- ], LibBadge.prototype, "dot", 2);
61
+ property({ type: String })
62
+ ], LibCloseButton.prototype, "icon", 2);
50
63
  __decorateClass([
51
64
  property({ type: Boolean, reflect: true })
52
- ], LibBadge.prototype, "pill", 2);
53
- LibBadge = __decorateClass([
54
- customElement("lib-badge")
55
- ], LibBadge);
65
+ ], LibCloseButton.prototype, "disabled", 2);
66
+ __decorateClass([
67
+ property({ type: String, attribute: "aria-label" })
68
+ ], LibCloseButton.prototype, "ariaLabel", 2);
69
+ LibCloseButton = __decorateClass([
70
+ customElement("lib-close-button")
71
+ ], LibCloseButton);
56
72
  export {
57
- LibBadge
73
+ LibCloseButton
58
74
  };
59
75
  //# sourceMappingURL=index17.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index17.js","sources":["../src/components/atoms/badge/lib-badge.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type { LibBadgeVariant, LibBadgeSize } from './lib-badge.html';\nimport { badgeTemplate } from './lib-badge.html';\nimport badgeCss from './lib-badge.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\n\n/**\n * @element lib-badge\n *\n * Indicador visual compacto para estado, notificaciones o etiquetas.\n *\n * @slot - Contenido del badge (texto o icono)\n * @csspart badge - El elemento <span> raíz del badge\n *\n * @example\n * <lib-badge variant=\"success\" dot>Activo</lib-badge>\n * <lib-badge variant=\"error\">Error</lib-badge>\n * <lib-badge variant=\"accent\" pill>Nuevo</lib-badge>\n */\n@customElement('lib-badge')\nexport class LibBadge extends LitElement {\n static override styles = [\n css`\n ${unsafeCSS(sharedTokens)}\n `,\n css`\n ${unsafeCSS(badgeCss)}\n `,\n ];\n\n /** Variante visual del badge */\n @property({ type: String, reflect: true })\n variant: LibBadgeVariant = 'default';\n\n /** Tamaño del badge */\n @property({ type: String, reflect: true })\n size: LibBadgeSize = 'md';\n\n /** Muestra un punto indicador de color a la izquierda del texto */\n @property({ type: Boolean, reflect: true })\n dot = false;\n\n /** Aplica border-radius completo (estilo píldora) */\n @property({ type: Boolean, reflect: true })\n pill = false;\n\n override render(): TemplateResult {\n return badgeTemplate({\n variant: this.variant,\n size: this.size,\n dot: this.dot,\n pill: this.pill,\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-badge': LibBadge;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AAqBO,IAAM,WAAN,cAAuB,WAAW;AAAA,EAAlC,cAAA;AAAA,UAAA,GAAA,SAAA;AAYL,SAAA,UAA2B;AAI3B,SAAA,OAAqB;AAIrB,SAAA,MAAM;AAIN,SAAA,OAAO;AAAA,EAAA;AAAA,EAEE,SAAyB;AAChC,WAAO,cAAc;AAAA,MACnB,SAAS,KAAK;AAAA,MACd,MAAM,KAAK;AAAA,MACX,KAAK,KAAK;AAAA,MACV,MAAM,KAAK;AAAA,IAAA,CACZ;AAAA,EACH;AACF;AAlCa,SACK,SAAS;AAAA,EACvB;AAAA,QACI,UAAU,YAAY,CAAC;AAAA;AAAA,EAE3B;AAAA,QACI,UAAU,QAAQ,CAAC;AAAA;AAEzB;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAX9B,SAYX,WAAA,WAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAf9B,SAgBX,WAAA,QAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAnB/B,SAoBX,WAAA,OAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAvB/B,SAwBX,WAAA,QAAA,CAAA;AAxBW,WAAN,gBAAA;AAAA,EADN,cAAc,WAAW;AAAA,GACb,QAAA;"}
1
+ {"version":3,"file":"index17.js","sources":["../src/components/atoms/close-button/lib-close-button.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport '../../atoms/icon/lib-icon.component';\nimport type { LibCloseVariant, LibCloseSize, LibCloseIcon } from './lib-close-button.html';\nimport { closeButtonTemplate } from './lib-close-button.html';\nimport closeButtonCss from './lib-close-button.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\n\n\n/**\n * @element lib-close-button\n *\n * Boton de cierre reutilizable. Emite `lib-close` al hacer click.\n * Usado en chips, toasts, modales, alert banners y superficies oscuras.\n *\n * @fires lib-close - Emitido al hacer click. Sin detail.\n *\n * @example\n * <lib-close-button variant=\"ghost\" size=\"md\"></lib-close-button>\n * <lib-close-button variant=\"subtle\" size=\"lg\"></lib-close-button>\n * <lib-close-button variant=\"on-dark\" size=\"md\"></lib-close-button>\n */\n@customElement('lib-close-button')\nexport class LibCloseButton extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(closeButtonCss)}`,\n ];\n\n /** Variante visual */\n @property({ type: String, reflect: true })\n variant: LibCloseVariant = 'ghost';\n\n /** Tamaño: sm (24px) · md (32px) · lg (40px) · xl (48px) */\n @property({ type: String, reflect: true })\n size: LibCloseSize = 'md';\n\n /**\n * Icono Phosphor a mostrar.\n * x simple · x-circle con circulo · x-square → con cuadrado\n */\n @property({ type: String })\n icon: LibCloseIcon = 'x';\n\n /** Estado deshabilitado */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /** Texto accesible del boton */\n @property({ type: String, attribute: 'aria-label' })\n override ariaLabel: string | null = 'Cerrar';\n\n private _handleClick(e: Event): void {\n if (this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent('lib-close', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n override render(): TemplateResult {\n return closeButtonTemplate({\n variant: this.variant,\n size: this.size,\n icon: this.icon,\n disabled: this.disabled,\n ariaLabel: this.ariaLabel ?? 'Cerrar',\n onClick: this._handleClick.bind(this),\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-close-button': LibCloseButton;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAuBO,IAAM,iBAAN,cAA6B,WAAW;AAAA,EAAxC,cAAA;AAAA,UAAA,GAAA,SAAA;AAQL,SAAA,UAA2B;AAI3B,SAAA,OAAqB;AAOrB,SAAA,OAAqB;AAIrB,SAAA,WAAW;AAIX,SAAS,YAA2B;AAAA,EAAA;AAAA,EAE5B,aAAa,GAAgB;AACnC,QAAI,KAAK,UAAU;AACjB,QAAE,eAAA;AACF,QAAE,gBAAA;AACF;AAAA,IACF;AAEA,SAAK;AAAA,MACH,IAAI,YAAY,aAAa;AAAA,QAC3B,SAAS;AAAA,QACT,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL;AAAA,EAES,SAAyB;AAChC,WAAO,oBAAoB;AAAA,MACzB,SAAS,KAAK;AAAA,MACd,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,MACX,UAAU,KAAK;AAAA,MACf,WAAW,KAAK,aAAa;AAAA,MAC7B,SAAS,KAAK,aAAa,KAAK,IAAI;AAAA,IAAA,CACrC;AAAA,EACH;AACF;AAtDa,eACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,cAAc,CAAC;AACjC;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAP9B,eAQX,WAAA,WAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAX9B,eAYX,WAAA,QAAA,CAAA;AAOA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAlBf,eAmBX,WAAA,QAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAtB/B,eAuBX,WAAA,YAAA,CAAA;AAIS,gBAAA;AAAA,EADR,SAAS,EAAE,MAAM,QAAQ,WAAW,cAAc;AAAA,GA1BxC,eA2BF,WAAA,aAAA,CAAA;AA3BE,iBAAN,gBAAA;AAAA,EADN,cAAc,kBAAkB;AAAA,GACpB,cAAA;"}
package/dist/index18.js CHANGED
@@ -1,8 +1,7 @@
1
1
  import { unsafeCSS, css, LitElement } from "lit";
2
- import { property, customElement } from "lit/decorators.js";
3
- import { generateUniqueId } from "./index213.js";
4
- import { switchTemplate } from "./index224.js";
5
- import switchCss from "./index225.js";
2
+ import { property, state, customElement } from "lit/decorators.js";
3
+ import { codeBlockTemplate } from "./index294.js";
4
+ import codeBlockCss from "./index295.js";
6
5
  import sharedTokens from "./index196.js";
7
6
  var __defProp = Object.defineProperty;
8
7
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -14,65 +13,93 @@ var __decorateClass = (decorators, target, key, kind) => {
14
13
  if (kind && result) __defProp(target, key, result);
15
14
  return result;
16
15
  };
17
- let LibSwitch = class extends LitElement {
16
+ let LibCodeBlock = class extends LitElement {
18
17
  constructor() {
19
- super();
20
- this.checked = false;
21
- this.disabled = false;
18
+ super(...arguments);
19
+ this.code = "";
20
+ this.language = "bash";
21
+ this.filename = "";
22
+ this.copyable = true;
22
23
  this.variant = "default";
23
- this.size = "md";
24
- this.label = "";
25
- this.sub = "";
26
- this._switchId = generateUniqueId("lib-switch-");
24
+ this._copied = false;
25
+ this._copyTimeout = null;
27
26
  }
28
- render() {
29
- return switchTemplate({
30
- switchId: this._switchId,
31
- checked: this.checked,
32
- disabled: this.disabled,
33
- label: this.label,
34
- sub: this.sub,
35
- handleChange: this._handleChange.bind(this)
27
+ _handleCopy() {
28
+ const content = this.code || this._getSlotText();
29
+ if (!content) return;
30
+ navigator.clipboard.writeText(content).then(() => {
31
+ this._copied = true;
32
+ if (this._copyTimeout) clearTimeout(this._copyTimeout);
33
+ this._copyTimeout = setTimeout(() => {
34
+ this._copied = false;
35
+ }, 2e3);
36
+ }).catch(() => {
37
+ const ta = document.createElement("textarea");
38
+ ta.value = content;
39
+ ta.style.position = "fixed";
40
+ ta.style.opacity = "0";
41
+ document.body.appendChild(ta);
42
+ ta.select();
43
+ document.execCommand("copy");
44
+ document.body.removeChild(ta);
45
+ this._copied = true;
46
+ if (this._copyTimeout) clearTimeout(this._copyTimeout);
47
+ this._copyTimeout = setTimeout(() => {
48
+ this._copied = false;
49
+ }, 2e3);
36
50
  });
37
51
  }
38
- _handleChange(e) {
39
- const input = e.target;
40
- this.checked = input.checked;
41
- this.dispatchEvent(
42
- new CustomEvent("ui-lib-change", {
43
- detail: { checked: this.checked },
44
- bubbles: true,
45
- composed: true
46
- })
47
- );
52
+ _getSlotText() {
53
+ var _a;
54
+ const slot = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector("slot");
55
+ if (!slot) return "";
56
+ return slot.assignedNodes({ flatten: true }).map((node) => node.textContent ?? "").join("");
57
+ }
58
+ disconnectedCallback() {
59
+ super.disconnectedCallback();
60
+ if (this._copyTimeout) clearTimeout(this._copyTimeout);
61
+ }
62
+ render() {
63
+ return codeBlockTemplate({
64
+ code: this.code,
65
+ language: this.language,
66
+ filename: this.filename,
67
+ copyable: this.copyable,
68
+ copied: this._copied,
69
+ onCopy: () => this._handleCopy()
70
+ });
48
71
  }
49
72
  };
50
- LibSwitch.styles = [
51
- css`${unsafeCSS(sharedTokens)}`,
52
- css`${unsafeCSS(switchCss)}`
73
+ LibCodeBlock.styles = [
74
+ css`
75
+ ${unsafeCSS(sharedTokens)}
76
+ `,
77
+ css`
78
+ ${unsafeCSS(codeBlockCss)}
79
+ `
53
80
  ];
54
81
  __decorateClass([
55
- property({ type: Boolean, reflect: true })
56
- ], LibSwitch.prototype, "checked", 2);
57
- __decorateClass([
58
- property({ type: Boolean, reflect: true })
59
- ], LibSwitch.prototype, "disabled", 2);
60
- __decorateClass([
61
- property({ type: String, reflect: true })
62
- ], LibSwitch.prototype, "variant", 2);
82
+ property({ type: String })
83
+ ], LibCodeBlock.prototype, "code", 2);
63
84
  __decorateClass([
64
85
  property({ type: String, reflect: true })
65
- ], LibSwitch.prototype, "size", 2);
86
+ ], LibCodeBlock.prototype, "language", 2);
66
87
  __decorateClass([
67
88
  property({ type: String })
68
- ], LibSwitch.prototype, "label", 2);
89
+ ], LibCodeBlock.prototype, "filename", 2);
69
90
  __decorateClass([
70
- property({ type: String })
71
- ], LibSwitch.prototype, "sub", 2);
72
- LibSwitch = __decorateClass([
73
- customElement("lib-switch")
74
- ], LibSwitch);
91
+ property({ type: Boolean, reflect: true })
92
+ ], LibCodeBlock.prototype, "copyable", 2);
93
+ __decorateClass([
94
+ property({ type: String, reflect: true })
95
+ ], LibCodeBlock.prototype, "variant", 2);
96
+ __decorateClass([
97
+ state()
98
+ ], LibCodeBlock.prototype, "_copied", 2);
99
+ LibCodeBlock = __decorateClass([
100
+ customElement("lib-code-block")
101
+ ], LibCodeBlock);
75
102
  export {
76
- LibSwitch
103
+ LibCodeBlock
77
104
  };
78
105
  //# sourceMappingURL=index18.js.map