@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/index78.js CHANGED
@@ -1,6 +1,7 @@
1
- import { unsafeCSS, css, LitElement, html } from "lit";
1
+ import { unsafeCSS, css, LitElement } from "lit";
2
2
  import { property, customElement } from "lit/decorators.js";
3
- import timelineCss from "./index338.js";
3
+ import { parallaxTextStackTemplate } from "./index253.js";
4
+ import stackCss from "./index254.js";
4
5
  import sharedTokens from "./index196.js";
5
6
  var __defProp = Object.defineProperty;
6
7
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -12,30 +13,100 @@ var __decorateClass = (decorators, target, key, kind) => {
12
13
  if (kind && result) __defProp(target, key, result);
13
14
  return result;
14
15
  };
15
- let LibTimeline = class extends LitElement {
16
+ let LibParallaxTextStack = class extends LitElement {
16
17
  constructor() {
17
18
  super(...arguments);
18
- this.size = "md";
19
+ this.lines = [];
20
+ this.speed = 0.15;
21
+ this.size = "lg";
22
+ this.color = "default";
23
+ this._ticking = false;
24
+ this._reducedMotion = false;
25
+ this._onMotionChange = (e) => {
26
+ this._reducedMotion = e.matches;
27
+ if (this._reducedMotion) this._resetLayers();
28
+ };
29
+ this._onScroll = () => {
30
+ if (this._ticking) return;
31
+ this._ticking = true;
32
+ requestAnimationFrame(() => {
33
+ this._applyParallax();
34
+ this._ticking = false;
35
+ });
36
+ };
37
+ }
38
+ /* ════════════════════════════════════════
39
+ Ciclo de vida
40
+ ════════════════════════════════════════ */
41
+ connectedCallback() {
42
+ super.connectedCallback();
43
+ this._motionQuery = window.matchMedia("(prefers-reduced-motion: reduce)");
44
+ this._reducedMotion = this._motionQuery.matches;
45
+ this._motionQuery.addEventListener("change", this._onMotionChange);
46
+ window.addEventListener("scroll", this._onScroll, { passive: true });
47
+ }
48
+ disconnectedCallback() {
49
+ var _a;
50
+ super.disconnectedCallback();
51
+ window.removeEventListener("scroll", this._onScroll);
52
+ (_a = this._motionQuery) == null ? void 0 : _a.removeEventListener("change", this._onMotionChange);
53
+ }
54
+ /**
55
+ * firstUpdated: primer render completado → shadow DOM listo.
56
+ * connectedCallback se dispara ANTES de que Lit renderice,
57
+ * por lo que querySelectorAll('.pts-layer') devuelve vacío ahí.
58
+ */
59
+ firstUpdated() {
60
+ this._applyParallax();
61
+ }
62
+ /* ════════════════════════════════════════
63
+ Lógica del efecto
64
+ ════════════════════════════════════════ */
65
+ _applyParallax() {
66
+ var _a;
67
+ if (this._reducedMotion) return;
68
+ const layers = (_a = this.shadowRoot) == null ? void 0 : _a.querySelectorAll(".pts-layer");
69
+ if (!(layers == null ? void 0 : layers.length)) return;
70
+ const rect = this.getBoundingClientRect();
71
+ const centerEl = rect.top + rect.height / 2;
72
+ const centerVp = window.innerHeight / 2;
73
+ const offset = centerVp - centerEl;
74
+ layers.forEach((layer, i) => {
75
+ const direction = i % 2 === 0 ? 1 : -1;
76
+ const factor = (i + 1) * this.speed;
77
+ layer.style.transform = `translateX(${offset * factor * direction}px)`;
78
+ });
79
+ }
80
+ _resetLayers() {
81
+ var _a;
82
+ (_a = this.shadowRoot) == null ? void 0 : _a.querySelectorAll(".pts-layer").forEach((l) => {
83
+ l.style.transform = "";
84
+ });
19
85
  }
20
86
  render() {
21
- return html`
22
- <div class="tl" role="list">
23
- <slot></slot>
24
- </div>
25
- `;
87
+ return parallaxTextStackTemplate(this);
26
88
  }
27
89
  };
28
- LibTimeline.styles = [
90
+ LibParallaxTextStack.styles = [
29
91
  css`${unsafeCSS(sharedTokens)}`,
30
- css`${unsafeCSS(timelineCss)}`
92
+ css`${unsafeCSS(stackCss)}`
31
93
  ];
94
+ __decorateClass([
95
+ property({ type: Array })
96
+ ], LibParallaxTextStack.prototype, "lines", 2);
97
+ __decorateClass([
98
+ property({ type: Number })
99
+ ], LibParallaxTextStack.prototype, "speed", 2);
100
+ __decorateClass([
101
+ property({ type: String, reflect: true })
102
+ ], LibParallaxTextStack.prototype, "size", 2);
32
103
  __decorateClass([
33
104
  property({ type: String, reflect: true })
34
- ], LibTimeline.prototype, "size", 2);
35
- LibTimeline = __decorateClass([
36
- customElement("lib-timeline")
37
- ], LibTimeline);
105
+ ], LibParallaxTextStack.prototype, "color", 2);
106
+ LibParallaxTextStack = __decorateClass([
107
+ customElement("lib-parallax-text-stack")
108
+ ], LibParallaxTextStack);
38
109
  export {
39
- LibTimeline
110
+ LibParallaxTextStack
40
111
  };
41
112
  //# sourceMappingURL=index78.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index78.js","sources":["../src/components/organisms/timeline/lib-timeline.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport timelineCss from './lib-timeline.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport type { TimelineSize } from './lib-timeline-item.types';\n\n/**\n * @element lib-timeline\n *\n * Contenedor de timeline. Acepta `<lib-timeline-item>` en su slot.\n *\n * @prop {TimelineSize} sizeTamaño global: sm · md · lg (default: 'md')\n *\n * @slotÍtems del timeline (lib-timeline-item)\n */\n@customElement('lib-timeline')\nexport class LibTimeline extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(timelineCss)}`,\n ];\n\n @property({ type: String, reflect: true })\n size: TimelineSize = 'md';\n\n protected override render(): TemplateResult {\n return html`\n <div class=\"tl\" role=\"list\">\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-timeline': LibTimeline;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;AAgBO,IAAM,cAAN,cAA0B,WAAW;AAAA,EAArC,cAAA;AAAA,UAAA,GAAA,SAAA;AAOL,SAAA,OAAqB;AAAA,EAAA;AAAA,EAEF,SAAyB;AAC1C,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKT;AACF;AAhBa,YACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,WAAW,CAAC;AAC9B;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAN9B,YAOX,WAAA,QAAA,CAAA;AAPW,cAAN,gBAAA;AAAA,EADN,cAAc,cAAc;AAAA,GAChB,WAAA;"}
1
+ {"version":3,"file":"index78.js","sources":["../src/components/organisms/parallax-text/lib-parallax-text-stack.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { parallaxTextStackTemplate } from './lib-parallax-text-stack.html';\nimport stackCss from './lib-parallax-text-stack.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport type { ParallaxTextSize, ParallaxTextColor } from './lib-parallax-text-stack.types';\n\n/**\n * lib-parallax-text-stack — Shibui UI\n *\n * Apila líneas tipográficas con parallax horizontal al hacer scroll.\n * Capas pares → outline (trazo, sin relleno).\n * Capas impares → italic serif (relleno).\n *\n * @prop lines — Array de strings, una por capa\n * @prop speed Factor de velocidad (default 0.15)\n * @prop size — 'sm' | 'md' | 'lg'(default) | 'xl' | '2xl'\n * @prop color — 'default' | 'muted' | 'kaki' | 'celadon'\n *\n * IMPORTANTE: el padre debe llevar overflow-x:hidden.\n * El componente NO lo aplica en :host si lo hiciera, el\n * translateX quedaría clipado y el efecto sería invisible.\n */\n@customElement('lib-parallax-text-stack')\nexport class LibParallaxTextStack extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(stackCss)}`,\n ];\n\n @property({ type: Array })\n lines: string[] = [];\n\n @property({ type: Number })\n speed = 0.15;\n\n @property({ type: String, reflect: true })\n size: ParallaxTextSize = 'lg';\n\n @property({ type: String, reflect: true })\n color: ParallaxTextColor = 'default';\n\n /* ── Estado interno ── */\n private _ticking = false;\n private _reducedMotion = false;\n private _motionQuery!: MediaQueryList;\n\n /* ════════════════════════════════════════\n Ciclo de vida\n ════════════════════════════════════════ */\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this._motionQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\n this._reducedMotion = this._motionQuery.matches;\n this._motionQuery.addEventListener('change', this._onMotionChange);\n\n // { passive: true } — no bloquea el hilo principal\n window.addEventListener('scroll', this._onScroll, { passive: true });\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener('scroll', this._onScroll);\n this._motionQuery?.removeEventListener('change', this._onMotionChange);\n }\n\n /**\n * firstUpdated: primer render completado → shadow DOM listo.\n * connectedCallback se dispara ANTES de que Lit renderice,\n * por lo que querySelectorAll('.pts-layer') devuelve vacío ahí.\n */\n override firstUpdated(): void {\n this._applyParallax();\n }\n\n /* ════════════════════════════════════════\n Manejadores\n ════════════════════════════════════════ */\n\n private _onMotionChange = (e: MediaQueryListEvent): void => {\n this._reducedMotion = e.matches;\n if (this._reducedMotion) this._resetLayers();\n };\n\n private _onScroll = (): void => {\n if (this._ticking) return;\n this._ticking = true;\n requestAnimationFrame(() => {\n this._applyParallax();\n this._ticking = false;\n });\n };\n\n /* ════════════════════════════════════════\n Lógica del efecto\n ════════════════════════════════════════ */\n\n private _applyParallax(): void {\n if (this._reducedMotion) return;\n\n // Clase correcta: pts-layer (no parallax-layer del original)\n const layers = this.shadowRoot?.querySelectorAll<HTMLElement>('.pts-layer');\n if (!layers?.length) return;\n\n const rect = this.getBoundingClientRect();\n const centerEl = rect.top + rect.height / 2;\n const centerVp = window.innerHeight / 2;\n // offset > 0: componente bajo el centro → capas se separan\n // offset < 0: componente sobre el centro → capas se contraen\n const offset = centerVp - centerEl;\n\n layers.forEach((layer, i) => {\n // Capas alternas en direcciones opuestas — efecto acordeón\n const direction = i % 2 === 0 ? 1 : -1;\n const factor = (i + 1) * this.speed;\n layer.style.transform = `translateX(${offset * factor * direction}px)`;\n });\n }\n\n private _resetLayers(): void {\n this.shadowRoot\n ?.querySelectorAll<HTMLElement>('.pts-layer')\n .forEach(l => { l.style.transform = ''; });\n }\n\n protected override render(): TemplateResult {\n return parallaxTextStackTemplate(this);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-parallax-text-stack': LibParallaxTextStack;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AAwBO,IAAM,uBAAN,cAAmC,WAAW;AAAA,EAA9C,cAAA;AAAA,UAAA,GAAA,SAAA;AAOL,SAAA,QAAkB,CAAA;AAGlB,SAAA,QAAQ;AAGR,SAAA,OAAyB;AAGzB,SAAA,QAA2B;AAG3B,SAAQ,WAAW;AACnB,SAAQ,iBAAiB;AAqCzB,SAAQ,kBAAkB,CAAC,MAAiC;AAC1D,WAAK,iBAAiB,EAAE;AACxB,UAAI,KAAK,eAAgB,MAAK,aAAA;AAAA,IAChC;AAEA,SAAQ,YAAY,MAAY;AAC9B,UAAI,KAAK,SAAU;AACnB,WAAK,WAAW;AAChB,4BAAsB,MAAM;AAC1B,aAAK,eAAA;AACL,aAAK,WAAW;AAAA,MAClB,CAAC;AAAA,IACH;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EA1CS,oBAA0B;AACjC,UAAM,kBAAA;AAEN,SAAK,eAAe,OAAO,WAAW,kCAAkC;AACxE,SAAK,iBAAiB,KAAK,aAAa;AACxC,SAAK,aAAa,iBAAiB,UAAU,KAAK,eAAe;AAGjE,WAAO,iBAAiB,UAAU,KAAK,WAAW,EAAE,SAAS,MAAM;AAAA,EACrE;AAAA,EAES,uBAA6B;;AACpC,UAAM,qBAAA;AACN,WAAO,oBAAoB,UAAU,KAAK,SAAS;AACnD,eAAK,iBAAL,mBAAmB,oBAAoB,UAAU,KAAK;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOS,eAAqB;AAC5B,SAAK,eAAA;AAAA,EACP;AAAA;AAAA;AAAA;AAAA,EAwBQ,iBAAuB;;AAC7B,QAAI,KAAK,eAAgB;AAGzB,UAAM,UAAS,UAAK,eAAL,mBAAiB,iBAA8B;AAC9D,QAAI,EAAC,iCAAQ,QAAQ;AAErB,UAAM,OAAW,KAAK,sBAAA;AACtB,UAAM,WAAW,KAAK,MAAM,KAAK,SAAS;AAC1C,UAAM,WAAW,OAAO,cAAc;AAGtC,UAAM,SAAW,WAAW;AAE5B,WAAO,QAAQ,CAAC,OAAO,MAAM;AAE3B,YAAM,YAAY,IAAI,MAAM,IAAI,IAAI;AACpC,YAAM,UAAa,IAAI,KAAK,KAAK;AACjC,YAAM,MAAM,YAAY,cAAc,SAAS,SAAS,SAAS;AAAA,IACnE,CAAC;AAAA,EACH;AAAA,EAEQ,eAAqB;;AAC3B,eAAK,eAAL,mBACI,iBAA8B,cAC/B,QAAQ,CAAA,MAAK;AAAE,QAAE,MAAM,YAAY;AAAA,IAAI;AAAA,EAC5C;AAAA,EAEmB,SAAyB;AAC1C,WAAO,0BAA0B,IAAI;AAAA,EACvC;AACF;AA1Ga,qBACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,QAAQ,CAAC;AAC3B;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,MAAA,CAAO;AAAA,GANd,qBAOX,WAAA,SAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GATf,qBAUX,WAAA,SAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAZ9B,qBAaX,WAAA,QAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAf9B,qBAgBX,WAAA,SAAA,CAAA;AAhBW,uBAAN,gBAAA;AAAA,EADN,cAAc,yBAAyB;AAAA,GAC3B,oBAAA;"}
package/dist/index79.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { unsafeCSS, css, LitElement } from "lit";
2
- import { property, query, customElement } from "lit/decorators.js";
3
- import { horizontalScrollTemplate } from "./index340.js";
4
- import sectionCss from "./index341.js";
2
+ import { property, state, query, customElement } from "lit/decorators.js";
3
+ import "./index25.js";
4
+ import { sidebarTemplate } from "./index255.js";
5
+ import componentCss from "./index256.js";
5
6
  import sharedTokens from "./index196.js";
6
7
  var __defProp = Object.defineProperty;
7
8
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -13,103 +14,174 @@ var __decorateClass = (decorators, target, key, kind) => {
13
14
  if (kind && result) __defProp(target, key, result);
14
15
  return result;
15
16
  };
16
- let LibHorizontalScrollSection = class extends LitElement {
17
+ let LibSidebar = class extends LitElement {
17
18
  constructor() {
18
19
  super(...arguments);
19
- this.scrollDuration = 3;
20
- this.paddingInline = 10;
21
- this.showProgress = true;
22
- this._ticking = false;
23
- this._ro = null;
24
- this._onScroll = () => {
25
- if (this._ticking) return;
26
- this._ticking = true;
27
- requestAnimationFrame(() => {
28
- this._calculate();
29
- this._ticking = false;
30
- });
31
- };
20
+ this.logoMark = "渋";
21
+ this.brandName = "shibui";
22
+ this.showSearch = false;
23
+ this.searchPlaceholder = "Buscar…";
24
+ this.links = [];
25
+ this.active = "";
26
+ this.userName = "";
27
+ this.userRole = "";
28
+ this.userAvatar = "";
29
+ this.userInitials = "";
30
+ this.showUserAction = false;
31
+ this.variant = "dark";
32
+ this.collapsed = false;
33
+ this._mobileOpen = false;
32
34
  }
33
35
  /* ── Lifecycle ── */
34
- connectedCallback() {
35
- super.connectedCallback();
36
- window.addEventListener("scroll", this._onScroll, { passive: true });
36
+ updated(changed) {
37
+ if (changed.has("active") || changed.has("links")) {
38
+ this._moveIndicator();
39
+ }
37
40
  }
38
- disconnectedCallback() {
39
- var _a;
40
- super.disconnectedCallback();
41
- window.removeEventListener("scroll", this._onScroll);
42
- (_a = this._ro) == null ? void 0 : _a.disconnect();
41
+ /* ── Render ── */
42
+ render() {
43
+ return sidebarTemplate({
44
+ logoMark: this.logoMark,
45
+ brandName: this.brandName,
46
+ showSearch: this.showSearch,
47
+ searchPlaceholder: this.searchPlaceholder,
48
+ links: this.links,
49
+ active: this.active,
50
+ userName: this.userName,
51
+ userRole: this.userRole,
52
+ userAvatar: this.userAvatar,
53
+ userInitials: this.userInitials,
54
+ showUserAction: this.showUserAction,
55
+ variant: this.variant,
56
+ collapsed: this.collapsed,
57
+ mobileOpen: this._mobileOpen,
58
+ onLinkClick: this._handleLink.bind(this),
59
+ onUserAction: this._handleUserAction.bind(this),
60
+ onSearchInput: this._handleSearch.bind(this),
61
+ onOverlayClick: () => {
62
+ this._mobileOpen = false;
63
+ },
64
+ onToggleClick: () => {
65
+ this._mobileOpen = !this._mobileOpen;
66
+ }
67
+ });
43
68
  }
44
- firstUpdated() {
45
- this._ro = new ResizeObserver(() => {
46
- if (!this._ticking) {
47
- requestAnimationFrame(() => {
48
- this._calculate();
49
- this._ticking = false;
50
- });
51
- this._ticking = true;
69
+ /* ── Sliding indicator ── */
70
+ _moveIndicator() {
71
+ requestAnimationFrame(() => {
72
+ const nav = this._nav;
73
+ const ind = this._indicator;
74
+ if (!nav || !ind) return;
75
+ const btn = nav.querySelector(".sb-link.is-active");
76
+ if (!btn) {
77
+ ind.classList.remove("visible");
78
+ return;
52
79
  }
80
+ const navTop = nav.getBoundingClientRect().top;
81
+ const btnRect = btn.getBoundingClientRect();
82
+ ind.style.top = `${btnRect.top - navTop + nav.scrollTop}px`;
83
+ ind.style.height = `${btnRect.height}px`;
84
+ ind.classList.add("visible");
53
85
  });
54
- this._ro.observe(this);
55
86
  }
56
- /* ── Props → CSS custom properties ── */
57
- updated() {
58
- this.style.setProperty("--_scroll-height", `${this.scrollDuration * 100}vh`);
59
- this.style.setProperty("--_padding-inline", String(this.paddingInline));
87
+ /* ── Handlers ── */
88
+ _handleLink(id) {
89
+ const previous = this.active;
90
+ this.active = id;
91
+ this.dispatchEvent(new CustomEvent("ui-lib-navigate", {
92
+ detail: { id, previous },
93
+ bubbles: true,
94
+ composed: true
95
+ }));
96
+ if (this._mobileOpen) this._mobileOpen = false;
60
97
  }
61
- /* ── Cálculo core ── */
62
- _calculate() {
63
- if (!this._content || !this._progressFill || !this._counter) return;
64
- const rect = this.getBoundingClientRect();
65
- const scrollable = rect.height - window.innerHeight;
66
- if (rect.top > 0 || rect.bottom < window.innerHeight) return;
67
- const scrolled = -rect.top;
68
- const progress = Math.min(Math.max(scrolled / scrollable, 0), 1);
69
- const paddingRight = window.innerWidth * (this.paddingInline / 100);
70
- const maxMove = this._content.scrollWidth - window.innerWidth + paddingRight;
71
- this._content.style.transform = `translateX(-${progress * maxMove}px)`;
72
- this._progressFill.style.width = `${progress * 100}%`;
73
- this._counter.textContent = `${Math.round(progress * 100)}%`;
74
- this.dispatchEvent(new CustomEvent(
75
- "ui-lib-scroll-progress",
76
- {
77
- detail: { progress, percent: Math.round(progress * 100) },
78
- bubbles: true,
79
- composed: true
80
- }
81
- ));
98
+ _handleUserAction() {
99
+ this.dispatchEvent(new CustomEvent("ui-lib-user-action", {
100
+ bubbles: true,
101
+ composed: true
102
+ }));
82
103
  }
83
- render() {
84
- return horizontalScrollTemplate(this);
104
+ _handleSearch(query2) {
105
+ this.dispatchEvent(new CustomEvent("ui-lib-search", {
106
+ detail: { query: query2 },
107
+ bubbles: true,
108
+ composed: true
109
+ }));
110
+ }
111
+ /* ── Public API ── */
112
+ /** Alterna collapsed ↔ expanded. Llamar desde el botón hamburger de la topbar. */
113
+ toggle() {
114
+ this.collapsed = !this.collapsed;
115
+ }
116
+ /** Expande el sidebar */
117
+ expand() {
118
+ this.collapsed = false;
119
+ }
120
+ /** Colapsa el sidebar a icon rail */
121
+ collapse() {
122
+ this.collapsed = true;
123
+ }
124
+ /** Navega programáticamente */
125
+ navigateTo(id) {
126
+ this._handleLink(id);
85
127
  }
86
128
  };
87
- LibHorizontalScrollSection.styles = [
129
+ LibSidebar.styles = [
88
130
  css`${unsafeCSS(sharedTokens)}`,
89
- css`${unsafeCSS(sectionCss)}`
131
+ css`${unsafeCSS(componentCss)}`
90
132
  ];
91
133
  __decorateClass([
92
- property({ type: Number, attribute: "scroll-duration" })
93
- ], LibHorizontalScrollSection.prototype, "scrollDuration", 2);
134
+ property({ type: String, attribute: "logo-mark" })
135
+ ], LibSidebar.prototype, "logoMark", 2);
136
+ __decorateClass([
137
+ property({ type: String, attribute: "brand-name" })
138
+ ], LibSidebar.prototype, "brandName", 2);
139
+ __decorateClass([
140
+ property({ type: Boolean, attribute: "show-search", reflect: true })
141
+ ], LibSidebar.prototype, "showSearch", 2);
142
+ __decorateClass([
143
+ property({ type: String, attribute: "search-placeholder" })
144
+ ], LibSidebar.prototype, "searchPlaceholder", 2);
145
+ __decorateClass([
146
+ property({ type: Array })
147
+ ], LibSidebar.prototype, "links", 2);
148
+ __decorateClass([
149
+ property({ type: String, reflect: true })
150
+ ], LibSidebar.prototype, "active", 2);
151
+ __decorateClass([
152
+ property({ type: String, attribute: "user-name" })
153
+ ], LibSidebar.prototype, "userName", 2);
154
+ __decorateClass([
155
+ property({ type: String, attribute: "user-role" })
156
+ ], LibSidebar.prototype, "userRole", 2);
157
+ __decorateClass([
158
+ property({ type: String, attribute: "user-avatar" })
159
+ ], LibSidebar.prototype, "userAvatar", 2);
160
+ __decorateClass([
161
+ property({ type: String, attribute: "user-initials" })
162
+ ], LibSidebar.prototype, "userInitials", 2);
163
+ __decorateClass([
164
+ property({ type: Boolean, attribute: "show-user-action" })
165
+ ], LibSidebar.prototype, "showUserAction", 2);
94
166
  __decorateClass([
95
- property({ type: Number, attribute: "padding-inline" })
96
- ], LibHorizontalScrollSection.prototype, "paddingInline", 2);
167
+ property({ type: String, reflect: true })
168
+ ], LibSidebar.prototype, "variant", 2);
97
169
  __decorateClass([
98
- property({ type: Boolean, attribute: "show-progress" })
99
- ], LibHorizontalScrollSection.prototype, "showProgress", 2);
170
+ property({ type: Boolean, reflect: true })
171
+ ], LibSidebar.prototype, "collapsed", 2);
100
172
  __decorateClass([
101
- query(".horizontal-content")
102
- ], LibHorizontalScrollSection.prototype, "_content", 2);
173
+ state()
174
+ ], LibSidebar.prototype, "_mobileOpen", 2);
103
175
  __decorateClass([
104
- query(".progress-fill")
105
- ], LibHorizontalScrollSection.prototype, "_progressFill", 2);
176
+ query(".sb-indicator")
177
+ ], LibSidebar.prototype, "_indicator", 2);
106
178
  __decorateClass([
107
- query(".counter")
108
- ], LibHorizontalScrollSection.prototype, "_counter", 2);
109
- LibHorizontalScrollSection = __decorateClass([
110
- customElement("lib-horizontal-scroll-section")
111
- ], LibHorizontalScrollSection);
179
+ query(".sb-nav")
180
+ ], LibSidebar.prototype, "_nav", 2);
181
+ LibSidebar = __decorateClass([
182
+ customElement("lib-sidebar")
183
+ ], LibSidebar);
112
184
  export {
113
- LibHorizontalScrollSection
185
+ LibSidebar
114
186
  };
115
187
  //# sourceMappingURL=index79.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index79.js","sources":["../src/components/organisms/horizontal-scroll-section/lib-horizontal-scroll-section.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { horizontalScrollTemplate } from './lib-horizontal-scroll-section.html';\nimport sectionCss from './lib-horizontal-scroll-section.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport type { HorizontalScrollProgressEvent } from './lib-horizontal-scroll-section.types';\n\n/**\n * lib-horizontal-scroll-section\n *\n * Convierte scroll vertical en desplazamiento horizontal sticky.\n * El bloque ocupa `scrollDuration` vh de altura — esa \"duración\"\n * determina cuánto debe bajar el usuario para ver todo el contenido.\n *\n * @prop scroll-duration — Multiplicador de vh (default 3 → 300vh)\n * @prop padding-inline — Padding lateral en vw (default 10 → 10vw)\n * @prop show-progress — Muestra barra de progreso y contador (default true)\n *\n * @fires ui-lib-scroll-progress — { detail: HorizontalScrollProgressEvent }\n *\n * @slot — Items del carrusel horizontal (flex-shrink: 0 automático)\n *\n * @cssvar --_scroll-height — Sobreescribe la altura total del bloque\n * @cssvar --_gap — Gap entre items (default: calc(--lib-space-xl * 2))\n * @cssvar --_padding-inline — Padding lateral en vw (sincronizado con el prop)\n */\n@customElement('lib-horizontal-scroll-section')\nexport class LibHorizontalScrollSection extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(sectionCss)}`,\n ];\n\n /** Cuántas veces la altura del viewport dura el efecto (default: 3 → 300vh) */\n @property({ type: Number, attribute: 'scroll-duration' })\n scrollDuration = 3;\n\n /** Padding lateral en vw aplicado a ambos lados del track (default: 10) */\n @property({ type: Number, attribute: 'padding-inline' })\n paddingInline = 10;\n\n /** Muestra la barra de progreso y el contador de porcentaje */\n @property({ type: Boolean, attribute: 'show-progress' })\n showProgress = true;\n\n @query('.horizontal-content') declare private _content: HTMLElement;\n @query('.progress-fill') declare private _progressFill: HTMLElement;\n @query('.counter') declare private _counter: HTMLElement;\n\n private _ticking = false;\n private _ro: ResizeObserver | null = null;\n\n /* ── Lifecycle ── */\n override connectedCallback(): void {\n super.connectedCallback();\n window.addEventListener('scroll', this._onScroll, { passive: true });\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener('scroll', this._onScroll);\n this._ro?.disconnect();\n }\n\n override firstUpdated(): void {\n // ResizeObserver: recalcula si cambia el viewport o el contenido\n this._ro = new ResizeObserver((): void => {\n // Forzar recálculo en el siguiente frame\n if (!this._ticking) {\n requestAnimationFrame((): void => {\n this._calculate();\n this._ticking = false;\n });\n this._ticking = true;\n }\n });\n this._ro.observe(this);\n }\n\n /* ── Props → CSS custom properties ── */\n override updated(): void {\n this.style.setProperty('--_scroll-height', `${this.scrollDuration * 100}vh`);\n this.style.setProperty('--_padding-inline', String(this.paddingInline));\n }\n\n /* ── Scroll handler — con rAF throttle ── */\n private _onScroll = (): void => {\n if (this._ticking) return;\n this._ticking = true;\n requestAnimationFrame((): void => {\n this._calculate();\n this._ticking = false;\n });\n };\n\n /* ── Cálculo core ── */\n private _calculate(): void {\n if (!this._content || !this._progressFill || !this._counter) return;\n\n const rect = this.getBoundingClientRect();\n const scrollable = rect.height - window.innerHeight;\n\n // Solo actualiza mientras el bloque está sticky en pantalla\n if (rect.top > 0 || rect.bottom < window.innerHeight) return;\n\n const scrolled = -rect.top;\n const progress = Math.min(Math.max(scrolled / scrollable, 0), 1);\n\n // maxMove: cuántos px debe desplazarse el track.\n // scrollWidth incluye el padding-left; el padding-right se añade manualmente\n // porque CSS no lo suma al scrollWidth del flex container.\n const paddingRight = window.innerWidth * (this.paddingInline / 100);\n const maxMove = this._content.scrollWidth - window.innerWidth + paddingRight;\n\n // Mutar el DOM directamente — sin Lit reactivity para mantener 60fps\n this._content.style.transform = `translateX(-${progress * maxMove}px)`;\n this._progressFill.style.width = `${progress * 100}%`;\n this._counter.textContent = `${Math.round(progress * 100)}%`;\n\n // Emitir evento solo cuando hay cambio real (evita flooding)\n this.dispatchEvent(new CustomEvent<HorizontalScrollProgressEvent>(\n 'ui-lib-scroll-progress',\n {\n detail: { progress, percent: Math.round(progress * 100) },\n bubbles: true,\n composed: true,\n },\n ));\n }\n\n protected override render(): TemplateResult {\n return horizontalScrollTemplate(this);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-horizontal-scroll-section': LibHorizontalScrollSection;\n }\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index79.js","sources":["../src/components/organisms/sidebar/lib-sidebar.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport '../../atoms/icon/lib-icon.component';\nimport type { SidebarLink } from '../../../types';\nimport { sidebarTemplate } from './lib-sidebar.html';\nimport componentCss from './lib-sidebar.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport { SidebarVariant } from './lib-sidebar.types';\n\nexport interface UiSidebarNavigateDetail {\n id: string;\n previous: string;\n}\n\n/**\n * lib-sidebar — Shibui UI · SG-65\n *\n * Estructura: Header(56px logo) · [Search] · Nav · User footer\n *\n * @prop logo-mark — Carácter del logo mark (default '渋')\n * @prop brand-name — Nombre de marca (default 'shibui')\n * @prop show-search — Muestra la barra de búsqueda\n * @prop search-placeholder — Placeholder del input de búsqueda\n * @prop links — Array de SidebarLink[]\n * @prop active — ID del link activo\n * @prop user-name — Nombre del usuario en el footer\n * @prop user-role — Rol/plan del usuario\n * @prop user-avatar — URL de imagen del avatar\n * @prop user-initials — Iniciales de fallback\n * @prop show-user-action — Muestra el botón de acción (logout icon)\n * @prop variant — 'dark'(default) | 'light' | 'kintsugi' | 'glitch'\n * @prop collapsed — Estado inicial colapsado\n *\n * @method toggle() — Alterna collapsed/expanded (llamar desde topbar)\n * @method navigateTo() — Navega programáticamente a un id\n *\n * @fires ui-lib-navigate — { id, previous }\n * @fires ui-lib-user-action — void (clic en botón de acción)\n * @fires ui-lib-search — { query: string }\n */\n@customElement('lib-sidebar')\nexport class LibSidebar extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(componentCss)}`,\n ];\n\n /* ── Header ── */\n @property({ type: String, attribute: 'logo-mark' })\n logoMark = '渋';\n\n @property({ type: String, attribute: 'brand-name' })\n brandName = 'shibui';\n\n /* ── Search ── */\n @property({ type: Boolean, attribute: 'show-search', reflect: true })\n showSearch = false;\n\n @property({ type: String, attribute: 'search-placeholder' })\n searchPlaceholder = 'Buscar…';\n\n /* ── Nav ── */\n @property({ type: Array })\n links: SidebarLink[] = [];\n\n @property({ type: String, reflect: true })\n active = '';\n\n /* ── User footer ── */\n @property({ type: String, attribute: 'user-name' })\n userName = '';\n\n @property({ type: String, attribute: 'user-role' })\n userRole = '';\n\n @property({ type: String, attribute: 'user-avatar' })\n userAvatar = '';\n\n @property({ type: String, attribute: 'user-initials' })\n userInitials = '';\n\n @property({ type: Boolean, attribute: 'show-user-action' })\n showUserAction = false;\n\n /* ── Variant & behavior ── */\n @property({ type: String, reflect: true })\n variant: SidebarVariant = 'dark';\n\n @property({ type: Boolean, reflect: true })\n collapsed = false;\n\n /* ── Internal state ── */\n @state() private _mobileOpen = false;\n\n /* ── Queries ── */\n @query('.sb-indicator') declare private _indicator: HTMLElement;\n @query('.sb-nav') declare private _nav: HTMLElement;\n\n /* ── Lifecycle ── */\n override updated(changed: Map<string, unknown>): void {\n if (changed.has('active') || changed.has('links')) {\n this._moveIndicator();\n }\n }\n\n /* ── Render ── */\n override render(): TemplateResult {\n return sidebarTemplate({\n logoMark: this.logoMark,\n brandName: this.brandName,\n showSearch: this.showSearch,\n searchPlaceholder: this.searchPlaceholder,\n links: this.links,\n active: this.active,\n userName: this.userName,\n userRole: this.userRole,\n userAvatar: this.userAvatar,\n userInitials: this.userInitials,\n showUserAction: this.showUserAction,\n variant: this.variant,\n collapsed: this.collapsed,\n mobileOpen: this._mobileOpen,\n onLinkClick: this._handleLink.bind(this),\n onUserAction: this._handleUserAction.bind(this),\n onSearchInput: this._handleSearch.bind(this),\n onOverlayClick: () => { this._mobileOpen = false; },\n onToggleClick: () => { this._mobileOpen = !this._mobileOpen; },\n });\n }\n\n /* ── Sliding indicator ── */\n private _moveIndicator(): void {\n requestAnimationFrame(() => {\n const nav = this._nav;\n const ind = this._indicator;\n if (!nav || !ind) return;\n\n const btn = nav.querySelector<HTMLElement>('.sb-link.is-active');\n if (!btn) { ind.classList.remove('visible'); return; }\n\n const navTop = nav.getBoundingClientRect().top;\n const btnRect = btn.getBoundingClientRect();\n\n ind.style.top = `${btnRect.top - navTop + nav.scrollTop}px`;\n ind.style.height = `${btnRect.height}px`;\n ind.classList.add('visible');\n });\n }\n\n /* ── Handlers ── */\n private _handleLink(id: string): void {\n const previous = this.active;\n this.active = id;\n this.dispatchEvent(new CustomEvent<UiSidebarNavigateDetail>('ui-lib-navigate', {\n detail: { id, previous },\n bubbles: true, composed: true,\n }));\n if (this._mobileOpen) this._mobileOpen = false;\n }\n\n private _handleUserAction(): void {\n this.dispatchEvent(new CustomEvent('ui-lib-user-action', {\n bubbles: true, composed: true,\n }));\n }\n\n private _handleSearch(query: string): void {\n this.dispatchEvent(new CustomEvent('ui-lib-search', {\n detail: { query },\n bubbles: true, composed: true,\n }));\n }\n\n /* ── Public API ── */\n\n /** Alterna collapsed ↔ expanded. Llamar desde el botón hamburger de la topbar. */\n toggle(): void { this.collapsed = !this.collapsed; }\n\n /** Expande el sidebar */\n expand(): void { this.collapsed = false; }\n\n /** Colapsa el sidebar a icon rail */\n collapse(): void { this.collapsed = true; }\n\n /** Navega programáticamente */\n navigateTo(id: string): void { this._handleLink(id); }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-sidebar': LibSidebar;\n }\n}"],"names":["query"],"mappings":"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"}
package/dist/index8.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { unsafeCSS, css, LitElement } from "lit";
2
2
  import { property, customElement } from "lit/decorators.js";
3
- import textListCss from "./index203.js";
3
+ import { badgeTemplate } from "./index275.js";
4
+ import badgeCss from "./index276.js";
4
5
  import sharedTokens from "./index196.js";
5
- import { textListTemplate } from "./index204.js";
6
6
  var __defProp = Object.defineProperty;
7
7
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
8
  var __decorateClass = (decorators, target, key, kind) => {
@@ -13,149 +13,47 @@ var __decorateClass = (decorators, target, key, kind) => {
13
13
  if (kind && result) __defProp(target, key, result);
14
14
  return result;
15
15
  };
16
- let LibTextList = class extends LitElement {
16
+ let LibBadge = class extends LitElement {
17
17
  constructor() {
18
18
  super(...arguments);
19
- this.family = "ul";
20
- this.items = [];
21
- this.marker = "default";
22
- this.counter = "decimal";
19
+ this.variant = "default";
23
20
  this.size = "md";
24
- this.uiItems = [];
25
- this.divided = false;
26
- this.bordered = false;
27
- this.inset = false;
28
- this.interactive = false;
29
- this.dlItems = [];
30
- this.dlLayout = "inline";
31
- this.dlDivided = false;
32
- this.dark = false;
33
- this.loading = false;
34
- this.skeletonCount = 4;
21
+ this.dot = false;
22
+ this.pill = false;
35
23
  }
36
- /* ── Handlers ── */
37
- _handleRowClick(item) {
38
- this.dispatchEvent(
39
- new CustomEvent("ui-lib-row-click", {
40
- detail: { key: item.key, item },
41
- bubbles: true,
42
- composed: true
43
- })
44
- );
45
- }
46
- _handleToggle(item, value) {
47
- this.dispatchEvent(
48
- new CustomEvent("ui-lib-toggle", {
49
- detail: { key: item.key, value },
50
- bubbles: true,
51
- composed: true
52
- })
53
- );
54
- }
55
- /* ── Render ── */
56
24
  render() {
57
- if (this.loading && (this.family === "ul" || this.family === "ol")) {
58
- const skeletons = Array.from(
59
- { length: this.skeletonCount },
60
- (_, i) => ({ label: `skeleton-${i}` })
61
- );
62
- return textListTemplate({
63
- family: this.family,
64
- contentItems: skeletons,
65
- marker: "default",
66
- counter: this.counter,
67
- size: this.size,
68
- uiItems: [],
69
- divided: this.divided,
70
- bordered: this.bordered,
71
- inset: this.inset,
72
- interactive: this.interactive,
73
- dark: this.dark,
74
- dlItems: [],
75
- dlLayout: this.dlLayout,
76
- dlDivided: this.dlDivided,
77
- onRowClick: () => {
78
- },
79
- onToggle: () => {
80
- }
81
- });
82
- }
83
- return textListTemplate({
84
- family: this.family,
85
- contentItems: this.items,
86
- marker: this.marker,
87
- counter: this.counter,
25
+ return badgeTemplate({
26
+ variant: this.variant,
88
27
  size: this.size,
89
- uiItems: this.uiItems,
90
- divided: this.divided,
91
- bordered: this.bordered,
92
- inset: this.inset,
93
- interactive: this.interactive,
94
- dark: this.dark,
95
- dlItems: this.dlItems,
96
- dlLayout: this.dlLayout,
97
- dlDivided: this.dlDivided,
98
- onRowClick: (item) => this._handleRowClick(item),
99
- onToggle: (item, v) => this._handleToggle(item, v)
28
+ dot: this.dot,
29
+ pill: this.pill
100
30
  });
101
31
  }
102
32
  };
103
- LibTextList.styles = [
104
- css`${unsafeCSS(sharedTokens)}`,
105
- css`${unsafeCSS(textListCss)}`
33
+ LibBadge.styles = [
34
+ css`
35
+ ${unsafeCSS(sharedTokens)}
36
+ `,
37
+ css`
38
+ ${unsafeCSS(badgeCss)}
39
+ `
106
40
  ];
107
41
  __decorateClass([
108
42
  property({ type: String, reflect: true })
109
- ], LibTextList.prototype, "family", 2);
110
- __decorateClass([
111
- property({ type: Array })
112
- ], LibTextList.prototype, "items", 2);
113
- __decorateClass([
114
- property({ type: String, reflect: true })
115
- ], LibTextList.prototype, "marker", 2);
43
+ ], LibBadge.prototype, "variant", 2);
116
44
  __decorateClass([
117
45
  property({ type: String, reflect: true })
118
- ], LibTextList.prototype, "counter", 2);
119
- __decorateClass([
120
- property({ type: String, reflect: true })
121
- ], LibTextList.prototype, "size", 2);
122
- __decorateClass([
123
- property({ type: Array, attribute: "ui-items" })
124
- ], LibTextList.prototype, "uiItems", 2);
125
- __decorateClass([
126
- property({ type: Boolean, reflect: true })
127
- ], LibTextList.prototype, "divided", 2);
46
+ ], LibBadge.prototype, "size", 2);
128
47
  __decorateClass([
129
48
  property({ type: Boolean, reflect: true })
130
- ], LibTextList.prototype, "bordered", 2);
49
+ ], LibBadge.prototype, "dot", 2);
131
50
  __decorateClass([
132
51
  property({ type: Boolean, reflect: true })
133
- ], LibTextList.prototype, "inset", 2);
134
- __decorateClass([
135
- property({ type: Boolean, reflect: true })
136
- ], LibTextList.prototype, "interactive", 2);
137
- __decorateClass([
138
- property({ type: Array, attribute: "dl-items" })
139
- ], LibTextList.prototype, "dlItems", 2);
140
- __decorateClass([
141
- property({ type: String, reflect: true, attribute: "dl-layout" })
142
- ], LibTextList.prototype, "dlLayout", 2);
143
- __decorateClass([
144
- property({ type: Boolean, reflect: true, attribute: "dl-divided" })
145
- ], LibTextList.prototype, "dlDivided", 2);
146
- __decorateClass([
147
- property({ type: Boolean, reflect: true })
148
- ], LibTextList.prototype, "dark", 2);
149
- __decorateClass([
150
- property({ type: Boolean, reflect: true })
151
- ], LibTextList.prototype, "loading", 2);
152
- __decorateClass([
153
- property({ type: Number, attribute: "skeleton-count" })
154
- ], LibTextList.prototype, "skeletonCount", 2);
155
- LibTextList = __decorateClass([
156
- customElement("lib-text-list")
157
- ], LibTextList);
52
+ ], LibBadge.prototype, "pill", 2);
53
+ LibBadge = __decorateClass([
54
+ customElement("lib-badge")
55
+ ], LibBadge);
158
56
  export {
159
- LibTextList
57
+ LibBadge
160
58
  };
161
59
  //# sourceMappingURL=index8.js.map