@shibui-ui/ui 1.24.1 → 1.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/dist/components/atoms/index.d.ts +45 -16
  2. package/dist/components/atoms/index.d.ts.map +1 -1
  3. package/dist/components/molecules/index.d.ts +20 -1
  4. package/dist/components/molecules/index.d.ts.map +1 -1
  5. package/dist/components/organisms/index.d.ts +17 -1
  6. package/dist/components/organisms/index.d.ts.map +1 -1
  7. package/dist/index.d.ts +3 -82
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +79 -80
  10. package/dist/index.js.map +1 -1
  11. package/dist/index10.js +82 -18
  12. package/dist/index10.js.map +1 -1
  13. package/dist/index11.js +84 -69
  14. package/dist/index11.js.map +1 -1
  15. package/dist/index12.js +40 -26
  16. package/dist/index12.js.map +1 -1
  17. package/dist/index13.js +16 -39
  18. package/dist/index13.js.map +1 -1
  19. package/dist/index14.js +29 -44
  20. package/dist/index14.js.map +1 -1
  21. package/dist/index15.js +16 -117
  22. package/dist/index15.js.map +1 -1
  23. package/dist/index16.js +48 -40
  24. package/dist/index16.js.map +1 -1
  25. package/dist/index17.js +41 -25
  26. package/dist/index17.js.map +1 -1
  27. package/dist/index18.js +76 -49
  28. package/dist/index18.js.map +1 -1
  29. package/dist/index19.js +19 -39
  30. package/dist/index19.js.map +1 -1
  31. package/dist/index194.js +94 -24
  32. package/dist/index194.js.map +1 -1
  33. package/dist/index195.js +2 -2
  34. package/dist/index197.js +2 -24
  35. package/dist/index197.js.map +1 -1
  36. package/dist/index198.js +74 -2
  37. package/dist/index198.js.map +1 -1
  38. package/dist/index199.js +64 -35
  39. package/dist/index199.js.map +1 -1
  40. package/dist/index20.js +21 -41
  41. package/dist/index20.js.map +1 -1
  42. package/dist/index200.js +2 -2
  43. package/dist/index201.js +54 -13
  44. package/dist/index201.js.map +1 -1
  45. package/dist/index202.js +2 -2
  46. package/dist/index203.js +2 -2
  47. package/dist/index204.js +143 -157
  48. package/dist/index204.js.map +1 -1
  49. package/dist/index205.js +43 -24
  50. package/dist/index205.js.map +1 -1
  51. package/dist/index206.js +51 -2
  52. package/dist/index206.js.map +1 -1
  53. package/dist/index207.js +2 -11
  54. package/dist/index207.js.map +1 -1
  55. package/dist/index208.js +33 -2
  56. package/dist/index208.js.map +1 -1
  57. package/dist/index209.js +2 -91
  58. package/dist/index209.js.map +1 -1
  59. package/dist/index21.js +90 -26
  60. package/dist/index21.js.map +1 -1
  61. package/dist/index210.js +6 -2
  62. package/dist/index210.js.map +1 -1
  63. package/dist/index211.js +2 -41
  64. package/dist/index211.js.map +1 -1
  65. package/dist/index212.js +260 -2
  66. package/dist/index212.js.map +1 -1
  67. package/dist/index213.js +16 -5
  68. package/dist/index213.js.map +1 -1
  69. package/dist/index214.js +2 -2
  70. package/dist/index215.js +2 -35
  71. package/dist/index215.js.map +1 -1
  72. package/dist/index216.js +59 -42
  73. package/dist/index216.js.map +1 -1
  74. package/dist/index217.js +32 -2
  75. package/dist/index217.js.map +1 -1
  76. package/dist/index218.js +2 -85
  77. package/dist/index218.js.map +1 -1
  78. package/dist/index219.js +2 -2
  79. package/dist/index22.js +41 -48
  80. package/dist/index22.js.map +1 -1
  81. package/dist/index220.js +73 -65
  82. package/dist/index220.js.map +1 -1
  83. package/dist/index221.js +81 -2
  84. package/dist/index221.js.map +1 -1
  85. package/dist/index222.js +2 -10
  86. package/dist/index222.js.map +1 -1
  87. package/dist/index223.js +133 -2
  88. package/dist/index223.js.map +1 -1
  89. package/dist/index224.js +2 -26
  90. package/dist/index224.js.map +1 -1
  91. package/dist/index225.js +2 -2
  92. package/dist/index226.js +66 -12
  93. package/dist/index226.js.map +1 -1
  94. package/dist/index227.js +97 -2
  95. package/dist/index227.js.map +1 -1
  96. package/dist/index228.js +2 -2
  97. package/dist/index229.js +62 -24
  98. package/dist/index229.js.map +1 -1
  99. package/dist/index23.js +50 -94
  100. package/dist/index23.js.map +1 -1
  101. package/dist/index230.js +2 -2
  102. package/dist/index231.js +2 -2
  103. package/dist/index232.js +12 -2
  104. package/dist/index232.js.map +1 -1
  105. package/dist/index233.js +5 -16
  106. package/dist/index233.js.map +1 -1
  107. package/dist/index234.js +2 -2
  108. package/dist/index235.js +11 -9
  109. package/dist/index235.js.map +1 -1
  110. package/dist/index236.js +2 -2
  111. package/dist/index237.js +76 -34
  112. package/dist/index237.js.map +1 -1
  113. package/dist/index238.js +2 -2
  114. package/dist/index239.js +2 -27
  115. package/dist/index239.js.map +1 -1
  116. package/dist/index24.js +37 -34
  117. package/dist/index24.js.map +1 -1
  118. package/dist/index240.js +39 -2
  119. package/dist/index240.js.map +1 -1
  120. package/dist/index241.js +2 -34
  121. package/dist/index241.js.map +1 -1
  122. package/dist/index242.js +235 -12
  123. package/dist/index242.js.map +1 -1
  124. package/dist/index243.js +82 -2
  125. package/dist/index243.js.map +1 -1
  126. package/dist/index244.js +2 -9
  127. package/dist/index244.js.map +1 -1
  128. package/dist/index245.js +94 -2
  129. package/dist/index245.js.map +1 -1
  130. package/dist/index246.js +2 -5
  131. package/dist/index246.js.map +1 -1
  132. package/dist/index247.js +268 -2
  133. package/dist/index247.js.map +1 -1
  134. package/dist/index248.js +2 -36
  135. package/dist/index248.js.map +1 -1
  136. package/dist/index249.js +21 -2
  137. package/dist/index249.js.map +1 -1
  138. package/dist/index25.js +51 -32
  139. package/dist/index25.js.map +1 -1
  140. package/dist/index250.js +2 -31
  141. package/dist/index250.js.map +1 -1
  142. package/dist/index251.js +9 -2
  143. package/dist/index251.js.map +1 -1
  144. package/dist/index252.js +2 -19
  145. package/dist/index252.js.map +1 -1
  146. package/dist/index253.js +15 -2
  147. package/dist/index253.js.map +1 -1
  148. package/dist/index254.js +2 -2
  149. package/dist/index255.js +135 -69
  150. package/dist/index255.js.map +1 -1
  151. package/dist/index256.js +2 -11
  152. package/dist/index256.js.map +1 -1
  153. package/dist/index257.js +5 -2
  154. package/dist/index257.js.map +1 -1
  155. package/dist/index258.js +2 -78
  156. package/dist/index258.js.map +1 -1
  157. package/dist/index259.js +9 -2
  158. package/dist/index259.js.map +1 -1
  159. package/dist/index26.js +31 -236
  160. package/dist/index26.js.map +1 -1
  161. package/dist/index260.js +2 -32
  162. package/dist/index260.js.map +1 -1
  163. package/dist/index261.js +2 -2
  164. package/dist/index262.js +92 -9
  165. package/dist/index262.js.map +1 -1
  166. package/dist/index263.js +59 -2
  167. package/dist/index263.js.map +1 -1
  168. package/dist/index264.js +2 -16
  169. package/dist/index264.js.map +1 -1
  170. package/dist/index265.js +41 -2
  171. package/dist/index265.js.map +1 -1
  172. package/dist/index266.js +2 -16
  173. package/dist/index266.js.map +1 -1
  174. package/dist/index267.js +34 -9
  175. package/dist/index267.js.map +1 -1
  176. package/dist/index268.js +8 -54
  177. package/dist/index268.js.map +1 -1
  178. package/dist/index269.js +2 -2
  179. package/dist/index27.js +27 -58
  180. package/dist/index27.js.map +1 -1
  181. package/dist/index270.js +42 -7
  182. package/dist/index270.js.map +1 -1
  183. package/dist/index271.js +2 -2
  184. package/dist/index272.js +2 -34
  185. package/dist/index272.js.map +1 -1
  186. package/dist/index273.js +16 -2
  187. package/dist/index273.js.map +1 -1
  188. package/dist/index274.js +9 -2
  189. package/dist/index274.js.map +1 -1
  190. package/dist/index275.js +6 -13
  191. package/dist/index275.js.map +1 -1
  192. package/dist/index276.js +2 -2
  193. package/dist/index277.js +8 -15
  194. package/dist/index277.js.map +1 -1
  195. package/dist/index278.js +2 -2
  196. package/dist/index279.js +55 -2
  197. package/dist/index279.js.map +1 -1
  198. package/dist/index28.js +247 -24
  199. package/dist/index28.js.map +1 -1
  200. package/dist/index280.js +2 -42
  201. package/dist/index280.js.map +1 -1
  202. package/dist/index281.js +2 -100
  203. package/dist/index281.js.map +1 -1
  204. package/dist/index282.js +20 -2
  205. package/dist/index282.js.map +1 -1
  206. package/dist/index283.js +2 -97
  207. package/dist/index283.js.map +1 -1
  208. package/dist/index284.js +33 -2
  209. package/dist/index284.js.map +1 -1
  210. package/dist/index285.js +6 -27
  211. package/dist/index285.js.map +1 -1
  212. package/dist/index286.js +2 -2
  213. package/dist/index287.js +9 -44
  214. package/dist/index287.js.map +1 -1
  215. package/dist/index288.js +2 -2
  216. package/dist/index289.js +2 -33
  217. package/dist/index289.js.map +1 -1
  218. package/dist/index29.js +249 -39
  219. package/dist/index29.js.map +1 -1
  220. package/dist/index290.js +36 -2
  221. package/dist/index290.js.map +1 -1
  222. package/dist/index291.js +2 -57
  223. package/dist/index291.js.map +1 -1
  224. package/dist/index292.js +24 -2
  225. package/dist/index292.js.map +1 -1
  226. package/dist/index293.js +2 -2
  227. package/dist/index294.js +26 -247
  228. package/dist/index294.js.map +1 -1
  229. package/dist/index295.js +2 -2
  230. package/dist/index296.js +2 -72
  231. package/dist/index296.js.map +1 -1
  232. package/dist/index297.js +42 -2
  233. package/dist/index297.js.map +1 -1
  234. package/dist/index298.js +7 -56
  235. package/dist/index298.js.map +1 -1
  236. package/dist/index299.js +2 -133
  237. package/dist/index299.js.map +1 -1
  238. package/dist/index30.js +32 -19
  239. package/dist/index30.js.map +1 -1
  240. package/dist/index300.js +30 -2
  241. package/dist/index300.js.map +1 -1
  242. package/dist/index301.js +2 -12
  243. package/dist/index301.js.map +1 -1
  244. package/dist/index302.js +34 -2
  245. package/dist/index302.js.map +1 -1
  246. package/dist/index303.js +2 -162
  247. package/dist/index303.js.map +1 -1
  248. package/dist/index304.js +26 -42
  249. package/dist/index304.js.map +1 -1
  250. package/dist/index305.js +2 -81
  251. package/dist/index305.js.map +1 -1
  252. package/dist/index306.js +10 -2
  253. package/dist/index306.js.map +1 -1
  254. package/dist/index307.js +2 -71
  255. package/dist/index307.js.map +1 -1
  256. package/dist/index308.js +2 -2
  257. package/dist/index309.js +19 -2
  258. package/dist/index309.js.map +1 -1
  259. package/dist/index31.js +96 -11
  260. package/dist/index31.js.map +1 -1
  261. package/dist/index310.js +2 -81
  262. package/dist/index310.js.map +1 -1
  263. package/dist/index311.js +2 -2
  264. package/dist/index312.js +42 -2
  265. package/dist/index312.js.map +1 -1
  266. package/dist/index313.js +2 -74
  267. package/dist/index313.js.map +1 -1
  268. package/dist/index314.js +25 -67
  269. package/dist/index314.js.map +1 -1
  270. package/dist/index315.js +2 -2
  271. package/dist/index316.js +9 -17
  272. package/dist/index316.js.map +1 -1
  273. package/dist/index317.js +2 -2
  274. package/dist/index318.js +84 -32
  275. package/dist/index318.js.map +1 -1
  276. package/dist/index319.js +2 -2
  277. package/dist/index32.js +40 -48
  278. package/dist/index32.js.map +1 -1
  279. package/dist/index320.js +68 -77
  280. package/dist/index320.js.map +1 -1
  281. package/dist/index321.js +2 -2
  282. package/dist/index322.js +12 -148
  283. package/dist/index322.js.map +1 -1
  284. package/dist/index323.js +1 -1
  285. package/dist/index324.js +28 -6
  286. package/dist/index324.js.map +1 -1
  287. package/dist/index325.js +2 -2
  288. package/dist/index326.js +78 -87
  289. package/dist/index326.js.map +1 -1
  290. package/dist/index327.js +2 -2
  291. package/dist/index328.js +78 -2
  292. package/dist/index328.js.map +1 -1
  293. package/dist/index329.js +2 -237
  294. package/dist/index329.js.map +1 -1
  295. package/dist/index33.js +20 -56
  296. package/dist/index33.js.map +1 -1
  297. package/dist/index330.js +11 -6
  298. package/dist/index330.js.map +1 -1
  299. package/dist/index331.js +2 -2
  300. package/dist/index332.js +18 -59
  301. package/dist/index332.js.map +1 -1
  302. package/dist/index333.js +2 -2
  303. package/dist/index334.js +12 -5
  304. package/dist/index334.js.map +1 -1
  305. package/dist/index335.js +2 -2
  306. package/dist/index336.js +2 -15
  307. package/dist/index336.js.map +1 -1
  308. package/dist/index337.js +88 -2
  309. package/dist/index337.js.map +1 -1
  310. package/dist/index338.js +24 -2
  311. package/dist/index338.js.map +1 -1
  312. package/dist/index339.js +2 -92
  313. package/dist/index339.js.map +1 -1
  314. package/dist/index34.js +59 -35
  315. package/dist/index34.js.map +1 -1
  316. package/dist/index340.js +42 -14
  317. package/dist/index340.js.map +1 -1
  318. package/dist/index341.js +2 -2
  319. package/dist/index342.js +22 -80
  320. package/dist/index342.js.map +1 -1
  321. package/dist/index343.js +2 -2
  322. package/dist/index344.js +2 -18
  323. package/dist/index344.js.map +1 -1
  324. package/dist/index345.js +16 -2
  325. package/dist/index345.js.map +1 -1
  326. package/dist/index346.js +2 -268
  327. package/dist/index346.js.map +1 -1
  328. package/dist/index347.js +176 -2
  329. package/dist/index347.js.map +1 -1
  330. package/dist/index348.js +2 -2
  331. package/dist/index349.js +35 -39
  332. package/dist/index349.js.map +1 -1
  333. package/dist/index35.js +101 -28
  334. package/dist/index35.js.map +1 -1
  335. package/dist/index350.js +3 -3
  336. package/dist/index350.js.map +1 -1
  337. package/dist/index351.js +2 -2
  338. package/dist/index352.js +19 -26
  339. package/dist/index352.js.map +1 -1
  340. package/dist/index357.js +26 -19
  341. package/dist/index357.js.map +1 -1
  342. package/dist/index36.js +115 -33
  343. package/dist/index36.js.map +1 -1
  344. package/dist/index37.js +41 -115
  345. package/dist/index37.js.map +1 -1
  346. package/dist/index38.js +34 -246
  347. package/dist/index38.js.map +1 -1
  348. package/dist/index39.js +30 -137
  349. package/dist/index39.js.map +1 -1
  350. package/dist/index4.js +26 -84
  351. package/dist/index4.js.map +1 -1
  352. package/dist/index40.js +26 -400
  353. package/dist/index40.js.map +1 -1
  354. package/dist/index41.js +28 -77
  355. package/dist/index41.js.map +1 -1
  356. package/dist/index42.js +23 -26
  357. package/dist/index42.js.map +1 -1
  358. package/dist/index43.js +36 -33
  359. package/dist/index43.js.map +1 -1
  360. package/dist/index44.js +62 -16
  361. package/dist/index44.js.map +1 -1
  362. package/dist/index45.js +138 -21
  363. package/dist/index45.js.map +1 -1
  364. package/dist/index46.js +129 -22
  365. package/dist/index46.js.map +1 -1
  366. package/dist/index47.js +41 -19
  367. package/dist/index47.js.map +1 -1
  368. package/dist/index48.js +11 -82
  369. package/dist/index48.js.map +1 -1
  370. package/dist/index49.js +56 -279
  371. package/dist/index49.js.map +1 -1
  372. package/dist/index5.js +21 -34
  373. package/dist/index5.js.map +1 -1
  374. package/dist/index50.js +280 -33
  375. package/dist/index50.js.map +1 -1
  376. package/dist/index51.js +74 -94
  377. package/dist/index51.js.map +1 -1
  378. package/dist/index52.js +66 -41
  379. package/dist/index52.js.map +1 -1
  380. package/dist/index53.js +333 -62
  381. package/dist/index53.js.map +1 -1
  382. package/dist/index54.js +96 -256
  383. package/dist/index54.js.map +1 -1
  384. package/dist/index55.js +38 -130
  385. package/dist/index55.js.map +1 -1
  386. package/dist/index56.js +251 -50
  387. package/dist/index56.js.map +1 -1
  388. package/dist/index57.js +144 -115
  389. package/dist/index57.js.map +1 -1
  390. package/dist/index58.js +93 -183
  391. package/dist/index58.js.map +1 -1
  392. package/dist/index59.js +33 -339
  393. package/dist/index59.js.map +1 -1
  394. package/dist/index6.js +2 -2
  395. package/dist/index60.js +102 -66
  396. package/dist/index60.js.map +1 -1
  397. package/dist/index61.js +73 -179
  398. package/dist/index61.js.map +1 -1
  399. package/dist/index62.js +117 -97
  400. package/dist/index62.js.map +1 -1
  401. package/dist/index63.js +113 -263
  402. package/dist/index63.js.map +1 -1
  403. package/dist/index64.js +258 -251
  404. package/dist/index64.js.map +1 -1
  405. package/dist/index65.js +177 -79
  406. package/dist/index65.js.map +1 -1
  407. package/dist/index66.js +261 -140
  408. package/dist/index66.js.map +1 -1
  409. package/dist/index67.js +183 -100
  410. package/dist/index67.js.map +1 -1
  411. package/dist/index68.js +28 -89
  412. package/dist/index68.js.map +1 -1
  413. package/dist/index69.js +20 -161
  414. package/dist/index69.js.map +1 -1
  415. package/dist/index7.js +394 -32
  416. package/dist/index7.js.map +1 -1
  417. package/dist/index70.js +190 -53
  418. package/dist/index70.js.map +1 -1
  419. package/dist/index71.js +204 -112
  420. package/dist/index71.js.map +1 -1
  421. package/dist/index72.js +2 -2
  422. package/dist/index73.js +89 -28
  423. package/dist/index73.js.map +1 -1
  424. package/dist/index74.js +126 -63
  425. package/dist/index74.js.map +1 -1
  426. package/dist/index75.js +122 -111
  427. package/dist/index75.js.map +1 -1
  428. package/dist/index76.js +67 -64
  429. package/dist/index76.js.map +1 -1
  430. package/dist/index77.js +112 -88
  431. package/dist/index77.js.map +1 -1
  432. package/dist/index78.js +87 -16
  433. package/dist/index78.js.map +1 -1
  434. package/dist/index79.js +151 -79
  435. package/dist/index79.js.map +1 -1
  436. package/dist/index8.js +25 -127
  437. package/dist/index8.js.map +1 -1
  438. package/dist/index80.js +104 -186
  439. package/dist/index80.js.map +1 -1
  440. package/dist/index81.js +59 -20
  441. package/dist/index81.js.map +1 -1
  442. package/dist/index82.js +17 -129
  443. package/dist/index82.js.map +1 -1
  444. package/dist/index83.js +88 -217
  445. package/dist/index83.js.map +1 -1
  446. package/dist/index84.js +64 -112
  447. package/dist/index84.js.map +1 -1
  448. package/dist/index9.js +30 -45
  449. package/dist/index9.js.map +1 -1
  450. package/dist/src/components/atoms/index.d.ts +45 -16
  451. package/dist/src/components/atoms/index.d.ts.map +1 -1
  452. package/dist/src/components/molecules/index.d.ts +20 -1
  453. package/dist/src/components/molecules/index.d.ts.map +1 -1
  454. package/dist/src/components/organisms/index.d.ts +17 -1
  455. package/dist/src/components/organisms/index.d.ts.map +1 -1
  456. package/dist/src/index.d.ts +3 -82
  457. package/dist/src/index.d.ts.map +1 -1
  458. package/dist/tokens.css +353 -7
  459. package/dist/vite.config.d.ts.map +1 -1
  460. package/package.json +4 -4
package/dist/index247.js CHANGED
@@ -1,5 +1,271 @@
1
- const styles = "@layer components{:host{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}}";
1
+ import { html } from "lit";
2
+ const ICON_GITHUB = html`<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0020 4.77 5.07 5.07 0 0019.91 1S18.73.65 16 2.48a13.38 13.38 0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 005 4.77a5.44 5.44 0 00-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 009 18.13V22"/></svg>`;
3
+ const ICON_LINKEDIN = html`<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><path d="M16 8a6 6 0 016 6v7h-4v-7a2 2 0 00-2-2 2 2 0 00-2 2v7h-4v-7a6 6 0 016-6zM2 9h4v12H2z"/><circle cx="4" cy="4" r="2"/></svg>`;
4
+ const ICON_EMAIL = html`<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><polyline points="22,6 12,13 2,6"/></svg>`;
5
+ const ICON_RSS = html`<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><path d="M4 11a9 9 0 019 9"/><path d="M4 4a16 16 0 0116 16"/><circle cx="5" cy="19" r="1" fill="currentColor" stroke="none"/></svg>`;
6
+ const ICON_CHEVRON_DOWN = html`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><polyline points="6 9 12 15 18 9"/></svg>`;
7
+ const ICON_ARROW_SM = html`<svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>`;
8
+ function renderSocial(ctx) {
9
+ return html`
10
+ <footer>
11
+ <div class="ft-inner">
12
+
13
+ <!-- Brand centered -->
14
+ <div style="text-align:center;margin-bottom:var(--lib-space-xl,2rem);">
15
+ <div class="ft-brand" style="font-size:2rem;">
16
+ ${ctx.brandName} <em>${ctx.brandKanji}</em>
17
+ </div>
18
+ <span class="ft-brand-sub">${ctx.brandSub}</span>
19
+ </div>
20
+
21
+ <!-- Social grid large -->
22
+ <div class="ft-social-grid">
23
+ <a href="${ctx.githubHref}" class="ft-social-cell" aria-label="GitHub" style="color:var(--color-washi-500,#9A8878);">
24
+ ${ICON_GITHUB}
25
+ <span class="ft-social-cell-label">GitHub</span>
26
+ </a>
27
+ <a href="${ctx.linkedinHref}" class="ft-social-cell" aria-label="LinkedIn" style="color:var(--color-washi-500,#9A8878);">
28
+ ${ICON_LINKEDIN}
29
+ <span class="ft-social-cell-label">LinkedIn</span>
30
+ </a>
31
+ <a href="mailto:${ctx.email}" class="ft-social-cell accent" aria-label="Email" style="color:var(--color-kaki-400,#D97234);">
32
+ ${ICON_EMAIL}
33
+ <span class="ft-social-cell-label">Email</span>
34
+ </a>
35
+ <a href="${ctx.rssHref}" class="ft-social-cell" aria-label="RSS" style="color:var(--color-washi-500,#9A8878);">
36
+ ${ICON_RSS}
37
+ <span class="ft-social-cell-label">RSS</span>
38
+ </a>
39
+ </div>
40
+
41
+ <!-- Nav + copyright -->
42
+ <div class="ft-nav-row">
43
+ <ul class="ft-nav-links">
44
+ ${(ctx.navLinks ?? []).map((link) => html`
45
+ <li>
46
+ <a href="${link.href}" class="ft-link-mono">${link.label}</a>
47
+ </li>
48
+ `)}
49
+ </ul>
50
+ <p class="ft-copyright">© ${ctx.year} · ${ctx.brandName} DS · ${ctx.location}</p>
51
+ </div>
52
+
53
+ </div>
54
+ </footer>
55
+ `;
56
+ }
57
+ function renderAccordion(ctx) {
58
+ return html`
59
+ <footer>
60
+ <div class="ft-inner" style="max-width:480px;">
61
+
62
+ <!-- Brand + social row -->
63
+ <div class="ft-acc-brand-row">
64
+ <div class="ft-brand-dark">
65
+ ${ctx.brandName} <em>${ctx.brandKanji}</em>
66
+ </div>
67
+ <div class="ft-social-mini">
68
+ <a href="${ctx.githubHref}" class="ft-social-mini-btn" aria-label="GitHub">
69
+ ${ICON_GITHUB}
70
+ </a>
71
+ <a href="${ctx.linkedinHref}" class="ft-social-mini-btn" aria-label="LinkedIn">
72
+ ${ICON_LINKEDIN}
73
+ </a>
74
+ <a href="mailto:${ctx.email}" class="ft-social-mini-btn" aria-label="Email">
75
+ ${ICON_EMAIL}
76
+ </a>
77
+ </div>
78
+ </div>
79
+
80
+ <!-- Accordion columns -->
81
+ ${(ctx.columns ?? []).map((col) => html`
82
+ <div class="ft-acc-item">
83
+ <button
84
+ class="ft-acc-trigger"
85
+ @click=${(e) => ctx._toggleAccordion(e.currentTarget)}
86
+ aria-expanded="false"
87
+ >
88
+ ${col.heading}
89
+ <span class="ft-acc-arrow">${ICON_CHEVRON_DOWN}</span>
90
+ </button>
91
+ <div class="ft-acc-body">
92
+ <div class="ft-acc-body-inner">
93
+ ${(col.links ?? []).map((link) => html`<a href="${link.href}">${link.label}</a>`)}
94
+ </div>
95
+ </div>
96
+ </div>
97
+ `)}
98
+
99
+ <!-- Bottom bar -->
100
+ <div class="ft-bottom" style="border-top-color:rgba(255,255,255,.06);">
101
+ <p class="ft-copyright">© ${ctx.year} · ${ctx.brandName} · MIT</p>
102
+ <div style="display:flex;gap:var(--lib-space-md,1rem);">
103
+ ${(ctx.legalLinks ?? []).map((link) => html`
104
+ <a href="${link.href}" class="ft-link-mono">${link.label}</a>
105
+ `)}
106
+ </div>
107
+ </div>
108
+
109
+ </div>
110
+ </footer>
111
+ `;
112
+ }
113
+ function renderKintsugi(ctx) {
114
+ return html`
115
+ <footer style="position:relative;">
116
+
117
+ <!-- Gold seam -->
118
+ <div class="ft-kintsugi-seam" aria-hidden="true"></div>
119
+
120
+ <!-- Ring ornament -->
121
+ <div class="ft-kintsugi-ring" aria-hidden="true">
122
+ <div class="ft-kintsugi-ring-track"></div>
123
+ <span class="ft-kintsugi-symbol">✦</span>
124
+ </div>
125
+
126
+ <div class="ft-inner" style="padding-top:var(--lib-space-xl,2rem);">
127
+
128
+ <!-- Brand centered -->
129
+ <div style="text-align:center;margin-bottom:var(--lib-space-lg,1.5rem);">
130
+ <div class="ft-brand-dark" style="font-size:1.75rem;">
131
+ ${ctx.brandName} <em>${ctx.brandKanji}</em>
132
+ </div>
133
+ <span style="font-family:var(--lib-font-mono,'DM Mono',monospace);font-size:.5rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(250,247,244,.18);display:block;margin-top:.375rem;">
134
+ ${ctx.brandSub}
135
+ </span>
136
+ </div>
137
+
138
+ <!-- Nav columns -->
139
+ <div class="ft-kintsugi-grid">
140
+ ${(ctx.columns ?? []).map((col) => html`
141
+ <div>
142
+ <div class="ft-kintsugi-col-head">${col.heading}</div>
143
+ <ul class="ft-kintsugi-col-links">
144
+ ${(col.links ?? []).map((link) => html`
145
+ <li>
146
+ <a href="${link.href}">
147
+ <span class="ft-kintsugi-arrow">›</span>
148
+ ${link.label}
149
+ </a>
150
+ </li>
151
+ `)}
152
+ </ul>
153
+ </div>
154
+ `)}
155
+ </div>
156
+
157
+ <!-- Bottom bar -->
158
+ <div class="ft-bottom" style="border-top-color:rgba(255,255,255,.06);">
159
+ <p class="ft-copyright">// © ${ctx.year} · ${ctx.brandName.toUpperCase()} · MIT LICENSE</p>
160
+ <div style="display:flex;gap:var(--lib-space-md,1rem);">
161
+ ${(ctx.legalLinks ?? []).map((link) => html`
162
+ <a href="${link.href}" class="ft-link-mono">${link.label}</a>
163
+ `)}
164
+ </div>
165
+ </div>
166
+
167
+ </div>
168
+ </footer>
169
+ `;
170
+ }
171
+ function renderGlitch(ctx) {
172
+ return html`
173
+ <footer style="position:relative;overflow:hidden;">
174
+
175
+ <!-- Texture layers -->
176
+ <div class="ft-glitch-scanlines" aria-hidden="true"></div>
177
+ <div class="ft-glitch-noise" aria-hidden="true"></div>
178
+
179
+ <div class="ft-inner">
180
+
181
+ <div class="ft-glitch-grid">
182
+
183
+ <!-- Col 1: brand + status -->
184
+ <div>
185
+ <!-- Status indicators -->
186
+ <div style="margin-bottom:var(--lib-space-md,1rem);">
187
+ <div class="ft-status-row">
188
+ <span class="ft-status-dot online"></span>
189
+ <span class="ft-status-text">System · online</span>
190
+ </div>
191
+ <div class="ft-status-row">
192
+ <span class="ft-status-dot pending"></span>
193
+ <span class="ft-status-text">Build · pending deploy</span>
194
+ </div>
195
+ </div>
196
+
197
+ <h2 class="ft-glitch-head">
198
+ ${ctx.brandName}<br>
199
+ <em>${ctx.brandKanji}</em><span class="ft-glitch-cursor"></span>
200
+ </h2>
201
+
202
+ <p class="ft-glitch-sub">
203
+ Design System · ${ctx.location}<br>
204
+ v${ctx.version} · ${ctx.year}
205
+ </p>
206
+ </div>
207
+
208
+ <!-- Col 2: modules -->
209
+ <div>
210
+ <div class="ft-glitch-modules-head">// modules</div>
211
+ <div class="ft-glitch-modules-links">
212
+ ${(ctx.navLinks ?? []).map((link) => html`
213
+ <a href="${link.href}">
214
+ <span style="color:var(--color-kaki-400,#D97234);opacity:.6;">${ICON_ARROW_SM}</span>
215
+ ${link.label}
216
+ </a>
217
+ `)}
218
+ </div>
219
+ </div>
220
+
221
+ <!-- Col 3: runtime -->
222
+ <div>
223
+ <div class="ft-glitch-modules-head">// runtime</div>
224
+ <div class="ft-glitch-runtime">
225
+ ${(ctx.runtimeLines ?? []).map((line) => html`
226
+ <div>
227
+ <span class="key">${line.key.padEnd(5, " ")}</span>
228
+ ${line.value.includes("0") && line.key === "deps" ? html`<span class="celadon">${line.value}</span>` : line.value}
229
+ </div>
230
+ `)}
231
+ </div>
232
+ </div>
233
+
234
+ </div>
235
+
236
+ <!-- Bottom mono bar -->
237
+ <div class="ft-bottom" style="border-top-color:rgba(255,255,255,.06);">
238
+ <p class="ft-copyright">// © ${ctx.year} · ${ctx.brandName.toUpperCase()} · MIT LICENSE · node ${ctx.nodeVersion}</p>
239
+ <div style="display:flex;gap:var(--lib-space-md,1rem);">
240
+ ${(ctx.legalLinks ?? []).map((link) => html`
241
+ <a href="${link.href}" class="ft-link-mono">${link.label}</a>
242
+ `)}
243
+ </div>
244
+ </div>
245
+
246
+ </div>
247
+ </footer>
248
+ `;
249
+ }
250
+ function renderFooter(ctx) {
251
+ switch (ctx.variant) {
252
+ case "social":
253
+ return renderSocial(ctx);
254
+ case "accordion":
255
+ return renderAccordion(ctx);
256
+ case "kintsugi":
257
+ return renderKintsugi(ctx);
258
+ case "glitch":
259
+ return renderGlitch(ctx);
260
+ default:
261
+ return renderSocial(ctx);
262
+ }
263
+ }
2
264
  export {
3
- styles as default
265
+ renderAccordion,
266
+ renderFooter,
267
+ renderGlitch,
268
+ renderKintsugi,
269
+ renderSocial
4
270
  };
5
271
  //# sourceMappingURL=index247.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index247.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index247.js","sources":["../src/components/organisms/footer/lib-footer.html.ts"],"sourcesContent":["import { html, type TemplateResult } from 'lit';\nimport type { LibFooter } from './lib-footer.component';\n\n/* ── SVG helpers inline ── */\nconst ICON_GITHUB = html`<svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\"><path d=\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0020 4.77 5.07 5.07 0 0019.91 1S18.73.65 16 2.48a13.38 13.38 0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 005 4.77a5.44 5.44 0 00-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 009 18.13V22\"/></svg>`;\nconst ICON_LINKEDIN = html`<svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\"><path d=\"M16 8a6 6 0 016 6v7h-4v-7a2 2 0 00-2-2 2 2 0 00-2 2v7h-4v-7a6 6 0 016-6zM2 9h4v12H2z\"/><circle cx=\"4\" cy=\"4\" r=\"2\"/></svg>`;\nconst ICON_EMAIL = html`<svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"/><polyline points=\"22,6 12,13 2,6\"/></svg>`;\nconst ICON_RSS = html`<svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\"><path d=\"M4 11a9 9 0 019 9\"/><path d=\"M4 4a16 16 0 0116 16\"/><circle cx=\"5\" cy=\"19\" r=\"1\" fill=\"currentColor\" stroke=\"none\"/></svg>`;\nconst ICON_CHEVRON_DOWN = html`<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\"><polyline points=\"6 9 12 15 18 9\"/></svg>`;\nconst ICON_ARROW_SM = html`<svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>`;\n\n/* ────────────────────────────────────────────────────────────\n 01 · SOCIAL PROMINENT\n ──────────────────────────────────────────────────────────── */\nexport function renderSocial(ctx: LibFooter): TemplateResult {\n return html`\n <footer>\n <div class=\"ft-inner\">\n\n <!-- Brand centered -->\n <div style=\"text-align:center;margin-bottom:var(--lib-space-xl,2rem);\">\n <div class=\"ft-brand\" style=\"font-size:2rem;\">\n ${ctx.brandName} <em>${ctx.brandKanji}</em>\n </div>\n <span class=\"ft-brand-sub\">${ctx.brandSub}</span>\n </div>\n\n <!-- Social grid large -->\n <div class=\"ft-social-grid\">\n <a href=\"${ctx.githubHref}\" class=\"ft-social-cell\" aria-label=\"GitHub\" style=\"color:var(--color-washi-500,#9A8878);\">\n ${ICON_GITHUB}\n <span class=\"ft-social-cell-label\">GitHub</span>\n </a>\n <a href=\"${ctx.linkedinHref}\" class=\"ft-social-cell\" aria-label=\"LinkedIn\" style=\"color:var(--color-washi-500,#9A8878);\">\n ${ICON_LINKEDIN}\n <span class=\"ft-social-cell-label\">LinkedIn</span>\n </a>\n <a href=\"mailto:${ctx.email}\" class=\"ft-social-cell accent\" aria-label=\"Email\" style=\"color:var(--color-kaki-400,#D97234);\">\n ${ICON_EMAIL}\n <span class=\"ft-social-cell-label\">Email</span>\n </a>\n <a href=\"${ctx.rssHref}\" class=\"ft-social-cell\" aria-label=\"RSS\" style=\"color:var(--color-washi-500,#9A8878);\">\n ${ICON_RSS}\n <span class=\"ft-social-cell-label\">RSS</span>\n </a>\n </div>\n\n <!-- Nav + copyright -->\n <div class=\"ft-nav-row\">\n <ul class=\"ft-nav-links\">\n ${(ctx.navLinks ?? []).map(link => html`\n <li>\n <a href=\"${link.href}\" class=\"ft-link-mono\">${link.label}</a>\n </li>\n `)}\n </ul>\n <p class=\"ft-copyright\">© ${ctx.year} · ${ctx.brandName} DS · ${ctx.location}</p>\n </div>\n\n </div>\n </footer>\n `;\n}\n\n/* ────────────────────────────────────────────────────────────\n 02 · ACCORDION MOBILE (dark)\n ──────────────────────────────────────────────────────────── */\nexport function renderAccordion(ctx: LibFooter): TemplateResult {\n return html`\n <footer>\n <div class=\"ft-inner\" style=\"max-width:480px;\">\n\n <!-- Brand + social row -->\n <div class=\"ft-acc-brand-row\">\n <div class=\"ft-brand-dark\">\n ${ctx.brandName} <em>${ctx.brandKanji}</em>\n </div>\n <div class=\"ft-social-mini\">\n <a href=\"${ctx.githubHref}\" class=\"ft-social-mini-btn\" aria-label=\"GitHub\">\n ${ICON_GITHUB}\n </a>\n <a href=\"${ctx.linkedinHref}\" class=\"ft-social-mini-btn\" aria-label=\"LinkedIn\">\n ${ICON_LINKEDIN}\n </a>\n <a href=\"mailto:${ctx.email}\" class=\"ft-social-mini-btn\" aria-label=\"Email\">\n ${ICON_EMAIL}\n </a>\n </div>\n </div>\n\n <!-- Accordion columns -->\n ${(ctx.columns ?? []).map(col => html`\n <div class=\"ft-acc-item\">\n <button\n class=\"ft-acc-trigger\"\n @click=${(e: Event):void => ctx._toggleAccordion(e.currentTarget as HTMLElement)}\n aria-expanded=\"false\"\n >\n ${col.heading}\n <span class=\"ft-acc-arrow\">${ICON_CHEVRON_DOWN}</span>\n </button>\n <div class=\"ft-acc-body\">\n <div class=\"ft-acc-body-inner\">\n ${(col.links ?? []).map(link => html`<a href=\"${link.href}\">${link.label}</a>`)}\n </div>\n </div>\n </div>\n `)}\n\n <!-- Bottom bar -->\n <div class=\"ft-bottom\" style=\"border-top-color:rgba(255,255,255,.06);\">\n <p class=\"ft-copyright\">© ${ctx.year} · ${ctx.brandName} · MIT</p>\n <div style=\"display:flex;gap:var(--lib-space-md,1rem);\">\n ${(ctx.legalLinks ?? []).map(link => html`\n <a href=\"${link.href}\" class=\"ft-link-mono\">${link.label}</a>\n `)}\n </div>\n </div>\n\n </div>\n </footer>\n `;\n}\n\n/* ────────────────────────────────────────────────────────────\n 03 · KINTSUGI (dark + gold seam)\n ──────────────────────────────────────────────────────────── */\nexport function renderKintsugi(ctx: LibFooter): TemplateResult {\n return html`\n <footer style=\"position:relative;\">\n\n <!-- Gold seam -->\n <div class=\"ft-kintsugi-seam\" aria-hidden=\"true\"></div>\n\n <!-- Ring ornament -->\n <div class=\"ft-kintsugi-ring\" aria-hidden=\"true\">\n <div class=\"ft-kintsugi-ring-track\"></div>\n <span class=\"ft-kintsugi-symbol\">✦</span>\n </div>\n\n <div class=\"ft-inner\" style=\"padding-top:var(--lib-space-xl,2rem);\">\n\n <!-- Brand centered -->\n <div style=\"text-align:center;margin-bottom:var(--lib-space-lg,1.5rem);\">\n <div class=\"ft-brand-dark\" style=\"font-size:1.75rem;\">\n ${ctx.brandName} <em>${ctx.brandKanji}</em>\n </div>\n <span style=\"font-family:var(--lib-font-mono,'DM Mono',monospace);font-size:.5rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(250,247,244,.18);display:block;margin-top:.375rem;\">\n ${ctx.brandSub}\n </span>\n </div>\n\n <!-- Nav columns -->\n <div class=\"ft-kintsugi-grid\">\n ${(ctx.columns ?? []).map(col => html`\n <div>\n <div class=\"ft-kintsugi-col-head\">${col.heading}</div>\n <ul class=\"ft-kintsugi-col-links\">\n ${(col.links ?? []).map(link => html`\n <li>\n <a href=\"${link.href}\">\n <span class=\"ft-kintsugi-arrow\">›</span>\n ${link.label}\n </a>\n </li>\n `)}\n </ul>\n </div>\n `)}\n </div>\n\n <!-- Bottom bar -->\n <div class=\"ft-bottom\" style=\"border-top-color:rgba(255,255,255,.06);\">\n <p class=\"ft-copyright\">// © ${ctx.year} · ${ctx.brandName.toUpperCase()} · MIT LICENSE</p>\n <div style=\"display:flex;gap:var(--lib-space-md,1rem);\">\n ${(ctx.legalLinks ?? []).map(link => html`\n <a href=\"${link.href}\" class=\"ft-link-mono\">${link.label}</a>\n `)}\n </div>\n </div>\n\n </div>\n </footer>\n `;\n}\n\n/* ────────────────────────────────────────────────────────────\n 04 · GLITCH TERMINAL (dark + scanlines + noise)\n ──────────────────────────────────────────────────────────── */\nexport function renderGlitch(ctx: LibFooter): TemplateResult {\n return html`\n <footer style=\"position:relative;overflow:hidden;\">\n\n <!-- Texture layers -->\n <div class=\"ft-glitch-scanlines\" aria-hidden=\"true\"></div>\n <div class=\"ft-glitch-noise\" aria-hidden=\"true\"></div>\n\n <div class=\"ft-inner\">\n\n <div class=\"ft-glitch-grid\">\n\n <!-- Col 1: brand + status -->\n <div>\n <!-- Status indicators -->\n <div style=\"margin-bottom:var(--lib-space-md,1rem);\">\n <div class=\"ft-status-row\">\n <span class=\"ft-status-dot online\"></span>\n <span class=\"ft-status-text\">System · online</span>\n </div>\n <div class=\"ft-status-row\">\n <span class=\"ft-status-dot pending\"></span>\n <span class=\"ft-status-text\">Build · pending deploy</span>\n </div>\n </div>\n\n <h2 class=\"ft-glitch-head\">\n ${ctx.brandName}<br>\n <em>${ctx.brandKanji}</em><span class=\"ft-glitch-cursor\"></span>\n </h2>\n\n <p class=\"ft-glitch-sub\">\n Design System · ${ctx.location}<br>\n v${ctx.version} · ${ctx.year}\n </p>\n </div>\n\n <!-- Col 2: modules -->\n <div>\n <div class=\"ft-glitch-modules-head\">// modules</div>\n <div class=\"ft-glitch-modules-links\">\n ${(ctx.navLinks ?? []).map(link => html`\n <a href=\"${link.href}\">\n <span style=\"color:var(--color-kaki-400,#D97234);opacity:.6;\">${ICON_ARROW_SM}</span>\n ${link.label}\n </a>\n `)}\n </div>\n </div>\n\n <!-- Col 3: runtime -->\n <div>\n <div class=\"ft-glitch-modules-head\">// runtime</div>\n <div class=\"ft-glitch-runtime\">\n ${(ctx.runtimeLines ?? []).map(line => html`\n <div>\n <span class=\"key\">${line.key.padEnd(5, '\\u00A0')}</span>\n ${line.value.includes('0') && line.key === 'deps'\n ? html`<span class=\"celadon\">${line.value}</span>`\n : line.value\n }\n </div>\n `)}\n </div>\n </div>\n\n </div>\n\n <!-- Bottom mono bar -->\n <div class=\"ft-bottom\" style=\"border-top-color:rgba(255,255,255,.06);\">\n <p class=\"ft-copyright\">// © ${ctx.year} · ${ctx.brandName.toUpperCase()} · MIT LICENSE · node ${ctx.nodeVersion}</p>\n <div style=\"display:flex;gap:var(--lib-space-md,1rem);\">\n ${(ctx.legalLinks ?? []).map(link => html`\n <a href=\"${link.href}\" class=\"ft-link-mono\">${link.label}</a>\n `)}\n </div>\n </div>\n\n </div>\n </footer>\n `;\n}\n\n/* ────────────────────────────────────────────────────────────\n Dispatcher — decide qué template renderizar\n ──────────────────────────────────────────────────────────── */\nexport function renderFooter(ctx: LibFooter): TemplateResult {\n switch (ctx.variant) {\n case 'social': return renderSocial(ctx);\n case 'accordion': return renderAccordion(ctx);\n case 'kintsugi': return renderKintsugi(ctx);\n case 'glitch': return renderGlitch(ctx);\n default: return renderSocial(ctx);\n }\n}"],"names":[],"mappings":"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"}
package/dist/index248.js CHANGED
@@ -1,39 +1,5 @@
1
- import { html, nothing } from "lit";
2
- const checkSvg = html`
3
- <svg class="checkbox__check" viewBox="0 0 10 10" aria-hidden="true">
4
- <polyline points="1.5,5 4,7.5 8.5,2"/>
5
- </svg>
6
- `;
7
- const dashEl = html`<span class="checkbox__dash" aria-hidden="true"></span>`;
8
- function checkboxTemplate(props) {
9
- return html`
10
- <label class="checkbox">
11
-
12
- <input
13
- class="checkbox__input"
14
- type="checkbox"
15
- .checked="${props.checked}"
16
- .indeterminate="${props.indeterminate}"
17
- ?disabled="${props.disabled}"
18
- value="${props.value}"
19
- @change="${props.onChange}"
20
- />
21
-
22
- <span class="checkbox__box">
23
- ${props.indeterminate ? dashEl : checkSvg}
24
- </span>
25
-
26
- ${props.label || props.sublabel ? html`
27
- <span class="checkbox__label">
28
- ${props.label ? html`<span class="checkbox__label-text">${props.label}</span>` : nothing}
29
- ${props.sublabel ? html`<span class="checkbox__label-sub">${props.sublabel}</span>` : nothing}
30
- </span>
31
- ` : html`<slot></slot>`}
32
-
33
- </label>
34
- `;
35
- }
1
+ const componentCss = `@layer tokens,reset,components;@layer tokens{:host{display:block;--ft-pad-x: var(--lib-space-xl, 2rem);--ft-pad-y: var(--lib-space-xl, 2rem);--ft-max-width: 1200px;--ft-bg: var(--color-washi-50, #FAF7F4);--ft-border: var(--color-washi-200, #E5DDD3);--ft-text: var(--color-washi-900, #221C16);--ft-text-muted: var(--color-washi-400, #B8A99A);--ft-text-faint: var(--color-washi-300, #D3C8BC);--ft-accent: var(--color-kaki-500, #B85A1E);--ft-accent-hover: var(--color-kaki-600, #8C4115);--ft-link: var(--color-washi-400, #B8A99A);--ft-link-hover: var(--color-washi-900, #221C16);--ft-gold-start: rgb(184, 90, 30, .4);--ft-gold-mid: #F5D08A;--ft-gold-end: rgb(184, 90, 30, .4);--ft-font-display: var(--lib-font-display, "Cormorant Garamond", Georgia, serif);--ft-font-mono: var(--lib-font-mono, "DM Mono", "Courier New", monospace);--ft-dur-base: .22s;--ft-dur-slow: .38s;--ft-ease-out: cubic-bezier(0, 0, .2, 1)}:host([variant="accordion"]),:host([variant="kintsugi"]),:host([variant="glitch"]){--ft-bg: var(--color-washi-950, #120E0A);--ft-border: rgb(255, 255, 255, .07);--ft-text: rgb(250, 247, 244, .85);--ft-text-muted: rgb(250, 247, 244, .35);--ft-text-faint: rgb(250, 247, 244, .12);--ft-link: rgb(250, 247, 244, .22);--ft-link-hover: rgb(250, 247, 244, .85)}}@layer reset{*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}a{text-decoration:none;color:inherit}ul,ol{list-style:none}button{cursor:pointer;background:none;border:none;font-family:inherit}}@layer components{footer{background:var(--ft-bg);border-top:1px solid var(--ft-border)}.ft-inner{max-width:var(--ft-max-width);margin:0 auto;padding:var(--ft-pad-y) var(--ft-pad-x)}.ft-label-mono{font-family:var(--ft-font-mono);font-size:.5rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ft-text-muted)}.ft-link-mono{font-family:var(--ft-font-mono);font-size:.5625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ft-link);text-decoration:none;transition:color var(--ft-dur-base) var(--ft-ease-out);display:inline-block}.ft-link-mono:hover{color:var(--ft-link-hover)}.ft-brand{font-family:var(--ft-font-display);font-weight:300;letter-spacing:.15em;color:var(--color-washi-800, #3D332A);line-height:1}.ft-brand em{font-style:italic;color:var(--ft-accent)}.ft-brand-sub{font-family:var(--ft-font-mono);font-size:.5rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ft-text-muted);margin-top:.375rem;display:block}.ft-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--lib-space-md, 1rem);border-top:1px solid var(--ft-border);padding-top:var(--lib-space-lg, 1.5rem);margin-top:var(--lib-space-lg, 1.5rem)}.ft-copyright{font-family:var(--ft-font-mono);font-size:.5625rem;letter-spacing:.12em;color:var(--ft-text-faint)}:host([variant="social"]) footer{background:#fff}.ft-social-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--color-washi-200, #E5DDD3);max-width:640px;margin:0 auto var(--lib-space-xl, 2rem)}.ft-social-cell{background:#fff;padding:var(--lib-space-xl, 2rem) var(--lib-space-lg, 1.5rem);display:flex;flex-direction:column;align-items:center;gap:var(--lib-space-md, 1rem);transition:background var(--ft-dur-base);text-decoration:none}.ft-social-cell:hover{background:var(--color-washi-50, #FAF7F4)}.ft-social-cell.accent:hover{background:var(--color-kaki-50, #FDF3EC)}.ft-social-cell svg{width:22px;height:22px}.ft-social-cell-label{font-family:var(--ft-font-mono);font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ft-text-muted)}.ft-social-cell.accent .ft-social-cell-label{color:var(--ft-accent)}.ft-nav-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--lib-space-md, 1rem);border-top:1px solid var(--color-washi-100, #F2EDE6);padding-top:var(--lib-space-lg, 1.5rem)}.ft-nav-links{display:flex;gap:var(--lib-space-lg, 1.5rem)}.ft-acc-brand-row{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--lib-space-lg, 1.5rem);border-bottom:1px solid var(--ft-border);margin-bottom:var(--lib-space-md, 1rem)}.ft-brand-dark{font-family:var(--ft-font-display);font-weight:300;font-size:1.25rem;letter-spacing:.15em;color:#faf7f48c}.ft-brand-dark em{font-style:italic;color:var(--ft-accent)}.ft-social-mini{display:flex;gap:var(--lib-space-sm, .5rem)}.ft-social-mini-btn{width:32px;height:32px;border:1px solid rgb(255,255,255,.1);display:flex;align-items:center;justify-content:center;text-decoration:none;transition:border-color var(--ft-dur-base);color:#faf7f44d}.ft-social-mini-btn:hover{border-color:#ffffff4d;color:#faf7f4cc}.ft-social-mini-btn svg{width:13px;height:13px;stroke:currentcolor;fill:none;stroke-width:1.6;stroke-linecap:round}.ft-acc-item{border-bottom:1px solid rgb(255,255,255,.06)}.ft-acc-trigger{width:100%;background:none;border:none;display:flex;align-items:center;justify-content:space-between;padding:var(--lib-space-md, 1rem) 0;cursor:pointer;font-family:var(--ft-font-mono);font-size:.5rem;letter-spacing:.18em;text-transform:uppercase;color:#faf7f459;transition:color var(--ft-dur-base)}.ft-acc-trigger:hover{color:#faf7f4b3}.ft-acc-arrow{width:14px;height:14px;transition:transform var(--ft-dur-base) var(--ft-ease-out);flex-shrink:0}.ft-acc-arrow svg{width:14px;height:14px;stroke:currentcolor;fill:none;stroke-width:1.4;stroke-linecap:round}.ft-acc-body{overflow:hidden;max-height:0;transition:max-height var(--ft-dur-slow) var(--ft-ease-out)}.ft-acc-body-inner{display:flex;flex-direction:column;gap:var(--lib-space-sm, .5rem);padding-bottom:var(--lib-space-md, 1rem)}.ft-acc-body-inner a{font-family:var(--ft-font-mono);font-size:.5625rem;letter-spacing:.1em;color:#faf7f438;text-decoration:none;transition:color var(--ft-dur-base)}.ft-acc-body-inner a:hover{color:var(--ft-accent)}.ft-kintsugi-seam{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--ft-gold-start) 15%,var(--ft-accent) 35%,var(--ft-gold-mid) 50%,var(--ft-accent) 65%,var(--ft-gold-end) 85%,transparent);background-size:200% 100%;animation:kintsugi-seam 5s linear infinite}.ft-kintsugi-ring{position:absolute;top:-28px;left:50%;transform:translate(-50%);width:56px;height:56px;display:flex;align-items:center;justify-content:center}.ft-kintsugi-ring-track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1px solid transparent;border-top-color:#f5d08a99;border-right-color:#b85a1e4d;animation:kintsugi-ring 8s linear infinite}.ft-kintsugi-symbol{font-family:var(--ft-font-display);font-size:1.25rem;color:#faf7f426}.ft-kintsugi-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:var(--lib-space-xl, 2rem);padding-top:var(--lib-space-xl, 2rem)}.ft-kintsugi-col-head{font-family:var(--ft-font-mono);font-size:.5rem;letter-spacing:.18em;text-transform:uppercase;color:#faf7f426;margin-bottom:var(--lib-space-md, 1rem)}.ft-kintsugi-col-links{display:flex;flex-direction:column;gap:var(--lib-space-sm, .5rem)}.ft-kintsugi-col-links a{font-family:var(--ft-font-mono);font-size:.5625rem;letter-spacing:.1em;color:#faf7f438;text-decoration:none;display:flex;align-items:center;gap:var(--lib-space-xs, .25rem);transition:color var(--ft-dur-base)}.ft-kintsugi-col-links a:hover{color:var(--color-kaki-400, #D97234)}.ft-kintsugi-arrow{color:var(--ft-accent);opacity:.6;flex-shrink:0}:host([variant="glitch"]) footer{position:relative;overflow:hidden;animation:glitch-border 7s ease-in-out infinite}.ft-glitch-scanlines{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgb(250,247,244,.015) 3px,rgb(250,247,244,.015) 4px);pointer-events:none;animation:scanshift 7s ease-in-out infinite}.ft-glitch-noise{position:absolute;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.02;pointer-events:none}.ft-glitch-cursor{display:inline-block;width:1px;height:.85em;background:var(--ft-accent);vertical-align:middle;margin-left:2px;animation:cursor-blink 1s step-end infinite;opacity:.8}.ft-glitch-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--lib-space-xl, 2rem);padding-top:var(--lib-space-lg, 1.5rem)}.ft-glitch-head{font-family:var(--ft-font-display);font-size:1.5rem;font-weight:300;color:#faf7f466;line-height:1.2;letter-spacing:-.02em;margin-bottom:var(--lib-space-md, 1rem)}.ft-glitch-head em{font-style:italic;color:var(--ft-accent)}.ft-glitch-sub{font-family:var(--ft-font-mono);font-size:.5rem;letter-spacing:.12em;color:#faf7f42e;line-height:2}.ft-glitch-modules-head{font-family:var(--ft-font-mono);font-size:.5rem;letter-spacing:.18em;text-transform:uppercase;color:#faf7f426;margin-bottom:var(--lib-space-md, 1rem)}.ft-glitch-modules-links{display:flex;flex-direction:column;gap:var(--lib-space-sm, .5rem)}.ft-glitch-modules-links a{font-family:var(--ft-font-mono);font-size:.5625rem;letter-spacing:.1em;color:#faf7f438;text-decoration:none;display:flex;align-items:center;gap:var(--lib-space-xs, .25rem);transition:color var(--ft-dur-base)}.ft-glitch-modules-links a:hover{color:var(--color-kaki-400, #D97234)}.ft-glitch-runtime{font-family:var(--ft-font-mono);font-size:.5rem;letter-spacing:.08em;color:#faf7f42e;line-height:2.2}.ft-glitch-runtime span.key{color:#faf7f41a}.ft-glitch-runtime span.celadon{color:var(--color-celadon-400, #4E9482)}.ft-status-row{display:flex;align-items:center;gap:var(--lib-space-sm, .5rem);margin-bottom:var(--lib-space-sm, .5rem)}.ft-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.ft-status-dot.online{background:var(--color-celadon-400, #4E9482);animation:status-pulse 1.4s ease-in-out infinite}.ft-status-dot.pending{background:var(--color-kaki-400, #D97234);animation:status-pulse 1.4s ease-in-out infinite 1s}.ft-status-text{font-family:var(--ft-font-mono);font-size:.5rem;letter-spacing:.12em;color:#faf7f433}@keyframes kintsugi-seam{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes kintsugi-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes glitch-border{0%,88%,to{box-shadow:none;opacity:1}89%{box-shadow:-2px 0 #d9723466,2px 0 #4e94824d;transform:translate(-2px)}90%{box-shadow:2px 0 #d972344d,-2px 0 #4e948233;transform:translate(2px)}91%{box-shadow:none;transform:none}}@keyframes scan-shift{0%,88%,to{opacity:1;transform:none}89%{transform:translateY(-3px);opacity:.7}90%{transform:translateY(2px);opacity:.9}91%{transform:none;opacity:1}}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes cursor-blink{0%,to{opacity:.8}50%{opacity:0}}@media(max-width:768px){.ft-kintsugi-grid{grid-template-columns:1fr 1fr}.ft-glitch-grid{grid-template-columns:1fr}.ft-social-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.ft-kintsugi-grid,.ft-social-grid{grid-template-columns:1fr}}}`;
36
2
  export {
37
- checkboxTemplate
3
+ componentCss as default
38
4
  };
39
5
  //# sourceMappingURL=index248.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index248.js","sources":["../src/components/atoms/checkbox/lib-checkbox.html.ts"],"sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\n\nexport type LibCheckboxSize = 'sm' | 'md' | 'lg';\nexport type LibCheckboxVariant = 'default' | 'kaki' | 'error';\n\nexport interface CheckboxTemplateProps {\n checked: boolean;\n disabled: boolean;\n indeterminate: boolean;\n label: string;\n sublabel: string;\n value: string;\n size: LibCheckboxSize;\n variant: LibCheckboxVariant;\n onChange: (e: Event) => void;\n}\n\n/** SVG check — polyline del styleguide, animado con ease-bounce */\nconst checkSvg = html`\n <svg class=\"checkbox__check\" viewBox=\"0 0 10 10\" aria-hidden=\"true\">\n <polyline points=\"1.5,5 4,7.5 8.5,2\"/>\n </svg>\n`;\n\n/** SVG dash — estado indeterminate */\nconst dashEl = html`<span class=\"checkbox__dash\" aria-hidden=\"true\"></span>`;\n\n/**\n * Plantilla para lib-checkbox.\n *\n * Estructura:\n * label.checkbox\n * input[type=checkbox] (capa de interaccion, invisible)\n * span.checkbox__box (visual: box + check/dash)\n * span.checkbox__label (label-text + sublabel opcional)\n */\nexport function checkboxTemplate(props: CheckboxTemplateProps): TemplateResult {\n return html`\n <label class=\"checkbox\">\n\n <input\n class=\"checkbox__input\"\n type=\"checkbox\"\n .checked=\"${props.checked}\"\n .indeterminate=\"${props.indeterminate}\"\n ?disabled=\"${props.disabled}\"\n value=\"${props.value}\"\n @change=\"${props.onChange}\"\n />\n\n <span class=\"checkbox__box\">\n ${props.indeterminate ? dashEl : checkSvg}\n </span>\n\n ${props.label || props.sublabel\n ? html`\n <span class=\"checkbox__label\">\n ${props.label\n ? html`<span class=\"checkbox__label-text\">${props.label}</span>`\n : nothing}\n ${props.sublabel\n ? html`<span class=\"checkbox__label-sub\">${props.sublabel}</span>`\n : nothing}\n </span>\n `\n : html`<slot></slot>`}\n\n </label>\n `;\n}"],"names":[],"mappings":";AAkBA,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAOjB,MAAM,SAAS;AAWR,SAAS,iBAAiB,OAA8C;AAC7E,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMW,MAAM,OAAO;AAAA,0BACP,MAAM,aAAa;AAAA,qBACxB,MAAM,QAAQ;AAAA,iBAClB,MAAM,KAAK;AAAA,mBACT,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA,UAIvB,MAAM,gBAAgB,SAAS,QAAQ;AAAA;AAAA;AAAA,QAGzC,MAAM,SAAS,MAAM,WACnB;AAAA;AAAA,gBAEM,MAAM,QACJ,0CAA0C,MAAM,KAAK,YACrD,OAAO;AAAA,gBACT,MAAM,WACJ,yCAAyC,MAAM,QAAQ,YACvD,OAAO;AAAA;AAAA,cAGf,mBAAmB;AAAA;AAAA;AAAA;AAI7B;"}
1
+ {"version":3,"file":"index248.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
package/dist/index249.js CHANGED
@@ -1,5 +1,24 @@
1
- const checkboxCss = '@layer tokens,reset,components;@layer reset{:host{display:inline-block}*,*:before,*:after{box-sizing:border-box}}@layer components{.checkbox{display:inline-flex;align-items:flex-start;gap:var(--lib-space-sm);cursor:pointer;-webkit-user-select:none;user-select:none}:host([disabled]) .checkbox{cursor:not-allowed;opacity:.4;pointer-events:none}.checkbox__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;width:0;height:0;margin:0;opacity:0;pointer-events:none}.checkbox__box{width:18px;height:18px;flex-shrink:0;margin-top:2px;border:1px solid var(--border-default);background:var(--bg-elevated);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast) var(--ease-default),border-color var(--duration-fast) var(--ease-default),box-shadow var(--duration-base) var(--ease-default)}.checkbox:hover .checkbox__box{border-color:var(--border-strong)}.checkbox__input:focus-visible~.checkbox__box,.checkbox:focus-within .checkbox__box{box-shadow:0 0 0 3px var(--color-ink-20);border-color:var(--color-washi-700)}:host([checked]) .checkbox__box{background:var(--color-washi-900);border-color:var(--color-washi-900)}:host([indeterminate]) .checkbox__box{background:var(--color-washi-900);border-color:var(--color-washi-900)}.checkbox__check{width:10px;height:10px;stroke:#fff;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.6);transition:opacity var(--duration-fast) var(--ease-out),transform var(--duration-base) var(--ease-bounce)}:host([checked]) .checkbox__check{opacity:1;transform:scale(1)}.checkbox__dash{width:8px;height:2px;background:#fff;border-radius:1px;opacity:0;transform:scaleX(.4);transition:opacity var(--duration-fast) var(--ease-out),transform var(--duration-base) var(--ease-bounce)}:host([indeterminate]) .checkbox__dash{opacity:1;transform:scaleX(1)}.checkbox__label{display:flex;flex-direction:column;gap:var(--lib-space-xs)}.checkbox__label-text{font-family:var(--lib-font-body);font-size:var(--text-base);color:var(--text-primary);line-height:var(--leading-snug);transition:color var(--duration-fast)}.checkbox__label-sub{font-family:var(--lib-font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--text-muted);line-height:var(--leading-snug)}:host([size="sm"]) .checkbox__box{width:14px;height:14px}:host([size="sm"]) .checkbox__check{width:8px;height:8px;stroke-width:2.5}:host([size="sm"]) .checkbox__dash{width:6px;height:1.5px}:host([size="sm"]) .checkbox__label-text{font-size:var(--text-sm)}:host([size="lg"]) .checkbox__box{width:22px;height:22px}:host([size="lg"]) .checkbox__check{width:13px;height:13px}:host([size="lg"]) .checkbox__dash{width:10px;height:2.5px}:host([size="lg"]) .checkbox__label-text{font-size:var(--text-md)}:host([variant="kaki"][checked]) .checkbox__box,:host([variant="kaki"][indeterminate]) .checkbox__box{background:var(--color-kaki-500);border-color:var(--color-kaki-500)}:host([variant="kaki"]) .checkbox:hover .checkbox__box{border-color:var(--color-kaki-400)}:host([variant="kaki"]) .checkbox:focus-within .checkbox__box{box-shadow:0 0 0 3px #6d4d3e1f;border-color:var(--color-kaki-500)}:host([variant="error"]) .checkbox__box{border-color:var(--color-error)}:host([variant="error"]) .checkbox:hover .checkbox__box{border-color:var(--color-error)}:host([variant="error"]) .checkbox__label-text{color:var(--color-error)}@media(prefers-reduced-motion:reduce){.checkbox__box,.checkbox__check,.checkbox__dash{transition:none}}}';
1
+ import { html } from "lit";
2
+ function horizontalScrollTemplate(ctx) {
3
+ return html`
4
+ <div class="sticky-wrapper" part="wrapper">
5
+
6
+ <div class="horizontal-content" part="content">
7
+ <slot></slot>
8
+ </div>
9
+
10
+ <div class="progress-bar" part="progress-bar" ?hidden="${!ctx.showProgress}">
11
+ <div class="progress-fill" part="progress-fill"></div>
12
+ </div>
13
+
14
+ <span class="counter" part="counter" ?hidden="${!ctx.showProgress}">
15
+ 0%
16
+ </span>
17
+
18
+ </div>
19
+ `;
20
+ }
2
21
  export {
3
- checkboxCss as default
22
+ horizontalScrollTemplate
4
23
  };
5
24
  //# sourceMappingURL=index249.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index249.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index249.js","sources":["../src/components/organisms/horizontal-scroll-section/lib-horizontal-scroll-section.html.ts"],"sourcesContent":["import { html, TemplateResult } from 'lit';\nimport type { LibHorizontalScrollSection } from './lib-horizontal-scroll-section.component';\n\nexport function horizontalScrollTemplate(ctx: LibHorizontalScrollSection): TemplateResult {\n return html`\n <div class=\"sticky-wrapper\" part=\"wrapper\">\n\n <div class=\"horizontal-content\" part=\"content\">\n <slot></slot>\n </div>\n\n <div class=\"progress-bar\" part=\"progress-bar\" ?hidden=\"${!ctx.showProgress}\">\n <div class=\"progress-fill\" part=\"progress-fill\"></div>\n </div>\n\n <span class=\"counter\" part=\"counter\" ?hidden=\"${!ctx.showProgress}\">\n 0%\n </span>\n\n </div>\n `;\n}"],"names":[],"mappings":";AAGO,SAAS,yBAAyB,KAAiD;AACxF,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+DAOsD,CAAC,IAAI,YAAY;AAAA;AAAA;AAAA;AAAA,sDAI1B,CAAC,IAAI,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAMvE;"}
package/dist/index25.js CHANGED
@@ -1,8 +1,8 @@
1
- import { unsafeCSS, css, LitElement } from "lit";
2
- import { property, customElement } from "lit/decorators.js";
3
- import { spotlightCardTemplate } from "./index235.js";
4
- import spotlightCss from "./index236.js";
1
+ import { unsafeCSS, css, LitElement, html } from "lit";
2
+ import { property, state, customElement } from "lit/decorators.js";
3
+ import { getIcon } from "./index3.js";
5
4
  import sharedTokens from "./index196.js";
5
+ import iconStyles from "./index308.js";
6
6
  var __defProp = Object.defineProperty;
7
7
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
8
  var __decorateClass = (decorators, target, key, kind) => {
@@ -13,46 +13,65 @@ var __decorateClass = (decorators, target, key, kind) => {
13
13
  if (kind && result) __defProp(target, key, result);
14
14
  return result;
15
15
  };
16
- let LibSpotlightCard = class extends LitElement {
16
+ let LibIcon = class extends LitElement {
17
17
  constructor() {
18
18
  super(...arguments);
19
- this.spotlight = "kaki";
20
- this.kintsugi = false;
19
+ this.name = "";
20
+ this.size = "md";
21
+ this.variant = "default";
22
+ this._svgContent = "";
21
23
  }
22
- render() {
23
- return spotlightCardTemplate({
24
- spotlight: this.spotlight,
25
- kintsugi: this.kintsugi,
26
- onMouseMove: this._handleMouseMove.bind(this),
27
- onMouseLeave: this._handleMouseLeave.bind(this)
28
- });
24
+ willUpdate(changedProperties) {
25
+ if (changedProperties.has("name")) {
26
+ this._loadIcon();
27
+ }
29
28
  }
30
- _handleMouseMove(e) {
31
- const rect = e.currentTarget.getBoundingClientRect();
32
- const x = (e.clientX - rect.left) / rect.width * 100;
33
- const y = (e.clientY - rect.top) / rect.height * 100;
34
- this.style.setProperty("--lib-spotlight-x", `${x}%`);
35
- this.style.setProperty("--lib-spotlight-y", `${y}%`);
29
+ // 4. Buscamos el SVG en tu registro y lo guardamos en el estado
30
+ //TODO: Implementar nominale vs. generico
31
+ _loadIcon() {
32
+ const iconNominale = getIcon(this.name);
33
+ console.log(iconNominale);
34
+ if (iconNominale) {
35
+ this._svgContent = iconNominale ?? "";
36
+ this.requestUpdate();
37
+ } else {
38
+ this._svgContent = "";
39
+ }
36
40
  }
37
- _handleMouseLeave() {
38
- this.style.setProperty("--lib-spotlight-x", "50%");
39
- this.style.setProperty("--lib-spotlight-y", "50%");
41
+ render() {
42
+ const sizeVar = `var(--lib-font-size-${this.size})`;
43
+ const variantClass = this.variant !== "default" ? `variant-${this.variant}` : "";
44
+ return html`
45
+ <div
46
+ class="icon-wrapper ${variantClass}"
47
+ style="--lib-icon-size: ${sizeVar}"
48
+ aria-hidden="true"
49
+ .innerHTML="${this._svgContent}"
50
+ >
51
+ </div>
52
+ `;
40
53
  }
41
54
  };
42
- LibSpotlightCard.styles = [
55
+ LibIcon.styles = [
43
56
  css`${unsafeCSS(sharedTokens)}`,
44
- css`${unsafeCSS(spotlightCss)}`
57
+ css`${unsafeCSS(iconStyles)}`
45
58
  ];
46
59
  __decorateClass([
47
60
  property({ type: String, reflect: true })
48
- ], LibSpotlightCard.prototype, "spotlight", 2);
61
+ ], LibIcon.prototype, "name", 2);
62
+ __decorateClass([
63
+ property({ type: String })
64
+ ], LibIcon.prototype, "size", 2);
65
+ __decorateClass([
66
+ property({ type: String })
67
+ ], LibIcon.prototype, "variant", 2);
49
68
  __decorateClass([
50
- property({ type: Boolean, reflect: true })
51
- ], LibSpotlightCard.prototype, "kintsugi", 2);
52
- LibSpotlightCard = __decorateClass([
53
- customElement("lib-spotlight-card")
54
- ], LibSpotlightCard);
69
+ state()
70
+ ], LibIcon.prototype, "_svgContent", 2);
71
+ LibIcon = __decorateClass([
72
+ customElement("lib-icon")
73
+ ], LibIcon);
55
74
  export {
56
- LibSpotlightCard
75
+ LibIcon
57
76
  };
58
77
  //# sourceMappingURL=index25.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index25.js","sources":["../src/components/atoms/card/spotlight-card/lib-spotlight-card.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type { LibSpotlightVariant } from './lib-spotlight-card.types';\nimport { spotlightCardTemplate } from './lib-spotlight-card.html';\nimport spotlightCss from './lib-spotlight-card.css?inline';\nimport sharedTokens from '../../../../styles/shared/tokens.css?inline';\n\n/**\n * @element lib-spotlight-card\n *\n * Contenedor con foco de luz reactivo al cursor (Kintsugi Digital).\n * El gradiente radial sigue al puntero actualizando\n * `--lib-spotlight-x` y `--lib-spotlight-y` en :host.\n *\n * Con `kintsugi` activo añade el hilo de oro en el borde\n * y cambia el fondo a un tono cálido oscuro.\n *\n * @slot - Contenido de la card.\n *\n * @example — spotlight kaki\n * <lib-spotlight-card>...</lib-spotlight-card>\n *\n * @example — spotlight water\n * <lib-spotlight-card spotlight=\"water\">...</lib-spotlight-card>\n *\n * @example — kintsugi border + spotlight kaki\n * <lib-spotlight-card kintsugi>...</lib-spotlight-card>\n */\n@customElement('lib-spotlight-card')\nexport class LibSpotlightCard extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(spotlightCss)}`,\n ];\n\n /**\n * Color del foco de luz.\n * - kaki : orgánico cálido — oklch(45% 0.05 45) [default]\n * - water : azul sereno — oklch(55% 0.06 210)\n * - white : neutro — oklch(100% 0 0)\n *\n * Nota: cuando `kintsugi` está activo el spotlight es siempre kaki.\n */\n @property({ type: String, reflect: true })\n spotlight: LibSpotlightVariant = 'kaki';\n\n /**\n * Activa el hilo de oro en el borde (--lib-kintsugi-border)\n * y cambia el fondo del contenedor a un tono cálido oscuro.\n */\n @property({ type: Boolean, reflect: true })\n kintsugi = false;\n\n override render(): TemplateResult {\n return spotlightCardTemplate({\n spotlight: this.spotlight,\n kintsugi: this.kintsugi,\n onMouseMove: this._handleMouseMove.bind(this),\n onMouseLeave: this._handleMouseLeave.bind(this),\n });\n }\n\n private _handleMouseMove(e: MouseEvent): void {\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const x = ((e.clientX - rect.left) / rect.width) * 100;\n const y = ((e.clientY - rect.top) / rect.height) * 100;\n\n // Actualiza las custom properties en :host\n // El radial-gradient del CSS las consume automáticamente\n this.style.setProperty('--lib-spotlight-x', `${x}%`);\n this.style.setProperty('--lib-spotlight-y', `${y}%`);\n }\n\n private _handleMouseLeave(): void {\n // Resetea al centro la layer se oculta vía CSS opacity: 0\n this.style.setProperty('--lib-spotlight-x', '50%');\n this.style.setProperty('--lib-spotlight-y', '50%');\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-spotlight-card': LibSpotlightCard;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AA6BO,IAAM,mBAAN,cAA+B,WAAW;AAAA,EAA1C,cAAA;AAAA,UAAA,GAAA,SAAA;AAeL,SAAA,YAAiC;AAOjC,SAAA,WAAW;AAAA,EAAA;AAAA,EAEF,SAAyB;AAChC,WAAO,sBAAsB;AAAA,MAC3B,WAAc,KAAK;AAAA,MACnB,UAAc,KAAK;AAAA,MACnB,aAAc,KAAK,iBAAiB,KAAK,IAAI;AAAA,MAC7C,cAAc,KAAK,kBAAkB,KAAK,IAAI;AAAA,IAAA,CAC/C;AAAA,EACH;AAAA,EAEQ,iBAAiB,GAAqB;AAC5C,UAAM,OAAQ,EAAE,cAA8B,sBAAA;AAC9C,UAAM,KAAM,EAAE,UAAU,KAAK,QAAQ,KAAK,QAAU;AACpD,UAAM,KAAM,EAAE,UAAU,KAAK,OAAQ,KAAK,SAAU;AAIpD,SAAK,MAAM,YAAY,qBAAqB,GAAG,CAAC,GAAG;AACnD,SAAK,MAAM,YAAY,qBAAqB,GAAG,CAAC,GAAG;AAAA,EACrD;AAAA,EAEQ,oBAA0B;AAEhC,SAAK,MAAM,YAAY,qBAAqB,KAAK;AACjD,SAAK,MAAM,YAAY,qBAAqB,KAAK;AAAA,EACnD;AACF;AAjDa,iBACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,YAAY,CAAC;AAC/B;AAWA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAd9B,iBAeX,WAAA,aAAA,CAAA;AAOA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GArB/B,iBAsBX,WAAA,YAAA,CAAA;AAtBW,mBAAN,gBAAA;AAAA,EADN,cAAc,oBAAoB;AAAA,GACtB,gBAAA;"}
1
+ {"version":3,"file":"index25.js","sources":["../src/components/atoms/icon/lib-icon.component.ts"],"sourcesContent":["import { LitElement, html, css, unsafeCSS, TemplateResult } from 'lit';\n// 1. Añadimos 'state' a las importaciones de lit/decorators\nimport { customElement, property, state } from 'lit/decorators.js'; \n//import { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { getIcon/*, ICON_REGISTRY*/ } from '../../../shared/icons/icon-registry';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport iconStyles from './lib-icon.css?inline';\n\n@customElement('lib-icon')\nexport class LibIcon extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(iconStyles)}`,\n ];\n\n @property({ type: String, reflect: true }) name: string = '';\n @property({ type: String }) size: string = 'md';\n @property({ type: String }) variant: string = 'default';\n\n // 2. DECLARAMOS EL ESTADO INTERNO (Esta es la pieza que faltaba)\n @state() private _svgContent: string = '';\n\n override willUpdate(changedProperties: Map<string, unknown>): void {\n if (changedProperties.has('name')) {\n this._loadIcon();\n }\n }\n\n // 4. Buscamos el SVG en tu registro y lo guardamos en el estado\n //TODO: Implementar nominale vs. generico\n private _loadIcon(): void {\n //const icon = ICON_REGISTRY[this.name];\n const iconNominale = getIcon(this.name);\n console.log(iconNominale);\n if (iconNominale) {\n this._svgContent = iconNominale ?? '';\n this.requestUpdate();\n } else {\n this._svgContent = ''; // Si no existe, limpiamos\n //console.warn(`Icono \"${this.name}\" no encontrado.`);\n }\n }\n\n protected override render(): TemplateResult {\n const sizeVar: string = `var(--lib-font-size-${this.size})`;\n const variantClass: string = this.variant !== 'default' ? `variant-${this.variant}` : '';\n \n\n return html`\n <div\n class=\"icon-wrapper ${variantClass}\"\n style=\"--lib-icon-size: ${sizeVar}\"\n aria-hidden=\"true\"\n .innerHTML=\"${this._svgContent}\"\n >\n </div>\n `;\n }\n}\n\n// ${this._svgContent ? unsafeSVG(this._svgContent) : html`<span></span>`}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AASO,IAAM,UAAN,cAAsB,WAAW;AAAA,EAAjC,cAAA;AAAA,UAAA,GAAA,SAAA;AAMsC,SAAA,OAAe;AAC9B,SAAA,OAAe;AACf,SAAA,UAAkB;AAGrC,SAAQ,cAAsB;AAAA,EAAA;AAAA,EAE9B,WAAW,mBAA+C;AACjE,QAAI,kBAAkB,IAAI,MAAM,GAAG;AACjC,WAAK,UAAA;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA,EAIQ,YAAkB;AAExB,UAAM,eAAe,QAAQ,KAAK,IAAI;AACtC,YAAQ,IAAI,YAAY;AACxB,QAAI,cAAc;AAChB,WAAK,cAAc,gBAAgB;AACnC,WAAK,cAAA;AAAA,IACP,OAAO;AACL,WAAK,cAAc;AAAA,IAErB;AAAA,EACF;AAAA,EAEmB,SAAyB;AAC1C,UAAM,UAAkB,uBAAuB,KAAK,IAAI;AACxD,UAAM,eAAuB,KAAK,YAAY,YAAY,WAAW,KAAK,OAAO,KAAK;AAGtF,WAAO;AAAA;AAAA,8BAEmB,YAAY;AAAA,kCACR,OAAO;AAAA;AAAA,sBAEnB,KAAK,WAAW;AAAA;AAAA;AAAA;AAAA,EAIpC;AACF;AAjDa,QACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,UAAU,CAAC;AAC7B;AAE2C,gBAAA;AAAA,EAA1C,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAN9B,QAMgC,WAAA,QAAA,CAAA;AACf,gBAAA;AAAA,EAA3B,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAPf,QAOiB,WAAA,QAAA,CAAA;AACA,gBAAA;AAAA,EAA3B,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GARf,QAQiB,WAAA,WAAA,CAAA;AAGX,gBAAA;AAAA,EAAhB,MAAA;AAAM,GAXI,QAWM,WAAA,eAAA,CAAA;AAXN,UAAN,gBAAA;AAAA,EADN,cAAc,UAAU;AAAA,GACZ,OAAA;"}
package/dist/index250.js CHANGED
@@ -1,34 +1,5 @@
1
- import { nothing, html } from "lit";
2
- function radioTemplate(props) {
3
- return html`
4
- <label class="radio">
5
-
6
- <input
7
- class="radio__input"
8
- type="radio"
9
- id="${props.radioId}"
10
- name="${props.name}"
11
- value="${props.value}"
12
- .checked="${props.checked}"
13
- ?disabled="${props.disabled}"
14
- @change="${props.onChange}"
15
- />
16
-
17
- <span class="radio__circle">
18
- <span class="radio__dot"></span>
19
- </span>
20
-
21
- ${props.label || props.sublabel ? html`
22
- <span class="radio__label">
23
- ${props.label ? html`<span class="radio__label-text">${props.label}</span>` : nothing}
24
- ${props.sublabel ? html`<span class="radio__label-sub">${props.sublabel}</span>` : nothing}
25
- </span>
26
- ` : html`<slot></slot>`}
27
-
28
- </label>
29
- `;
30
- }
1
+ const sectionCss = "@layer tokens,reset,components;@layer reset{:host{display:block;position:relative}*,*:before,*:after{box-sizing:border-box}}@layer components{:host{height:var(--_scroll-height, 300vh)}.sticky-wrapper{position:sticky;top:0;height:100vh;width:100%;overflow:hidden;display:flex;align-items:center;background:var(--bg-base)}.horizontal-content{display:flex;gap:var(--_gap, calc(var(--lib-space-xl) * 2));padding:0 calc(var(--_padding-inline, 10) * 1vw);will-change:transform}::slotted(*){flex-shrink:0}.progress-bar{position:absolute;bottom:var(--lib-space-xl);left:calc(var(--_padding-inline, 10) * 1vw);width:calc(100% - (var(--_padding-inline, 10) * 2vw));height:1px;background:var(--border-subtle)}.progress-fill{height:100%;width:0%;background:var(--color-washi-900);transition:width 80ms linear}.counter{position:absolute;bottom:calc(var(--lib-space-xl) + 16px);right:calc(var(--_padding-inline, 10) * 1vw);font-family:var(--lib-font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-widest);color:var(--text-muted);-webkit-user-select:none;user-select:none}}";
31
2
  export {
32
- radioTemplate
3
+ sectionCss as default
33
4
  };
34
5
  //# sourceMappingURL=index250.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index250.js","sources":["../src/components/atoms/radio/lib-radio.html.ts"],"sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\n\nexport type LibRadioSize = 'sm' | 'md' | 'lg';\nexport type LibRadioVariant = 'default' | 'kaki' | 'error';\n\nexport interface RadioTemplateProps {\n radioId: string;\n name: string;\n value: string;\n checked: boolean;\n disabled: boolean;\n label: string;\n sublabel: string;\n size: LibRadioSize;\n variant: LibRadioVariant;\n onChange: (e: Event) => void;\n}\n\n/**\n * Plantilla para lib-radio.\n *\n * Estructura:\n * label.radio\n * input[type=radio] (invisible, capa de interaccion)\n * span.radio__circle (visual: circulo + dot interior)\n * span.radio__label (label-text + sublabel opcional)\n */\nexport function radioTemplate(props: RadioTemplateProps): TemplateResult {\n return html`\n <label class=\"radio\">\n\n <input\n class=\"radio__input\"\n type=\"radio\"\n id=\"${props.radioId}\"\n name=\"${props.name}\"\n value=\"${props.value}\"\n .checked=\"${props.checked}\"\n ?disabled=\"${props.disabled}\"\n @change=\"${props.onChange}\"\n />\n\n <span class=\"radio__circle\">\n <span class=\"radio__dot\"></span>\n </span>\n\n ${props.label || props.sublabel\n ? html`\n <span class=\"radio__label\">\n ${props.label\n ? html`<span class=\"radio__label-text\">${props.label}</span>`\n : nothing}\n ${props.sublabel\n ? html`<span class=\"radio__label-sub\">${props.sublabel}</span>`\n : nothing}\n </span>\n `\n : html`<slot></slot>`}\n\n </label>\n `;\n}"],"names":[],"mappings":";AA2BO,SAAS,cAAc,OAA2C;AACvE,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAMK,MAAM,OAAO;AAAA,gBACX,MAAM,IAAI;AAAA,iBACT,MAAM,KAAK;AAAA,oBACR,MAAM,OAAO;AAAA,qBACZ,MAAM,QAAQ;AAAA,mBAChB,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAOzB,MAAM,SAAS,MAAM,WACnB;AAAA;AAAA,gBAEM,MAAM,QACJ,uCAAuC,MAAM,KAAK,YAClD,OAAO;AAAA,gBACT,MAAM,WACJ,sCAAsC,MAAM,QAAQ,YACpD,OAAO;AAAA;AAAA,cAGf,mBAAmB;AAAA;AAAA;AAAA;AAI7B;"}
1
+ {"version":3,"file":"index250.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}