se-design 1.0.90 → 1.0.91

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 (438) hide show
  1. package/dist/assets/style.css +1 -1
  2. package/dist/components/NLSearch/ClearAiFiltersBar.d.ts +21 -0
  3. package/dist/components/NLSearch/NLDynamicChip.d.ts +26 -0
  4. package/dist/components/NLSearch/NLSearchInput.d.ts +46 -0
  5. package/dist/components/NLSearch/index.d.ts +6 -0
  6. package/dist/components/index.d.ts +2 -0
  7. package/dist/index.js +147 -140
  8. package/dist/index.js.map +1 -1
  9. package/dist/index100.js +1 -1
  10. package/dist/index100.js.map +1 -1
  11. package/dist/index101.js +1 -1
  12. package/dist/index101.js.map +1 -1
  13. package/dist/index102.js +1 -1
  14. package/dist/index102.js.map +1 -1
  15. package/dist/index103.js +1 -1
  16. package/dist/index103.js.map +1 -1
  17. package/dist/index104.js +1 -1
  18. package/dist/index104.js.map +1 -1
  19. package/dist/index105.js +1 -1
  20. package/dist/index105.js.map +1 -1
  21. package/dist/index106.js +1 -1
  22. package/dist/index106.js.map +1 -1
  23. package/dist/index107.js +1 -1
  24. package/dist/index107.js.map +1 -1
  25. package/dist/index108.js +1 -1
  26. package/dist/index108.js.map +1 -1
  27. package/dist/index109.js +1 -1
  28. package/dist/index109.js.map +1 -1
  29. package/dist/index11.js +1 -1
  30. package/dist/index110.js +1 -1
  31. package/dist/index110.js.map +1 -1
  32. package/dist/index111.js +1 -1
  33. package/dist/index111.js.map +1 -1
  34. package/dist/index112.js +1 -1
  35. package/dist/index112.js.map +1 -1
  36. package/dist/index113.js +1 -1
  37. package/dist/index113.js.map +1 -1
  38. package/dist/index114.js +1 -1
  39. package/dist/index114.js.map +1 -1
  40. package/dist/index115.js +2 -2
  41. package/dist/index115.js.map +1 -1
  42. package/dist/index116.js +2 -2
  43. package/dist/index116.js.map +1 -1
  44. package/dist/index117.js +1 -1
  45. package/dist/index117.js.map +1 -1
  46. package/dist/index118.js +1 -1
  47. package/dist/index118.js.map +1 -1
  48. package/dist/index119.js +2 -2
  49. package/dist/index119.js.map +1 -1
  50. package/dist/index12.js +3 -3
  51. package/dist/index120.js +1 -1
  52. package/dist/index120.js.map +1 -1
  53. package/dist/index121.js +2 -2
  54. package/dist/index121.js.map +1 -1
  55. package/dist/index122.js +1 -1
  56. package/dist/index122.js.map +1 -1
  57. package/dist/index123.js +1 -1
  58. package/dist/index123.js.map +1 -1
  59. package/dist/index124.js +2 -2
  60. package/dist/index124.js.map +1 -1
  61. package/dist/index125.js +2 -2
  62. package/dist/index125.js.map +1 -1
  63. package/dist/index126.js +1 -1
  64. package/dist/index126.js.map +1 -1
  65. package/dist/index127.js +2 -2
  66. package/dist/index127.js.map +1 -1
  67. package/dist/index128.js +2 -2
  68. package/dist/index128.js.map +1 -1
  69. package/dist/index129.js +2 -2
  70. package/dist/index129.js.map +1 -1
  71. package/dist/index13.js +3 -3
  72. package/dist/index130.js +1 -1
  73. package/dist/index130.js.map +1 -1
  74. package/dist/index131.js +2 -2
  75. package/dist/index131.js.map +1 -1
  76. package/dist/index132.js +2 -2
  77. package/dist/index132.js.map +1 -1
  78. package/dist/index133.js +2 -2
  79. package/dist/index133.js.map +1 -1
  80. package/dist/index134.js +1 -1
  81. package/dist/index134.js.map +1 -1
  82. package/dist/index135.js +1 -1
  83. package/dist/index135.js.map +1 -1
  84. package/dist/index136.js +2 -2
  85. package/dist/index136.js.map +1 -1
  86. package/dist/index137.js +2 -2
  87. package/dist/index137.js.map +1 -1
  88. package/dist/index138.js +2 -2
  89. package/dist/index138.js.map +1 -1
  90. package/dist/index139.js +1 -1
  91. package/dist/index139.js.map +1 -1
  92. package/dist/index140.js +1 -1
  93. package/dist/index140.js.map +1 -1
  94. package/dist/index141.js +2 -2
  95. package/dist/index141.js.map +1 -1
  96. package/dist/index142.js +2 -2
  97. package/dist/index142.js.map +1 -1
  98. package/dist/index143.js +1 -1
  99. package/dist/index143.js.map +1 -1
  100. package/dist/index144.js +1 -1
  101. package/dist/index144.js.map +1 -1
  102. package/dist/index145.js +1 -1
  103. package/dist/index145.js.map +1 -1
  104. package/dist/index146.js +1 -1
  105. package/dist/index146.js.map +1 -1
  106. package/dist/index147.js +1 -1
  107. package/dist/index147.js.map +1 -1
  108. package/dist/index148.js +2 -2
  109. package/dist/index148.js.map +1 -1
  110. package/dist/index149.js +1 -1
  111. package/dist/index149.js.map +1 -1
  112. package/dist/index150.js +1 -1
  113. package/dist/index150.js.map +1 -1
  114. package/dist/index151.js +1 -1
  115. package/dist/index151.js.map +1 -1
  116. package/dist/index152.js +2 -2
  117. package/dist/index152.js.map +1 -1
  118. package/dist/index153.js +1 -1
  119. package/dist/index153.js.map +1 -1
  120. package/dist/index154.js +1 -1
  121. package/dist/index154.js.map +1 -1
  122. package/dist/index155.js +1 -1
  123. package/dist/index155.js.map +1 -1
  124. package/dist/index156.js +1 -1
  125. package/dist/index156.js.map +1 -1
  126. package/dist/index157.js +2 -2
  127. package/dist/index157.js.map +1 -1
  128. package/dist/index158.js +2 -2
  129. package/dist/index158.js.map +1 -1
  130. package/dist/index159.js +1 -1
  131. package/dist/index159.js.map +1 -1
  132. package/dist/index16.js +3 -3
  133. package/dist/index160.js +2 -2
  134. package/dist/index160.js.map +1 -1
  135. package/dist/index161.js +1 -1
  136. package/dist/index161.js.map +1 -1
  137. package/dist/index162.js +2 -2
  138. package/dist/index162.js.map +1 -1
  139. package/dist/index163.js +1 -1
  140. package/dist/index163.js.map +1 -1
  141. package/dist/index164.js +2 -2
  142. package/dist/index164.js.map +1 -1
  143. package/dist/index165.js +2 -2
  144. package/dist/index165.js.map +1 -1
  145. package/dist/index166.js +1 -1
  146. package/dist/index166.js.map +1 -1
  147. package/dist/index167.js +1 -1
  148. package/dist/index167.js.map +1 -1
  149. package/dist/index168.js +1 -1
  150. package/dist/index168.js.map +1 -1
  151. package/dist/index169.js +1 -1
  152. package/dist/index169.js.map +1 -1
  153. package/dist/index170.js +1 -1
  154. package/dist/index170.js.map +1 -1
  155. package/dist/index171.js +1 -1
  156. package/dist/index171.js.map +1 -1
  157. package/dist/index172.js +1 -1
  158. package/dist/index172.js.map +1 -1
  159. package/dist/index173.js +1 -1
  160. package/dist/index173.js.map +1 -1
  161. package/dist/index174.js +1 -1
  162. package/dist/index174.js.map +1 -1
  163. package/dist/index175.js +1 -1
  164. package/dist/index175.js.map +1 -1
  165. package/dist/index176.js +1 -1
  166. package/dist/index176.js.map +1 -1
  167. package/dist/index177.js +1 -1
  168. package/dist/index177.js.map +1 -1
  169. package/dist/index178.js +1 -1
  170. package/dist/index178.js.map +1 -1
  171. package/dist/index179.js +1 -1
  172. package/dist/index179.js.map +1 -1
  173. package/dist/index18.js +3 -3
  174. package/dist/index180.js +1 -1
  175. package/dist/index180.js.map +1 -1
  176. package/dist/index181.js +1 -1
  177. package/dist/index181.js.map +1 -1
  178. package/dist/index182.js +1 -1
  179. package/dist/index182.js.map +1 -1
  180. package/dist/index183.js +1 -1
  181. package/dist/index183.js.map +1 -1
  182. package/dist/index184.js +1 -1
  183. package/dist/index184.js.map +1 -1
  184. package/dist/index185.js +1 -1
  185. package/dist/index185.js.map +1 -1
  186. package/dist/index186.js +1 -1
  187. package/dist/index186.js.map +1 -1
  188. package/dist/index187.js +2 -2
  189. package/dist/index187.js.map +1 -1
  190. package/dist/index188.js +1 -1
  191. package/dist/index188.js.map +1 -1
  192. package/dist/index189.js +1 -1
  193. package/dist/index189.js.map +1 -1
  194. package/dist/index19.js +5 -5
  195. package/dist/index190.js +1 -1
  196. package/dist/index190.js.map +1 -1
  197. package/dist/index191.js +2 -2
  198. package/dist/index191.js.map +1 -1
  199. package/dist/index192.js +1 -1
  200. package/dist/index192.js.map +1 -1
  201. package/dist/index193.js +1 -1
  202. package/dist/index193.js.map +1 -1
  203. package/dist/index194.js +1 -1
  204. package/dist/index194.js.map +1 -1
  205. package/dist/index195.js +2 -2
  206. package/dist/index195.js.map +1 -1
  207. package/dist/index196.js +1 -1
  208. package/dist/index196.js.map +1 -1
  209. package/dist/index197.js +1 -1
  210. package/dist/index197.js.map +1 -1
  211. package/dist/index198.js +1 -1
  212. package/dist/index198.js.map +1 -1
  213. package/dist/index199.js +1 -1
  214. package/dist/index199.js.map +1 -1
  215. package/dist/index200.js +1 -1
  216. package/dist/index200.js.map +1 -1
  217. package/dist/index201.js +1 -1
  218. package/dist/index201.js.map +1 -1
  219. package/dist/index202.js +2 -2
  220. package/dist/index202.js.map +1 -1
  221. package/dist/index203.js +1 -1
  222. package/dist/index203.js.map +1 -1
  223. package/dist/index204.js +2 -2
  224. package/dist/index204.js.map +1 -1
  225. package/dist/index205.js +2 -149
  226. package/dist/index205.js.map +1 -1
  227. package/dist/index206.js +2 -9
  228. package/dist/index206.js.map +1 -1
  229. package/dist/index207.js +2 -6
  230. package/dist/index207.js.map +1 -1
  231. package/dist/index208.js +2 -43
  232. package/dist/index208.js.map +1 -1
  233. package/dist/index209.js +149 -21
  234. package/dist/index209.js.map +1 -1
  235. package/dist/index210.js +12 -0
  236. package/dist/index210.js.map +1 -0
  237. package/dist/index211.js +9 -0
  238. package/dist/index211.js.map +1 -0
  239. package/dist/index212.js +46 -0
  240. package/dist/index212.js.map +1 -0
  241. package/dist/index213.js +24 -0
  242. package/dist/index213.js.map +1 -0
  243. package/dist/{index216.js → index220.js} +1 -1
  244. package/dist/{index216.js.map → index220.js.map} +1 -1
  245. package/dist/{index217.js → index221.js} +3 -3
  246. package/dist/{index217.js.map → index221.js.map} +1 -1
  247. package/dist/{index224.js → index228.js} +1 -1
  248. package/dist/{index224.js.map → index228.js.map} +1 -1
  249. package/dist/index23.js +1 -1
  250. package/dist/{index226.js → index230.js} +1 -1
  251. package/dist/{index226.js.map → index230.js.map} +1 -1
  252. package/dist/{index234.js → index238.js} +1 -1
  253. package/dist/{index234.js.map → index238.js.map} +1 -1
  254. package/dist/index24.js +3 -3
  255. package/dist/{index237.js → index241.js} +1 -1
  256. package/dist/{index237.js.map → index241.js.map} +1 -1
  257. package/dist/index250.js +168 -8
  258. package/dist/index250.js.map +1 -1
  259. package/dist/index251.js +3 -9
  260. package/dist/index251.js.map +1 -1
  261. package/dist/index253.js +18 -169
  262. package/dist/index253.js.map +1 -1
  263. package/dist/index254.js +10 -11
  264. package/dist/index254.js.map +1 -1
  265. package/dist/index255.js +8 -4
  266. package/dist/index255.js.map +1 -1
  267. package/dist/index256.js +4 -5
  268. package/dist/index256.js.map +1 -1
  269. package/dist/index257.js +168 -36
  270. package/dist/index257.js.map +1 -1
  271. package/dist/index258.js +11 -2
  272. package/dist/index258.js.map +1 -1
  273. package/dist/index259.js +5 -7
  274. package/dist/index259.js.map +1 -1
  275. package/dist/index26.js +6 -6
  276. package/dist/index260.js +5 -326
  277. package/dist/index260.js.map +1 -1
  278. package/dist/index261.js +36 -48
  279. package/dist/index261.js.map +1 -1
  280. package/dist/index262.js +2 -2
  281. package/dist/index263.js +7 -75
  282. package/dist/index263.js.map +1 -1
  283. package/dist/index264.js +308 -74
  284. package/dist/index264.js.map +1 -1
  285. package/dist/index265.js +45 -47
  286. package/dist/index265.js.map +1 -1
  287. package/dist/index266.js +2 -8
  288. package/dist/index266.js.map +1 -1
  289. package/dist/index267.js +75 -4
  290. package/dist/index267.js.map +1 -1
  291. package/dist/index268.js +89 -48
  292. package/dist/index268.js.map +1 -1
  293. package/dist/index269.js +52 -2
  294. package/dist/index269.js.map +1 -1
  295. package/dist/index270.js +8 -2
  296. package/dist/index270.js.map +1 -1
  297. package/dist/index271.js +8 -0
  298. package/dist/index271.js.map +1 -0
  299. package/dist/index272.js +55 -0
  300. package/dist/index272.js.map +1 -0
  301. package/dist/index273.js +5 -0
  302. package/dist/index273.js.map +1 -0
  303. package/dist/index274.js +5 -0
  304. package/dist/index274.js.map +1 -0
  305. package/dist/index28.js +1 -1
  306. package/dist/index29.js +4 -4
  307. package/dist/index3.js +3 -3
  308. package/dist/index30.js +3 -3
  309. package/dist/index31.js +4 -4
  310. package/dist/index32.js +1 -1
  311. package/dist/index34.js +1 -1
  312. package/dist/index36.js +4 -4
  313. package/dist/index37.js +5 -5
  314. package/dist/index38.js +3 -3
  315. package/dist/index39.js +5 -5
  316. package/dist/index4.js +4 -4
  317. package/dist/index40.js +4 -4
  318. package/dist/index41.js +1 -1
  319. package/dist/index44.js +2 -2
  320. package/dist/index46.js +4 -4
  321. package/dist/index47.js +198 -195
  322. package/dist/index47.js.map +1 -1
  323. package/dist/index48.js +40 -38
  324. package/dist/index48.js.map +1 -1
  325. package/dist/index49.js +36 -36
  326. package/dist/index49.js.map +1 -1
  327. package/dist/index51.js +190 -78
  328. package/dist/index51.js.map +1 -1
  329. package/dist/index52.js +36 -459
  330. package/dist/index52.js.map +1 -1
  331. package/dist/index53.js +36 -98
  332. package/dist/index53.js.map +1 -1
  333. package/dist/index54.js +151 -41
  334. package/dist/index54.js.map +1 -1
  335. package/dist/index55.js +84 -36
  336. package/dist/index55.js.map +1 -1
  337. package/dist/index56.js +455 -86
  338. package/dist/index56.js.map +1 -1
  339. package/dist/index57.js +96 -161
  340. package/dist/index57.js.map +1 -1
  341. package/dist/index58.js +40 -146
  342. package/dist/index58.js.map +1 -1
  343. package/dist/index59.js +38 -33
  344. package/dist/index59.js.map +1 -1
  345. package/dist/index6.js +125 -125
  346. package/dist/index60.js +89 -83
  347. package/dist/index60.js.map +1 -1
  348. package/dist/index61.js +157 -113
  349. package/dist/index61.js.map +1 -1
  350. package/dist/index62.js +143 -72
  351. package/dist/index62.js.map +1 -1
  352. package/dist/index63.js +33 -152
  353. package/dist/index63.js.map +1 -1
  354. package/dist/index64.js +80 -312
  355. package/dist/index64.js.map +1 -1
  356. package/dist/index65.js +118 -46
  357. package/dist/index65.js.map +1 -1
  358. package/dist/index66.js +73 -139
  359. package/dist/index66.js.map +1 -1
  360. package/dist/index67.js +152 -12
  361. package/dist/index67.js.map +1 -1
  362. package/dist/index68.js +316 -53
  363. package/dist/index68.js.map +1 -1
  364. package/dist/index69.js +45 -111
  365. package/dist/index69.js.map +1 -1
  366. package/dist/index7.js +2 -2
  367. package/dist/index70.js +143 -18
  368. package/dist/index70.js.map +1 -1
  369. package/dist/index71.js +9 -63
  370. package/dist/index71.js.map +1 -1
  371. package/dist/index72.js +54 -26
  372. package/dist/index72.js.map +1 -1
  373. package/dist/index73.js +106 -101
  374. package/dist/index73.js.map +1 -1
  375. package/dist/index74.js +18 -61
  376. package/dist/index74.js.map +1 -1
  377. package/dist/index75.js +63 -18
  378. package/dist/index75.js.map +1 -1
  379. package/dist/index76.js +24 -168
  380. package/dist/index76.js.map +1 -1
  381. package/dist/index77.js +108 -18
  382. package/dist/index77.js.map +1 -1
  383. package/dist/index78.js +61 -10
  384. package/dist/index78.js.map +1 -1
  385. package/dist/index79.js +21 -5
  386. package/dist/index79.js.map +1 -1
  387. package/dist/index80.js +167 -58
  388. package/dist/index80.js.map +1 -1
  389. package/dist/index81.js +18 -27
  390. package/dist/index81.js.map +1 -1
  391. package/dist/index82.js +10 -10
  392. package/dist/index82.js.map +1 -1
  393. package/dist/index83.js +8 -0
  394. package/dist/index83.js.map +1 -0
  395. package/dist/index84.js +62 -2
  396. package/dist/index84.js.map +1 -1
  397. package/dist/index85.js +27 -2
  398. package/dist/index85.js.map +1 -1
  399. package/dist/index86.js +11 -2
  400. package/dist/index86.js.map +1 -1
  401. package/dist/index88.js +2 -2
  402. package/dist/index88.js.map +1 -1
  403. package/dist/index89.js +2 -2
  404. package/dist/index89.js.map +1 -1
  405. package/dist/index9.js +4 -4
  406. package/dist/index90.js +1 -1
  407. package/dist/index90.js.map +1 -1
  408. package/dist/index91.js +2 -2
  409. package/dist/index91.js.map +1 -1
  410. package/dist/index92.js +1 -1
  411. package/dist/index92.js.map +1 -1
  412. package/dist/index93.js +1 -1
  413. package/dist/index93.js.map +1 -1
  414. package/dist/index94.js +1 -1
  415. package/dist/index94.js.map +1 -1
  416. package/dist/index95.js +1 -1
  417. package/dist/index95.js.map +1 -1
  418. package/dist/index96.js +1 -1
  419. package/dist/index96.js.map +1 -1
  420. package/dist/index97.js +1 -1
  421. package/dist/index97.js.map +1 -1
  422. package/dist/index98.js +1 -1
  423. package/dist/index98.js.map +1 -1
  424. package/dist/index99.js +1 -1
  425. package/dist/index99.js.map +1 -1
  426. package/package.json +1 -1
  427. package/dist/index246.js +0 -173
  428. package/dist/index246.js.map +0 -1
  429. package/dist/index247.js +0 -7
  430. package/dist/index247.js.map +0 -1
  431. package/dist/index249.js +0 -22
  432. package/dist/index249.js.map +0 -1
  433. package/dist/index252.js +0 -8
  434. package/dist/index252.js.map +0 -1
  435. package/dist/index50.js +0 -152
  436. package/dist/index50.js.map +0 -1
  437. package/dist/index87.js +0 -5
  438. package/dist/index87.js.map +0 -1
package/dist/index60.js CHANGED
@@ -1,89 +1,95 @@
1
- import e, { useRef as S, useState as f } from "react";
2
- import { CustomModal as T } from "./index13.js";
3
- import { Icon as v } from "./index6.js";
1
+ import a from "react";
4
2
  /* empty css */
5
- const C = ({
6
- children: c = null,
7
- title: n = "",
8
- onClose: s = () => {
9
- },
10
- showCloseIcon: l = !1,
11
- showBackButton: a = !1,
12
- onBack: m = () => {
13
- },
14
- className: i = "",
15
- automationId: r = "",
16
- minHeight: u = "auto"
3
+ const n = ({
4
+ element: e,
5
+ animationDuration: d,
6
+ baseColor: s,
7
+ highlightColor: m
17
8
  }) => {
18
- const t = S(null), [g, p] = f(0), [E, h] = f(0), [b, Y] = f(!1), k = (o) => {
19
- p(o.touches[0].clientY), h(o.touches[0].clientY), Y(!0);
20
- }, N = (o) => {
21
- if (!b) return;
22
- const d = o.touches[0].clientY, x = d - g;
23
- x > 0 && (h(d), t.current && (t.current.style.transform = `translateY(${x}px)`));
24
- }, y = () => {
25
- if (!b) return;
26
- E - g > 60 ? s() : t.current && (t.current.style.transform = "translateY(0)"), Y(!1), p(0), h(0);
27
- };
28
- return /* @__PURE__ */ e.createElement("div", {
29
- ref: t,
30
- className: `se-design-bottom-sheet relative h-max max-h-[98vh] rounded-t-2xl flex flex-col pt-5 ${i}`,
31
- onClick: (o) => o.stopPropagation(),
32
- onTouchStart: k,
33
- onTouchMove: N,
34
- onTouchEnd: y,
35
- "data-automation-id": r,
36
- style: {
37
- minHeight: u
38
- }
39
- }, (n || a) && /* @__PURE__ */ e.createElement("div", {
40
- className: "se-design-bottom-sheet-header flex items-center justify-left gap-3 mr-6 px-4"
41
- }, a && /* @__PURE__ */ e.createElement(v, {
42
- name: "back",
43
- stroke: "var(--color-gray-700)",
44
- onClick: m,
45
- className: "se-design-bottom-sheet-back-icon cursor-pointer",
46
- automationId: `${r}-back-icon`
47
- }), n && /* @__PURE__ */ e.createElement("div", {
48
- className: "se-design-bottom-sheet-title text-lg font-semibold"
49
- }, n)), l && /* @__PURE__ */ e.createElement(v, {
50
- name: "close",
51
- onClick: s,
52
- className: "se-design-bottom-sheet-close-icon absolute top-6 right-4 cursor-pointer z-10",
53
- automationId: `${r}-close-icon`
54
- }), /* @__PURE__ */ e.createElement("div", {
55
- className: "se-design-bottom-sheet-content px-4 pb-5 flex-1 min-h-0 overflow-y-auto"
56
- }, c));
57
- }, I = ({
58
- isOpen: c = !1,
59
- title: n = "",
60
- onClose: s = () => {
61
- },
62
- children: l = null,
63
- showCloseIcon: a = !0,
64
- showBackButton: m = !1,
65
- onBack: i = () => {
66
- },
67
- className: r = "",
68
- automationId: u = "bottomsheet",
69
- minHeight: t = ""
70
- }) => /* @__PURE__ */ e.createElement(T, {
71
- isOpen: c,
72
- onClose: s,
73
- onModalClick: s,
74
- className: "custom-bottom-sheet",
75
- renderModalContent: () => /* @__PURE__ */ e.createElement(C, {
76
- title: n,
77
- onClose: s,
78
- showCloseIcon: a,
79
- showBackButton: m,
80
- onBack: i,
9
+ const i = {
10
+ width: typeof e.width == "number" ? `${e.width}px` : e.width,
11
+ height: typeof e.height == "number" ? `${e.height}px` : e.height,
12
+ borderRadius: e.borderRadius ? typeof e.borderRadius == "number" ? `${e.borderRadius}px` : e.borderRadius : void 0,
13
+ margin: e.margin,
14
+ "--shimmer-duration": `${d}s`,
15
+ "--shimmer-base-color": s,
16
+ "--shimmer-highlight-color": m
17
+ }, r = `se-design-shimmer-element se-design-shimmer-${e.type}`;
18
+ return /* @__PURE__ */ a.createElement("div", {
81
19
  className: r,
82
- automationId: u,
83
- minHeight: t
84
- }, l)
85
- });
20
+ style: i
21
+ }, e.children && e.children.map((t, p) => /* @__PURE__ */ a.createElement(n, {
22
+ key: p,
23
+ element: t,
24
+ animationDuration: d,
25
+ baseColor: s,
26
+ highlightColor: m
27
+ })));
28
+ }, y = ({
29
+ container: e,
30
+ animationDuration: d,
31
+ baseColor: s,
32
+ highlightColor: m
33
+ }) => {
34
+ const i = {
35
+ display: "flex",
36
+ flexDirection: e.direction || "column",
37
+ gap: typeof e.gap == "number" ? `${e.gap}px` : e.gap,
38
+ padding: e.padding,
39
+ margin: e.margin,
40
+ alignItems: e.alignItems,
41
+ flex: e.flex
42
+ };
43
+ return /* @__PURE__ */ a.createElement("div", {
44
+ className: `se-design-shimmer-container ${e.className || ""}`,
45
+ style: i
46
+ }, e.children.map((r, t) => r.type === "container" ? /* @__PURE__ */ a.createElement(y, {
47
+ key: t,
48
+ container: r,
49
+ animationDuration: d,
50
+ baseColor: s,
51
+ highlightColor: m
52
+ }) : /* @__PURE__ */ a.createElement(n, {
53
+ key: t,
54
+ element: r,
55
+ animationDuration: d,
56
+ baseColor: s,
57
+ highlightColor: m
58
+ })));
59
+ }, g = ({
60
+ structure: e,
61
+ className: d = "",
62
+ animationDuration: s = 3,
63
+ baseColor: m = "var(--color-gray-700)",
64
+ highlightColor: i = "var(--color-gray-600)",
65
+ width: r,
66
+ height: t
67
+ }) => {
68
+ const p = {
69
+ width: r ? typeof r == "number" ? `${r}px` : r : "100%",
70
+ height: t ? typeof t == "number" ? `${t}px` : t : "auto",
71
+ "--shimmer-duration": `${s}s`,
72
+ "--shimmer-base-color": m,
73
+ "--shimmer-highlight-color": i
74
+ };
75
+ return /* @__PURE__ */ a.createElement("div", {
76
+ className: `se-design-shimmer-loader ${d}`,
77
+ style: p
78
+ }, e.map((c, o) => c.type === "container" ? /* @__PURE__ */ a.createElement(y, {
79
+ key: o,
80
+ container: c,
81
+ animationDuration: s,
82
+ baseColor: m,
83
+ highlightColor: i
84
+ }) : /* @__PURE__ */ a.createElement(n, {
85
+ key: o,
86
+ element: c,
87
+ animationDuration: s,
88
+ baseColor: m,
89
+ highlightColor: i
90
+ })));
91
+ };
86
92
  export {
87
- I as BottomSheet
93
+ g as ShimmerLoader
88
94
  };
89
95
  //# sourceMappingURL=index60.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index60.js","sources":["../src/components/BottomSheet/index.tsx"],"sourcesContent":["import React, { FC, useState, useRef } from 'react';\nimport { CustomModal } from '../CustomModal';\nimport { Icon } from '../Icon';\n\nimport './style.scss';\n\nexport interface BottomSheetProps {\n isOpen: boolean;\n title?: string;\n onClose: () => void;\n showCloseIcon?: boolean;\n showBackButton?: boolean;\n onBack?: () => void;\n children: React.ReactNode;\n className?: string;\n automationId?: string;\n minHeight?: string;\n}\n\ninterface BottomSheetContentProps {\n title?: string;\n onClose: () => void;\n showCloseIcon?: boolean;\n showBackButton?: boolean;\n onBack?: () => void;\n children: React.ReactNode;\n className?: string;\n automationId?: string;\n minHeight?: string;\n}\n\nconst BottomSheetContent: FC<BottomSheetContentProps> = ({\n children = null,\n title = '',\n onClose = () => {},\n showCloseIcon = false,\n showBackButton = false,\n onBack = () => {},\n className = '',\n automationId = '',\n minHeight = 'auto'\n}) => {\n const contentRef = useRef<HTMLDivElement>(null);\n const [startY, setStartY] = useState<number>(0);\n const [currentY, setCurrentY] = useState<number>(0);\n const [isDragging, setIsDragging] = useState<boolean>(false);\n\n const handleTouchStart = (e: React.TouchEvent) => {\n setStartY(e.touches[0].clientY);\n setCurrentY(e.touches[0].clientY);\n setIsDragging(true);\n };\n\n const handleTouchMove = (e: React.TouchEvent) => {\n if (!isDragging) return;\n\n const touchY = e.touches[0].clientY;\n const deltaY = touchY - startY;\n\n // Only allow dragging down\n if (deltaY > 0) {\n setCurrentY(touchY);\n if (contentRef.current) {\n contentRef.current.style.transform = `translateY(${deltaY}px)`;\n }\n }\n };\n\n const handleTouchEnd = () => {\n if (!isDragging) return;\n\n const deltaY = currentY - startY;\n const threshold = 60; // pixels to swipe down to trigger close\n\n if (deltaY > threshold) {\n // Trigger close\n onClose();\n } else {\n // Reset position\n if (contentRef.current) {\n contentRef.current.style.transform = 'translateY(0)';\n }\n }\n\n setIsDragging(false);\n setStartY(0);\n setCurrentY(0);\n };\n\n return (\n <div\n ref={contentRef}\n className={`se-design-bottom-sheet relative h-max max-h-[98vh] rounded-t-2xl flex flex-col pt-5 ${className}`}\n onClick={(e) => e.stopPropagation()}\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n data-automation-id={automationId}\n style={{ minHeight }}\n >\n {(title || showBackButton) && (\n <div className=\"se-design-bottom-sheet-header flex items-center justify-left gap-3 mr-6 px-4\">\n {showBackButton && (\n <Icon\n name=\"back\"\n stroke=\"var(--color-gray-700)\"\n onClick={onBack}\n className=\"se-design-bottom-sheet-back-icon cursor-pointer\"\n automationId={`${automationId}-back-icon`}\n />\n )}\n {title && <div className=\"se-design-bottom-sheet-title text-lg font-semibold\">{title}</div>}\n </div>\n )}\n {showCloseIcon && (\n <Icon\n name=\"close\"\n onClick={onClose}\n className=\"se-design-bottom-sheet-close-icon absolute top-6 right-4 cursor-pointer z-10\"\n automationId={`${automationId}-close-icon`}\n />\n )}\n <div className=\"se-design-bottom-sheet-content px-4 pb-5 flex-1 min-h-0 overflow-y-auto\">{children}</div>\n </div>\n );\n};\n\nexport const BottomSheet: FC<BottomSheetProps> = ({\n isOpen = false,\n title = '',\n onClose = () => {},\n children = null,\n showCloseIcon = true,\n showBackButton = false,\n onBack = () => {},\n className = '',\n automationId = 'bottomsheet',\n minHeight = ''\n}) => {\n return (\n <CustomModal\n isOpen={isOpen}\n onClose={onClose}\n onModalClick={onClose}\n className=\"custom-bottom-sheet\"\n renderModalContent={() => (\n <BottomSheetContent\n title={title}\n onClose={onClose}\n showCloseIcon={showCloseIcon}\n showBackButton={showBackButton}\n onBack={onBack}\n className={className}\n automationId={automationId}\n minHeight={minHeight}\n >\n {children}\n </BottomSheetContent>\n )}\n />\n );\n};\n"],"names":["BottomSheetContent","children","title","onClose","showCloseIcon","showBackButton","onBack","className","automationId","minHeight","contentRef","useRef","startY","setStartY","useState","currentY","setCurrentY","isDragging","setIsDragging","handleTouchStart","e","touches","clientY","handleTouchMove","touchY","deltaY","current","style","transform","handleTouchEnd","React","createElement","ref","onClick","stopPropagation","onTouchStart","onTouchMove","onTouchEnd","Icon","name","stroke","BottomSheet","isOpen","CustomModal","onModalClick","renderModalContent"],"mappings":"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"}
1
+ {"version":3,"file":"index60.js","sources":["../src/components/ShimmerLoader/index.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport './style.scss';\n\nexport interface ShimmerElement {\n type: 'text' | 'rect' | 'rect-sm' | 'circle' | 'avatar' | 'image' | 'button';\n width: number | string;\n height: number | string;\n borderRadius?: number | string;\n margin?: string;\n className?: string;\n children?: ShimmerElement[];\n}\n\nexport interface ShimmerContainer {\n type: 'container';\n direction?: 'row' | 'column';\n gap?: number | string;\n padding?: string;\n margin?: string;\n alignItems?: string;\n flex?: number | string;\n className?: string;\n children: (ShimmerElement | ShimmerContainer)[];\n}\n\nexport type ShimmerStructure = (ShimmerElement | ShimmerContainer)[];\n\nexport interface ShimmerLoaderProps {\n structure: ShimmerStructure;\n className?: string;\n animationDuration?: number;\n baseColor?: string;\n highlightColor?: string;\n width?: number | string;\n height?: number | string;\n}\n\nconst ShimmerElementComponent: FC<{\n element: ShimmerElement;\n animationDuration: number;\n baseColor: string;\n highlightColor: string;\n}> = ({ element, animationDuration, baseColor, highlightColor }) => {\n const style: React.CSSProperties = {\n width: typeof element.width === 'number' ? `${element.width}px` : element.width,\n height: typeof element.height === 'number' ? `${element.height}px` : element.height,\n borderRadius: element.borderRadius\n ? typeof element.borderRadius === 'number'\n ? `${element.borderRadius}px`\n : element.borderRadius\n : undefined,\n margin: element.margin,\n '--shimmer-duration': `${animationDuration}s`,\n '--shimmer-base-color': baseColor,\n '--shimmer-highlight-color': highlightColor\n } as React.CSSProperties;\n\n const shimmerClass = `se-design-shimmer-element se-design-shimmer-${element.type}`;\n\n return (\n <div className={shimmerClass} style={style}>\n {element.children &&\n element.children.map((child, index) => (\n <ShimmerElementComponent\n key={index}\n element={child}\n animationDuration={animationDuration}\n baseColor={baseColor}\n highlightColor={highlightColor}\n />\n ))}\n </div>\n );\n};\n\nconst ShimmerContainerComponent: FC<{\n container: ShimmerContainer;\n animationDuration: number;\n baseColor: string;\n highlightColor: string;\n}> = ({ container, animationDuration, baseColor, highlightColor }) => {\n const style: React.CSSProperties = {\n display: 'flex',\n flexDirection: container.direction || 'column',\n gap: typeof container.gap === 'number' ? `${container.gap}px` : container.gap,\n padding: container.padding,\n margin: container.margin,\n alignItems: container.alignItems,\n flex: container.flex\n };\n\n return (\n <div className={`se-design-shimmer-container ${container.className || ''}`} style={style}>\n {container.children.map((element, index) =>\n element.type === 'container' ? (\n <ShimmerContainerComponent\n key={index}\n container={element}\n animationDuration={animationDuration}\n baseColor={baseColor}\n highlightColor={highlightColor}\n />\n ) : (\n <ShimmerElementComponent\n key={index}\n element={element}\n animationDuration={animationDuration}\n baseColor={baseColor}\n highlightColor={highlightColor}\n />\n )\n )}\n </div>\n );\n};\n\nexport const ShimmerLoader: FC<ShimmerLoaderProps> = ({\n structure,\n className = '',\n animationDuration = 3,\n baseColor = 'var(--color-gray-700)',\n highlightColor = 'var(--color-gray-600)',\n width,\n height\n}) => {\n const containerStyle: React.CSSProperties = {\n width: width ? (typeof width === 'number' ? `${width}px` : width) : '100%',\n height: height ? (typeof height === 'number' ? `${height}px` : height) : 'auto',\n '--shimmer-duration': `${animationDuration}s`,\n '--shimmer-base-color': baseColor,\n '--shimmer-highlight-color': highlightColor\n } as React.CSSProperties;\n\n return (\n <div className={`se-design-shimmer-loader ${className}`} style={containerStyle}>\n {structure.map((item, index) => {\n if (item.type === 'container') {\n return (\n <ShimmerContainerComponent\n key={index}\n container={item}\n animationDuration={animationDuration}\n baseColor={baseColor}\n highlightColor={highlightColor}\n />\n );\n } else {\n return (\n <ShimmerElementComponent\n key={index}\n element={item}\n animationDuration={animationDuration}\n baseColor={baseColor}\n highlightColor={highlightColor}\n />\n );\n }\n })}\n </div>\n );\n};\n\nexport default ShimmerLoader;\n"],"names":["ShimmerElementComponent","element","animationDuration","baseColor","highlightColor","style","width","height","borderRadius","undefined","margin","shimmerClass","type","React","createElement","className","children","map","child","index","key","ShimmerContainerComponent","container","display","flexDirection","direction","gap","padding","alignItems","flex","ShimmerLoader","structure","containerStyle","item"],"mappings":"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"}
package/dist/index61.js CHANGED
@@ -1,122 +1,166 @@
1
- import e, { useState as p, useRef as g, useEffect as I } from "react";
2
- import { Button as x } from "./index4.js";
3
- const n = 40, f = 7, y = 3, T = Array.from({
4
- length: 12
5
- }, (r, o) => String(o + 1).padStart(2, "0")), w = Array.from({
6
- length: 60
7
- }, (r, o) => String(o).padStart(2, "0")), M = ["AM", "PM"], h = ({
8
- items: r,
9
- selectedIndex: o,
10
- onSelect: d,
11
- automationId: u = ""
12
- }) => {
13
- const l = g(null), s = g(null);
14
- I(() => {
15
- l.current && l.current.scrollTo({
16
- top: o * n,
17
- behavior: "smooth"
18
- });
19
- }, [o]);
20
- const a = () => {
21
- l.current && (s.current && clearTimeout(s.current), s.current = setTimeout(() => {
22
- const t = l.current;
23
- if (!t) return;
24
- const c = Math.round(t.scrollTop / n), m = Math.max(0, Math.min(r.length - 1, c));
25
- t.scrollTo({
26
- top: m * n,
27
- behavior: "smooth"
28
- }), m !== o && d(m);
29
- }, 100));
30
- }, i = (t) => {
31
- d(t), l.current?.scrollTo({
32
- top: t * n,
33
- behavior: "smooth"
34
- });
35
- };
36
- return /* @__PURE__ */ e.createElement("div", {
37
- className: "w-14"
38
- }, /* @__PURE__ */ e.createElement("div", {
39
- ref: l,
40
- className: "overflow-y-auto [&::-webkit-scrollbar]:hidden",
41
- onScroll: a,
42
- style: {
43
- height: f * n,
44
- paddingTop: y * n,
45
- paddingBottom: y * n,
46
- scrollSnapType: "y mandatory",
47
- scrollbarWidth: "none"
1
+ import e, { useState as p, useEffect as w } from "react";
2
+ import { Icon as o } from "./index6.js";
3
+ import { ProgressBar as B } from "./index42.js";
4
+ /* empty css */
5
+ function m() {
6
+ return m = Object.assign ? Object.assign.bind() : function(r) {
7
+ for (var c = 1; c < arguments.length; c++) {
8
+ var t = arguments[c];
9
+ for (var n in t) ({}).hasOwnProperty.call(t, n) && (r[n] = t[n]);
48
10
  }
49
- }, r.map((t, c) => /* @__PURE__ */ e.createElement("div", {
50
- key: t,
51
- className: `flex items-center justify-center cursor-pointer select-none transition-colors h-10 ${c === o ? "text-[var(--color-blue-500)] font-semibold" : "text-[var(--color-gray-700)] hover:text-[var(--color-blue-500)]"}`,
52
- onClick: () => i(c),
53
- style: {
54
- scrollSnapAlign: "center"
55
- },
56
- "data-automation-id": `${u}-item-${c}`
57
- }, t))));
58
- }, $ = ({
59
- initialHour: r = 12,
60
- initialMinute: o = 0,
61
- onApply: d,
62
- ctaLabel: u = "Apply",
63
- onClose: l,
64
- className: s = "",
65
- automationId: a = "timepicker"
11
+ return r;
12
+ }, m.apply(null, arguments);
13
+ }
14
+ const A = ({
15
+ open: r,
16
+ onClose: c,
17
+ title: t,
18
+ description: n,
19
+ position: b = "bottom-right",
20
+ variant: h = "default",
21
+ autoHideDuration: k = 6e3,
22
+ showCloseButton: y = !0,
23
+ action: i,
24
+ className: C = "",
25
+ style: x,
26
+ showProgress: u = !1,
27
+ progress: E = 0,
28
+ iconProps: s,
29
+ items: l,
30
+ defaultExpanded: z = !1,
31
+ compact: g = !1,
32
+ automationId: $ = ""
66
33
  }) => {
67
- const [i, t] = p(() => r === 0 ? 11 : r > 12 ? r - 12 - 1 : r - 1), [c, m] = p(Math.max(0, Math.min(59, o ?? 0))), [v, E] = p(
68
- () => r >= 12 ? 1 : 0
69
- // 0-11 = AM, 12-23 = PM
70
- ), b = () => {
71
- const S = v === 1 ? i + 12 : i;
72
- d?.({
73
- hour: S + 1,
74
- minute: c
75
- }), l?.();
34
+ const [T, v] = p(!1), [I, d] = p(!1), [f, M] = p(z);
35
+ w(() => {
36
+ if (r && (v(!0), d(!1), k > 0)) {
37
+ const a = setTimeout(() => {
38
+ N();
39
+ }, k);
40
+ return () => clearTimeout(a);
41
+ }
42
+ }, [r, k]);
43
+ const N = () => {
44
+ d(!0), setTimeout(() => {
45
+ v(!1), d(!1), c();
46
+ }, 300);
47
+ }, S = () => {
48
+ M(!f);
49
+ }, O = (a) => a.icon ? a.icon : a.type === "folder" ? "folder-empty" : (a.type === "file", "file-empty");
50
+ if (!T) return null;
51
+ const V = () => ({
52
+ "top-right": "top-4 right-4",
53
+ "top-left": "top-4 left-4",
54
+ "bottom-right": "bottom-4 right-4",
55
+ "bottom-left": "bottom-4 left-4",
56
+ "top-center": "top-4 snackbar-center",
57
+ "bottom-center": "bottom-4 snackbar-center"
58
+ })[b], _ = () => ({
59
+ default: "snackbar-default",
60
+ success: "snackbar-success",
61
+ warning: "snackbar-warning",
62
+ error: "snackbar-error",
63
+ info: "snackbar-info"
64
+ })[h], j = () => {
65
+ const a = x || {};
66
+ return b === "top-center" || b === "bottom-center" ? {
67
+ ...a,
68
+ left: "50%",
69
+ // Initial transform for center - animation will override but preserve translateX(-50%)
70
+ transform: "translateX(-50%)"
71
+ } : a;
76
72
  };
77
73
  return /* @__PURE__ */ e.createElement("div", {
78
- className: `se-design-timepicker-container w-full min-w-[216px] bg-[var(--color-white)] rounded-xl shadow-md border border-[var(--color-gray-400)] overflow-hidden ${s}`
79
- }, /* @__PURE__ */ e.createElement("div", {
80
- className: "se-design-timepicker-content w-full relative p-4"
74
+ className: "snackbar-backdrop fixed inset-0 z-[1000] pointer-events-none"
81
75
  }, /* @__PURE__ */ e.createElement("div", {
82
- className: "absolute left-4 right-4 top-1/2 -translate-y-1/2 h-10 bg-[var(--color-blue-50)] rounded-lg pointer-events-none z-0"
83
- }), /* @__PURE__ */ e.createElement("div", {
84
- className: "flex justify-between gap-2 relative z-10"
85
- }, /* @__PURE__ */ e.createElement(h, {
86
- items: T,
87
- selectedIndex: i,
88
- onSelect: t,
89
- automationId: `${a}-hours`
90
- }), /* @__PURE__ */ e.createElement("div", {
91
- className: "w-px bg-[var(--color-gray-200)]",
92
- style: {
93
- height: f * n
94
- }
95
- }), /* @__PURE__ */ e.createElement(h, {
96
- items: w,
97
- selectedIndex: c,
98
- onSelect: m,
99
- automationId: `${a}-minutes`
100
- }), /* @__PURE__ */ e.createElement("div", {
101
- className: "w-px bg-[var(--color-gray-200)]",
102
- style: {
103
- height: f * n
104
- }
105
- }), /* @__PURE__ */ e.createElement(h, {
106
- items: M,
107
- selectedIndex: v,
108
- onSelect: E,
109
- automationId: `${a}-periods`
110
- }))), /* @__PURE__ */ e.createElement("div", {
111
- className: "se-design-timepicker-footer flex justify-end p-3 border-t border-[var(--color-gray-200)]"
112
- }, /* @__PURE__ */ e.createElement(x, {
113
- label: u,
114
- type: "primary",
115
- onClick: b,
116
- automationId: `${a}-apply-button`
117
- })));
76
+ className: `
77
+ snackbar-container
78
+ ${V()}
79
+ ${_()}
80
+ ${I ? "snackbar-exit" : "snackbar-enter"}
81
+ ${g ? "snackbar-compact" : ""}
82
+ ${C}
83
+ `,
84
+ style: j(),
85
+ role: "alert",
86
+ "aria-live": "polite",
87
+ "data-automation-id": $
88
+ }, g ? (
89
+ // Compact mode - simple inline notification
90
+ /* @__PURE__ */ e.createElement("div", {
91
+ className: "snackbar-compact-content"
92
+ }, s?.name && /* @__PURE__ */ e.createElement(o, m({}, s, {
93
+ size: s.size ?? 16,
94
+ className: "snackbar-compact-icon"
95
+ })), t && /* @__PURE__ */ e.createElement("span", {
96
+ className: "snackbar-compact-title"
97
+ }, t))
98
+ ) : (
99
+ // Full mode - standard snackbar with all features
100
+ /* @__PURE__ */ e.createElement("div", {
101
+ className: "snackbar-content"
102
+ }, /* @__PURE__ */ e.createElement("div", {
103
+ className: "snackbar-header"
104
+ }, /* @__PURE__ */ e.createElement("div", {
105
+ className: "snackbar-title-section"
106
+ }, s?.name && /* @__PURE__ */ e.createElement(o, m({}, s, {
107
+ size: s.size ?? 20,
108
+ className: "snackbar-icon"
109
+ })), t && /* @__PURE__ */ e.createElement("h4", {
110
+ className: "snackbar-title"
111
+ }, t)), /* @__PURE__ */ e.createElement("div", {
112
+ className: "snackbar-header-actions"
113
+ }, l && l.length > 0 && /* @__PURE__ */ e.createElement(o, {
114
+ name: "chevron",
115
+ size: 16,
116
+ stroke: "var(--color-gray-100)",
117
+ rotation: f ? "0" : "180",
118
+ className: "snackbar-expand-icon",
119
+ onClick: S
120
+ }), y && !u && /* @__PURE__ */ e.createElement(o, {
121
+ name: "close",
122
+ size: 16,
123
+ fill: "var(--color-gray-600)",
124
+ className: "snackbar-close-icon",
125
+ onClick: N
126
+ }))), n && /* @__PURE__ */ e.createElement("div", {
127
+ className: "snackbar-description"
128
+ }, n), u && /* @__PURE__ */ e.createElement("div", {
129
+ className: "snackbar-progress-container"
130
+ }, E === -1 ? /* @__PURE__ */ e.createElement("div", {
131
+ className: "snackbar-indeterminate-progress"
132
+ }, /* @__PURE__ */ e.createElement("div", {
133
+ className: "snackbar-progress-gradient"
134
+ })) : /* @__PURE__ */ e.createElement(B, {
135
+ totalTasks: 100,
136
+ completedTasks: E,
137
+ needPercentageCompleted: !1,
138
+ progressBarColor: "var(--color-green-500)"
139
+ })), l && l.length > 0 && /* @__PURE__ */ e.createElement("div", {
140
+ className: `snackbar-items-container ${f ? "snackbar-items-expanded" : "snackbar-items-collapsed"}`
141
+ }, /* @__PURE__ */ e.createElement("div", {
142
+ className: "snackbar-items-list"
143
+ }, l.map((a) => /* @__PURE__ */ e.createElement("div", {
144
+ key: a.id,
145
+ className: "snackbar-item",
146
+ onClick: a.onClick
147
+ }, /* @__PURE__ */ e.createElement("div", {
148
+ className: "snackbar-item-content"
149
+ }, /* @__PURE__ */ e.createElement(o, {
150
+ name: O(a),
151
+ size: 16,
152
+ className: "snackbar-item-icon"
153
+ }), /* @__PURE__ */ e.createElement("span", {
154
+ className: "snackbar-item-name"
155
+ }, a.name)))))), i && /* @__PURE__ */ e.createElement("div", {
156
+ className: "snackbar-actions"
157
+ }, /* @__PURE__ */ e.createElement("button", {
158
+ className: `snackbar-action-button snackbar-action-${i.variant || "primary"}`,
159
+ onClick: i.onClick
160
+ }, i.label)))
161
+ )));
118
162
  };
119
163
  export {
120
- $ as TimePicker
164
+ A as Snackbar
121
165
  };
122
166
  //# sourceMappingURL=index61.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index61.js","sources":["../src/components/TimePicker/index.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport { Button } from '../Button';\n\nexport interface TimePickerProps {\n initialHour?: number;\n initialMinute?: number;\n onApply?: (time: { hour: number; minute: number }) => void;\n ctaLabel?: string;\n onClose?: () => void;\n className?: string;\n automationId?: string;\n}\n\nconst ITEM_HEIGHT = 40;\nconst VISIBLE_ITEMS = 7;\nconst BUFFER_ITEMS = 3;\n\nconst HOURS = Array.from({ length: 12 }, (_, i) => String(i + 1).padStart(2, '0'));\nconst MINUTES = Array.from({ length: 60 }, (_, i) => String(i).padStart(2, '0'));\nconst PERIODS: ('AM' | 'PM')[] = ['AM', 'PM'];\n\ninterface ScrollColumnProps {\n items: readonly string[];\n selectedIndex: number;\n onSelect: (index: number) => void;\n automationId?: string;\n}\n\nconst ScrollColumn: React.FC<ScrollColumnProps> = ({ items, selectedIndex, onSelect, automationId = '' }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const scrollTimeout = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n if (containerRef.current) {\n containerRef.current.scrollTo({ top: selectedIndex * ITEM_HEIGHT, behavior: 'smooth' });\n }\n }, [selectedIndex]);\n\n const handleScroll = () => {\n if (!containerRef.current) return;\n\n if (scrollTimeout.current) clearTimeout(scrollTimeout.current);\n\n scrollTimeout.current = setTimeout(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const newIndex = Math.round(container.scrollTop / ITEM_HEIGHT);\n const clampedIndex = Math.max(0, Math.min(items.length - 1, newIndex));\n\n container.scrollTo({ top: clampedIndex * ITEM_HEIGHT, behavior: 'smooth' });\n\n if (clampedIndex !== selectedIndex) onSelect(clampedIndex);\n }, 100);\n };\n\n const handleItemClick = (index: number) => {\n onSelect(index);\n containerRef.current?.scrollTo({ top: index * ITEM_HEIGHT, behavior: 'smooth' });\n };\n\n return (\n <div className=\"w-14\">\n <div\n ref={containerRef}\n className=\"overflow-y-auto [&::-webkit-scrollbar]:hidden\"\n onScroll={handleScroll}\n style={{\n height: VISIBLE_ITEMS * ITEM_HEIGHT,\n paddingTop: BUFFER_ITEMS * ITEM_HEIGHT,\n paddingBottom: BUFFER_ITEMS * ITEM_HEIGHT,\n scrollSnapType: 'y mandatory',\n scrollbarWidth: 'none'\n }}\n >\n {items.map((item, index) => (\n <div\n key={item}\n className={`flex items-center justify-center cursor-pointer select-none transition-colors h-10 ${\n index === selectedIndex\n ? 'text-[var(--color-blue-500)] font-semibold'\n : 'text-[var(--color-gray-700)] hover:text-[var(--color-blue-500)]'\n }`}\n onClick={() => handleItemClick(index)}\n style={{ scrollSnapAlign: 'center' }}\n data-automation-id={`${automationId}-item-${index}`}\n >\n {item}\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nexport const TimePicker: React.FC<TimePickerProps> = ({\n initialHour = 12,\n initialMinute = 0,\n onApply,\n ctaLabel = 'Apply',\n onClose,\n className = '',\n automationId = 'timepicker'\n}) => {\n const [selectedHourIndex, setSelectedHourIndex] = useState(() => {\n if (initialHour === 0) return 11; // 0 = 12 AM\n if (initialHour > 12) return initialHour - 12 - 1; // 13-23 → 1-11 (PM hours)\n return initialHour - 1; // 1-12 → 0-11\n });\n const [selectedMinuteIndex, setSelectedMinuteIndex] = useState(Math.max(0, Math.min(59, initialMinute ?? 0)));\n const [selectedPeriodIndex, setSelectedPeriodIndex] = useState(\n () => (initialHour >= 12 ? 1 : 0) // 0-11 = AM, 12-23 = PM\n );\n\n const handleApply = () => {\n const hourIn24Format = selectedPeriodIndex === 1 ? selectedHourIndex + 12 : selectedHourIndex;\n onApply?.({\n hour: hourIn24Format + 1,\n minute: selectedMinuteIndex\n });\n onClose?.();\n };\n\n return (\n <div\n className={`se-design-timepicker-container w-full min-w-[216px] bg-[var(--color-white)] rounded-xl shadow-md border border-[var(--color-gray-400)] overflow-hidden ${className}`}\n >\n <div className=\"se-design-timepicker-content w-full relative p-4\">\n <div className=\"absolute left-4 right-4 top-1/2 -translate-y-1/2 h-10 bg-[var(--color-blue-50)] rounded-lg pointer-events-none z-0\" />\n <div className=\"flex justify-between gap-2 relative z-10\">\n <ScrollColumn\n items={HOURS}\n selectedIndex={selectedHourIndex}\n onSelect={setSelectedHourIndex}\n automationId={`${automationId}-hours`}\n />\n <div className=\"w-px bg-[var(--color-gray-200)]\" style={{ height: VISIBLE_ITEMS * ITEM_HEIGHT }} />\n <ScrollColumn\n items={MINUTES}\n selectedIndex={selectedMinuteIndex}\n onSelect={setSelectedMinuteIndex}\n automationId={`${automationId}-minutes`}\n />\n <div className=\"w-px bg-[var(--color-gray-200)]\" style={{ height: VISIBLE_ITEMS * ITEM_HEIGHT }} />\n <ScrollColumn\n items={PERIODS}\n selectedIndex={selectedPeriodIndex}\n onSelect={setSelectedPeriodIndex}\n automationId={`${automationId}-periods`}\n />\n </div>\n </div>\n <div className=\"se-design-timepicker-footer flex justify-end p-3 border-t border-[var(--color-gray-200)]\">\n <Button label={ctaLabel} type=\"primary\" onClick={handleApply} automationId={`${automationId}-apply-button`} />\n </div>\n </div>\n );\n};\n"],"names":["ITEM_HEIGHT","VISIBLE_ITEMS","BUFFER_ITEMS","HOURS","Array","from","length","_","i","String","padStart","MINUTES","PERIODS","ScrollColumn","items","selectedIndex","onSelect","automationId","containerRef","useRef","scrollTimeout","useEffect","current","scrollTo","top","behavior","handleScroll","clearTimeout","setTimeout","container","newIndex","Math","round","scrollTop","clampedIndex","max","min","handleItemClick","index","React","createElement","className","ref","onScroll","style","height","paddingTop","paddingBottom","scrollSnapType","scrollbarWidth","map","item","key","onClick","scrollSnapAlign","TimePicker","initialHour","initialMinute","onApply","ctaLabel","onClose","selectedHourIndex","setSelectedHourIndex","useState","selectedMinuteIndex","setSelectedMinuteIndex","selectedPeriodIndex","setSelectedPeriodIndex","handleApply","hourIn24Format","hour","minute","Button","label","type"],"mappings":"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"}
1
+ {"version":3,"file":"index61.js","sources":["../src/components/SnackBar/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Icon, IconProps } from '../Icon';\nimport { ProgressBar } from '../ProgressBar';\nimport './style.scss';\n\nexport type SnackbarPosition =\n | 'top-right'\n | 'top-left'\n | 'bottom-right'\n | 'bottom-left'\n | 'top-center'\n | 'bottom-center';\n\nexport type SnackbarVariant = 'default' | 'success' | 'warning' | 'error' | 'info';\n\nexport type SnackbarAction = {\n label: string;\n onClick: () => void;\n variant?: 'primary' | 'secondary';\n};\n\nexport type SnackbarItem = {\n id: string | number;\n name: string;\n type: 'file' | 'folder';\n fileType?: 'doc' | 'pdf' | 'image' | 'other';\n icon?: string;\n onClick?: () => void;\n};\n\nexport interface SnackbarProps {\n /** Whether the snackbar is open */\n open: boolean;\n /** Function to close the snackbar */\n onClose: () => void;\n /** Title text displayed prominently */\n title?: string;\n /** Description text displayed below title */\n description?: string;\n /** Position of the snackbar on screen */\n position?: SnackbarPosition;\n /** Visual variant of the snackbar */\n variant?: SnackbarVariant;\n /** Auto-hide duration in milliseconds (0 = no auto-hide) */\n autoHideDuration?: number;\n /** Whether to show close button */\n showCloseButton?: boolean;\n /** Optional action button */\n action?: SnackbarAction;\n /** Custom className for additional styling */\n className?: string;\n /** Custom styles */\n style?: React.CSSProperties;\n /** Whether to show progress indicator */\n showProgress?: boolean;\n /** Progress value (0-100) */\n progress?: number;\n /** Icon props object (name, fill, stroke, rotation, size, etc.) */\n iconProps?: Omit<IconProps, 'className'>;\n /** List of items to display in expandable section */\n items?: SnackbarItem[];\n /** Whether items list is expanded by default */\n defaultExpanded?: boolean;\n /** Compact mode - renders a simple inline notification with just icon and title */\n compact?: boolean;\n /** Automation ID for testing */\n automationId?: string;\n}\n\nexport const Snackbar: React.FC<SnackbarProps> = ({\n open,\n onClose,\n title,\n description,\n position = 'bottom-right',\n variant = 'default',\n autoHideDuration = 6000,\n showCloseButton = true,\n action,\n className = '',\n style,\n showProgress = false,\n progress = 0,\n iconProps,\n items,\n defaultExpanded = false,\n compact = false,\n automationId = ''\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const [isExiting, setIsExiting] = useState(false);\n const [isExpanded, setIsExpanded] = useState(defaultExpanded);\n\n useEffect(() => {\n if (open) {\n setIsVisible(true);\n setIsExiting(false);\n\n // Auto-hide functionality\n if (autoHideDuration > 0) {\n const timer = setTimeout(() => {\n handleClose();\n }, autoHideDuration);\n\n return () => clearTimeout(timer);\n }\n }\n }, [open, autoHideDuration]);\n\n const handleClose = () => {\n setIsExiting(true);\n setTimeout(() => {\n setIsVisible(false);\n setIsExiting(false);\n onClose();\n }, 300); // Animation duration\n };\n\n const handleToggleExpanded = () => {\n setIsExpanded(!isExpanded);\n };\n\n const getFileIcon = (item: SnackbarItem) => {\n if (item.icon) return item.icon;\n\n if (item.type === 'folder') return 'folder-empty';\n if (item.type === 'file') return 'file-empty';\n\n return 'file-empty';\n\n // switch (item.fileType) {\n // case 'doc':\n // return 'docFile';\n // case 'pdf':\n // return 'pdf-file';\n // case 'image':\n // return 'file-empty';\n // default:\n // return 'file-empty';\n // }\n };\n\n if (!isVisible) return null;\n\n const getPositionClasses = () => {\n const positionMap = {\n 'top-right': 'top-4 right-4',\n 'top-left': 'top-4 left-4',\n 'bottom-right': 'bottom-4 right-4',\n 'bottom-left': 'bottom-4 left-4',\n 'top-center': 'top-4 snackbar-center',\n 'bottom-center': 'bottom-4 snackbar-center'\n };\n return positionMap[position];\n };\n\n const getVariantClasses = () => {\n const variantMap = {\n default: 'snackbar-default',\n success: 'snackbar-success',\n warning: 'snackbar-warning',\n error: 'snackbar-error',\n info: 'snackbar-info'\n };\n return variantMap[variant];\n };\n\n const getContainerStyle = (): React.CSSProperties => {\n const baseStyle = style || {};\n\n if (position === 'top-center' || position === 'bottom-center') {\n return {\n ...baseStyle,\n left: '50%',\n // Initial transform for center - animation will override but preserve translateX(-50%)\n transform: 'translateX(-50%)'\n };\n }\n\n return baseStyle;\n };\n\n return (\n <div className=\"snackbar-backdrop fixed inset-0 z-[1000] pointer-events-none\">\n <div\n className={`\n snackbar-container\n ${getPositionClasses()}\n ${getVariantClasses()}\n ${isExiting ? 'snackbar-exit' : 'snackbar-enter'}\n ${compact ? 'snackbar-compact' : ''}\n ${className}\n `}\n style={getContainerStyle()}\n role=\"alert\"\n aria-live=\"polite\"\n data-automation-id={automationId}\n >\n {compact ? (\n // Compact mode - simple inline notification\n <div className=\"snackbar-compact-content\">\n {iconProps?.name && <Icon {...iconProps} size={iconProps.size ?? 16} className=\"snackbar-compact-icon\" />}\n {title && <span className=\"snackbar-compact-title\">{title}</span>}\n </div>\n ) : (\n // Full mode - standard snackbar with all features\n <div className=\"snackbar-content\">\n {/* Header with icon, title, expand/collapse, and close button */}\n <div className=\"snackbar-header\">\n <div className=\"snackbar-title-section\">\n {iconProps?.name && <Icon {...iconProps} size={iconProps.size ?? 20} className=\"snackbar-icon\" />}\n {title && <h4 className=\"snackbar-title\">{title}</h4>}\n </div>\n <div className=\"snackbar-header-actions\">\n {items && items.length > 0 && (\n <Icon\n name=\"chevron\"\n size={16}\n stroke=\"var(--color-gray-100)\"\n rotation={isExpanded ? '0' : '180'}\n className=\"snackbar-expand-icon\"\n onClick={handleToggleExpanded}\n />\n )}\n {showCloseButton && !showProgress && (\n <Icon\n name=\"close\"\n size={16}\n fill=\"var(--color-gray-600)\"\n className=\"snackbar-close-icon\"\n onClick={handleClose}\n />\n )}\n </div>\n </div>\n\n {/* Description */}\n {description && <div className=\"snackbar-description\">{description}</div>}\n\n {/* Progress bar */}\n {showProgress && (\n <div className=\"snackbar-progress-container\">\n {progress === -1 ? (\n <div className=\"snackbar-indeterminate-progress\">\n <div className=\"snackbar-progress-gradient\"></div>\n </div>\n ) : (\n <ProgressBar\n totalTasks={100}\n completedTasks={progress}\n needPercentageCompleted={false}\n progressBarColor=\"var(--color-green-500)\"\n />\n )}\n </div>\n )}\n\n {/* Expandable Items List */}\n {items && items.length > 0 && (\n <div\n className={`snackbar-items-container ${\n isExpanded ? 'snackbar-items-expanded' : 'snackbar-items-collapsed'\n }`}\n >\n <div className=\"snackbar-items-list\">\n {items.map((item) => (\n <div key={item.id} className=\"snackbar-item\" onClick={item.onClick}>\n <div className=\"snackbar-item-content\">\n <Icon name={getFileIcon(item)} size={16} className=\"snackbar-item-icon\" />\n <span className=\"snackbar-item-name\">{item.name}</span>\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Action button */}\n {action && (\n <div className=\"snackbar-actions\">\n <button\n className={`snackbar-action-button snackbar-action-${action.variant || 'primary'}`}\n onClick={action.onClick}\n >\n {action.label}\n </button>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"names":["Snackbar","open","onClose","title","description","position","variant","autoHideDuration","showCloseButton","action","className","style","showProgress","progress","iconProps","items","defaultExpanded","compact","automationId","isVisible","setIsVisible","useState","isExiting","setIsExiting","isExpanded","setIsExpanded","useEffect","timer","setTimeout","handleClose","clearTimeout","handleToggleExpanded","getFileIcon","item","icon","type","getPositionClasses","getVariantClasses","default","success","warning","error","info","getContainerStyle","baseStyle","left","transform","React","createElement","role","name","Icon","_extends","size","length","stroke","rotation","onClick","fill","ProgressBar","totalTasks","completedTasks","needPercentageCompleted","progressBarColor","map","key","id","label"],"mappings":"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"}