@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/index11.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { unsafeCSS, css, LitElement } from "lit";
2
2
  import { property, customElement } from "lit/decorators.js";
3
- import { progressTemplate } from "./index209.js";
4
- import progressCss from "./index210.js";
3
+ import { generateUniqueId } from "./index210.js";
4
+ import buttonCss from "./index281.js";
5
5
  import sharedTokens from "./index196.js";
6
+ import { buttonTemplate } from "./index282.js";
6
7
  var __defProp = Object.defineProperty;
7
8
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
9
  var __decorateClass = (decorators, target, key, kind) => {
@@ -13,98 +14,112 @@ var __decorateClass = (decorators, target, key, kind) => {
13
14
  if (kind && result) __defProp(target, key, result);
14
15
  return result;
15
16
  };
16
- let LibProgress = class extends LitElement {
17
+ let LibButton = class extends LitElement {
17
18
  constructor() {
18
- super(...arguments);
19
- this.value = 0;
20
- this.max = 100;
19
+ super();
20
+ this.variant = "primary";
21
21
  this.size = "md";
22
- this.tone = "default";
23
- this.indeterminate = false;
24
- this.striped = false;
25
- this.square = false;
26
- this.label = "";
27
- this.valueLabel = "";
28
- this.sub = "";
29
- this.showValue = false;
30
- this.segments = "";
22
+ this.disabled = false;
23
+ this.glass = false;
24
+ this.spotlight = false;
25
+ this._onMouseMove = (e) => {
26
+ var _a;
27
+ if (!this.spotlight) return;
28
+ const btn = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(".btn");
29
+ if (!btn) return;
30
+ const rect = btn.getBoundingClientRect();
31
+ const x = (e.clientX - rect.left) / rect.width * 100;
32
+ const y = (e.clientY - rect.top) / rect.height * 100;
33
+ this.style.setProperty("--lib-spotlight-x", `${x}%`);
34
+ this.style.setProperty("--lib-spotlight-y", `${y}%`);
35
+ };
36
+ this._onMouseLeave = () => {
37
+ this.style.setProperty("--lib-spotlight-x", "50%");
38
+ this.style.setProperty("--lib-spotlight-y", "50%");
39
+ };
40
+ this.type = "button";
41
+ this.customPadding = null;
31
42
  this.ariaLabel = null;
43
+ this._buttonId = generateUniqueId("lib-button-");
32
44
  }
45
+ connectedCallback() {
46
+ super.connectedCallback();
47
+ this.addEventListener("mousemove", this._onMouseMove);
48
+ this.addEventListener("mouseleave", this._onMouseLeave);
49
+ }
50
+ disconnectedCallback() {
51
+ super.disconnectedCallback();
52
+ this.removeEventListener("mousemove", this._onMouseMove);
53
+ this.removeEventListener("mouseleave", this._onMouseLeave);
54
+ }
55
+ /**
56
+ * Implementación del renderizado siguiendo la regla de tipado explícito.
57
+ */
33
58
  render() {
34
- const percent = this.indeterminate ? 100 : Math.min(Math.max(this.value / (this.max || 100) * 100, 0), 100);
35
- let parsedSegments = [];
36
- if (this.segments) {
37
- try {
38
- parsedSegments = JSON.parse(this.segments);
39
- } catch {
40
- console.warn("[lib-progress] Invalid JSON in `segments` prop.");
41
- }
42
- }
43
- return progressTemplate({
44
- percent,
59
+ return buttonTemplate({
60
+ buttonId: this._buttonId,
61
+ type: this.type,
62
+ disabled: this.disabled,
63
+ ariaLabel: this.ariaLabel ?? void 0,
64
+ handleClick: this._handleClick.bind(this),
65
+ variant: this.variant,
45
66
  size: this.size,
46
- tone: this.tone,
47
- indeterminate: this.indeterminate,
48
- striped: this.striped,
49
- square: this.square,
50
- label: this.label,
51
- valueLabel: this.valueLabel,
52
- sub: this.sub,
53
- showValue: this.showValue,
54
- segments: parsedSegments,
55
- ariaLabel: this.ariaLabel ?? this.label,
56
- rawValue: this.value,
57
- max: this.max
67
+ glass: this.glass,
68
+ spotlight: this.spotlight,
69
+ customPadding: this.customPadding ?? void 0
58
70
  });
59
71
  }
72
+ _handleClick(event) {
73
+ if (this.disabled) {
74
+ event.preventDefault();
75
+ event.stopPropagation();
76
+ return;
77
+ }
78
+ this.dispatchEvent(
79
+ new CustomEvent("ui-lib-click", {
80
+ detail: { originalEvent: event, timestamp: Date.now() },
81
+ bubbles: true,
82
+ composed: true
83
+ })
84
+ );
85
+ }
60
86
  };
61
- LibProgress.styles = [
62
- css`${unsafeCSS(sharedTokens)}`,
63
- css`${unsafeCSS(progressCss)}`
87
+ LibButton.styles = [
88
+ css`
89
+ ${unsafeCSS(sharedTokens)}
90
+ `,
91
+ css`
92
+ ${unsafeCSS(buttonCss)}
93
+ `
64
94
  ];
65
- __decorateClass([
66
- property({ type: Number })
67
- ], LibProgress.prototype, "value", 2);
68
- __decorateClass([
69
- property({ type: Number })
70
- ], LibProgress.prototype, "max", 2);
71
95
  __decorateClass([
72
96
  property({ type: String, reflect: true })
73
- ], LibProgress.prototype, "size", 2);
97
+ ], LibButton.prototype, "variant", 2);
74
98
  __decorateClass([
75
99
  property({ type: String, reflect: true })
76
- ], LibProgress.prototype, "tone", 2);
100
+ ], LibButton.prototype, "size", 2);
77
101
  __decorateClass([
78
102
  property({ type: Boolean, reflect: true })
79
- ], LibProgress.prototype, "indeterminate", 2);
103
+ ], LibButton.prototype, "disabled", 2);
80
104
  __decorateClass([
81
105
  property({ type: Boolean, reflect: true })
82
- ], LibProgress.prototype, "striped", 2);
106
+ ], LibButton.prototype, "glass", 2);
83
107
  __decorateClass([
84
108
  property({ type: Boolean, reflect: true })
85
- ], LibProgress.prototype, "square", 2);
86
- __decorateClass([
87
- property({ type: String })
88
- ], LibProgress.prototype, "label", 2);
89
- __decorateClass([
90
- property({ type: String, attribute: "value-label" })
91
- ], LibProgress.prototype, "valueLabel", 2);
109
+ ], LibButton.prototype, "spotlight", 2);
92
110
  __decorateClass([
93
111
  property({ type: String })
94
- ], LibProgress.prototype, "sub", 2);
95
- __decorateClass([
96
- property({ type: Boolean, attribute: "show-value" })
97
- ], LibProgress.prototype, "showValue", 2);
112
+ ], LibButton.prototype, "type", 2);
98
113
  __decorateClass([
99
- property({ type: String })
100
- ], LibProgress.prototype, "segments", 2);
114
+ property({ type: String, attribute: "custom-padding" })
115
+ ], LibButton.prototype, "customPadding", 2);
101
116
  __decorateClass([
102
117
  property({ type: String, attribute: "aria-label" })
103
- ], LibProgress.prototype, "ariaLabel", 2);
104
- LibProgress = __decorateClass([
105
- customElement("lib-progress")
106
- ], LibProgress);
118
+ ], LibButton.prototype, "ariaLabel", 2);
119
+ LibButton = __decorateClass([
120
+ customElement("lib-button")
121
+ ], LibButton);
107
122
  export {
108
- LibProgress
123
+ LibButton
109
124
  };
110
125
  //# sourceMappingURL=index11.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index11.js","sources":["../src/components/atoms/progress/lib-progress.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { progressTemplate } from './lib-progress.html';\nimport progressCss from './lib-progress.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport type { ProgressSize, ProgressTone, ProgressSegment } from './lib-progress.types';\n\n/**\n * @element lib-progress\n *\n * Barra de progreso lineal del sistema Shibui.\n *\n * Modos:\n * - Simple bar → valor 0-100 con prop `value`\n * - Con meta → añade `label` y/o `value-label`\n * - Multi-segmento → prop `segments` (JSON)\n *\n * @attr value — Valor actual (0–max). Default 0.\n * @attr max — Valor máximo. Default 100.\n * @attr size — xs · sm · md · lg · xl. Default md.\n * @attr tone — default · kaki · celadon · error. Default default.\n * @attr indeterminate — Duración desconocida; animación continua.\n * @attr striped — Relleno con diagonales sutiles.\n * @attr square — Bordes rectos (radius-sm) en lugar de full.\n * @attr label — Etiqueta sobre la barra.\n * @attr value-label — Texto libre junto al label (ej: \"3.4 MB / 7 MB\").\n * @attr show-value — Muestra el % calculado junto al label (ignorado si value-label está presente).\n * @attr sub — Texto secundario bajo la barra (DM Mono, 10px).\n * @attr segments — JSON: ProgressSegment[]. Activa modo multi-segmento.\n */\n@customElement('lib-progress')\nexport class LibProgress extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(progressCss)}`,\n ];\n\n /* ── Bar config ── */\n @property({ type: Number }) value = 0;\n @property({ type: Number }) max = 100;\n\n @property({ type: String, reflect: true }) size: ProgressSize = 'md';\n @property({ type: String, reflect: true }) tone: ProgressTone = 'default';\n\n @property({ type: Boolean, reflect: true }) indeterminate = false;\n @property({ type: Boolean, reflect: true }) striped = false;\n @property({ type: Boolean, reflect: true }) square = false;\n\n /* ── Meta ── */\n @property({ type: String }) label = '';\n @property({ type: String, attribute: 'value-label' }) valueLabel = '';\n @property({ type: String }) sub = '';\n @property({ type: Boolean, attribute: 'show-value' }) showValue = false;\n\n /* ── Multi-segment (JSON string) ── */\n @property({ type: String }) segments = '';\n\n /* ── a11y ── */\n @property({ type: String, attribute: 'aria-label' }) override ariaLabel: string | null = null;\n\n override render(): TemplateResult {\n const percent = this.indeterminate\n ? 100\n : Math.min(Math.max((this.value / (this.max || 100)) * 100, 0), 100);\n\n let parsedSegments: ProgressSegment[] = [];\n if (this.segments) {\n try {\n parsedSegments = JSON.parse(this.segments) as ProgressSegment[];\n } catch {\n console.warn('[lib-progress] Invalid JSON in `segments` prop.');\n }\n }\n\n return progressTemplate({\n percent,\n size: this.size,\n tone: this.tone,\n indeterminate: this.indeterminate,\n striped: this.striped,\n square: this.square,\n\n label: this.label,\n valueLabel: this.valueLabel,\n sub: this.sub,\n showValue: this.showValue,\n\n segments: parsedSegments,\n\n ariaLabel: this.ariaLabel ?? this.label,\n rawValue: this.value,\n max: this.max,\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-progress': LibProgress;\n }\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index11.js","sources":["../src/components/atoms/button/lib-button.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { generateUniqueId } from '../../../core/a11y';\nimport type { LibSize, UiClickEventDetail } from '../../../types';\nimport type { LibButtonVariant } from './lib-button.types';\nimport buttonCss from './lib-button.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport { buttonTemplate } from './lib-button.html';\n\n/**\n * @tag lib-button\n * @element lib-button\n * @fires ui-lib-click - Evento personalizado disparado al hacer clic.\n * @event lib-click\n * @csspart button - El elemento <button> nativo.\n */\n@customElement('lib-button')\nexport class LibButton extends LitElement {\n static override styles = [\n css`\n ${unsafeCSS(sharedTokens)}\n `,\n css`\n ${unsafeCSS(buttonCss)}\n `\n ];\n\n private _buttonId: string;\n\n constructor() {\n super();\n this._buttonId = generateUniqueId('lib-button-');\n }\n\n /**\n * @type {\"primary\" | \"secondary\" | \"ghost\" | \"accent\" | \"danger\" | \"kintsugi\" | \"brutal\"}\n */\n @property({ type: String, reflect: true })\n variant: LibButtonVariant = 'primary';\n\n /**\n * @type {\"sm\" | \"md\" | \"lg\" | \"xl\"}\n */\n @property({ type: String, reflect: true })\n size: LibSize = 'md';\n\n /**\n * @type {boolean}\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n/**\n * @type {boolean}\n */\n @property({ type: Boolean, reflect: true })\n glass = false;\n\n /**\n * @type {boolean}\n */\n @property({ type: Boolean, reflect: true })\n spotlight = false;\n\n private _onMouseMove = (e: MouseEvent): void => {\n if (!this.spotlight) return;\n const btn = this.shadowRoot?.querySelector('.btn');\n if (!btn) return;\n const rect = btn.getBoundingClientRect();\n const x = ((e.clientX - rect.left) / rect.width) * 100;\n const y = ((e.clientY - rect.top) / rect.height) * 100;\n this.style.setProperty('--lib-spotlight-x', `${x}%`);\n this.style.setProperty('--lib-spotlight-y', `${y}%`);\n };\n\n private _onMouseLeave = (): void => {\n this.style.setProperty('--lib-spotlight-x', '50%');\n this.style.setProperty('--lib-spotlight-y', '50%');\n };\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('mousemove', this._onMouseMove);\n this.addEventListener('mouseleave', this._onMouseLeave);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('mousemove', this._onMouseMove);\n this.removeEventListener('mouseleave', this._onMouseLeave);\n }\n\n /**\n * @type {'button' | 'submit' | 'reset'}\n */\n @property({ type: String })\n type: 'button' | 'submit' | 'reset' = 'button';\n\n /**\n * @type {string | null}\n */\n @property({ type: String, attribute: 'custom-padding' })\n customPadding: string | null = null;\n\n /**\n * @type {string | null}\n */\n @property({ type: String, attribute: 'aria-label' })\n override ariaLabel: string | null = null;\n\n /**\n * Implementación del renderizado siguiendo la regla de tipado explícito.\n */\n override render(): TemplateResult {\n return buttonTemplate({\n buttonId: this._buttonId,\n type: this.type,\n disabled: this.disabled,\n ariaLabel: this.ariaLabel ?? undefined,\n handleClick: this._handleClick.bind(this),\n variant: this.variant,\n size: this.size,\n glass: this.glass,\n spotlight: this.spotlight,\n customPadding: this.customPadding ?? undefined,\n });\n }\n\n private _handleClick(event: Event): void {\n if (this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent<UiClickEventDetail>('ui-lib-click', {\n detail: { originalEvent: event, timestamp: Date.now() },\n bubbles: true,\n composed: true,\n })\n );\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-button': LibButton;\n }\n}\n"],"names":[],"mappings":"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"}
package/dist/index12.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { unsafeCSS, css, LitElement } from "lit";
2
2
  import { property, customElement } from "lit/decorators.js";
3
- import { accordionItemTemplate } from "./index211.js";
4
- import accordionItemCss from "./index212.js";
5
3
  import sharedTokens from "./index196.js";
4
+ import cardStyles from "./index283.js";
5
+ import { cardTemplate } from "./index284.js";
6
6
  var __defProp = Object.defineProperty;
7
7
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
8
  var __decorateClass = (decorators, target, key, kind) => {
@@ -13,44 +13,58 @@ var __decorateClass = (decorators, target, key, kind) => {
13
13
  if (kind && result) __defProp(target, key, result);
14
14
  return result;
15
15
  };
16
- let LibAccordionItem = class extends LitElement {
16
+ let LibCard = class extends LitElement {
17
17
  constructor() {
18
18
  super(...arguments);
19
- this.label = "";
20
- this.open = false;
19
+ this.variant = "default";
20
+ this.accentColor = void 0;
21
+ this.kanji = "";
22
+ this.clickable = false;
21
23
  }
22
- _handleToggle() {
23
- this.open = !this.open;
24
+ render() {
25
+ return cardTemplate({
26
+ variant: this.variant,
27
+ accentColor: this.accentColor,
28
+ kanji: this.kanji,
29
+ clickable: this.clickable,
30
+ onClick: (e) => this._onClick(e)
31
+ });
32
+ }
33
+ _onClick(e) {
34
+ if (!this.clickable) return;
24
35
  this.dispatchEvent(
25
- new CustomEvent("accordion-toggle", {
36
+ new CustomEvent("ui-lib-card-click", {
37
+ detail: { variant: this.variant, kanji: this.kanji, originalEvent: e },
26
38
  bubbles: true,
27
- composed: true,
28
- detail: { open: this.open }
39
+ composed: true
29
40
  })
30
41
  );
31
42
  }
32
- render() {
33
- return accordionItemTemplate({
34
- label: this.label,
35
- open: this.open,
36
- onToggle: this._handleToggle.bind(this)
37
- });
38
- }
39
43
  };
40
- LibAccordionItem.styles = [
41
- css`${unsafeCSS(sharedTokens)}`,
42
- css`${unsafeCSS(accordionItemCss)}`
44
+ LibCard.styles = [
45
+ css`
46
+ ${unsafeCSS(sharedTokens)}
47
+ `,
48
+ css`
49
+ ${unsafeCSS(cardStyles)}
50
+ `
43
51
  ];
52
+ __decorateClass([
53
+ property({ type: String, reflect: true })
54
+ ], LibCard.prototype, "variant", 2);
55
+ __decorateClass([
56
+ property({ type: String, attribute: "accent-color" })
57
+ ], LibCard.prototype, "accentColor", 2);
44
58
  __decorateClass([
45
59
  property({ type: String })
46
- ], LibAccordionItem.prototype, "label", 2);
60
+ ], LibCard.prototype, "kanji", 2);
47
61
  __decorateClass([
48
62
  property({ type: Boolean, reflect: true })
49
- ], LibAccordionItem.prototype, "open", 2);
50
- LibAccordionItem = __decorateClass([
51
- customElement("lib-accordion-item")
52
- ], LibAccordionItem);
63
+ ], LibCard.prototype, "clickable", 2);
64
+ LibCard = __decorateClass([
65
+ customElement("lib-card")
66
+ ], LibCard);
53
67
  export {
54
- LibAccordionItem
68
+ LibCard
55
69
  };
56
70
  //# sourceMappingURL=index12.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index12.js","sources":["../src/components/atoms/accordion-item/lib-accordion-item.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { accordionItemTemplate } from './lib-accordion-item.component.html';\nimport accordionItemCss from './lib-accordion-item.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\n\n/**\n * @element lib-accordion-item\n *\n * Item colapsable individual. Puede usarse standalone o dentro de lib-accordion.\n * El padre lib-accordion orquesta el comportamiento mutually-exclusive y\n * aplica variantes (flush, separated, accent) via CSS custom properties.\n *\n * @slot - Contenido colapsable\n *\n * @fires accordion-toggle - Emitido al hacer clic en el trigger.\n * detail: { open: boolean }\n *\n * @example\n * <lib-accordion-item label=\"Pregunta\" open>\n * Respuesta detallada aqui.\n * </lib-accordion-item>\n */\n@customElement('lib-accordion-item')\nexport class LibAccordionItem extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(accordionItemCss)}`,\n ];\n\n /** Texto del trigger (cabecera del item) */\n @property({ type: String })\n label = '';\n\n /** Estado abierto/cerrado */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n private _handleToggle(): void {\n this.open = !this.open;\n\n this.dispatchEvent(\n new CustomEvent<{ open: boolean }>('accordion-toggle', {\n bubbles: true,\n composed: true,\n detail: { open: this.open },\n })\n );\n }\n\n override render(): TemplateResult {\n return accordionItemTemplate({\n label: this.label,\n open: this.open,\n onToggle: this._handleToggle.bind(this),\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-accordion-item': LibAccordionItem;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AAwBO,IAAM,mBAAN,cAA+B,WAAW;AAAA,EAA1C,cAAA;AAAA,UAAA,GAAA,SAAA;AAQL,SAAA,QAAQ;AAIR,SAAA,OAAO;AAAA,EAAA;AAAA,EAEC,gBAAsB;AAC5B,SAAK,OAAO,CAAC,KAAK;AAElB,SAAK;AAAA,MACH,IAAI,YAA+B,oBAAoB;AAAA,QACrD,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQ,EAAE,MAAM,KAAK,KAAA;AAAA,MAAK,CAC3B;AAAA,IAAA;AAAA,EAEL;AAAA,EAES,SAAyB;AAChC,WAAO,sBAAsB;AAAA,MAC3B,OAAO,KAAK;AAAA,MACZ,MAAM,KAAK;AAAA,MACX,UAAU,KAAK,cAAc,KAAK,IAAI;AAAA,IAAA,CACvC;AAAA,EACH;AACF;AAjCa,iBACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,gBAAgB,CAAC;AACnC;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAPf,iBAQX,WAAA,SAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAX/B,iBAYX,WAAA,QAAA,CAAA;AAZW,mBAAN,gBAAA;AAAA,EADN,cAAc,oBAAoB;AAAA,GACtB,gBAAA;"}
1
+ {"version":3,"file":"index12.js","sources":["../src/components/atoms/card/lib-card.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport sharedTokens from \"../../../styles/shared/tokens.css?inline\";\nimport cardStyles from \"./lib-card.css?inline\";\nimport { cardTemplate } from \"./lib-card.html\";\nimport type { LibCardVariant } from \"./lib-card.types\";\n\nexport type { LibCardVariant } from \"./lib-card.types\";\n\n/**\n * @element lib-card\n *\n * @attr {'default'|'inverse'|'accent'|'featured'|'kintsugi'|'glitch'|'celadon'|'washi'|'brutal'} variant\n * - default → superficie elevada neutra\n * - inverse → fondo washi-900 oscuro\n * - accent → borde izquierdo de color (`accent-color`)\n * - featured → fondo kaki degradado, título grande — pensado para 2 columnas en grid\n * - kintsugi → seam de oro animado en borde superior + hilo kintsugi-border en borde\n * - glitch → estética terminal CRT, scanlines, fuente mono\n * - celadon → acento verde-gris japonés para estados de éxito / énfasis secundario\n * - washi → paleta neutra cálida, superficie washi-50/100\n * - brutal → superficie clara, borde sólido ink, --lib-shadow-brutal; hover hunde el elemento en su sombra\n *\n * @attr {string} accent-color - Color del borde (solo variante `accent`).\n * @attr {string} kanji - Carácter kanji decorativo de fondo (ej: \"渋\", \"金\", \"間\").\n *\n * @attr {boolean} clickable - Si está presente, la card emite `ui-lib-card-click` al hacer clic\n * @slot tag - Etiqueta o metadata en el header.\n * @slot title - Título principal de la card.\n * @slot - Cuerpo de la card (default slot).\n * @slot footer - Acciones o información en el footer.\n * @fires ui-lib-card-click - { variant, kanji, originalEvent } — solo cuando `clickable` es true.\n */\n@customElement(\"lib-card\")\nexport class LibCard extends LitElement {\n static override styles = [\n css`\n ${unsafeCSS(sharedTokens)}\n `,\n css`\n ${unsafeCSS(cardStyles)}\n `,\n ];\n\n @property({ type: String, reflect: true })\n variant: LibCardVariant = \"default\";\n\n @property({ type: String, attribute: \"accent-color\" })\n accentColor: string | undefined = undefined;\n\n /** Carácter kanji decorativo mostrado como marca de agua en la esquina superior derecha */\n @property({ type: String })\n kanji = \"\";\n\n @property({ type: Boolean, reflect: true })\n clickable = false;\n\n override render(): TemplateResult {\n return cardTemplate({\n variant: this.variant,\n accentColor: this.accentColor,\n kanji: this.kanji,\n clickable: this.clickable,\n onClick: (e: MouseEvent) => this._onClick(e),\n });\n }\n\n _onClick(e: MouseEvent): void {\n if (!this.clickable) return;\n this.dispatchEvent(\n new CustomEvent(\"ui-lib-card-click\", {\n detail: { variant: this.variant, kanji: this.kanji, originalEvent: e },\n bubbles: true,\n composed: true,\n }),\n );\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"lib-card\": LibCard;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAkCO,IAAM,UAAN,cAAsB,WAAW;AAAA,EAAjC,cAAA;AAAA,UAAA,GAAA,SAAA;AAWL,SAAA,UAA0B;AAG1B,SAAA,cAAkC;AAIlC,SAAA,QAAQ;AAGR,SAAA,YAAY;AAAA,EAAA;AAAA,EAEH,SAAyB;AAChC,WAAO,aAAa;AAAA,MAClB,SAAS,KAAK;AAAA,MACd,aAAa,KAAK;AAAA,MAClB,OAAO,KAAK;AAAA,MACZ,WAAW,KAAK;AAAA,MAChB,SAAS,CAAC,MAAkB,KAAK,SAAS,CAAC;AAAA,IAAA,CAC5C;AAAA,EACH;AAAA,EAEA,SAAS,GAAqB;AAC5B,QAAI,CAAC,KAAK,UAAW;AACrB,SAAK;AAAA,MACH,IAAI,YAAY,qBAAqB;AAAA,QACnC,QAAQ,EAAE,SAAS,KAAK,SAAS,OAAO,KAAK,OAAO,eAAe,EAAA;AAAA,QACnE,SAAS;AAAA,QACT,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL;AACF;AA3Ca,QACK,SAAS;AAAA,EACvB;AAAA,QACI,UAAU,YAAY,CAAC;AAAA;AAAA,EAE3B;AAAA,QACI,UAAU,UAAU,CAAC;AAAA;AAE3B;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAV9B,QAWX,WAAA,WAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,WAAW,gBAAgB;AAAA,GAb1C,QAcX,WAAA,eAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAjBf,QAkBX,WAAA,SAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GApB/B,QAqBX,WAAA,aAAA,CAAA;AArBW,UAAN,gBAAA;AAAA,EADN,cAAc,UAAU;AAAA,GACZ,OAAA;"}
package/dist/index13.js CHANGED
@@ -1,9 +1,8 @@
1
1
  import { unsafeCSS, css, LitElement } from "lit";
2
2
  import { property, customElement } from "lit/decorators.js";
3
- import { generateUniqueId } from "./index213.js";
3
+ import { glassCardTemplate } from "./index285.js";
4
+ import glassCss from "./index286.js";
4
5
  import sharedTokens from "./index196.js";
5
- import tooltipCss from "./index214.js";
6
- import { tooltipTemplate } from "./index215.js";
7
6
  var __defProp = Object.defineProperty;
8
7
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
8
  var __decorateClass = (decorators, target, key, kind) => {
@@ -14,55 +13,33 @@ var __decorateClass = (decorators, target, key, kind) => {
14
13
  if (kind && result) __defProp(target, key, result);
15
14
  return result;
16
15
  };
17
- let LibTooltip = class extends LitElement {
16
+ let LibGlassCard = class extends LitElement {
18
17
  constructor() {
19
- super();
20
- this.position = "top";
21
- this.variant = "dark";
22
- this.size = "md";
23
- this.content = "";
24
- this.instant = false;
25
- this.open = false;
26
- this._tipId = generateUniqueId("tip-");
18
+ super(...arguments);
19
+ this.variant = "paper";
20
+ this.intensity = "md";
27
21
  }
28
22
  render() {
29
- return tooltipTemplate({
30
- position: this.position,
23
+ return glassCardTemplate({
31
24
  variant: this.variant,
32
- size: this.size,
33
- content: this.content,
34
- instant: this.instant,
35
- open: this.open,
36
- tipId: this._tipId
25
+ intensity: this.intensity
37
26
  });
38
27
  }
39
28
  };
40
- LibTooltip.styles = [
29
+ LibGlassCard.styles = [
41
30
  css`${unsafeCSS(sharedTokens)}`,
42
- css`${unsafeCSS(tooltipCss)}`
31
+ css`${unsafeCSS(glassCss)}`
43
32
  ];
44
33
  __decorateClass([
45
34
  property({ type: String, reflect: true })
46
- ], LibTooltip.prototype, "position", 2);
35
+ ], LibGlassCard.prototype, "variant", 2);
47
36
  __decorateClass([
48
37
  property({ type: String, reflect: true })
49
- ], LibTooltip.prototype, "variant", 2);
50
- __decorateClass([
51
- property({ type: String, reflect: true })
52
- ], LibTooltip.prototype, "size", 2);
53
- __decorateClass([
54
- property({ type: String })
55
- ], LibTooltip.prototype, "content", 2);
56
- __decorateClass([
57
- property({ type: Boolean, reflect: true })
58
- ], LibTooltip.prototype, "instant", 2);
59
- __decorateClass([
60
- property({ type: Boolean, reflect: true })
61
- ], LibTooltip.prototype, "open", 2);
62
- LibTooltip = __decorateClass([
63
- customElement("lib-tooltip")
64
- ], LibTooltip);
38
+ ], LibGlassCard.prototype, "intensity", 2);
39
+ LibGlassCard = __decorateClass([
40
+ customElement("lib-glass-card")
41
+ ], LibGlassCard);
65
42
  export {
66
- LibTooltip
43
+ LibGlassCard
67
44
  };
68
45
  //# sourceMappingURL=index13.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index13.js","sources":["../src/components/atoms/tooltip/lib-tooltip.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { generateUniqueId } from '../../../core/a11y';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport tooltipCss from './lib-tooltip.css?inline';\nimport { tooltipTemplate } from './lib-tooltip.html';\n\n/* ── Tipos públicos ─────────────────────────────────────────── */\n\n/**\n * Posición de la burbuja respecto al trigger.\n * Las cuatro cardinales centran la burbuja.\n * Las variantes -start/-end alinean al extremo — útiles\n * cuando el trigger está junto al borde de pantalla.\n */\nexport type TooltipPosition =\n | 'top' | 'bottom' | 'left' | 'right'\n | 'top-start' | 'top-end'\n | 'bottom-start' | 'bottom-end';\n\n/**\n * Variante de color.\n * - `dark` — washi-900, máximo contraste (default).\n * - `light` — fondo blanco con borde, para superficies oscuras\n * o cuando el contenido necesita estructura visible.\n * - `kaki` — acento naranja terracota.\n * - `celadon` — estado positivo / informativo.\n * - `error` — validación fallida o acción destructiva.\n */\nexport type TooltipVariant = 'dark' | 'light' | 'kaki' | 'celadon' | 'error';\n\n/** Tamaño de la burbuja. */\nexport type TooltipSize = 'sm' | 'md' | 'lg';\n\n/**\n * @element lib-tooltip\n *\n * Wrapper que envuelve cualquier trigger y muestra una burbuja\n * flotante en hover / focus. Sin JS para el caso base —\n * todo mediante CSS :hover + :focus-within.\n *\n * ## Uso simple\n * ```html\n * <lib-tooltip content=\"Guardar cambios\">\n * <button>...</button>\n * </lib-tooltip>\n * ```\n *\n * ## Contenido rico (slot=\"content\")\n * ```html\n * <lib-tooltip position=\"top\" variant=\"light\" size=\"lg\">\n * <button>...</button>\n * <span slot=\"content\">\n * <span class=\"tip-title\">Tokens de color</span>\n * <span class=\"tip-body\">Paleta completa en CSS variables.</span>\n * <div class=\"tip-sep\"></div>\n * <div class=\"tip-kbd\"><kbd>⌘</kbd><kbd>K</kbd></div>\n * </span>\n * </lib-tooltip>\n * ```\n *\n * @prop {TooltipPosition} position - Posición de la burbuja (default: top).\n * @prop {TooltipVariant} variant - Variante de color (default: dark).\n * @prop {TooltipSize} size - Tamaño sm | md | lg (default: md).\n * @prop {string} content - Texto simple. Para contenido rico usa slot=\"content\".\n * @prop {boolean} instant - Elimina el delay de entrada de 300ms.\n * @prop {boolean} open - Abre la burbuja programáticamente.\n *\n * @slot - El trigger (cualquier elemento interactivo).\n * @slot content - Contenido rico de la burbuja (tip-title, tip-body, tip-kbd, tip-sep).\n *\n * @csspart wrapper - El div posicionador interno.\n * @csspart bubble - El span de la burbuja flotante.\n */\n@customElement('lib-tooltip')\nexport class LibTooltip extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(tooltipCss)}`,\n ];\n\n private _tipId: string;\n\n constructor() {\n super();\n this._tipId = generateUniqueId('tip-');\n }\n\n @property({ type: String, reflect: true })\n position: TooltipPosition = 'top';\n\n @property({ type: String, reflect: true })\n variant: TooltipVariant = 'dark';\n\n @property({ type: String, reflect: true })\n size: TooltipSize = 'md';\n\n @property({ type: String })\n content: string = '';\n\n @property({ type: Boolean, reflect: true })\n instant: boolean = false;\n\n /** Abre la burbuja programáticamente (equivale a `.is-open`). */\n @property({ type: Boolean, reflect: true })\n open: boolean = false;\n\n override render(): TemplateResult {\n return tooltipTemplate({\n position: this.position,\n variant: this.variant,\n size: this.size,\n content: this.content,\n instant: this.instant,\n open: this.open,\n tipId: this._tipId,\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-tooltip': LibTooltip;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA2EO,IAAM,aAAN,cAAyB,WAAW;AAAA,EAQzC,cAAc;AACZ,UAAA;AAKF,SAAA,WAA4B;AAG5B,SAAA,UAA0B;AAG1B,SAAA,OAAoB;AAGpB,SAAA,UAAkB;AAGlB,SAAA,UAAmB;AAInB,SAAA,OAAgB;AApBd,SAAK,SAAS,iBAAiB,MAAM;AAAA,EACvC;AAAA,EAqBS,SAAyB;AAChC,WAAO,gBAAgB;AAAA,MACrB,UAAU,KAAK;AAAA,MACf,SAAU,KAAK;AAAA,MACf,MAAU,KAAK;AAAA,MACf,SAAU,KAAK;AAAA,MACf,SAAU,KAAK;AAAA,MACf,MAAU,KAAK;AAAA,MACf,OAAU,KAAK;AAAA,IAAA,CAChB;AAAA,EACH;AACF;AA3Ca,WACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,UAAU,CAAC;AAC7B;AAUA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAb9B,WAcX,WAAA,YAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAhB9B,WAiBX,WAAA,WAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAnB9B,WAoBX,WAAA,QAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAtBf,WAuBX,WAAA,WAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAzB/B,WA0BX,WAAA,WAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GA7B/B,WA8BX,WAAA,QAAA,CAAA;AA9BW,aAAN,gBAAA;AAAA,EADN,cAAc,aAAa;AAAA,GACf,UAAA;"}
1
+ {"version":3,"file":"index13.js","sources":["../src/components/atoms/card/glass-card/lib-glass-card.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type { LibGlassVariant, LibGlassIntensity } from './lib-glass-card.types';\nimport { glassCardTemplate } from './lib-glass-card.html';\nimport glassCss from './lib-glass-card.css?inline';\nimport sharedTokens from '../../../../styles/shared/tokens.css?inline';\n\n/**\n * @element lib-glass-card\n *\n * Contenedor con efecto glassmorphism (Efecto Agua).\n * Requiere un fondo oscuro en el elemento padre para que\n * el backdrop-filter sea visible.\n *\n * @slot - Contenido de la card (eyebrow, título, body, footer...).\n *\n * @example uso básico\n * <lib-glass-card>\n * <h3>Paper Glass</h3>\n * <p>Variante neutra sobre fondo oscuro.</p>\n * </lib-glass-card>\n *\n * @example variante water con intensidad alta\n * <lib-glass-card variant=\"water\" intensity=\"high\">...</lib-glass-card>\n *\n * @example variante kaki\n * <lib-glass-card variant=\"kaki\">...</lib-glass-card>\n */\n@customElement('lib-glass-card')\nexport class LibGlassCard extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(glassCss)}`,\n ];\n\n /**\n * Tinte de color del cristal.\n * - paper : neutro paper al 15% (default)\n * - water : azul sereno oklch(55% 0.06 210)\n * - kaki : orgánico cálido oklch(45% 0.05 45)\n */\n @property({ type: String, reflect: true })\n variant: LibGlassVariant = 'paper';\n\n /**\n * Intensidad del efecto (blur + opacidad).\n * - low : blur 4px · opacity 0.10 — sutil\n * - md : blur 12px · opacity 0.15 default\n * - high : blur 25px · opacity 0.25 — máximo\n */\n @property({ type: String, reflect: true })\n intensity: LibGlassIntensity = 'md';\n\n override render(): TemplateResult {\n return glassCardTemplate({\n variant: this.variant,\n intensity: this.intensity,\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-glass-card': LibGlassCard;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AA6BO,IAAM,eAAN,cAA2B,WAAW;AAAA,EAAtC,cAAA;AAAA,UAAA,GAAA,SAAA;AAaL,SAAA,UAA2B;AAS3B,SAAA,YAA+B;AAAA,EAAA;AAAA,EAEtB,SAAyB;AAChC,WAAO,kBAAkB;AAAA,MACvB,SAAW,KAAK;AAAA,MAChB,WAAW,KAAK;AAAA,IAAA,CACjB;AAAA,EACH;AACF;AA9Ba,aACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,QAAQ,CAAC;AAC3B;AASA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAZ9B,aAaX,WAAA,WAAA,CAAA;AASA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GArB9B,aAsBX,WAAA,aAAA,CAAA;AAtBW,eAAN,gBAAA;AAAA,EADN,cAAc,gBAAgB;AAAA,GAClB,YAAA;"}
package/dist/index14.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 { stepTemplate } from "./index216.js";
4
- import stepCss from "./index217.js";
3
+ import { spotlightCardTemplate } from "./index287.js";
4
+ import spotlightCss from "./index288.js";
5
5
  import sharedTokens from "./index196.js";
6
6
  var __defProp = Object.defineProperty;
7
7
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -13,61 +13,46 @@ var __decorateClass = (decorators, target, key, kind) => {
13
13
  if (kind && result) __defProp(target, key, result);
14
14
  return result;
15
15
  };
16
- let LibStep = class extends LitElement {
16
+ let LibSpotlightCard = class extends LitElement {
17
17
  constructor() {
18
18
  super(...arguments);
19
- this.label = "";
20
- this.sub = "";
21
- this.index = 1;
22
- this.status = "pending";
23
- this.last = false;
24
- this.orientation = "horizontal";
25
- this.variant = "default";
26
- this.size = "md";
19
+ this.spotlight = "kaki";
20
+ this.kintsugi = false;
27
21
  }
28
22
  render() {
29
- return stepTemplate({
30
- index: this.index,
31
- status: this.status,
32
- label: this.label,
33
- sub: this.sub,
34
- last: this.last,
35
- orientation: this.orientation
23
+ return spotlightCardTemplate({
24
+ spotlight: this.spotlight,
25
+ kintsugi: this.kintsugi,
26
+ onMouseMove: this._handleMouseMove.bind(this),
27
+ onMouseLeave: this._handleMouseLeave.bind(this)
36
28
  });
37
29
  }
30
+ _handleMouseMove(e) {
31
+ const rect = e.currentTarget.getBoundingClientRect();
32
+ const x = (e.clientX - rect.left) / rect.width * 100;
33
+ const y = (e.clientY - rect.top) / rect.height * 100;
34
+ this.style.setProperty("--lib-spotlight-x", `${x}%`);
35
+ this.style.setProperty("--lib-spotlight-y", `${y}%`);
36
+ }
37
+ _handleMouseLeave() {
38
+ this.style.setProperty("--lib-spotlight-x", "50%");
39
+ this.style.setProperty("--lib-spotlight-y", "50%");
40
+ }
38
41
  };
39
- LibStep.styles = [
42
+ LibSpotlightCard.styles = [
40
43
  css`${unsafeCSS(sharedTokens)}`,
41
- css`${unsafeCSS(stepCss)}`
44
+ css`${unsafeCSS(spotlightCss)}`
42
45
  ];
43
- __decorateClass([
44
- property({ type: String })
45
- ], LibStep.prototype, "label", 2);
46
- __decorateClass([
47
- property({ type: String })
48
- ], LibStep.prototype, "sub", 2);
49
- __decorateClass([
50
- property({ type: Number, reflect: true })
51
- ], LibStep.prototype, "index", 2);
52
46
  __decorateClass([
53
47
  property({ type: String, reflect: true })
54
- ], LibStep.prototype, "status", 2);
48
+ ], LibSpotlightCard.prototype, "spotlight", 2);
55
49
  __decorateClass([
56
50
  property({ type: Boolean, reflect: true })
57
- ], LibStep.prototype, "last", 2);
58
- __decorateClass([
59
- property({ type: String, reflect: true })
60
- ], LibStep.prototype, "orientation", 2);
61
- __decorateClass([
62
- property({ type: String, reflect: true })
63
- ], LibStep.prototype, "variant", 2);
64
- __decorateClass([
65
- property({ type: String, reflect: true })
66
- ], LibStep.prototype, "size", 2);
67
- LibStep = __decorateClass([
68
- customElement("lib-step")
69
- ], LibStep);
51
+ ], LibSpotlightCard.prototype, "kintsugi", 2);
52
+ LibSpotlightCard = __decorateClass([
53
+ customElement("lib-spotlight-card")
54
+ ], LibSpotlightCard);
70
55
  export {
71
- LibStep
56
+ LibSpotlightCard
72
57
  };
73
58
  //# sourceMappingURL=index14.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index14.js","sources":["../src/components/atoms/step/lib-step.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type {\n LibStepStatus,\n LibStepOrientation,\n LibStepVariant,\n LibStepSize,\n} from './lib-step.types';\nimport { stepTemplate } from './lib-step.html';\nimport stepCss from './lib-step.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\n\n/**\n * @element lib-step\n *\n * Paso individual del stepper. Diseñado para usarse dentro de `<lib-stepper>`,\n * que inyecta automáticamente `index`, `status`, `last`, `orientation`,\n * `variant` y `size`. El usuario solo necesita declarar `label` y, opcionalmente, `sub`.\n *\n * En modo vertical acepta contenido descriptivo en el slot por defecto.\n *\n * @example dentro de lib-stepper (uso recomendado)\n * <lib-stepper current=\"2\">\n * <lib-step label=\"Información\" sub=\"Datos personales\"></lib-step>\n * <lib-step label=\"Pago\" sub=\"Método de pago\"></lib-step>\n * <lib-step label=\"Confirmación\"></lib-step>\n * </lib-stepper>\n *\n * @example — vertical con contenido en slot\n * <lib-stepper orientation=\"vertical\">\n * <lib-step label=\"Crea tu cuenta\">\n * Registro completado. Tu correo ha sido verificado.\n * </lib-step>\n * </lib-stepper>\n */\n@customElement('lib-step')\nexport class LibStep extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(stepCss)}`,\n ];\n\n /** Texto principal del paso (requerido por el usuario). */\n @property({ type: String })\n label = '';\n\n /** Texto secundario corto (opcional). */\n @property({ type: String })\n sub = '';\n\n /**\n * Número ordinal del paso.\n * Inyectado automáticamente por lib-stepper.\n */\n @property({ type: Number, reflect: true })\n index = 1;\n\n /**\n * Estado visual del nodo.\n * Inyectado automáticamente por lib-stepper.\n * - pending : por defecto nodo vacío\n * - active : paso en curso fondo oscuro + halo\n * - completed : paso superado checkmark\n * - error : fallo icono de exclamación\n */\n @property({ type: String, reflect: true })\n status: LibStepStatus = 'pending';\n\n /**\n * Marca el último paso del stepper (no renderiza conector).\n * Inyectado automáticamente por lib-stepper.\n */\n @property({ type: Boolean, reflect: true })\n last = false;\n\n /**\n * Dirección del flujo. Inyectado por lib-stepper.\n */\n @property({ type: String, reflect: true })\n orientation: LibStepOrientation = 'horizontal';\n\n /**\n * Variante visual. Inyectada por lib-stepper.\n * - default : nodo circular washi\n * - minimal : nodo cuadrado kaki\n * - kintsugi : venas doradas sobre superficie oscura\n */\n @property({ type: String, reflect: true })\n variant: LibStepVariant = 'default';\n\n /**\n * Tamaño del nodo. Inyectado por lib-stepper.\n * - sm : 24px\n * - md : 32px (default)\n * - lg : 40px\n */\n @property({ type: String, reflect: true })\n size: LibStepSize = 'md';\n\n override render(): TemplateResult {\n return stepTemplate({\n index: this.index,\n status: this.status,\n label: this.label,\n sub: this.sub,\n last: this.last,\n orientation: this.orientation,\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-step': LibStep;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AAoCO,IAAM,UAAN,cAAsB,WAAW;AAAA,EAAjC,cAAA;AAAA,UAAA,GAAA,SAAA;AAQL,SAAA,QAAQ;AAIR,SAAA,MAAM;AAON,SAAA,QAAQ;AAWR,SAAA,SAAwB;AAOxB,SAAA,OAAO;AAMP,SAAA,cAAkC;AASlC,SAAA,UAA0B;AAS1B,SAAA,OAAoB;AAAA,EAAA;AAAA,EAEX,SAAyB;AAChC,WAAO,aAAa;AAAA,MAClB,OAAa,KAAK;AAAA,MAClB,QAAa,KAAK;AAAA,MAClB,OAAa,KAAK;AAAA,MAClB,KAAa,KAAK;AAAA,MAClB,MAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,IAAA,CACnB;AAAA,EACH;AACF;AAzEa,QACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,OAAO,CAAC;AAC1B;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAPf,QAQX,WAAA,SAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAXf,QAYX,WAAA,OAAA,CAAA;AAOA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAlB9B,QAmBX,WAAA,SAAA,CAAA;AAWA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GA7B9B,QA8BX,WAAA,UAAA,CAAA;AAOA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GApC/B,QAqCX,WAAA,QAAA,CAAA;AAMA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GA1C9B,QA2CX,WAAA,eAAA,CAAA;AASA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAnD9B,QAoDX,WAAA,WAAA,CAAA;AASA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GA5D9B,QA6DX,WAAA,QAAA,CAAA;AA7DW,UAAN,gBAAA;AAAA,EADN,cAAc,UAAU;AAAA,GACZ,OAAA;"}
1
+ {"version":3,"file":"index14.js","sources":["../src/components/atoms/card/spotlight-card/lib-spotlight-card.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type { LibSpotlightVariant } from './lib-spotlight-card.types';\nimport { spotlightCardTemplate } from './lib-spotlight-card.html';\nimport spotlightCss from './lib-spotlight-card.css?inline';\nimport sharedTokens from '../../../../styles/shared/tokens.css?inline';\n\n/**\n * @element lib-spotlight-card\n *\n * Contenedor con foco de luz reactivo al cursor (Kintsugi Digital).\n * El gradiente radial sigue al puntero actualizando\n * `--lib-spotlight-x` y `--lib-spotlight-y` en :host.\n *\n * Con `kintsugi` activo añade el hilo de oro en el borde\n * y cambia el fondo a un tono cálido oscuro.\n *\n * @slot - Contenido de la card.\n *\n * @example — spotlight kaki\n * <lib-spotlight-card>...</lib-spotlight-card>\n *\n * @example spotlight water\n * <lib-spotlight-card spotlight=\"water\">...</lib-spotlight-card>\n *\n * @example — kintsugi border + spotlight kaki\n * <lib-spotlight-card kintsugi>...</lib-spotlight-card>\n */\n@customElement('lib-spotlight-card')\nexport class LibSpotlightCard extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(spotlightCss)}`,\n ];\n\n /**\n * Color del foco de luz.\n * - kaki : orgánico cálido oklch(45% 0.05 45) [default]\n * - water : azul sereno oklch(55% 0.06 210)\n * - white : neutro oklch(100% 0 0)\n *\n * Nota: cuando `kintsugi` está activo el spotlight es siempre kaki.\n */\n @property({ type: String, reflect: true })\n spotlight: LibSpotlightVariant = 'kaki';\n\n /**\n * Activa el hilo de oro en el borde (--lib-kintsugi-border)\n * y cambia el fondo del contenedor a un tono cálido oscuro.\n */\n @property({ type: Boolean, reflect: true })\n kintsugi = false;\n\n override render(): TemplateResult {\n return spotlightCardTemplate({\n spotlight: this.spotlight,\n kintsugi: this.kintsugi,\n onMouseMove: this._handleMouseMove.bind(this),\n onMouseLeave: this._handleMouseLeave.bind(this),\n });\n }\n\n private _handleMouseMove(e: MouseEvent): void {\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const x = ((e.clientX - rect.left) / rect.width) * 100;\n const y = ((e.clientY - rect.top) / rect.height) * 100;\n\n // Actualiza las custom properties en :host\n // El radial-gradient del CSS las consume automáticamente\n this.style.setProperty('--lib-spotlight-x', `${x}%`);\n this.style.setProperty('--lib-spotlight-y', `${y}%`);\n }\n\n private _handleMouseLeave(): void {\n // Resetea al centro — la layer se oculta vía CSS opacity: 0\n this.style.setProperty('--lib-spotlight-x', '50%');\n this.style.setProperty('--lib-spotlight-y', '50%');\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-spotlight-card': LibSpotlightCard;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AA6BO,IAAM,mBAAN,cAA+B,WAAW;AAAA,EAA1C,cAAA;AAAA,UAAA,GAAA,SAAA;AAeL,SAAA,YAAiC;AAOjC,SAAA,WAAW;AAAA,EAAA;AAAA,EAEF,SAAyB;AAChC,WAAO,sBAAsB;AAAA,MAC3B,WAAc,KAAK;AAAA,MACnB,UAAc,KAAK;AAAA,MACnB,aAAc,KAAK,iBAAiB,KAAK,IAAI;AAAA,MAC7C,cAAc,KAAK,kBAAkB,KAAK,IAAI;AAAA,IAAA,CAC/C;AAAA,EACH;AAAA,EAEQ,iBAAiB,GAAqB;AAC5C,UAAM,OAAQ,EAAE,cAA8B,sBAAA;AAC9C,UAAM,KAAM,EAAE,UAAU,KAAK,QAAQ,KAAK,QAAU;AACpD,UAAM,KAAM,EAAE,UAAU,KAAK,OAAQ,KAAK,SAAU;AAIpD,SAAK,MAAM,YAAY,qBAAqB,GAAG,CAAC,GAAG;AACnD,SAAK,MAAM,YAAY,qBAAqB,GAAG,CAAC,GAAG;AAAA,EACrD;AAAA,EAEQ,oBAA0B;AAEhC,SAAK,MAAM,YAAY,qBAAqB,KAAK;AACjD,SAAK,MAAM,YAAY,qBAAqB,KAAK;AAAA,EACnD;AACF;AAjDa,iBACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,YAAY,CAAC;AAC/B;AAWA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAd9B,iBAeX,WAAA,aAAA,CAAA;AAOA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GArB/B,iBAsBX,WAAA,YAAA,CAAA;AAtBW,mBAAN,gBAAA;AAAA,EADN,cAAc,oBAAoB;AAAA,GACtB,gBAAA;"}