@shibui-ui/ui 1.24.1 → 1.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/dist/components/atoms/index.d.ts +45 -16
  2. package/dist/components/atoms/index.d.ts.map +1 -1
  3. package/dist/components/molecules/index.d.ts +20 -1
  4. package/dist/components/molecules/index.d.ts.map +1 -1
  5. package/dist/components/organisms/index.d.ts +17 -1
  6. package/dist/components/organisms/index.d.ts.map +1 -1
  7. package/dist/index.d.ts +3 -82
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +79 -80
  10. package/dist/index.js.map +1 -1
  11. package/dist/index10.js +82 -18
  12. package/dist/index10.js.map +1 -1
  13. package/dist/index11.js +84 -69
  14. package/dist/index11.js.map +1 -1
  15. package/dist/index12.js +40 -26
  16. package/dist/index12.js.map +1 -1
  17. package/dist/index13.js +16 -39
  18. package/dist/index13.js.map +1 -1
  19. package/dist/index14.js +29 -44
  20. package/dist/index14.js.map +1 -1
  21. package/dist/index15.js +16 -117
  22. package/dist/index15.js.map +1 -1
  23. package/dist/index16.js +48 -40
  24. package/dist/index16.js.map +1 -1
  25. package/dist/index17.js +41 -25
  26. package/dist/index17.js.map +1 -1
  27. package/dist/index18.js +76 -49
  28. package/dist/index18.js.map +1 -1
  29. package/dist/index19.js +19 -39
  30. package/dist/index19.js.map +1 -1
  31. package/dist/index194.js +94 -24
  32. package/dist/index194.js.map +1 -1
  33. package/dist/index195.js +2 -2
  34. package/dist/index197.js +2 -24
  35. package/dist/index197.js.map +1 -1
  36. package/dist/index198.js +74 -2
  37. package/dist/index198.js.map +1 -1
  38. package/dist/index199.js +64 -35
  39. package/dist/index199.js.map +1 -1
  40. package/dist/index20.js +21 -41
  41. package/dist/index20.js.map +1 -1
  42. package/dist/index200.js +2 -2
  43. package/dist/index201.js +54 -13
  44. package/dist/index201.js.map +1 -1
  45. package/dist/index202.js +2 -2
  46. package/dist/index203.js +2 -2
  47. package/dist/index204.js +143 -157
  48. package/dist/index204.js.map +1 -1
  49. package/dist/index205.js +43 -24
  50. package/dist/index205.js.map +1 -1
  51. package/dist/index206.js +51 -2
  52. package/dist/index206.js.map +1 -1
  53. package/dist/index207.js +2 -11
  54. package/dist/index207.js.map +1 -1
  55. package/dist/index208.js +33 -2
  56. package/dist/index208.js.map +1 -1
  57. package/dist/index209.js +2 -91
  58. package/dist/index209.js.map +1 -1
  59. package/dist/index21.js +90 -26
  60. package/dist/index21.js.map +1 -1
  61. package/dist/index210.js +6 -2
  62. package/dist/index210.js.map +1 -1
  63. package/dist/index211.js +2 -41
  64. package/dist/index211.js.map +1 -1
  65. package/dist/index212.js +260 -2
  66. package/dist/index212.js.map +1 -1
  67. package/dist/index213.js +16 -5
  68. package/dist/index213.js.map +1 -1
  69. package/dist/index214.js +2 -2
  70. package/dist/index215.js +2 -35
  71. package/dist/index215.js.map +1 -1
  72. package/dist/index216.js +59 -42
  73. package/dist/index216.js.map +1 -1
  74. package/dist/index217.js +32 -2
  75. package/dist/index217.js.map +1 -1
  76. package/dist/index218.js +2 -85
  77. package/dist/index218.js.map +1 -1
  78. package/dist/index219.js +2 -2
  79. package/dist/index22.js +41 -48
  80. package/dist/index22.js.map +1 -1
  81. package/dist/index220.js +73 -65
  82. package/dist/index220.js.map +1 -1
  83. package/dist/index221.js +81 -2
  84. package/dist/index221.js.map +1 -1
  85. package/dist/index222.js +2 -10
  86. package/dist/index222.js.map +1 -1
  87. package/dist/index223.js +133 -2
  88. package/dist/index223.js.map +1 -1
  89. package/dist/index224.js +2 -26
  90. package/dist/index224.js.map +1 -1
  91. package/dist/index225.js +2 -2
  92. package/dist/index226.js +66 -12
  93. package/dist/index226.js.map +1 -1
  94. package/dist/index227.js +97 -2
  95. package/dist/index227.js.map +1 -1
  96. package/dist/index228.js +2 -2
  97. package/dist/index229.js +62 -24
  98. package/dist/index229.js.map +1 -1
  99. package/dist/index23.js +50 -94
  100. package/dist/index23.js.map +1 -1
  101. package/dist/index230.js +2 -2
  102. package/dist/index231.js +2 -2
  103. package/dist/index232.js +12 -2
  104. package/dist/index232.js.map +1 -1
  105. package/dist/index233.js +5 -16
  106. package/dist/index233.js.map +1 -1
  107. package/dist/index234.js +2 -2
  108. package/dist/index235.js +11 -9
  109. package/dist/index235.js.map +1 -1
  110. package/dist/index236.js +2 -2
  111. package/dist/index237.js +76 -34
  112. package/dist/index237.js.map +1 -1
  113. package/dist/index238.js +2 -2
  114. package/dist/index239.js +2 -27
  115. package/dist/index239.js.map +1 -1
  116. package/dist/index24.js +37 -34
  117. package/dist/index24.js.map +1 -1
  118. package/dist/index240.js +39 -2
  119. package/dist/index240.js.map +1 -1
  120. package/dist/index241.js +2 -34
  121. package/dist/index241.js.map +1 -1
  122. package/dist/index242.js +235 -12
  123. package/dist/index242.js.map +1 -1
  124. package/dist/index243.js +82 -2
  125. package/dist/index243.js.map +1 -1
  126. package/dist/index244.js +2 -9
  127. package/dist/index244.js.map +1 -1
  128. package/dist/index245.js +94 -2
  129. package/dist/index245.js.map +1 -1
  130. package/dist/index246.js +2 -5
  131. package/dist/index246.js.map +1 -1
  132. package/dist/index247.js +268 -2
  133. package/dist/index247.js.map +1 -1
  134. package/dist/index248.js +2 -36
  135. package/dist/index248.js.map +1 -1
  136. package/dist/index249.js +21 -2
  137. package/dist/index249.js.map +1 -1
  138. package/dist/index25.js +51 -32
  139. package/dist/index25.js.map +1 -1
  140. package/dist/index250.js +2 -31
  141. package/dist/index250.js.map +1 -1
  142. package/dist/index251.js +9 -2
  143. package/dist/index251.js.map +1 -1
  144. package/dist/index252.js +2 -19
  145. package/dist/index252.js.map +1 -1
  146. package/dist/index253.js +15 -2
  147. package/dist/index253.js.map +1 -1
  148. package/dist/index254.js +2 -2
  149. package/dist/index255.js +135 -69
  150. package/dist/index255.js.map +1 -1
  151. package/dist/index256.js +2 -11
  152. package/dist/index256.js.map +1 -1
  153. package/dist/index257.js +5 -2
  154. package/dist/index257.js.map +1 -1
  155. package/dist/index258.js +2 -78
  156. package/dist/index258.js.map +1 -1
  157. package/dist/index259.js +9 -2
  158. package/dist/index259.js.map +1 -1
  159. package/dist/index26.js +31 -236
  160. package/dist/index26.js.map +1 -1
  161. package/dist/index260.js +2 -32
  162. package/dist/index260.js.map +1 -1
  163. package/dist/index261.js +2 -2
  164. package/dist/index262.js +92 -9
  165. package/dist/index262.js.map +1 -1
  166. package/dist/index263.js +59 -2
  167. package/dist/index263.js.map +1 -1
  168. package/dist/index264.js +2 -16
  169. package/dist/index264.js.map +1 -1
  170. package/dist/index265.js +41 -2
  171. package/dist/index265.js.map +1 -1
  172. package/dist/index266.js +2 -16
  173. package/dist/index266.js.map +1 -1
  174. package/dist/index267.js +34 -9
  175. package/dist/index267.js.map +1 -1
  176. package/dist/index268.js +8 -54
  177. package/dist/index268.js.map +1 -1
  178. package/dist/index269.js +2 -2
  179. package/dist/index27.js +27 -58
  180. package/dist/index27.js.map +1 -1
  181. package/dist/index270.js +42 -7
  182. package/dist/index270.js.map +1 -1
  183. package/dist/index271.js +2 -2
  184. package/dist/index272.js +2 -34
  185. package/dist/index272.js.map +1 -1
  186. package/dist/index273.js +16 -2
  187. package/dist/index273.js.map +1 -1
  188. package/dist/index274.js +9 -2
  189. package/dist/index274.js.map +1 -1
  190. package/dist/index275.js +6 -13
  191. package/dist/index275.js.map +1 -1
  192. package/dist/index276.js +2 -2
  193. package/dist/index277.js +8 -15
  194. package/dist/index277.js.map +1 -1
  195. package/dist/index278.js +2 -2
  196. package/dist/index279.js +55 -2
  197. package/dist/index279.js.map +1 -1
  198. package/dist/index28.js +247 -24
  199. package/dist/index28.js.map +1 -1
  200. package/dist/index280.js +2 -42
  201. package/dist/index280.js.map +1 -1
  202. package/dist/index281.js +2 -100
  203. package/dist/index281.js.map +1 -1
  204. package/dist/index282.js +20 -2
  205. package/dist/index282.js.map +1 -1
  206. package/dist/index283.js +2 -97
  207. package/dist/index283.js.map +1 -1
  208. package/dist/index284.js +33 -2
  209. package/dist/index284.js.map +1 -1
  210. package/dist/index285.js +6 -27
  211. package/dist/index285.js.map +1 -1
  212. package/dist/index286.js +2 -2
  213. package/dist/index287.js +9 -44
  214. package/dist/index287.js.map +1 -1
  215. package/dist/index288.js +2 -2
  216. package/dist/index289.js +2 -33
  217. package/dist/index289.js.map +1 -1
  218. package/dist/index29.js +249 -39
  219. package/dist/index29.js.map +1 -1
  220. package/dist/index290.js +36 -2
  221. package/dist/index290.js.map +1 -1
  222. package/dist/index291.js +2 -57
  223. package/dist/index291.js.map +1 -1
  224. package/dist/index292.js +24 -2
  225. package/dist/index292.js.map +1 -1
  226. package/dist/index293.js +2 -2
  227. package/dist/index294.js +26 -247
  228. package/dist/index294.js.map +1 -1
  229. package/dist/index295.js +2 -2
  230. package/dist/index296.js +2 -72
  231. package/dist/index296.js.map +1 -1
  232. package/dist/index297.js +42 -2
  233. package/dist/index297.js.map +1 -1
  234. package/dist/index298.js +7 -56
  235. package/dist/index298.js.map +1 -1
  236. package/dist/index299.js +2 -133
  237. package/dist/index299.js.map +1 -1
  238. package/dist/index30.js +32 -19
  239. package/dist/index30.js.map +1 -1
  240. package/dist/index300.js +30 -2
  241. package/dist/index300.js.map +1 -1
  242. package/dist/index301.js +2 -12
  243. package/dist/index301.js.map +1 -1
  244. package/dist/index302.js +34 -2
  245. package/dist/index302.js.map +1 -1
  246. package/dist/index303.js +2 -162
  247. package/dist/index303.js.map +1 -1
  248. package/dist/index304.js +26 -42
  249. package/dist/index304.js.map +1 -1
  250. package/dist/index305.js +2 -81
  251. package/dist/index305.js.map +1 -1
  252. package/dist/index306.js +10 -2
  253. package/dist/index306.js.map +1 -1
  254. package/dist/index307.js +2 -71
  255. package/dist/index307.js.map +1 -1
  256. package/dist/index308.js +2 -2
  257. package/dist/index309.js +19 -2
  258. package/dist/index309.js.map +1 -1
  259. package/dist/index31.js +96 -11
  260. package/dist/index31.js.map +1 -1
  261. package/dist/index310.js +2 -81
  262. package/dist/index310.js.map +1 -1
  263. package/dist/index311.js +2 -2
  264. package/dist/index312.js +42 -2
  265. package/dist/index312.js.map +1 -1
  266. package/dist/index313.js +2 -74
  267. package/dist/index313.js.map +1 -1
  268. package/dist/index314.js +25 -67
  269. package/dist/index314.js.map +1 -1
  270. package/dist/index315.js +2 -2
  271. package/dist/index316.js +9 -17
  272. package/dist/index316.js.map +1 -1
  273. package/dist/index317.js +2 -2
  274. package/dist/index318.js +84 -32
  275. package/dist/index318.js.map +1 -1
  276. package/dist/index319.js +2 -2
  277. package/dist/index32.js +40 -48
  278. package/dist/index32.js.map +1 -1
  279. package/dist/index320.js +68 -77
  280. package/dist/index320.js.map +1 -1
  281. package/dist/index321.js +2 -2
  282. package/dist/index322.js +12 -148
  283. package/dist/index322.js.map +1 -1
  284. package/dist/index323.js +1 -1
  285. package/dist/index324.js +28 -6
  286. package/dist/index324.js.map +1 -1
  287. package/dist/index325.js +2 -2
  288. package/dist/index326.js +78 -87
  289. package/dist/index326.js.map +1 -1
  290. package/dist/index327.js +2 -2
  291. package/dist/index328.js +78 -2
  292. package/dist/index328.js.map +1 -1
  293. package/dist/index329.js +2 -237
  294. package/dist/index329.js.map +1 -1
  295. package/dist/index33.js +20 -56
  296. package/dist/index33.js.map +1 -1
  297. package/dist/index330.js +11 -6
  298. package/dist/index330.js.map +1 -1
  299. package/dist/index331.js +2 -2
  300. package/dist/index332.js +18 -59
  301. package/dist/index332.js.map +1 -1
  302. package/dist/index333.js +2 -2
  303. package/dist/index334.js +12 -5
  304. package/dist/index334.js.map +1 -1
  305. package/dist/index335.js +2 -2
  306. package/dist/index336.js +2 -15
  307. package/dist/index336.js.map +1 -1
  308. package/dist/index337.js +88 -2
  309. package/dist/index337.js.map +1 -1
  310. package/dist/index338.js +24 -2
  311. package/dist/index338.js.map +1 -1
  312. package/dist/index339.js +2 -92
  313. package/dist/index339.js.map +1 -1
  314. package/dist/index34.js +59 -35
  315. package/dist/index34.js.map +1 -1
  316. package/dist/index340.js +42 -14
  317. package/dist/index340.js.map +1 -1
  318. package/dist/index341.js +2 -2
  319. package/dist/index342.js +22 -80
  320. package/dist/index342.js.map +1 -1
  321. package/dist/index343.js +2 -2
  322. package/dist/index344.js +2 -18
  323. package/dist/index344.js.map +1 -1
  324. package/dist/index345.js +16 -2
  325. package/dist/index345.js.map +1 -1
  326. package/dist/index346.js +2 -268
  327. package/dist/index346.js.map +1 -1
  328. package/dist/index347.js +176 -2
  329. package/dist/index347.js.map +1 -1
  330. package/dist/index348.js +2 -2
  331. package/dist/index349.js +35 -39
  332. package/dist/index349.js.map +1 -1
  333. package/dist/index35.js +101 -28
  334. package/dist/index35.js.map +1 -1
  335. package/dist/index350.js +3 -3
  336. package/dist/index350.js.map +1 -1
  337. package/dist/index351.js +2 -2
  338. package/dist/index352.js +19 -26
  339. package/dist/index352.js.map +1 -1
  340. package/dist/index357.js +26 -19
  341. package/dist/index357.js.map +1 -1
  342. package/dist/index36.js +115 -33
  343. package/dist/index36.js.map +1 -1
  344. package/dist/index37.js +41 -115
  345. package/dist/index37.js.map +1 -1
  346. package/dist/index38.js +34 -246
  347. package/dist/index38.js.map +1 -1
  348. package/dist/index39.js +30 -137
  349. package/dist/index39.js.map +1 -1
  350. package/dist/index4.js +26 -84
  351. package/dist/index4.js.map +1 -1
  352. package/dist/index40.js +26 -400
  353. package/dist/index40.js.map +1 -1
  354. package/dist/index41.js +28 -77
  355. package/dist/index41.js.map +1 -1
  356. package/dist/index42.js +23 -26
  357. package/dist/index42.js.map +1 -1
  358. package/dist/index43.js +36 -33
  359. package/dist/index43.js.map +1 -1
  360. package/dist/index44.js +62 -16
  361. package/dist/index44.js.map +1 -1
  362. package/dist/index45.js +138 -21
  363. package/dist/index45.js.map +1 -1
  364. package/dist/index46.js +129 -22
  365. package/dist/index46.js.map +1 -1
  366. package/dist/index47.js +41 -19
  367. package/dist/index47.js.map +1 -1
  368. package/dist/index48.js +11 -82
  369. package/dist/index48.js.map +1 -1
  370. package/dist/index49.js +56 -279
  371. package/dist/index49.js.map +1 -1
  372. package/dist/index5.js +21 -34
  373. package/dist/index5.js.map +1 -1
  374. package/dist/index50.js +280 -33
  375. package/dist/index50.js.map +1 -1
  376. package/dist/index51.js +74 -94
  377. package/dist/index51.js.map +1 -1
  378. package/dist/index52.js +66 -41
  379. package/dist/index52.js.map +1 -1
  380. package/dist/index53.js +333 -62
  381. package/dist/index53.js.map +1 -1
  382. package/dist/index54.js +96 -256
  383. package/dist/index54.js.map +1 -1
  384. package/dist/index55.js +38 -130
  385. package/dist/index55.js.map +1 -1
  386. package/dist/index56.js +251 -50
  387. package/dist/index56.js.map +1 -1
  388. package/dist/index57.js +144 -115
  389. package/dist/index57.js.map +1 -1
  390. package/dist/index58.js +93 -183
  391. package/dist/index58.js.map +1 -1
  392. package/dist/index59.js +33 -339
  393. package/dist/index59.js.map +1 -1
  394. package/dist/index6.js +2 -2
  395. package/dist/index60.js +102 -66
  396. package/dist/index60.js.map +1 -1
  397. package/dist/index61.js +73 -179
  398. package/dist/index61.js.map +1 -1
  399. package/dist/index62.js +117 -97
  400. package/dist/index62.js.map +1 -1
  401. package/dist/index63.js +113 -263
  402. package/dist/index63.js.map +1 -1
  403. package/dist/index64.js +258 -251
  404. package/dist/index64.js.map +1 -1
  405. package/dist/index65.js +177 -79
  406. package/dist/index65.js.map +1 -1
  407. package/dist/index66.js +261 -140
  408. package/dist/index66.js.map +1 -1
  409. package/dist/index67.js +183 -100
  410. package/dist/index67.js.map +1 -1
  411. package/dist/index68.js +28 -89
  412. package/dist/index68.js.map +1 -1
  413. package/dist/index69.js +20 -161
  414. package/dist/index69.js.map +1 -1
  415. package/dist/index7.js +394 -32
  416. package/dist/index7.js.map +1 -1
  417. package/dist/index70.js +190 -53
  418. package/dist/index70.js.map +1 -1
  419. package/dist/index71.js +204 -112
  420. package/dist/index71.js.map +1 -1
  421. package/dist/index72.js +2 -2
  422. package/dist/index73.js +89 -28
  423. package/dist/index73.js.map +1 -1
  424. package/dist/index74.js +126 -63
  425. package/dist/index74.js.map +1 -1
  426. package/dist/index75.js +122 -111
  427. package/dist/index75.js.map +1 -1
  428. package/dist/index76.js +67 -64
  429. package/dist/index76.js.map +1 -1
  430. package/dist/index77.js +112 -88
  431. package/dist/index77.js.map +1 -1
  432. package/dist/index78.js +87 -16
  433. package/dist/index78.js.map +1 -1
  434. package/dist/index79.js +151 -79
  435. package/dist/index79.js.map +1 -1
  436. package/dist/index8.js +25 -127
  437. package/dist/index8.js.map +1 -1
  438. package/dist/index80.js +104 -186
  439. package/dist/index80.js.map +1 -1
  440. package/dist/index81.js +59 -20
  441. package/dist/index81.js.map +1 -1
  442. package/dist/index82.js +17 -129
  443. package/dist/index82.js.map +1 -1
  444. package/dist/index83.js +88 -217
  445. package/dist/index83.js.map +1 -1
  446. package/dist/index84.js +64 -112
  447. package/dist/index84.js.map +1 -1
  448. package/dist/index9.js +30 -45
  449. package/dist/index9.js.map +1 -1
  450. package/dist/src/components/atoms/index.d.ts +45 -16
  451. package/dist/src/components/atoms/index.d.ts.map +1 -1
  452. package/dist/src/components/molecules/index.d.ts +20 -1
  453. package/dist/src/components/molecules/index.d.ts.map +1 -1
  454. package/dist/src/components/organisms/index.d.ts +17 -1
  455. package/dist/src/components/organisms/index.d.ts.map +1 -1
  456. package/dist/src/index.d.ts +3 -82
  457. package/dist/src/index.d.ts.map +1 -1
  458. package/dist/tokens.css +353 -7
  459. package/dist/vite.config.d.ts.map +1 -1
  460. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index227.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index227.js","sources":["../src/components/molecules/select/lib-select.html.ts"],"sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport type { SelectSize, SelectVariant } from './lib-select.types';\n\nexport interface SelectTemplateProps {\n /* Field meta */\n label: string;\n placeholder: string;\n hint: string;\n errorMessage: string;\n required: boolean;\n optional: boolean;\n\n /* State */\n open: boolean;\n disabled: boolean;\n error: boolean;\n dark: boolean;\n\n /* Appearance */\n size: SelectSize;\n variant: SelectVariant;\n\n /* Single selection */\n selectedLabel: string;\n hasSelection: boolean;\n\n /* Multi selection */\n multi: boolean;\n selectedCount: number;\n\n /* Searchable */\n searchable: boolean;\n searchQuery: string;\n visibleCount: number;\n\n /* Handlers */\n onTriggerClick: (e: Event) => void;\n onSearchInput: (e: Event) => void;\n onConfirm: () => void;\n}\n\n/**\n * Template para lib-select.\n * Las opciones son elementos slotted — lib-select-option hijos en el light DOM.\n */\nexport function selectTemplate(props: SelectTemplateProps): TemplateResult {\n const {\n label, placeholder, hint, errorMessage,\n required, optional,\n open, error,\n selectedLabel, hasSelection,\n multi, selectedCount,\n searchable, searchQuery, visibleCount,\n onTriggerClick, onSearchInput, onConfirm,\n } = props;\n\n /* ── Label section ── */\n const labelTpl = label\n ? html`\n <label class=\"sel-label\">\n ${label}\n ${required ? html`<span class=\"sel-label-req\" aria-hidden=\"true\">*</span>` : nothing}\n ${optional ? html`<span class=\"sel-label-opt\">(opcional)</span>` : nothing}\n </label>`\n : nothing;\n\n /* ── Hint / error message ── */\n const hintTpl = error && errorMessage\n ? html`<span class=\"sel-hint is-error\">${errorMessage}</span>`\n : hint\n ? html`<span class=\"sel-hint\">${hint}</span>`\n : nothing;\n\n /* ── Trigger value display ── */\n const triggerValueTpl = multi\n ? selectedCount > 0\n ? html`\n <span class=\"sel-trigger-value\">\n ${selectedCount} seleccionada${selectedCount !== 1 ? 's' : ''}\n <span class=\"sel-trigger-count\">${selectedCount}</span>\n </span>`\n : html`<span class=\"sel-trigger-value is-placeholder\">${placeholder}</span>`\n : hasSelection\n ? html`<span class=\"sel-trigger-value\">${selectedLabel}</span>`\n : html`<span class=\"sel-trigger-value is-placeholder\">${placeholder}</span>`;\n\n /* ── Search row ── */\n const searchTpl = searchable\n ? html`\n <div class=\"sel-panel-search\">\n <span class=\"sel-panel-search-icon\" aria-hidden=\"true\"></span>\n <input\n type=\"text\"\n placeholder=\"Buscar…\"\n .value=\"${searchQuery}\"\n @input=\"${onSearchInput}\"\n autocomplete=\"off\"\n aria-label=\"Buscar opciones\"\n >\n </div>`\n : nothing;\n\n /* ── Panel footer for multi ── */\n const footerTpl = multi\n ? html`\n <div class=\"sel-panel-footer\">\n <span class=\"sel-panel-footer-text\">\n ${selectedCount} seleccionada${selectedCount !== 1 ? 's' : ''}\n </span>\n <button\n class=\"sel-panel-footer-btn\"\n type=\"button\"\n @click=\"${onConfirm}\"\n >Confirmar</button>\n </div>`\n : nothing;\n\n /* ── Empty state when search yields 0 results ── */\n const emptyTpl = searchable && searchQuery && visibleCount === 0\n ? html`<div class=\"sel-panel-empty\">Sin resultados</div>`\n : nothing;\n\n return html`\n <div class=\"sel-field\">\n\n ${labelTpl}\n\n <div class=\"sel-custom\">\n <button\n class=\"sel-trigger\"\n type=\"button\"\n aria-haspopup=\"listbox\"\n aria-expanded=\"${open}\"\n @click=\"${onTriggerClick}\"\n >\n ${triggerValueTpl}\n <span class=\"sel-trigger-chevron\" aria-hidden=\"true\"></span>\n </button>\n\n <div\n class=\"sel-panel\"\n role=\"listbox\"\n aria-multiselectable=\"${multi}\"\n >\n ${searchTpl}\n\n <div class=\"sel-panel-list\">\n <slot></slot>\n ${emptyTpl}\n </div>\n\n ${footerTpl}\n </div>\n </div>\n\n ${hintTpl}\n\n </div>\n `;\n}"],"names":[],"mappings":";AA6CO,SAAS,eAAe,OAA4C;AACzE,QAAM;AAAA,IACJ;AAAA,IAAO;AAAA,IAAa;AAAA,IAAM;AAAA,IAC1B;AAAA,IAAU;AAAA,IACV;AAAA,IAAM;AAAA,IACN;AAAA,IAAe;AAAA,IACf;AAAA,IAAO;AAAA,IACP;AAAA,IAAY;AAAA,IAAa;AAAA,IACzB;AAAA,IAAgB;AAAA,IAAe;AAAA,EAAA,IAC7B;AAGJ,QAAM,WAAW,QACb;AAAA;AAAA,YAEM,KAAK;AAAA,YACL,WAAW,gEAAgE,OAAO;AAAA,YAClF,WAAW,sDAAsD,OAAO;AAAA,oBAE9E;AAGJ,QAAM,UAAU,SAAS,eACrB,uCAAuC,YAAY,YACnD,OACE,8BAA8B,IAAI,YAClC;AAGN,QAAM,kBAAkB,QACpB,gBAAgB,IACd;AAAA;AAAA,cAEM,aAAa,gBAAgB,kBAAkB,IAAI,MAAM,EAAE;AAAA,8CAC3B,aAAa;AAAA,qBAEnD,sDAAsD,WAAW,YACnE,eACE,uCAAuC,aAAa,YACpD,sDAAsD,WAAW;AAGvE,QAAM,YAAY,aACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMgB,WAAW;AAAA,sBACX,aAAa;AAAA;AAAA;AAAA;AAAA,kBAK7B;AAGJ,QAAM,YAAY,QACd;AAAA;AAAA;AAAA,cAGQ,aAAa,gBAAgB,kBAAkB,IAAI,MAAM,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,sBAKnD,SAAS;AAAA;AAAA,kBAGzB;AAGJ,QAAM,WAAW,cAAc,eAAe,iBAAiB,IAC3D,0DACA;AAEJ,SAAO;AAAA;AAAA;AAAA,QAGD,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAOW,IAAI;AAAA,oBACX,cAAc;AAAA;AAAA,YAEtB,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kCAOO,KAAK;AAAA;AAAA,YAE3B,SAAS;AAAA;AAAA;AAAA;AAAA,cAIP,QAAQ;AAAA;AAAA;AAAA,YAGV,SAAS;AAAA;AAAA;AAAA;AAAA,QAIb,OAAO;AAAA;AAAA;AAAA;AAIf;"}
package/dist/index228.js CHANGED
@@ -1,5 +1,5 @@
1
- const cardStyles = '@layer tokens,reset,components;@layer reset{:host{display:block;container-type:inline-size}*,*:before,*:after{box-sizing:border-box}}@layer components{.card{display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border-subtle);padding:var(--lib-space-lg);height:100%;position:relative;overflow:hidden;transition:box-shadow var(--duration-slow) var(--ease-out),transform var(--duration-slow) var(--ease-out),border-color var(--duration-slow) var(--ease-out)}@media(hover:hover){.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--border-default)}}.card-kanji{position:absolute;top:.75rem;right:.75rem;font-family:var(--lib-font-display, "Cormorant Garamond", serif);font-size:5rem;font-weight:300;line-height:1;color:#0000000a;-webkit-user-select:none;user-select:none;pointer-events:none;z-index:0}:host([variant="inverse"]) .card-kanji,:host([variant="featured"]) .card-kanji,:host([variant="kintsugi"]) .card-kanji,:host([variant="glitch"]) .card-kanji,:host([variant="celadon"]) .card-kanji{color:#ffffff0a}:host([variant="kintsugi"]) .card-kanji{color:#b85a1e14}.card-header,.card-content,.card-footer{position:relative;z-index:1}.card-header{margin-bottom:var(--lib-space-md);display:flex;align-items:center;gap:var(--lib-space-sm);min-height:var(--lib-space-md)}::slotted([slot="tag"]){font-family:var(--lib-font-mono);font-size:10px;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--text-muted)}.card-content{flex-grow:1;display:flex;flex-direction:column;gap:var(--lib-space-sm)}::slotted([slot="title"]){margin:0;font-family:var(--lib-font-display);font-size:var(--text-2xl);font-weight:var(--weight-light);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);color:var(--text-secondary)}.card-body{font-family:var(--lib-font-body);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-washi-500)}.card-footer{margin-top:var(--lib-space-lg);padding-top:var(--lib-space-md);border-top:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center;font-family:var(--lib-font-mono);font-size:10px;letter-spacing:var(--tracking-wider);color:var(--text-muted);min-height:var(--lib-space-lg)}::slotted([slot="footer"]){display:contents}:host([variant="inverse"]) .card{background:var(--color-washi-900);border-color:var(--color-washi-800)}:host([variant="inverse"]) ::slotted([slot="title"]){color:var(--color-washi-50)}:host([variant="inverse"]) .card-body{color:var(--color-washi-400)}:host([variant="inverse"]) .card-footer{border-top-color:var(--color-washi-800);color:var(--color-washi-600)}:host([variant="inverse"]) ::slotted([slot="tag"]){color:var(--color-washi-500)}:host([variant="accent"]) .card{border-left:3px solid var(--card-accent-color, var(--color-kaki-400));padding-left:calc(var(--lib-space-lg) - 3px)}:host([variant="featured"]) .card{background:linear-gradient(135deg,#b85a1e14,#b85a1e05);border-color:transparent;border-left:2px solid var(--color-kaki-500, #B85A1E)}:host([variant="featured"]) .card:before{display:none}:host([variant="featured"]) ::slotted([slot="tag"]){color:#b85a1e4d}:host([variant="featured"]) ::slotted([slot="title"]){font-size:var(--text-3xl);color:var(--color-kaki-400, #D97234);line-height:1.1}:host([variant="featured"]) .card-body{color:#faf7f44d;font-size:var(--text-base)}:host([variant="featured"]) .card-footer{border-top-color:#ffffff0f;color:#faf7f433;margin-top:var(--lib-space-xl)}@keyframes kintsugi-seam{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes kintsugi-gold{0%{background-position:-200% 0}to{background-position:200% 0}}:host([variant="kintsugi"]) .card{background:var(--color-washi-950, #120E0A);border-color:transparent}:host([variant="kintsugi"]) .card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;padding:1px;background:var(--lib-kintsugi-border);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:0}:host([variant="kintsugi"]) .card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgb(184,90,30,.4) 15%,var(--color-kaki-400, #D97234) 35%,#F5D08A 50%,var(--color-kaki-400, #D97234) 65%,rgb(184,90,30,.4) 85%,transparent);background-size:200% 100%;animation:kintsugi-seam 5s linear infinite;pointer-events:none}:host([variant="kintsugi"]) ::slotted([slot="title"]){background:linear-gradient(90deg,var(--color-kaki-600, #8C4115),#F5D08A,var(--color-kaki-400, #D97234),#F5D08A,var(--color-kaki-600, #8C4115));background-size:200% 100%;animation:kintsugi-gold 4s linear infinite;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;color:transparent}:host([variant="kintsugi"]) ::slotted([slot="tag"]){color:#b85a1e59}:host([variant="kintsugi"]) .card-body{color:#faf7f440}:host([variant="kintsugi"]) .card-footer{border-top-color:#ffffff0f;color:#faf7f42e}@media(hover:hover){:host([variant="kintsugi"]) .card:hover{transform:none;box-shadow:0 0 32px #b85a1e1f;border-color:#b85a1e40}}@keyframes glitch-drift{0%,88%,to{transform:none;opacity:1}89%{transform:translate(-2px);opacity:.8}90%{transform:translate(2px);opacity:.9}91%{transform:none;opacity:1}}:host([variant="glitch"]) .card{background:var(--color-washi-950, #120E0A);border-color:#ffffff0f;animation:glitch-drift 7s steps(1) infinite}:host([variant="glitch"]) .card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--color-celadon-400, #4E9482);pointer-events:none}:host([variant="glitch"]) .card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgb(250,247,244,.012) 3px,rgb(250,247,244,.012) 4px);pointer-events:none;z-index:0}:host([variant="glitch"]) ::slotted([slot="tag"]){font-family:var(--lib-font-mono);color:var(--color-celadon-400, #4E9482);letter-spacing:.18em}:host([variant="glitch"]) ::slotted([slot="title"]){font-family:var(--lib-font-mono);font-size:var(--text-base);letter-spacing:.15em;text-transform:uppercase;color:var(--color-kaki-400, #D97234)}:host([variant="glitch"]) .card-body{font-family:var(--lib-font-mono);font-size:.65rem;letter-spacing:.08em;color:#faf7f433;line-height:1.9}:host([variant="glitch"]) .card-footer{border-top-color:#ffffff0f;color:#faf7f426}:host([variant="glitch"]) .card-kanji{color:#4e94820f}@media(hover:hover){:host([variant="glitch"]) .card:hover{transform:none;box-shadow:-2px 0 #d9723433,2px 0 #4e948226}}:host([variant="celadon"]) .card{background:var(--color-washi-950, #120E0A);border-color:#4e948226}:host([variant="celadon"]) .card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--color-celadon-400, #4E9482);pointer-events:none}:host([variant="celadon"]) ::slotted([slot="tag"]){color:#4e948280}:host([variant="celadon"]) ::slotted([slot="title"]){color:var(--color-celadon-400, #4E9482)}:host([variant="celadon"]) .card-body{color:#faf7f440}:host([variant="celadon"]) .card-footer{border-top-color:#ffffff0f;color:#faf7f42e}:host([variant="celadon"]) .card-kanji{color:#4e94820f}@media(hover:hover){:host([variant="celadon"]) .card:hover{transform:none;box-shadow:0 0 28px #4e94821a;border-color:#4e94824d}}:host([variant="washi"]) .card{background:var(--color-washi-50, #FAF7F4);border-color:var(--color-washi-200, #E5DDD3)}:host([variant="washi"]) .card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--color-washi-400, #B8A99A);pointer-events:none}:host([variant="washi"]) ::slotted([slot="tag"]){color:var(--color-washi-500, #9A8878)}:host([variant="washi"]) ::slotted([slot="title"]){color:var(--color-washi-800, #3D332A)}:host([variant="washi"]) .card-body{color:var(--color-washi-600, #7A6A5C)}:host([variant="washi"]) .card-footer{border-top-color:var(--color-washi-200, #E5DDD3);color:var(--color-washi-400, #B8A99A)}:host([variant="washi"]) .card-kanji{color:#0000000d}@media(hover:hover){:host([variant="washi"]) .card:hover{border-color:var(--color-washi-300, #D3C8BC);box-shadow:var(--shadow-md)}}:host([variant="brutal"]) .card{background:var(--color-washi-50);border:2px solid var(--color-ink-100);box-shadow:var(--lib-shadow-brutal);transition:transform var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default)}:host([variant="brutal"]) .card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--color-celadon-400);pointer-events:none}:host([variant="brutal"]) ::slotted([slot="tag"]){font-family:var(--lib-font-mono);color:var(--color-washi-500);letter-spacing:var(--tracking-widest)}:host([variant="brutal"]) ::slotted([slot="title"]){font-family:var(--lib-font-mono);font-size:var(--text-xl);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);color:var(--color-ink-100);text-transform:uppercase}:host([variant="brutal"]) .card-body{font-family:var(--lib-font-mono);font-size:var(--text-xs);letter-spacing:.04em;line-height:var(--leading-relaxed);color:var(--color-washi-600)}:host([variant="brutal"]) .card-footer{border-top-color:var(--color-washi-300);color:var(--color-washi-500)}@media(hover:hover){:host([variant="brutal"]) .card:hover{transform:translate(4px,4px);box-shadow:none}}}';
1
+ const selectCss = `@layer tokens,reset,components;@layer reset{:host{display:block;position:relative;width:100%}*,*:before,*:after{box-sizing:border-box}}@layer components{.sel-field{display:flex;flex-direction:column;gap:var(--lib-space-xs);width:100%}.sel-label{font-family:var(--lib-font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--text-secondary);display:flex;align-items:center;gap:var(--lib-space-xs);-webkit-user-select:none;user-select:none}.sel-label-req{color:var(--color-error);font-size:14px;line-height:1}.sel-label-opt{font-size:9px;letter-spacing:var(--tracking-wide);color:var(--text-muted);text-transform:uppercase}.sel-hint{font-family:var(--lib-font-mono);font-size:10px;letter-spacing:var(--tracking-wide);color:var(--text-muted)}.sel-hint.is-error{color:var(--color-error);display:flex;align-items:center;gap:var(--lib-space-xs)}.sel-hint.is-ok{color:var(--color-celadon-500);display:flex;align-items:center;gap:var(--lib-space-xs)}.sel-custom{position:relative;width:100%}.sel-trigger{display:flex;align-items:center;gap:var(--lib-space-sm);width:100%;padding:var(--lib-space-sm) var(--lib-space-md);font-family:var(--lib-font-body);font-size:var(--text-sm);color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-none);cursor:pointer;text-align:left;outline:none;transition:border-color var(--duration-base) var(--ease-default),background var(--duration-base) var(--ease-default),box-shadow var(--duration-base) var(--ease-default);-webkit-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.sel-trigger:hover:not([disabled]){background:var(--bg-surface);border-color:var(--border-strong)}.sel-trigger:focus-visible{border-color:var(--color-washi-800);box-shadow:0 0 0 3px #1a140e14;outline:none}:host([open]) .sel-trigger{border-color:var(--color-washi-800);box-shadow:0 0 0 3px #1a140e14}:host([disabled]) .sel-trigger{opacity:.38;cursor:not-allowed;pointer-events:none;background:var(--bg-surface)}:host([error]) .sel-trigger{border-color:var(--color-error-border, #C44030);background:var(--color-error-light, #F5DDD9);color:var(--color-error)}:host([error][open]) .sel-trigger{box-shadow:0 0 0 3px #8c2a1a1f}.sel-trigger-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:var(--lib-space-sm);line-height:var(--leading-snug)}.sel-trigger-value.is-placeholder{color:var(--text-muted)}.sel-trigger-count{font-family:var(--lib-font-mono);font-size:10px;letter-spacing:var(--tracking-wide);background:var(--color-washi-900);color:var(--color-washi-50);padding:1px 6px;border-radius:var(--radius-full);flex-shrink:0}.sel-trigger-chevron{flex-shrink:0;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--text-muted);transition:transform var(--duration-slow) var(--ease-default);pointer-events:none}:host([open]) .sel-trigger-chevron{transform:rotate(180deg);border-top-color:var(--text-primary)}:host([variant="filled"]) .sel-trigger{background:var(--bg-surface);border-color:transparent}:host([variant="filled"]) .sel-trigger:hover:not([disabled]){background:var(--color-washi-200);border-color:transparent}:host([variant="filled"][open]) .sel-trigger{background:var(--bg-elevated);border-color:var(--color-washi-800)}:host([variant="ghost"]) .sel-trigger{background:transparent;border:none;border-bottom:1px solid var(--border-default);border-radius:0;padding-left:0}:host([variant="ghost"]) .sel-trigger:hover:not([disabled]){background:transparent;border-bottom-color:var(--border-strong)}:host([variant="ghost"][open]) .sel-trigger{box-shadow:0 1px 0 0 var(--color-washi-800);border-bottom-color:var(--color-washi-800)}:host([size="sm"]) .sel-trigger{padding:var(--lib-space-xs) var(--lib-space-sm);font-size:var(--text-xs)}:host([size="sm"]) .sel-label{font-size:10px}:host([size="lg"]) .sel-trigger{padding:var(--lib-space-md) var(--lib-space-lg);font-size:var(--text-base)}.sel-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;min-width:100%;z-index:var(--z-toast, 300);background:var(--bg-elevated);border:1px solid var(--border-default);box-shadow:0 8px 24px #1a140e1f,0 2px 6px #1a140e12;opacity:0;transform:translateY(-6px) scaleY(.97);transform-origin:top center;pointer-events:none;transition:opacity .16s var(--ease-default),transform .2s var(--ease-default)}:host([open]) .sel-panel{opacity:1;transform:translateY(0) scaleY(1);pointer-events:auto}.sel-panel-search{display:flex;align-items:center;gap:var(--lib-space-sm);padding:var(--lib-space-sm) var(--lib-space-md);border-bottom:1px solid var(--border-subtle);color:var(--text-muted)}.sel-panel-search-icon{font-size:14px;flex-shrink:0;display:flex;align-items:center;color:var(--text-muted)}.sel-panel-search-icon:before{content:"";display:block;width:14px;height:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 256 256'%3E%3Cpath fill='%239A8878' d='M229.66 218.34l-50.07-50.07a88.19 88.19 0 1 0-11.31 11.31l50.06 50.07a8 8 0 0 0 11.32-11.31ZM40 112a72 72 0 1 1 72 72 72.08 72.08 0 0 1-72-72Z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain}.sel-panel-search input{flex:1;font-family:var(--lib-font-body);font-size:var(--text-sm);color:var(--text-primary);background:transparent;border:none;outline:none}.sel-panel-search input::placeholder{color:var(--text-muted)}.sel-panel-list{max-height:240px;overflow-y:auto;overscroll-behavior:contain}.sel-panel-list::-webkit-scrollbar{width:4px}.sel-panel-list::-webkit-scrollbar-track{background:transparent}.sel-panel-list::-webkit-scrollbar-thumb{background:var(--color-washi-300);border-radius:2px}.sel-group-label{font-family:var(--lib-font-mono);font-size:9px;letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--text-muted);padding:var(--lib-space-sm) var(--lib-space-md) var(--lib-space-xs)}.sel-sep{height:1px;background:var(--border-subtle);margin:var(--lib-space-xs) 0}.sel-option{display:flex;align-items:center;gap:var(--lib-space-sm);padding:var(--lib-space-sm) var(--lib-space-md);cursor:pointer;transition:background var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default);position:relative}.sel-option:hover{background:var(--bg-surface)}.sel-option.is-selected{background:var(--color-washi-100)}.sel-option.is-focused{background:var(--bg-surface)}.sel-option.is-disabled{opacity:.38;cursor:not-allowed;pointer-events:none}.sel-option.is-hidden{display:none}.sel-option-icon{font-size:16px;color:var(--text-muted);flex-shrink:0;display:flex}.sel-option:hover .sel-option-icon,.sel-option.is-selected .sel-option-icon{color:var(--text-secondary)}.sel-option-body{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.sel-option-label{font-family:var(--lib-font-body);font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-snug)}.sel-option-desc{font-family:var(--lib-font-mono);font-size:10px;letter-spacing:var(--tracking-wide);color:var(--text-muted)}.sel-option:hover .sel-option-label,.sel-option.is-selected .sel-option-label{color:var(--text-primary)}.sel-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.sel-option-check{margin-left:auto;flex-shrink:0;width:14px;height:14px;opacity:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 256 256'%3E%3Cpath fill='%23221C16' d='M229.66 77.66l-128 128a8 8 0 0 1-11.32 0l-56-56a8 8 0 0 1 11.32-11.32L96 188.69 218.34 66.34a8 8 0 0 1 11.32 11.32Z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain}.sel-option.is-selected .sel-option-check{opacity:1}.sel-panel-footer{padding:var(--lib-space-sm) var(--lib-space-md);border-top:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;gap:var(--lib-space-sm)}.sel-panel-footer-text{font-family:var(--lib-font-mono);font-size:10px;color:var(--text-muted);letter-spacing:var(--tracking-wide)}.sel-panel-footer-btn{font-family:var(--lib-font-mono);font-size:10px;letter-spacing:var(--tracking-wider);text-transform:uppercase;background:var(--color-washi-900);color:var(--color-washi-50);border:none;padding:var(--lib-space-xs) var(--lib-space-md);cursor:pointer;transition:background var(--duration-base) var(--ease-default)}.sel-panel-footer-btn:hover{background:var(--color-washi-800)}.sel-panel-empty{padding:var(--lib-space-lg) var(--lib-space-md);text-align:center;font-family:var(--lib-font-mono);font-size:10px;letter-spacing:var(--tracking-wider);color:var(--text-muted);text-transform:uppercase}:host([dark]) .sel-label{color:#574a43}:host([dark]) .sel-hint{color:#3c302a}:host([dark]) .sel-trigger{background:#100704;border-color:#231813;color:#998c84}:host([dark]) .sel-trigger:hover:not([disabled]){background:#150a06;border-color:#372b26}:host([dark][open]) .sel-trigger{border-color:#6d6059;box-shadow:0 0 0 3px #ffffff0d}:host([dark]) .sel-trigger-chevron{border-top-color:#433831}:host([dark][open]) .sel-trigger-chevron{border-top-color:#998c84}:host([dark]) .sel-trigger-value.is-placeholder{color:#3c302a}:host([dark]) .sel-panel{background:#0c0402;border-color:#1e130e}:host([dark]) .sel-panel-search{border-color:#190f0a}:host([dark]) .sel-panel-search input{color:#a99b93}:host([dark]) .sel-group-label{color:#312620}:host([dark]) .sel-sep{background:#190f0a}:host([dark]) .sel-option:hover{background:#150a06}:host([dark]) .sel-option.is-selected{background:#190f0a}:host([dark]) .sel-option-label{color:#7b6f67}:host([dark]) .sel-option:hover .sel-option-label{color:#b9aba2}:host([dark]) .sel-option.is-selected .sel-option-label{color:#c8bbb2}:host([dark]) .sel-option-desc{color:#362b25}:host([dark]) .sel-option-check{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 256 256'%3E%3Cpath fill='%23FAF7F4' d='M229.66 77.66l-128 128a8 8 0 0 1-11.32 0l-56-56a8 8 0 0 1 11.32-11.32L96 188.69 218.34 66.34a8 8 0 0 1 11.32 11.32Z'/%3E%3C/svg%3E")}:host([dark]) .sel-panel-footer{border-color:#190f0a}:host([dark]) .sel-panel-footer-text{color:#362b25}}`;
2
2
  export {
3
- cardStyles as default
3
+ selectCss as default
4
4
  };
5
5
  //# sourceMappingURL=index228.js.map
package/dist/index229.js CHANGED
@@ -1,36 +1,74 @@
1
1
  import { nothing, html } from "lit";
2
- function cardTemplate(props) {
2
+ import { unsafeHTML as o } from "./index352.js";
3
+ function renderBadge(item) {
4
+ return item.badge != null ? html`<span class="tb-badge">${item.badge}</span>` : nothing;
5
+ }
6
+ function renderTab(item, context) {
7
+ const isActive = context.active === item.id;
8
+ const isDisabled = item.disabled === true;
9
+ return html`
10
+ ${item.group ? html`<div class="tb-label">${item.group}</div>` : nothing}
11
+ <button
12
+ id="tab-${item.id}"
13
+ class="tb-tab ${isActive ? "is-active" : ""} ${isDisabled ? "is-disabled" : ""}"
14
+ role="tab"
15
+ aria-selected="${isActive}"
16
+ aria-controls="panel-${item.id}"
17
+ tabindex="${isActive ? "0" : "-1"}"
18
+ data-id="${item.id}"
19
+ data-label="${item.label}"
20
+ ?disabled="${isDisabled}"
21
+ @click="${(e) => context._handleClick(e)}"
22
+ >
23
+ ${item.icon ? html`${o(item.icon)}` : nothing}
24
+ ${item.label}
25
+ ${renderBadge(item)}
26
+ </button>
27
+ `;
28
+ }
29
+ function renderPanel(item, context) {
30
+ const isActive = context.active === item.id;
3
31
  return html`
4
- <article
5
- class="card"
6
- role="${props.clickable ? "button" : nothing}"
7
- tabindex="${props.clickable ? "0" : nothing}"
8
- @click="${props.clickable ? props.onClick : nothing}"
9
- style="${props.variant === "accent" && props.accentColor ? `--card-accent-color: ${props.accentColor}` : nothing}"
32
+ <div
33
+ class="tb-panel ${isActive ? "is-active" : ""}"
34
+ role="tabpanel"
35
+ id="panel-${item.id}"
36
+ aria-labelledby="tab-${item.id}"
10
37
  >
11
- <!-- Kanji watermark — aria-hidden, decorativo -->
12
- ${props.kanji ? html`<span class="card-kanji" aria-hidden="true"
13
- >${props.kanji}</span
14
- >` : nothing}
38
+ <slot name="${item.id}"></slot>
39
+ </div>
40
+ `;
41
+ }
42
+ function tabsTemplate(context) {
43
+ const tabs = context.items ?? [];
44
+ const showInk = !["pill", "card", "outline", "vertical"].includes(context.variant);
45
+ return html`
46
+ <div class="tb" part="root">
47
+
48
+ <!-- Tab list -->
49
+ <div
50
+ class="tb-list"
51
+ part="list"
52
+ role="tablist"
53
+ aria-label="${context.ariaLabel || nothing}"
54
+
55
+ @keydown="${(e) => context._handleKey(e)}"
56
+ >
57
+ ${tabs.map((item) => renderTab(item, context))}
58
+ </div>
15
59
 
16
- <header class="card-header">
17
- <slot name="tag"></slot>
18
- </header>
60
+ <!-- Ink bar (posicionada por JS, solo para variantes underline) -->
61
+ ${showInk ? html`<div class="tb-ink" part="ink" style="left:${context._inkLeft}px;width:${context._inkWidth}px;"></div>` : nothing}
19
62
 
20
- <div class="card-content">
21
- <slot name="title"></slot>
22
- <div class="card-body">
23
- <slot></slot>
24
- </div>
63
+ <!-- Panels -->
64
+ <div class="tb-panels" part="panels">
65
+ ${tabs.map((item) => renderPanel(item, context))}
25
66
  </div>
26
67
 
27
- <footer class="card-footer">
28
- <slot name="footer"></slot>
29
- </footer>
30
- </article>
68
+ </div>
31
69
  `;
32
70
  }
33
71
  export {
34
- cardTemplate
72
+ tabsTemplate
35
73
  };
36
74
  //# sourceMappingURL=index229.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index229.js","sources":["../src/components/atoms/card/lib-card.html.ts"],"sourcesContent":["import { html, nothing, TemplateResult } from \"lit\";\nimport type { LibCardVariant } from \"./lib-card.component\";\n\nexport interface CardTemplateProps {\n variant: LibCardVariant;\n accentColor: string | undefined;\n kanji: string;\n clickable: boolean;\n onClick: (e: MouseEvent) => void;\n}\n\n/**\n * Plantilla base para el componente lib-card.\n * Contenedor editorial con slots: tag, title, default (body), footer.\n * Soporta marca de agua kanji opcional en la esquina superior derecha.\n */\nexport function cardTemplate(props: CardTemplateProps): TemplateResult {\n return html`\n <article\n class=\"card\"\n role=\"${props.clickable ? \"button\" : nothing}\"\n tabindex=\"${props.clickable ? \"0\" : nothing}\"\n @click=\"${props.clickable ? props.onClick : nothing}\"\n style=\"${props.variant === \"accent\" && props.accentColor\n ? `--card-accent-color: ${props.accentColor}`\n : nothing}\"\n >\n <!-- Kanji watermark aria-hidden, decorativo -->\n ${props.kanji\n ? html`<span class=\"card-kanji\" aria-hidden=\"true\"\n >${props.kanji}</span\n >`\n : nothing}\n\n <header class=\"card-header\">\n <slot name=\"tag\"></slot>\n </header>\n\n <div class=\"card-content\">\n <slot name=\"title\"></slot>\n <div class=\"card-body\">\n <slot></slot>\n </div>\n </div>\n\n <footer class=\"card-footer\">\n <slot name=\"footer\"></slot>\n </footer>\n </article>\n `;\n}\n"],"names":[],"mappings":";AAgBO,SAAS,aAAa,OAA0C;AACrE,SAAO;AAAA;AAAA;AAAA,cAGK,MAAM,YAAY,WAAW,OAAO;AAAA,kBAChC,MAAM,YAAY,MAAM,OAAO;AAAA,gBACjC,MAAM,YAAY,MAAM,UAAU,OAAO;AAAA,eAC1C,MAAM,YAAY,YAAY,MAAM,cACzC,wBAAwB,MAAM,WAAW,KACzC,OAAO;AAAA;AAAA;AAAA,QAGT,MAAM,QACJ;AAAA,eACK,MAAM,KAAK;AAAA,eAEhB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBjB;"}
1
+ {"version":3,"file":"index229.js","sources":["../src/components/molecules/tabs/lib-tabs.html.ts"],"sourcesContent":["import { html, TemplateResult, nothing } from 'lit';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport type { LibTabs } from './lib-tabs.component';\nimport type { TabItem, TabsVariant } from './lib-tabs.types';\n\n/* ── Badge ── */\nfunction renderBadge(item: TabItem): TemplateResult | typeof nothing {\n return item.badge != null\n ? html`<span class=\"tb-badge\">${item.badge}</span>`\n : nothing;\n}\n\n/* ── Tab button ── */\nfunction renderTab(item: TabItem, context: LibTabs): TemplateResult {\n const isActive = context.active === item.id;\n const isDisabled = item.disabled === true;\n\n return html`\n ${item.group\n ? html`<div class=\"tb-label\">${item.group}</div>`\n : nothing}\n <button\n id=\"tab-${item.id}\"\n class=\"tb-tab ${isActive ? 'is-active' : ''} ${isDisabled ? 'is-disabled' : ''}\"\n role=\"tab\"\n aria-selected=\"${isActive}\"\n aria-controls=\"panel-${item.id}\"\n tabindex=\"${isActive ? '0' : '-1'}\"\n data-id=\"${item.id}\"\n data-label=\"${item.label}\"\n ?disabled=\"${isDisabled}\"\n @click=\"${(e:Event):void=> context._handleClick(e as CustomEvent)}\"\n >\n ${item.icon ? html`${unsafeHTML(item.icon)}` : nothing}\n ${item.label}\n ${renderBadge(item)}\n </button>\n `;\n}\n\n/* ── Panel ── */\nfunction renderPanel(item: TabItem, context: LibTabs): TemplateResult {\n const isActive = context.active === item.id;\n return html`\n <div\n class=\"tb-panel ${isActive ? 'is-active' : ''}\"\n role=\"tabpanel\"\n id=\"panel-${item.id}\"\n aria-labelledby=\"tab-${item.id}\"\n >\n <slot name=\"${item.id}\"></slot>\n </div>\n `;\n}\n\n/* ── Main template ── */\nexport function tabsTemplate(context: LibTabs): TemplateResult {\n const tabs = (context.items ?? []) as TabItem[];\n\n /* La ink bar solo aplica en underline (y sus modificadores kintsugi/glitch) */\n const showInk = !(['pill', 'card', 'outline', 'vertical'] as TabsVariant[]).includes(context.variant);\n\n return html`\n <div class=\"tb\" part=\"root\">\n\n <!-- Tab list -->\n <div\n class=\"tb-list\"\n part=\"list\"\n role=\"tablist\"\n aria-label=\"${context.ariaLabel || nothing}\"\n \n @keydown=\"${(e: KeyboardEvent): void => context._handleKey(e)}\"\n >\n ${tabs.map(item => renderTab(item, context))}\n </div>\n\n <!-- Ink bar (posicionada por JS, solo para variantes underline) -->\n ${showInk\n ? html`<div class=\"tb-ink\" part=\"ink\" style=\"left:${context._inkLeft}px;width:${context._inkWidth}px;\"></div>`\n : nothing}\n\n <!-- Panels -->\n <div class=\"tb-panels\" part=\"panels\">\n ${tabs.map(item => renderPanel(item, context))}\n </div>\n\n </div>\n `;\n}"],"names":["unsafeHTML"],"mappings":";;AAMA,SAAS,YAAY,MAAgD;AACnE,SAAO,KAAK,SAAS,OACjB,8BAA8B,KAAK,KAAK,YACxC;AACN;AAGA,SAAS,UAAU,MAAe,SAAkC;AAClE,QAAM,WAAa,QAAQ,WAAW,KAAK;AAC3C,QAAM,aAAa,KAAK,aAAa;AAErC,SAAO;AAAA,MACH,KAAK,QACH,6BAA6B,KAAK,KAAK,WACvC,OAAO;AAAA;AAAA,gBAEC,KAAK,EAAE;AAAA,sBACD,WAAW,cAAc,EAAE,IAAI,aAAa,gBAAgB,EAAE;AAAA;AAAA,uBAE7D,QAAQ;AAAA,6BACF,KAAK,EAAE;AAAA,kBAClB,WAAW,MAAM,IAAI;AAAA,iBACtB,KAAK,EAAE;AAAA,oBACJ,KAAK,KAAK;AAAA,mBACX,UAAU;AAAA,gBACb,CAAC,MAAgB,QAAQ,aAAa,CAAgB,CAAC;AAAA;AAAA,QAE/D,KAAK,OAAO,OAAOA,EAAW,KAAK,IAAI,CAAC,KAAK,OAAO;AAAA,QACpD,KAAK,KAAK;AAAA,QACV,YAAY,IAAI,CAAC;AAAA;AAAA;AAGzB;AAGA,SAAS,YAAY,MAAe,SAAkC;AACpE,QAAM,WAAW,QAAQ,WAAW,KAAK;AACzC,SAAO;AAAA;AAAA,wBAEe,WAAW,cAAc,EAAE;AAAA;AAAA,kBAEjC,KAAK,EAAE;AAAA,6BACI,KAAK,EAAE;AAAA;AAAA,oBAEhB,KAAK,EAAE;AAAA;AAAA;AAG3B;AAGO,SAAS,aAAa,SAAkC;AAC7D,QAAM,OAAQ,QAAQ,SAAS,CAAA;AAG/B,QAAM,UAAU,CAAE,CAAC,QAAQ,QAAQ,WAAW,UAAU,EAAoB,SAAS,QAAQ,OAAO;AAEpG,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAQa,QAAQ,aAAa,OAAO;AAAA;AAAA,oBAE9B,CAAC,MAA2B,QAAQ,WAAW,CAAC,CAAC;AAAA;AAAA,UAE3D,KAAK,IAAI,CAAA,SAAQ,UAAU,MAAM,OAAO,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,QAI5C,UACE,kDAAkD,QAAQ,QAAQ,YAAY,QAAQ,SAAS,gBAC/F,OAAO;AAAA;AAAA;AAAA;AAAA,UAIP,KAAK,IAAI,CAAA,SAAQ,YAAY,MAAM,OAAO,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAKtD;"}
package/dist/index23.js CHANGED
@@ -1,9 +1,8 @@
1
1
  import { unsafeCSS, css, LitElement } from "lit";
2
- import { property, customElement } from "lit/decorators.js";
3
- import { generateUniqueId } from "./index213.js";
4
- import buttonCss from "./index232.js";
2
+ import { property, state, customElement } from "lit/decorators.js";
3
+ import { dividerTemplate } from "./index304.js";
4
+ import dividerCss from "./index305.js";
5
5
  import sharedTokens from "./index196.js";
6
- import { buttonTemplate } from "./index233.js";
7
6
  var __defProp = Object.defineProperty;
8
7
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
8
  var __decorateClass = (decorators, target, key, kind) => {
@@ -14,112 +13,69 @@ var __decorateClass = (decorators, target, key, kind) => {
14
13
  if (kind && result) __defProp(target, key, result);
15
14
  return result;
16
15
  };
17
- let LibButton = class extends LitElement {
16
+ let LibDivider = class extends LitElement {
18
17
  constructor() {
19
- super();
20
- this.variant = "primary";
21
- this.size = "md";
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;
42
- this.ariaLabel = null;
43
- this._buttonId = generateUniqueId("lib-button-");
18
+ super(...arguments);
19
+ this.orientation = "horizontal";
20
+ this.styleVariant = "hairline";
21
+ this.color = "default";
22
+ this.align = "center";
23
+ this.ornament = "none";
24
+ this.labelStyle = "mono";
25
+ this._hasSlotContent = false;
44
26
  }
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);
27
+ _handleSlotChange(e) {
28
+ const slot = e.target;
29
+ const nodes = slot.assignedNodes({ flatten: true });
30
+ this._hasSlotContent = nodes.some(
31
+ (n) => {
32
+ var _a;
33
+ return n.nodeType === Node.ELEMENT_NODE || n.nodeType === Node.TEXT_NODE && ((_a = n.textContent) == null ? void 0 : _a.trim()) !== "";
34
+ }
35
+ );
54
36
  }
55
- /**
56
- * Implementación del renderizado siguiendo la regla de tipado explícito.
57
- */
58
37
  render() {
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,
66
- size: this.size,
67
- glass: this.glass,
68
- spotlight: this.spotlight,
69
- customPadding: this.customPadding ?? void 0
38
+ return dividerTemplate({
39
+ orientation: this.orientation,
40
+ style: this.styleVariant,
41
+ color: this.color,
42
+ align: this.align,
43
+ ornament: this.ornament,
44
+ labelStyle: this.labelStyle,
45
+ hasSlotContent: this._hasSlotContent,
46
+ onSlotChange: this._handleSlotChange.bind(this)
70
47
  });
71
48
  }
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
- }
86
49
  };
87
- LibButton.styles = [
88
- css`
89
- ${unsafeCSS(sharedTokens)}
90
- `,
91
- css`
92
- ${unsafeCSS(buttonCss)}
93
- `
50
+ LibDivider.styles = [
51
+ css`${unsafeCSS(sharedTokens)}`,
52
+ css`${unsafeCSS(dividerCss)}`
94
53
  ];
95
54
  __decorateClass([
96
55
  property({ type: String, reflect: true })
97
- ], LibButton.prototype, "variant", 2);
56
+ ], LibDivider.prototype, "orientation", 2);
98
57
  __decorateClass([
99
- property({ type: String, reflect: true })
100
- ], LibButton.prototype, "size", 2);
58
+ property({ type: String, reflect: true, attribute: "style-variant" })
59
+ ], LibDivider.prototype, "styleVariant", 2);
101
60
  __decorateClass([
102
- property({ type: Boolean, reflect: true })
103
- ], LibButton.prototype, "disabled", 2);
104
- __decorateClass([
105
- property({ type: Boolean, reflect: true })
106
- ], LibButton.prototype, "glass", 2);
61
+ property({ type: String, reflect: true })
62
+ ], LibDivider.prototype, "color", 2);
107
63
  __decorateClass([
108
- property({ type: Boolean, reflect: true })
109
- ], LibButton.prototype, "spotlight", 2);
64
+ property({ type: String, reflect: true })
65
+ ], LibDivider.prototype, "align", 2);
110
66
  __decorateClass([
111
- property({ type: String })
112
- ], LibButton.prototype, "type", 2);
67
+ property({ type: String, reflect: true })
68
+ ], LibDivider.prototype, "ornament", 2);
113
69
  __decorateClass([
114
- property({ type: String, attribute: "custom-padding" })
115
- ], LibButton.prototype, "customPadding", 2);
70
+ property({ type: String, reflect: true, attribute: "label-style" })
71
+ ], LibDivider.prototype, "labelStyle", 2);
116
72
  __decorateClass([
117
- property({ type: String, attribute: "aria-label" })
118
- ], LibButton.prototype, "ariaLabel", 2);
119
- LibButton = __decorateClass([
120
- customElement("lib-button")
121
- ], LibButton);
73
+ state()
74
+ ], LibDivider.prototype, "_hasSlotContent", 2);
75
+ LibDivider = __decorateClass([
76
+ customElement("lib-divider")
77
+ ], LibDivider);
122
78
  export {
123
- LibButton
79
+ LibDivider
124
80
  };
125
81
  //# sourceMappingURL=index23.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index23.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":";;;;;;;;;;;;;;;;AAiBO,IAAM,YAAN,cAAwB,WAAW;AAAA,EAYxC,cAAc;AACZ,UAAA;AAQF,SAAA,UAA4B;AAM5B,SAAA,OAAgB;AAMhB,SAAA,WAAW;AAMX,SAAA,QAAQ;AAMR,SAAA,YAAY;AAEZ,SAAQ,eAAe,CAAC,MAAwB;;AAC9C,UAAI,CAAC,KAAK,UAAW;AACrB,YAAM,OAAM,UAAK,eAAL,mBAAiB,cAAc;AAC3C,UAAI,CAAC,IAAK;AACV,YAAM,OAAO,IAAI,sBAAA;AACjB,YAAM,KAAM,EAAE,UAAU,KAAK,QAAQ,KAAK,QAAS;AACnD,YAAM,KAAM,EAAE,UAAU,KAAK,OAAO,KAAK,SAAU;AACnD,WAAK,MAAM,YAAY,qBAAqB,GAAG,CAAC,GAAG;AACnD,WAAK,MAAM,YAAY,qBAAqB,GAAG,CAAC,GAAG;AAAA,IACrD;AAEA,SAAQ,gBAAgB,MAAY;AAClC,WAAK,MAAM,YAAY,qBAAqB,KAAK;AACjD,WAAK,MAAM,YAAY,qBAAqB,KAAK;AAAA,IACnD;AAkBA,SAAA,OAAsC;AAMtC,SAAA,gBAA+B;AAM/B,SAAS,YAA2B;AA7ElC,SAAK,YAAY,iBAAiB,aAAa;AAAA,EACjD;AAAA,EAgDS,oBAA0B;AACjC,UAAM,kBAAA;AACN,SAAK,iBAAiB,aAAa,KAAK,YAAY;AACpD,SAAK,iBAAiB,cAAc,KAAK,aAAa;AAAA,EACxD;AAAA,EAES,uBAA6B;AACpC,UAAM,qBAAA;AACN,SAAK,oBAAoB,aAAa,KAAK,YAAY;AACvD,SAAK,oBAAoB,cAAc,KAAK,aAAa;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA,EAuBS,SAAyB;AAChC,WAAO,eAAe;AAAA,MACpB,UAAU,KAAK;AAAA,MACf,MAAM,KAAK;AAAA,MACX,UAAU,KAAK;AAAA,MACf,WAAW,KAAK,aAAa;AAAA,MAC7B,aAAa,KAAK,aAAa,KAAK,IAAI;AAAA,MACxC,SAAS,KAAK;AAAA,MACd,MAAM,KAAK;AAAA,MACX,OAAO,KAAK;AAAA,MACZ,WAAW,KAAK;AAAA,MAChB,eAAe,KAAK,iBAAiB;AAAA,IAAA,CACtC;AAAA,EACH;AAAA,EAEQ,aAAa,OAAoB;AACvC,QAAI,KAAK,UAAU;AACjB,YAAM,eAAA;AACN,YAAM,gBAAA;AACN;AAAA,IACF;AAEA,SAAK;AAAA,MACH,IAAI,YAAgC,gBAAgB;AAAA,QAClD,QAAQ,EAAE,eAAe,OAAO,WAAW,KAAK,MAAI;AAAA,QACpD,SAAS;AAAA,QACT,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL;AACF;AA9Ha,UACK,SAAS;AAAA,EACvB;AAAA,QACI,UAAU,YAAY,CAAC;AAAA;AAAA,EAE3B;AAAA,QACI,UAAU,SAAS,CAAC;AAAA;AAE1B;AAaA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GApB9B,UAqBX,WAAA,WAAA,CAAA;AAMA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GA1B9B,UA2BX,WAAA,QAAA,CAAA;AAMA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAhC/B,UAiCX,WAAA,YAAA,CAAA;AAMA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAtC/B,UAuCX,WAAA,SAAA,CAAA;AAMA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GA5C/B,UA6CX,WAAA,aAAA,CAAA;AAkCA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GA9Ef,UA+EX,WAAA,QAAA,CAAA;AAMA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,WAAW,kBAAkB;AAAA,GApF5C,UAqFX,WAAA,iBAAA,CAAA;AAMS,gBAAA;AAAA,EADR,SAAS,EAAE,MAAM,QAAQ,WAAW,cAAc;AAAA,GA1FxC,UA2FF,WAAA,aAAA,CAAA;AA3FE,YAAN,gBAAA;AAAA,EADN,cAAc,YAAY;AAAA,GACd,SAAA;"}
1
+ {"version":3,"file":"index23.js","sources":["../src/components/atoms/divider/lib-divider.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport type {\n LibDividerStyle,\n LibDividerColor,\n LibDividerAlign,\n LibDividerOrnament,\n LibDividerLabelStyle,\n LibDividerOrientation,\n} from './lib-divider.component.html';\nimport { dividerTemplate } from './lib-divider.component.html';\nimport dividerCss from './lib-divider.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\n\n/**\n * @element lib-divider\n *\n * Separador visual de contenido. Cinco estilos de línea, cuatro pesos,\n * variantes cromáticas, labels con tres tipografías y ornamentos.\n * Horizontal y vertical.\n *\n * @slot - Texto o elemento entre las dos líneas (label).\n *\n * @example — línea simple\n * <lib-divider></lib-divider>\n *\n * @example — con label\n * <lib-divider>O</lib-divider>\n *\n * @example con ornamento diamond y gradiente\n * <lib-divider style-variant=\"gradient\" ornament=\"diamond\"></lib-divider>\n *\n * @example — kaki con dot\n * <lib-divider color=\"kaki\" ornament=\"dot\"></lib-divider>\n *\n * @example vertical en nav\n * <lib-divider orientation=\"vertical\" style=\"height:14px\"></lib-divider>\n */\n@customElement('lib-divider')\nexport class LibDivider extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(dividerCss)}`,\n ];\n\n /** Dirección del separador */\n @property({ type: String, reflect: true })\n orientation: LibDividerOrientation = 'horizontal';\n\n /**\n * Estilo de la línea.\n * Nota: el atributo es `style-variant` para no colisionar\n * con el atributo nativo `style` del DOM.\n */\n @property({ type: String, reflect: true, attribute: 'style-variant' })\n styleVariant: LibDividerStyle = 'hairline';\n\n /** Color de acento de la línea */\n @property({ type: String, reflect: true })\n color: LibDividerColor = 'default';\n\n /**\n * Alineación del label u ornamento.\n * `left` y `right` acortan el segmento opuesto a 24px.\n */\n @property({ type: String, reflect: true })\n align: LibDividerAlign = 'center';\n\n /**\n * Ornamento visual entre las líneas.\n * Toma prioridad sobre el contenido del slot si ambos están presentes.\n */\n @property({ type: String, reflect: true })\n ornament: LibDividerOrnament = 'none';\n\n /** Tipografía del label slotado */\n @property({ type: String, reflect: true, attribute: 'label-style' })\n labelStyle: LibDividerLabelStyle = 'mono';\n\n /** Detectado via slotchange true si el slot tiene nodos de texto o elementos */\n @state()\n private _hasSlotContent = false;\n\n private _handleSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n const nodes = slot.assignedNodes({ flatten: true });\n this._hasSlotContent = nodes.some(\n n => n.nodeType === Node.ELEMENT_NODE ||\n (n.nodeType === Node.TEXT_NODE && n.textContent?.trim() !== '')\n );\n }\n\n override render(): TemplateResult {\n return dividerTemplate({\n orientation: this.orientation,\n style: this.styleVariant,\n color: this.color,\n align: this.align,\n ornament: this.ornament,\n labelStyle: this.labelStyle,\n hasSlotContent: this._hasSlotContent,\n onSlotChange: this._handleSlotChange.bind(this),\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-divider': LibDivider;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AAuCO,IAAM,aAAN,cAAyB,WAAW;AAAA,EAApC,cAAA;AAAA,UAAA,GAAA,SAAA;AAQL,SAAA,cAAqC;AAQrC,SAAA,eAAgC;AAIhC,SAAA,QAAyB;AAOzB,SAAA,QAAyB;AAOzB,SAAA,WAA+B;AAI/B,SAAA,aAAmC;AAInC,SAAQ,kBAAkB;AAAA,EAAA;AAAA,EAElB,kBAAkB,GAAgB;AACxC,UAAM,OAAO,EAAE;AACf,UAAM,QAAQ,KAAK,cAAc,EAAE,SAAS,MAAM;AAClD,SAAK,kBAAkB,MAAM;AAAA,MAC3B,CAAA,MAAA;;AAAK,iBAAE,aAAa,KAAK,gBACnB,EAAE,aAAa,KAAK,eAAa,OAAE,gBAAF,mBAAe,YAAW;AAAA;AAAA,IAAA;AAAA,EAErE;AAAA,EAES,SAAyB;AAChC,WAAO,gBAAgB;AAAA,MACrB,aAAa,KAAK;AAAA,MAClB,OAAO,KAAK;AAAA,MACZ,OAAO,KAAK;AAAA,MACZ,OAAO,KAAK;AAAA,MACZ,UAAU,KAAK;AAAA,MACf,YAAY,KAAK;AAAA,MACjB,gBAAgB,KAAK;AAAA,MACrB,cAAc,KAAK,kBAAkB,KAAK,IAAI;AAAA,IAAA,CAC/C;AAAA,EACH;AACF;AAjEa,WACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,UAAU,CAAC;AAC7B;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAP9B,WAQX,WAAA,eAAA,CAAA;AAQA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,iBAAiB;AAAA,GAf1D,WAgBX,WAAA,gBAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAnB9B,WAoBX,WAAA,SAAA,CAAA;AAOA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GA1B9B,WA2BX,WAAA,SAAA,CAAA;AAOA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAjC9B,WAkCX,WAAA,YAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,eAAe;AAAA,GArCxD,WAsCX,WAAA,cAAA,CAAA;AAIQ,gBAAA;AAAA,EADP,MAAA;AAAM,GAzCI,WA0CH,WAAA,mBAAA,CAAA;AA1CG,aAAN,gBAAA;AAAA,EADN,cAAc,aAAa;AAAA,GACf,UAAA;"}
package/dist/index230.js CHANGED
@@ -1,5 +1,5 @@
1
- const labelStyles = ":host{display:inline-block;margin-bottom:var(--lib-space-xs, 4px)}label{display:flex;align-items:center;gap:4px;font-family:var(--lib-font-family);font-size:var(--lib-font-size-sm);font-weight:600;color:var(--lib-color-text);cursor:pointer}.required-indicator{color:var(--lib-color-danger);font-weight:700}";
1
+ const tabsCss = '@layer tokens,reset,components;@layer reset{:host{display:block;position:relative}*,*:before,*:after{box-sizing:border-box}button{font:inherit;background:none;border:none;padding:0;margin:0;cursor:pointer}}@layer components{.tb{position:relative}.tb-list{display:flex;align-items:flex-end;position:relative;gap:0}.tb-tab{position:relative;display:inline-flex;align-items:center;gap:var(--lib-space-xs);padding:var(--lib-space-md) var(--lib-space-xl);height:44px;font-family:var(--lib-font-mono);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-washi-400);background:none;border:none;cursor:pointer;white-space:nowrap;transition:color var(--duration-base) var(--ease-out),background var(--duration-base) var(--ease-out);outline:none;flex-shrink:0;-webkit-user-select:none;user-select:none}.tb-tab:hover{color:var(--color-washi-700)}.tb-tab.is-active{color:var(--color-washi-900)}.tb-tab:focus-visible{outline:2px solid var(--color-kaki-400);outline-offset:-2px}.tb-tab.is-disabled{opacity:.35;pointer-events:none}.tb-tab svg{width:13px;height:13px;stroke:currentcolor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.tb-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;font-size:9px;font-family:var(--lib-font-mono);letter-spacing:0;background:var(--color-washi-200);color:var(--color-washi-600);border-radius:999px;transition:background var(--duration-base),color var(--duration-base)}.tb-tab.is-active .tb-badge{background:var(--color-kaki-500);color:#fff}.tb-label{font-family:var(--lib-font-mono);font-size:9px;letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-washi-400);padding:0 var(--lib-space-xl) var(--lib-space-md)}.tb-label+.tb-label,.tb-label:not(:first-child){margin-top:var(--lib-space-2xl)}:host([size="sm"]) .tb-tab{height:36px;padding:var(--lib-space-xs) var(--lib-space-lg);font-size:10px}:host([size="lg"]) .tb-tab{height:52px;padding:var(--lib-space-lg) var(--lib-space-2xl);letter-spacing:.18em}.tb-panels{position:relative}.tb-panel{display:none}.tb-panel.is-active{display:block;animation:tb-in var(--duration-slow) var(--ease-out) both}@keyframes tb-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}:host([variant="underline"]) .tb-list{border-bottom:1px solid var(--color-washi-200);gap:var(--lib-space-xs)}:host([variant="underline"]) .tb-panels{padding-top:var(--lib-space-2xl)}:host([variant="underline"]) .tb-tab.is-active{color:var(--color-kaki-600)}.tb-ink{position:absolute;bottom:0;height:2px;background:var(--color-kaki-500);transition:left var(--duration-slow) var(--ease-bounce),width var(--duration-slow) var(--ease-bounce);pointer-events:none;z-index:2}:host([variant="underline"][color="celadon"]) .tb-tab.is-active{color:var(--color-celadon-500)}:host([variant="underline"][color="celadon"]) .tb-ink{background:var(--color-celadon-500)}:host([variant="underline"][color="celadon"]) .tb-tab.is-active .tb-badge{background:var(--color-celadon-500)}:host([variant="pill"]) .tb-list{gap:var(--lib-space-xs);padding:var(--lib-space-xs);background:var(--color-washi-100);border:1px solid var(--color-washi-200);display:inline-flex}:host([variant="pill"]) .tb-tab{border-radius:2px;height:36px;padding:var(--lib-space-xs) var(--lib-space-lg)}:host([variant="pill"]) .tb-tab.is-active{background:#fff;color:var(--color-washi-900);box-shadow:0 1px 4px #1a140e1a}:host([variant="pill"]) .tb-panels{padding-top:var(--lib-space-2xl)}:host([variant="pill"]) .tb-ink{display:none}:host([variant="pill"][color="kaki"]) .tb-tab.is-active{background:var(--color-kaki-500);color:#fff}:host([variant="pill"][color="kaki"]) .tb-tab.is-active .tb-badge{background:#ffffff4d;color:#fff}:host([variant="pill"][color="celadon"]) .tb-tab.is-active{background:var(--color-celadon-500);color:#fff}:host([variant="pill"][round]) .tb-list{border-radius:999px}:host([variant="pill"][round]) .tb-tab{border-radius:999px}:host([variant="card"]) .tb-list{gap:2px;align-items:flex-end}:host([variant="card"]) .tb-tab{border:1px solid transparent;border-bottom:none;background:var(--color-washi-100);color:var(--color-washi-400);height:40px;margin-bottom:-1px;padding:0 var(--lib-space-xl);border-radius:2px 2px 0 0}:host([variant="card"]) .tb-tab:hover{background:var(--color-washi-50);color:var(--color-washi-700)}:host([variant="card"]) .tb-tab.is-active{background:#fff;color:var(--color-washi-900);border-color:var(--color-washi-200);border-bottom-color:#fff;z-index:1;height:44px}:host([variant="card"]) .tb-panels{border:1px solid var(--color-washi-200);background:#fff;padding:var(--lib-space-2xl)}:host([variant="card"]) .tb-ink{display:none}:host([variant="outline"]) .tb-list{border-bottom:1px solid var(--color-washi-200);gap:var(--lib-space-xs)}:host([variant="outline"]) .tb-tab{border:1px solid transparent;border-bottom:none;margin-bottom:-1px}:host([variant="outline"]) .tb-tab.is-active{border-color:var(--color-washi-200);border-bottom-color:var(--color-washi-50);background:var(--color-washi-50);color:var(--color-washi-900)}:host([variant="outline"]) .tb-panels{padding-top:var(--lib-space-2xl)}:host([variant="outline"]) .tb-ink{display:none}:host([variant="vertical"]) .tb{display:grid;grid-template-columns:180px 1fr;gap:0;align-items:start}:host([variant="vertical"]) .tb-list{flex-direction:column;align-items:stretch;border-right:1px solid var(--color-washi-200);border-bottom:none;gap:0;padding:var(--lib-space-xs) 0;grid-column:1;grid-row:1}:host([variant="vertical"]) .tb-ink{display:none}:host([variant="vertical"]) .tb-panels{padding:var(--lib-space-xs) 0 var(--lib-space-xs) var(--lib-space-2xl);grid-column:2;grid-row:1}:host([variant="vertical"]) .tb-tab{height:auto;padding:var(--lib-space-md) var(--lib-space-xl);text-align:left;border-left:2px solid transparent;border-radius:0;justify-content:flex-start}:host([variant="vertical"]) .tb-tab:hover{border-left-color:var(--color-washi-300)}:host([variant="vertical"]) .tb-tab.is-active{border-left-color:var(--color-kaki-500);color:var(--color-kaki-600);background:var(--color-kaki-50)}:host([variant="vertical"]) .tb-panel.is-active{animation:tb-in-h var(--duration-slow) var(--ease-out) both}@keyframes tb-in-h{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}:host([variant="vertical"]) .tb-label{padding:0 var(--lib-space-xl) var(--lib-space-md)}:host([dark]){background:var(--color-washi-950)}:host([dark]) .tb-tab{color:#faf7f440}:host([dark]) .tb-tab:hover{color:#faf7f499}:host([dark]) .tb-tab:focus-visible{outline-color:var(--color-kaki-400)}:host([dark]) .tb-badge{background:#ffffff1a;color:#faf7f466}:host([dark]) .tb-tab.is-active .tb-badge{background:var(--color-kaki-500);color:#fff}:host([dark]) .tb-panels{color:#faf7f499}:host([dark]) .tb-label{color:#faf7f42e}:host([dark][variant="underline"]) .tb-list{border-bottom-color:#ffffff14}:host([dark][variant="underline"]) .tb-tab.is-active{color:var(--color-kaki-400)}:host([dark][variant="underline"]) .tb-ink{background:var(--color-kaki-400)}:host([dark][variant="pill"]) .tb-list{background:#ffffff0a;border-color:#ffffff12}:host([dark][variant="pill"]) .tb-tab.is-active{background:#ffffff17;color:#faf7f4cc;box-shadow:0 1px 4px #0000004d}:host([dark][variant="pill"][color="kaki"]) .tb-tab.is-active{background:var(--color-kaki-500);color:#fff}:host([dark][variant="card"]) .tb-tab{background:#ffffff08;border-color:transparent}:host([dark][variant="card"]) .tb-tab.is-active{background:#ffffff12;border-color:#ffffff14;border-bottom-color:var(--color-washi-950);color:#faf7f4bf}:host([dark][variant="card"]) .tb-panels{background:#ffffff0a;border-color:#ffffff14}:host([dark][variant="vertical"]) .tb-list{border-right-color:#ffffff14}:host([dark][variant="vertical"]) .tb-tab.is-active{border-left-color:var(--color-kaki-500);color:var(--color-kaki-400);background:#b85a1e1a}@keyframes kintsugi-ink{0%{background-position:0% 0}to{background-position:200% 0}}:host([kintsugi][variant="underline"]) .tb-ink{background:linear-gradient(90deg,var(--color-kaki-600) 0%,var(--color-kaki-400) 25%,#F5D08A 50%,var(--color-kaki-400) 75%,var(--color-kaki-600) 100%);background-size:200% 100%;animation:kintsugi-ink 3s linear infinite}:host([kintsugi]) .tb-tab.is-active{color:var(--color-kaki-600)}:host([kintsugi]) .tb-tab.is-active .tb-badge{background:var(--color-kaki-500);color:#fff}:host([kintsugi][variant="pill"]) .tb-tab.is-active{background:linear-gradient(90deg,var(--color-kaki-600),var(--color-kaki-400),#F5D08A,var(--color-kaki-400),var(--color-kaki-600));background-size:200% 100%;animation:kintsugi-ink 3s linear infinite;color:#fff}:host([kintsugi][dark][variant="underline"]) .tb-ink{background:linear-gradient(90deg,#b85a1e66,#d97234b3,#f5d08ae6,#d97234b3,#b85a1e66);background-size:200% 100%;animation:kintsugi-ink 3.5s linear infinite}:host([kintsugi][dark]) .tb-tab.is-active{color:var(--color-kaki-400)}@keyframes tb-glitch-x{0%,88%,to{transform:translate(0)}89%{transform:translate(-2px)}90%{transform:translate(2px)}91%{transform:translate(0)}}@keyframes tb-glitch-r{0%,88%,to{opacity:0}89%{opacity:.6;transform:translate(-2px);clip-path:inset(20% 0 50% 0)}90%{opacity:.4;transform:translate(1px);clip-path:inset(55% 0 10% 0)}91%{opacity:0}}@keyframes tb-glitch-b{0%,88%,to{opacity:0}89%{opacity:.5;transform:translate(2px);clip-path:inset(50% 0 20% 0)}90%{opacity:.3;transform:translate(-1px);clip-path:inset(10% 0 60% 0)}91%{opacity:0}}@keyframes tb-glitch-flicker{0%,85%,to{opacity:1}89%{opacity:.7}89.5%{opacity:1}90%{opacity:.5}90.5%{opacity:1}}:host([glitch]) .tb-tab.is-active{animation:tb-glitch-x 6s steps(1) infinite,tb-glitch-flicker 6s steps(1) infinite;position:relative}:host([glitch]) .tb-tab.is-active:before,:host([glitch]) .tb-tab.is-active:after{content:attr(data-label);position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--lib-font-mono);font-size:inherit;letter-spacing:inherit;text-transform:uppercase;pointer-events:none;padding:inherit}:host([glitch]) .tb-tab.is-active:before{color:#d97234b3;animation:tb-glitch-r 6s steps(1) infinite}:host([glitch]) .tb-tab.is-active:after{color:#4e948299;animation:tb-glitch-b 6s steps(1) infinite;animation-delay:60ms}:host([glitch][variant="underline"]) .tb-ink{background:var(--color-washi-900);animation:tb-glitch-flicker 6s steps(1) infinite!important}:host([glitch][dark]) .tb-tab.is-active:before{color:#d97234cc}:host([glitch][dark]) .tb-tab.is-active:after{color:#4e9482b3}:host([glitch][dark][variant="underline"]) .tb-ink{background:#faf7f499}:host([scroll]) .tb-list{overflow:auto hidden;scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap}:host([scroll]) .tb-list::-webkit-scrollbar{display:none}:host([full]) .tb-list{display:grid;grid-auto-columns:1fr;grid-auto-flow:column}:host([full]) .tb-tab{justify-content:center}}';
2
2
  export {
3
- labelStyles as default
3
+ tabsCss as default
4
4
  };
5
5
  //# sourceMappingURL=index230.js.map
package/dist/index231.js CHANGED
@@ -1,5 +1,5 @@
1
- const iconStyles = ":host{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:0}.icon-wrapper{display:flex;width:var(--lib-icon-size, 1em);height:var(--lib-icon-size, 1em);color:currentcolor}svg{display:block;width:100%!important;height:100%!important;fill:currentcolor}.variant-primary{color:var(--lib-color-primary)}.variant-secondary{color:var(--lib-color-secondary)}.variant-success{color:var(--lib-color-success)}.variant-danger{color:var(--lib-color-danger)}";
1
+ const treeSelectCss = '@layer tokens,reset,components;@layer reset{*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}}@layer components{:host{display:block;position:relative}:host([disabled]){opacity:.38;pointer-events:none;cursor:not-allowed}.ts-wrap{position:relative;display:inline-flex;flex-direction:column;min-width:260px;width:100%}.ts-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--lib-space-sm);padding:calc(var(--lib-spacing-unit) * 3) var(--lib-space-md);background:var(--bg-elevated);border:1px solid var(--border-default);cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color var(--duration-base) var(--ease-default),box-shadow var(--duration-base) var(--ease-default);border-radius:var(--lib-radius-md)}.ts-trigger:hover{border-color:var(--border-strong)}:host([open]) .ts-trigger{border-color:var(--color-washi-800);box-shadow:0 0 0 3px var(--color-ink-10)}.ts-trigger-label{font-family:var(--lib-font-body);font-size:var(--text-base);color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ts-trigger-label.is-placeholder{color:var(--text-muted)}.ts-trigger-count{font-family:var(--lib-font-mono);font-size:10px;letter-spacing:var(--tracking-wider);color:var(--bg-elevated);background:var(--color-kaki-500);padding:2px 6px;border-radius:var(--radius-full);flex-shrink:0;line-height:1.4}.ts-trigger-chevron{flex-shrink:0;color:var(--text-muted);transition:transform var(--duration-slow) var(--ease-out)}:host([open]) .ts-trigger-chevron{transform:rotate(180deg)}.ts-dropdown{position:absolute;top:calc(100% + 4px);left:0;width:100%;min-width:260px;background:var(--bg-elevated);border:1px solid var(--border-default);box-shadow:var(--shadow-lg);z-index:var(--z-overlay);display:flex;flex-direction:column;max-height:340px;border-radius:var(--lib-radius-md);opacity:0;transform:translateY(-6px) scaleY(.97);transform-origin:top;pointer-events:none;transition:opacity var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}:host([open]) .ts-dropdown{opacity:1;transform:none;pointer-events:auto}.ts-search-wrap{padding:calc(var(--lib-spacing-unit) * 3) var(--lib-space-md);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;gap:calc(var(--lib-spacing-unit) * 3);flex-shrink:0}.ts-search-icon{color:var(--text-muted);flex-shrink:0}.ts-search{flex:1;border:none;outline:none;background:transparent;font-family:var(--lib-font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--text-primary)}.ts-search::placeholder{color:var(--text-muted)}.ts-tree{overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:var(--color-washi-300) transparent}.ts-node{display:flex;flex-direction:column}.ts-node-row{display:flex;align-items:center;padding:var(--lib-space-sm) var(--lib-space-md);cursor:pointer;min-height:34px;transition:background var(--duration-fast);gap:0;position:relative}.ts-node-row:hover{background:var(--color-washi-100)}.ts-node-row.is-selected{background:var(--color-kaki-50)}.ts-node-row.is-selected:hover{background:var(--color-kaki-100)}.ts-indent{display:flex;align-items:stretch;flex-shrink:0}.ts-indent-unit{width:20px;position:relative;flex-shrink:0}.ts-indent-unit:before{content:"";position:absolute;left:9px;top:-50%;bottom:-50%;width:1px;background:var(--border-subtle)}.ts-indent-unit.ts-indent-no-line:before{display:none}.ts-indent-unit.ts-indent-last:after{content:"";position:absolute;left:9px;top:50%;width:11px;height:1px;background:var(--border-subtle)}.ts-indent-unit.ts-indent-last-child:before{bottom:50%}.ts-toggle{width:18px;height:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-default);background:var(--bg-elevated);margin-right:var(--lib-space-sm);position:relative;cursor:pointer;transition:border-color var(--duration-fast),background var(--duration-fast)}.ts-toggle:hover{border-color:var(--border-strong);background:var(--color-washi-100)}.ts-toggle-icon{width:8px;height:8px;color:var(--text-muted);transition:transform var(--duration-slow) var(--ease-out);flex-shrink:0}.ts-node.is-expanded>.ts-node-row .ts-toggle-icon{transform:rotate(90deg)}.ts-toggle-spacer{width:18px;flex-shrink:0;margin-right:var(--lib-space-sm)}.ts-checkbox{width:14px;height:14px;flex-shrink:0;border:1px solid var(--border-default);background:var(--bg-elevated);margin-right:calc(var(--lib-spacing-unit) * 3);display:flex;align-items:center;justify-content:center;transition:border-color var(--duration-base),background var(--duration-base);position:relative;border-radius:var(--lib-radius-sm)}.ts-node-row.is-selected .ts-checkbox{background:var(--color-kaki-500);border-color:var(--color-kaki-500)}.ts-node-row.is-indeterminate .ts-checkbox{background:var(--bg-elevated);border-color:var(--color-kaki-400)}.ts-checkbox-check{display:none;width:8px;height:8px;color:var(--color-white);flex-shrink:0;stroke:var(--color-white)}.ts-node-row.is-selected .ts-checkbox-check{display:block}.ts-checkbox-dash{display:none;width:8px;height:1.5px;background:var(--color-kaki-400);flex-shrink:0}.ts-node-row.is-indeterminate .ts-checkbox-dash{display:block}:host(:not([multi])) .ts-checkbox{display:none}.ts-node-label{font-family:var(--lib-font-body);font-size:var(--text-sm);color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--duration-fast)}.ts-node-row.is-selected .ts-node-label{color:var(--color-kaki-600)}.ts-node-label mark{background:var(--color-kaki-100);color:var(--color-kaki-600);border-radius:1px;padding:0 1px}.ts-node-badge{font-family:var(--lib-font-mono);font-size:10px;letter-spacing:var(--tracking-wide);color:var(--text-muted);margin-left:var(--lib-space-sm);flex-shrink:0}.ts-node-row.is-selected .ts-node-badge{color:var(--color-kaki-400)}.ts-children{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--duration-slow) var(--ease-out)}.ts-node.is-expanded>.ts-children{grid-template-rows:1fr}.ts-children-inner{overflow:hidden}.ts-footer{border-top:1px solid var(--border-subtle);padding:calc(var(--lib-spacing-unit) * 3) var(--lib-space-md);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:var(--bg-surface)}.ts-footer-info{font-family:var(--lib-font-mono);font-size:10px;letter-spacing:var(--tracking-wide);color:var(--text-muted)}.ts-footer-actions{display:flex;gap:var(--lib-space-md)}.ts-btn{font-family:var(--lib-font-mono);font-size:10px;letter-spacing:var(--tracking-wider);text-transform:uppercase;border:none;background:transparent;cursor:pointer;padding:var(--lib-space-xs) var(--lib-space-sm);color:var(--text-muted);transition:color var(--duration-base)}.ts-btn:hover{color:var(--text-primary)}.ts-btn-confirm{background:var(--color-washi-900);color:var(--color-washi-50);padding:var(--lib-space-xs) var(--lib-space-md);transition:background var(--duration-base)}.ts-btn-confirm:hover{background:var(--color-kaki-500)}.ts-empty{padding:var(--lib-space-xl) var(--lib-space-md);text-align:center;font-family:var(--lib-font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--text-muted)}.ts-tags{display:flex;flex-wrap:wrap;gap:var(--lib-space-sm);margin-top:calc(var(--lib-spacing-unit) * 3);min-height:26px}.ts-tag{font-family:var(--lib-font-mono);font-size:10px;letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:2px calc(var(--lib-spacing-unit) * 3);background:var(--color-kaki-50);border:1px solid var(--color-kaki-200);color:var(--color-kaki-600);display:flex;align-items:center;gap:var(--lib-space-sm);cursor:default;transition:background var(--duration-fast)}.ts-tag:hover{background:var(--color-kaki-100)}.ts-tag-remove{cursor:pointer;color:var(--color-kaki-400);line-height:1;font-size:11px;transition:color var(--duration-fast)}.ts-tag-remove:hover{color:var(--color-kaki-600)}:host([inline]){display:flex;flex-direction:column}.ts-inline{border:1px solid var(--border-subtle);background:var(--bg-elevated);max-height:360px;display:flex;flex-direction:column;border-radius:var(--lib-radius-md)}.ts-inline .ts-tree{flex:1}.ts-inline .ts-search-wrap,.ts-inline .ts-footer{flex-shrink:0}}';
2
2
  export {
3
- iconStyles as default
3
+ treeSelectCss as default
4
4
  };
5
5
  //# sourceMappingURL=index231.js.map
package/dist/index232.js CHANGED
@@ -1,5 +1,15 @@
1
- const buttonCss = '@layer tokens,reset,components;@layer reset{:host{display:inline-block;vertical-align:middle}*,*:before,*:after{box-sizing:border-box}}@layer components{.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--lib-space-sm);font-family:var(--lib-font-mono);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wider);text-transform:uppercase;white-space:nowrap;line-height:1;padding:var(--lib-space-sm) var(--lib-space-md);width:100%;border:var(--lib-border-width) solid transparent;border-radius:var(--radius-none);background:transparent;cursor:pointer;outline:none;text-decoration:none;position:relative;overflow:hidden;transition:background var(--duration-base) var(--ease-default),color var(--duration-base) var(--ease-default),border-color var(--duration-base) var(--ease-default),box-shadow var(--duration-base) var(--ease-default),transform var(--duration-fast) var(--ease-default)}.btn ::slotted(*){position:relative;z-index:1}.btn:active:not(:disabled){transform:translateY(1px)}:host([size="sm"]) .btn{padding:var(--lib-space-xs) var(--lib-space-sm);font-size:10px}:host([size="lg"]) .btn{padding:var(--lib-space-md) var(--lib-space-lg);font-size:var(--text-sm);letter-spacing:var(--tracking-widest)}:host([disabled]) .btn{opacity:.38;cursor:not-allowed;pointer-events:none}:host([variant="primary"]) .btn{background:var(--color-washi-900);color:var(--color-washi-50)}:host([variant="primary"]) .btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-kaki-400);transform:scaleX(0);transform-origin:left;transition:transform var(--duration-slow) var(--ease-out);z-index:0}:host([variant="primary"]) .btn:hover{box-shadow:var(--shadow-md)}:host([variant="primary"]) .btn:hover:after{transform:scaleX(1)}:host([variant="secondary"]) .btn{background:transparent;color:var(--text-primary);border-color:var(--border-strong)}:host([variant="secondary"]) .btn:hover{background:var(--color-washi-900);color:var(--color-washi-50);border-color:var(--color-washi-900)}:host([variant="ghost"]) .btn{background:transparent;color:var(--text-secondary)}:host([variant="ghost"]) .btn:hover{color:var(--text-primary);background:var(--color-ink-10)}:host([variant="accent"]) .btn{background:var(--color-kaki-400);color:var(--color-white)}:host([variant="accent"]) .btn:hover{background:var(--color-kaki-500);box-shadow:var(--shadow-md)}:host([variant="danger"]) .btn{background:transparent;color:var(--color-error);border-color:var(--color-error)}:host([variant="danger"]) .btn:hover{background:var(--color-error);color:var(--color-white)}:host([glass]) .btn{border-radius:var(--radius-md);-webkit-backdrop-filter:var(--lib-glass-filter);backdrop-filter:var(--lib-glass-filter);background:var(--lib-glass-bg);border:var(--lib-glass-border);box-shadow:var(--lib-glass-shadow);color:var(--lib-glass-text);text-shadow:var(--lib-glass-text-shadow)}:host([glass]) .btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--lib-glass-shine);pointer-events:none;z-index:0}:host([glass]) .btn:hover{box-shadow:var(--lib-glass-shadow-hover);transform:translateY(-1px)}:host([glass][variant="primary"]) .btn{background:var(--lib-glass-bg-water);border-color:#ffffff40}:host([glass][variant="accent"]) .btn{background:var(--lib-glass-bg-kaki);border-color:#6d4d3e59}:host([glass][variant="primary"]) .btn:after{display:none}:host([variant="kintsugi"]) .btn{background:var(--color-washi-950);color:var(--color-washi-50);border-color:transparent}:host([variant="kintsugi"]) .btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;padding:1px;background:var(--lib-kintsugi-border);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:0}@media(hover:hover){:host([variant="kintsugi"]) .btn:hover{background:var(--color-washi-900)}}:host([variant="brutal"]) .btn{background:var(--color-washi-50);color:var(--color-ink-100);border:2px solid var(--color-ink-100);box-shadow:var(--lib-shadow-brutal);border-radius:0;transition:transform var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default)}@media(hover:hover){:host([variant="brutal"]) .btn:hover{transform:translate(4px,4px);box-shadow:none}}:host([variant="brutal"]) .btn:active{transform:translate(4px,4px);box-shadow:none}.spotlight-layer{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--lib-spotlight-gradient-white);transition:var(--lib-spotlight-transition);pointer-events:none;z-index:0}:host([variant="brutal"]) .spotlight-layer,:host([variant="secondary"]) .spotlight-layer,:host([variant="ghost"]) .spotlight-layer{background:var(--lib-spotlight-gradient)}}';
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: BSD-3-Clause
5
+ */
6
+ function* o(o2, f) {
7
+ if (void 0 !== o2) {
8
+ let i = 0;
9
+ for (const t of o2) yield f(t, i++);
10
+ }
11
+ }
2
12
  export {
3
- buttonCss as default
13
+ o as map
4
14
  };
5
15
  //# sourceMappingURL=index232.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index232.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index232.js","sources":["../../../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/directives/map.js"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction*o(o,f){if(void 0!==o){let i=0;for(const t of o)yield f(t,i++)}}export{o as map};\n//# sourceMappingURL=map.js.map\n"],"names":["o"],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,UAAS,EAAEA,IAAE,GAAE;AAAC,MAAG,WAASA,IAAE;AAAC,QAAI,IAAE;AAAE,eAAU,KAAKA,GAAE,OAAM,EAAE,GAAE,GAAG;AAAA,EAAC;AAAC;","x_google_ignoreList":[0]}
package/dist/index233.js CHANGED
@@ -1,23 +1,12 @@
1
- import { nothing, html } from "lit";
2
- function buttonTemplate(props) {
1
+ import { html } from "lit";
2
+ function accordionTemplate(props) {
3
3
  return html`
4
- <button
5
- id="${props.buttonId}"
6
- type="${props.type}"
7
- ?disabled="${props.disabled}"
8
- aria-label="${props.ariaLabel ?? nothing}"
9
- style="${props.customPadding ? `padding: ${props.customPadding}` : nothing}"
10
- @click="${props.handleClick}"
11
- class="btn"
12
- >
13
- ${props.spotlight ? html`<span class="spotlight-layer" aria-hidden="true"></span>` : nothing}
14
- <slot name="prefix"></slot>
4
+ <div class="accordion__root" @accordion-toggle=${props.onToggle}>
15
5
  <slot></slot>
16
- <slot name="suffix"></slot>
17
- </button>
6
+ </div>
18
7
  `;
19
8
  }
20
9
  export {
21
- buttonTemplate
10
+ accordionTemplate
22
11
  };
23
12
  //# sourceMappingURL=index233.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index233.js","sources":["../src/components/atoms/button/lib-button.html.ts"],"sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport type { LibSize } from '../../../types';\nimport type { LibButtonVariant } from './lib-button.types';\n\nexport interface ButtonTemplateProps {\n buttonId: string;\n type: 'button' | 'submit' | 'reset';\n disabled: boolean;\n ariaLabel?: string | undefined;\n handleClick: (event: Event) => void;\n variant: LibButtonVariant;\n size: LibSize;\n glass: boolean;\n spotlight: boolean;\n customPadding?: string | undefined;\n}\n \n/**\n * Plantilla base para el componente lib-button.\n * Renderiza un único <button> estilizado vía :host() selectors.\n */\nexport function buttonTemplate(props: ButtonTemplateProps): TemplateResult {\n return html`\n <button\n id=\"${props.buttonId}\"\n type=\"${props.type}\"\n ?disabled=\"${props.disabled}\"\n aria-label=\"${props.ariaLabel ?? nothing}\"\n style=\"${props.customPadding ? `padding: ${props.customPadding}` : nothing}\"\n @click=\"${props.handleClick}\"\n class=\"btn\"\n >\n ${props.spotlight ? html`<span class=\"spotlight-layer\" aria-hidden=\"true\"></span>` : nothing}\n <slot name=\"prefix\"></slot>\n <slot></slot>\n <slot name=\"suffix\"></slot>\n </button>\n `;\n}"],"names":[],"mappings":";AAqBO,SAAS,eAAe,OAA4C;AACzE,SAAO;AAAA;AAAA,YAEG,MAAM,QAAQ;AAAA,cACZ,MAAM,IAAI;AAAA,mBACL,MAAM,QAAQ;AAAA,oBACb,MAAM,aAAa,OAAO;AAAA,eAC/B,MAAM,gBAAgB,YAAY,MAAM,aAAa,KAAK,OAAO;AAAA,gBAChE,MAAM,WAAW;AAAA;AAAA;AAAA,QAGzB,MAAM,YAAY,iEAAiE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAMlG;"}
1
+ {"version":3,"file":"index233.js","sources":["../src/components/organisms/accordion/lib-accordion.component.html.ts"],"sourcesContent":["import { html, TemplateResult } from 'lit';\n\nexport interface AccordionTemplateProps {\n onToggle: (e: Event) => void;\n}\n\n/**\n * Plantilla para lib-accordion.\n *\n * El organismo es un contenedor de slot: no renderiza items propios,\n * solo orquesta el comportamiento exclusive y aplica variantes via CSS.\n */\nexport function accordionTemplate(props: AccordionTemplateProps): TemplateResult {\n return html`\n <div class=\"accordion__root\" @accordion-toggle=${props.onToggle}>\n <slot></slot>\n </div>\n `;\n}"],"names":[],"mappings":";AAYO,SAAS,kBAAkB,OAA+C;AAC/E,SAAO;AAAA,qDAC4C,MAAM,QAAQ;AAAA;AAAA;AAAA;AAInE;"}
package/dist/index234.js CHANGED
@@ -1,5 +1,5 @@
1
- const styles = ":host{display:inline-block;touch-action:none}.magnetic-wrapper{display:inline-block;will-change:transform;transition:transform .3s cubic-bezier(.23,1,.32,1)}";
1
+ const accordionCss = '@layer tokens,reset,components;@layer reset{:host{display:block}*,*:before,*:after{box-sizing:border-box}}@layer components{:host{border:1px solid var(--border-subtle);background:var(--bg-elevated);display:block}.accordion__root{display:flex;flex-direction:column}::slotted(lib-accordion-item:last-of-type){border-bottom:none!important}:host([variant="flush"]){border:none;background:transparent;box-shadow:none}:host([variant="flush"]) ::slotted(lib-accordion-item){--accordion-item-trigger-px: 0px;--accordion-item-content-px: 0px;--accordion-item-trigger-hover-bg: transparent;--accordion-item-trigger-bg: transparent;--accordion-item-body-bg: transparent}:host([variant="separated"]){border:none;background:transparent;box-shadow:none}:host([variant="separated"]) .accordion__root{gap:var(--lib-space-sm)}:host([variant="separated"]) ::slotted(lib-accordion-item){border:1px solid var(--border-subtle)!important;transition:box-shadow var(--duration-slow) var(--ease-out),border-color var(--duration-slow) var(--ease-out)}:host([variant="separated"]) ::slotted(lib-accordion-item[open]){box-shadow:var(--shadow-md);border-color:var(--border-default)!important}:host([variant="accent"]){border:1px solid var(--border-subtle);background:var(--bg-elevated)}:host([variant="accent"]) ::slotted(lib-accordion-item[open]){--accordion-item-accent-border: 2px solid var(--color-kaki-400);--accordion-item-trigger-bg: var(--color-kaki-50);--accordion-item-trigger-hover-bg: var(--color-kaki-100);--accordion-item-body-bg: var(--color-kaki-50);--accordion-item-label-color: var(--color-kaki-600);--accordion-item-icon-color: var(--color-kaki-400);--accordion-item-content-border: var(--color-kaki-200);--accordion-item-content-color: var(--color-kaki-600)}@media(prefers-reduced-motion:reduce){::slotted(lib-accordion-item){transition:none}}}';
2
2
  export {
3
- styles as default
3
+ accordionCss as default
4
4
  };
5
5
  //# sourceMappingURL=index234.js.map
package/dist/index235.js CHANGED
@@ -1,19 +1,21 @@
1
1
  import { html } from "lit";
2
- function spotlightCardTemplate(props) {
2
+ function bentoGridTemplate(ctx) {
3
3
  return html`
4
4
  <div
5
- class="spotlight"
6
- @mousemove=${props.onMouseMove}
7
- @mouseleave=${props.onMouseLeave}
5
+ class="bento-grid"
6
+ part="grid"
7
+ role="presentation"
8
+ style="
9
+ --_columns: ${ctx.columns};
10
+ --_gap: var(--lib-space-${ctx.gap});
11
+ --_row-height: ${ctx.rowHeight};
12
+ "
8
13
  >
9
- <div class="spotlight__layer"></div>
10
- <div class="spotlight__slot">
11
- <slot></slot>
12
- </div>
14
+ <slot></slot>
13
15
  </div>
14
16
  `;
15
17
  }
16
18
  export {
17
- spotlightCardTemplate
19
+ bentoGridTemplate
18
20
  };
19
21
  //# sourceMappingURL=index235.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index235.js","sources":["../src/components/atoms/card/spotlight-card/lib-spotlight-card.html.ts"],"sourcesContent":["import { html, TemplateResult } from 'lit';\nimport type { SpotlightCardTemplateProps } from './lib-spotlight-card.types';\n\n/**\n * Template del spotlight card.\n *\n * Arquitectura de capas (de abajo a arriba):\n * 1. .spotlight__layer — gradiente radial reactivo al cursor (z-index 1)\n * 2. ::after (CSS) — hilo kintsugi en el borde, solo si [kintsugi] (z-index 2)\n * 3. .spotlight__slot — contenido slotado (z-index 3)\n *\n * El gradiente del spotlight se actualiza vía CSS custom properties\n * --lib-spotlight-x / --lib-spotlight-y actualizadas en el mousemove handler.\n */\nexport function spotlightCardTemplate(props: SpotlightCardTemplateProps): TemplateResult {\n return html`\n <div\n class=\"spotlight\"\n @mousemove=${props.onMouseMove}\n @mouseleave=${props.onMouseLeave}\n >\n <div class=\"spotlight__layer\"></div>\n <div class=\"spotlight__slot\">\n <slot></slot>\n </div>\n </div>\n `;\n}"],"names":[],"mappings":";AAcO,SAAS,sBAAsB,OAAmD;AACvF,SAAO;AAAA;AAAA;AAAA,mBAGU,MAAM,WAAW;AAAA,oBAChB,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQtC;"}
1
+ {"version":3,"file":"index235.js","sources":["../src/components/organisms/bento-grid/lib-bento-grid.html.ts"],"sourcesContent":["import { html, TemplateResult } from 'lit';\nimport type { LibBentoGrid } from './lib-bento-grid.component';\n\nexport function bentoGridTemplate(ctx: LibBentoGrid): TemplateResult {\n return html`\n <div\n class=\"bento-grid\"\n part=\"grid\"\n role=\"presentation\"\n style=\"\n --_columns: ${ctx.columns};\n --_gap: var(--lib-space-${ctx.gap});\n --_row-height: ${ctx.rowHeight};\n \"\n >\n <slot></slot>\n </div>\n `;\n}"],"names":[],"mappings":";AAGO,SAAS,kBAAkB,KAAmC;AACnE,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMa,IAAI,OAAO;AAAA,kCACC,IAAI,GAAG;AAAA,yBAChB,IAAI,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAMtC;"}