@stableflow/pay-ui 0.2.0-beta-e820becee0-20261012 → 0.2.0-beta-bb77113a4d-20261012

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 (359) hide show
  1. package/dist/autocomplete/index.js +1 -1
  2. package/dist/autocomplete/index.js.map +1 -1
  3. package/dist/button/index.js +1 -1
  4. package/dist/button/index.js.map +1 -1
  5. package/dist/checkbox/index.js +1 -1
  6. package/dist/checkbox/index.js.map +1 -1
  7. package/dist/{chunk-6OV2OZVR.js → chunk-35PKR342.js} +2 -2
  8. package/dist/chunk-35PKR342.js.map +1 -0
  9. package/dist/{chunk-RUT7LQ3A.js → chunk-CHPMYAJ6.js} +3 -3
  10. package/dist/chunk-CHPMYAJ6.js.map +1 -0
  11. package/dist/{chunk-OGSFVQK2.js → chunk-CYTYDPSK.js} +2 -2
  12. package/dist/chunk-CYTYDPSK.js.map +1 -0
  13. package/dist/{chunk-J5TQGGEN.js → chunk-D5X5OIZQ.js} +2 -2
  14. package/dist/chunk-D5X5OIZQ.js.map +1 -0
  15. package/dist/{chunk-NZGSPYWG.js → chunk-JVHXUOHJ.js} +2 -2
  16. package/dist/chunk-JVHXUOHJ.js.map +1 -0
  17. package/dist/{chunk-EYLLKIPV.js → chunk-WFHMCGZA.js} +2 -2
  18. package/dist/{chunk-R4BKHISR.js → chunk-XPXCIY2R.js} +2 -2
  19. package/dist/chunk-XPXCIY2R.js.map +1 -0
  20. package/dist/{chunk-SE7Z4ZYP.js → chunk-Z4GG3E3C.js} +2 -2
  21. package/dist/chunk-Z4GG3E3C.js.map +1 -0
  22. package/dist/date-range-picker/index.js +1 -1
  23. package/dist/date-range-picker/index.js.map +1 -1
  24. package/dist/dialog/index.js +3 -3
  25. package/dist/drawer/index.js +3 -3
  26. package/dist/dropdown/index.js +2 -2
  27. package/dist/dropdown/index.js.map +1 -1
  28. package/dist/icons/{alert.d.ts → outline/alert.d.ts} +1 -1
  29. package/dist/icons/{alert.js → outline/alert.js} +1 -1
  30. package/dist/icons/{all-networks.d.ts → outline/all-networks.d.ts} +1 -1
  31. package/dist/icons/{all-networks.js → outline/all-networks.js} +1 -1
  32. package/dist/icons/outline/all-networks.js.map +1 -0
  33. package/dist/icons/{arrow-down.d.ts → outline/arrow-down.d.ts} +1 -1
  34. package/dist/icons/{arrow-down.js → outline/arrow-down.js} +1 -1
  35. package/dist/icons/{back.d.ts → outline/back.d.ts} +1 -1
  36. package/dist/icons/{back.js → outline/back.js} +1 -1
  37. package/dist/icons/outline/back.js.map +1 -0
  38. package/dist/icons/{bonus.d.ts → outline/bonus.d.ts} +1 -1
  39. package/dist/icons/{bonus.js → outline/bonus.js} +1 -1
  40. package/dist/icons/outline/bonus.js.map +1 -0
  41. package/dist/icons/{book.d.ts → outline/book.d.ts} +1 -1
  42. package/dist/icons/{book.js → outline/book.js} +1 -1
  43. package/dist/icons/outline/book.js.map +1 -0
  44. package/dist/icons/{calendar.d.ts → outline/calendar.d.ts} +1 -1
  45. package/dist/icons/{calendar.js → outline/calendar.js} +1 -1
  46. package/dist/icons/outline/calendar.js.map +1 -0
  47. package/dist/icons/{cash.d.ts → outline/cash.d.ts} +1 -1
  48. package/dist/icons/{cash.js → outline/cash.js} +1 -1
  49. package/dist/icons/outline/cash.js.map +1 -0
  50. package/dist/icons/{check.d.ts → outline/check.d.ts} +1 -1
  51. package/dist/icons/{check.js → outline/check.js} +1 -1
  52. package/dist/icons/{chevron.d.ts → outline/chevron.d.ts} +1 -1
  53. package/dist/icons/{chevron.js → outline/chevron.js} +1 -1
  54. package/dist/icons/outline/chevron.js.map +1 -0
  55. package/dist/icons/{close.d.ts → outline/close.d.ts} +1 -1
  56. package/dist/icons/{close.js → outline/close.js} +1 -1
  57. package/dist/icons/{cloud.d.ts → outline/cloud.d.ts} +1 -1
  58. package/dist/icons/{cloud.js → outline/cloud.js} +1 -1
  59. package/dist/icons/outline/cloud.js.map +1 -0
  60. package/dist/icons/{code.d.ts → outline/code.d.ts} +1 -1
  61. package/dist/icons/{code.js → outline/code.js} +1 -1
  62. package/dist/icons/outline/code.js.map +1 -0
  63. package/dist/icons/{copy.d.ts → outline/copy.d.ts} +1 -1
  64. package/dist/icons/{copy.js → outline/copy.js} +1 -1
  65. package/dist/icons/outline/copy.js.map +1 -0
  66. package/dist/icons/outline/database.d.ts +6 -0
  67. package/dist/icons/{database.js → outline/database.js} +4 -4
  68. package/dist/icons/outline/database.js.map +1 -0
  69. package/dist/icons/{delete.d.ts → outline/delete.d.ts} +1 -1
  70. package/dist/icons/{delete.js → outline/delete.js} +1 -1
  71. package/dist/icons/outline/delete.js.map +1 -0
  72. package/dist/icons/{down.d.ts → outline/down.d.ts} +1 -1
  73. package/dist/icons/{down.js → outline/down.js} +1 -1
  74. package/dist/icons/outline/down.js.map +1 -0
  75. package/dist/icons/{download.d.ts → outline/download.d.ts} +1 -1
  76. package/dist/icons/{download.js → outline/download.js} +1 -1
  77. package/dist/icons/outline/download.js.map +1 -0
  78. package/dist/icons/outline/duration.d.ts +6 -0
  79. package/dist/icons/outline/duration.js +36 -0
  80. package/dist/icons/outline/duration.js.map +1 -0
  81. package/dist/icons/{email.d.ts → outline/email.d.ts} +1 -1
  82. package/dist/icons/{email.js → outline/email.js} +1 -1
  83. package/dist/icons/outline/email.js.map +1 -0
  84. package/dist/icons/{expense-user.d.ts → outline/expense-user.d.ts} +1 -1
  85. package/dist/icons/{expense-user.js → outline/expense-user.js} +1 -1
  86. package/dist/icons/outline/expense-user.js.map +1 -0
  87. package/dist/icons/{expense.d.ts → outline/expense.d.ts} +1 -1
  88. package/dist/icons/{expense.js → outline/expense.js} +1 -1
  89. package/dist/icons/outline/expense.js.map +1 -0
  90. package/dist/icons/outline/eye-hidden.d.ts +6 -0
  91. package/dist/icons/{eye.js → outline/eye-hidden.js} +3 -31
  92. package/dist/icons/outline/eye-hidden.js.map +1 -0
  93. package/dist/icons/{flask.d.ts → outline/flask.d.ts} +1 -1
  94. package/dist/icons/{flask.js → outline/flask.js} +1 -1
  95. package/dist/icons/outline/flask.js.map +1 -0
  96. package/dist/icons/{grants.d.ts → outline/grants.d.ts} +1 -1
  97. package/dist/icons/{grants.js → outline/grants.js} +1 -1
  98. package/dist/icons/outline/grants.js.map +1 -0
  99. package/dist/icons/{guard.d.ts → outline/guard.d.ts} +1 -1
  100. package/dist/icons/{guard.js → outline/guard.js} +1 -1
  101. package/dist/icons/outline/guard.js.map +1 -0
  102. package/dist/icons/{history.d.ts → outline/history.d.ts} +1 -1
  103. package/dist/icons/{history.js → outline/history.js} +1 -1
  104. package/dist/icons/outline/history.js.map +1 -0
  105. package/dist/icons/{import-file.d.ts → outline/import-file.d.ts} +1 -1
  106. package/dist/icons/{import-file.js → outline/import-file.js} +1 -1
  107. package/dist/icons/outline/import-file.js.map +1 -0
  108. package/dist/icons/{key.d.ts → outline/key.d.ts} +1 -1
  109. package/dist/icons/{key.js → outline/key.js} +1 -1
  110. package/dist/icons/outline/key.js.map +1 -0
  111. package/dist/icons/{kol-mkt.d.ts → outline/kol-mkt.d.ts} +1 -1
  112. package/dist/icons/{kol-mkt.js → outline/kol-mkt.js} +1 -1
  113. package/dist/icons/outline/kol-mkt.js.map +1 -0
  114. package/dist/icons/{link.d.ts → outline/link.d.ts} +1 -1
  115. package/dist/icons/{link.js → outline/link.js} +1 -1
  116. package/dist/icons/outline/link.js.map +1 -0
  117. package/dist/icons/{loading.d.ts → outline/loading.d.ts} +1 -1
  118. package/dist/icons/{loading.js → outline/loading.js} +1 -1
  119. package/dist/icons/{logout.d.ts → outline/logout.d.ts} +1 -1
  120. package/dist/icons/{logout.js → outline/logout.js} +1 -1
  121. package/dist/icons/outline/logout.js.map +1 -0
  122. package/dist/icons/{member.d.ts → outline/member.d.ts} +1 -1
  123. package/dist/icons/{member.js → outline/member.js} +1 -1
  124. package/dist/icons/outline/member.js.map +1 -0
  125. package/dist/icons/{meno.d.ts → outline/meno.d.ts} +1 -1
  126. package/dist/icons/{meno.js → outline/meno.js} +1 -1
  127. package/dist/icons/outline/meno.js.map +1 -0
  128. package/dist/icons/{menu.d.ts → outline/menu.d.ts} +1 -1
  129. package/dist/icons/{menu.js → outline/menu.js} +1 -1
  130. package/dist/icons/outline/menu.js.map +1 -0
  131. package/dist/icons/{more.d.ts → outline/more.d.ts} +1 -1
  132. package/dist/icons/{more.js → outline/more.js} +1 -1
  133. package/dist/icons/outline/more.js.map +1 -0
  134. package/dist/icons/{office.d.ts → outline/office.d.ts} +1 -1
  135. package/dist/icons/{office.js → outline/office.js} +1 -1
  136. package/dist/icons/outline/office.js.map +1 -0
  137. package/dist/icons/{operations.d.ts → outline/operations.d.ts} +1 -1
  138. package/dist/icons/{operations.js → outline/operations.js} +1 -1
  139. package/dist/icons/outline/operations.js.map +1 -0
  140. package/dist/icons/{otc-treasury.d.ts → outline/otc-treasury.d.ts} +1 -1
  141. package/dist/icons/{otc-treasury.js → outline/otc-treasury.js} +1 -1
  142. package/dist/icons/outline/otc-treasury.js.map +1 -0
  143. package/dist/icons/{outsourcing.d.ts → outline/outsourcing.d.ts} +1 -1
  144. package/dist/icons/{outsourcing.js → outline/outsourcing.js} +1 -1
  145. package/dist/icons/outline/outsourcing.js.map +1 -0
  146. package/dist/icons/{overview.d.ts → outline/overview.d.ts} +1 -1
  147. package/dist/icons/{overview.js → outline/overview.js} +1 -1
  148. package/dist/icons/outline/overview.js.map +1 -0
  149. package/dist/icons/{pay.d.ts → outline/pay.d.ts} +1 -1
  150. package/dist/icons/{pay.js → outline/pay.js} +1 -1
  151. package/dist/icons/outline/pay.js.map +1 -0
  152. package/dist/icons/{payroll.d.ts → outline/payroll.d.ts} +1 -1
  153. package/dist/icons/{payroll.js → outline/payroll.js} +1 -1
  154. package/dist/icons/outline/payroll.js.map +1 -0
  155. package/dist/icons/{plus.d.ts → outline/plus.d.ts} +1 -1
  156. package/dist/icons/{plus.js → outline/plus.js} +1 -1
  157. package/dist/icons/outline/plus.js.map +1 -0
  158. package/dist/icons/{private.d.ts → outline/private.d.ts} +1 -1
  159. package/dist/icons/{private.js → outline/private.js} +1 -1
  160. package/dist/icons/outline/private.js.map +1 -0
  161. package/dist/icons/{processing.d.ts → outline/processing.d.ts} +1 -1
  162. package/dist/icons/{processing.js → outline/processing.js} +1 -1
  163. package/dist/icons/outline/processing.js.map +1 -0
  164. package/dist/icons/{procurement.d.ts → outline/procurement.d.ts} +1 -1
  165. package/dist/icons/{procurement.js → outline/procurement.js} +1 -1
  166. package/dist/icons/outline/procurement.js.map +1 -0
  167. package/dist/icons/{question.d.ts → outline/question.d.ts} +1 -1
  168. package/dist/icons/{question.js → outline/question.js} +1 -1
  169. package/dist/icons/outline/question.js.map +1 -0
  170. package/dist/icons/{receipt.d.ts → outline/receipt.d.ts} +1 -1
  171. package/dist/icons/{receipt.js → outline/receipt.js} +1 -1
  172. package/dist/icons/outline/receipt.js.map +1 -0
  173. package/dist/icons/{records.d.ts → outline/records.d.ts} +1 -1
  174. package/dist/icons/{records.js → outline/records.js} +1 -1
  175. package/dist/icons/outline/records.js.map +1 -0
  176. package/dist/icons/{refresh.d.ts → outline/refresh.d.ts} +1 -1
  177. package/dist/icons/{refresh.js → outline/refresh.js} +1 -1
  178. package/dist/icons/outline/refresh.js.map +1 -0
  179. package/dist/icons/{reimbursement.d.ts → outline/reimbursement.d.ts} +1 -1
  180. package/dist/icons/{reimbursement.js → outline/reimbursement.js} +1 -1
  181. package/dist/icons/outline/reimbursement.js.map +1 -0
  182. package/dist/icons/{remove.d.ts → outline/remove.d.ts} +1 -1
  183. package/dist/icons/{remove.js → outline/remove.js} +1 -1
  184. package/dist/icons/outline/remove.js.map +1 -0
  185. package/dist/icons/{request.d.ts → outline/request.d.ts} +1 -1
  186. package/dist/icons/{request.js → outline/request.js} +1 -1
  187. package/dist/icons/outline/request.js.map +1 -0
  188. package/dist/icons/{reset-password.d.ts → outline/reset-password.d.ts} +1 -1
  189. package/dist/icons/{reset-password.js → outline/reset-password.js} +1 -1
  190. package/dist/icons/outline/reset-password.js.map +1 -0
  191. package/dist/icons/{search.d.ts → outline/search.d.ts} +1 -1
  192. package/dist/icons/{search.js → outline/search.js} +1 -1
  193. package/dist/icons/{setting.d.ts → outline/setting.d.ts} +1 -1
  194. package/dist/icons/{setting.js → outline/setting.js} +1 -1
  195. package/dist/icons/outline/setting.js.map +1 -0
  196. package/dist/icons/{settings.d.ts → outline/settings.d.ts} +1 -1
  197. package/dist/icons/{settings.js → outline/settings.js} +1 -1
  198. package/dist/icons/outline/settings.js.map +1 -0
  199. package/dist/icons/{shield.d.ts → outline/shield.d.ts} +1 -1
  200. package/dist/icons/{shield.js → outline/shield.js} +1 -1
  201. package/dist/icons/outline/shield.js.map +1 -0
  202. package/dist/icons/{support.d.ts → outline/support.d.ts} +1 -1
  203. package/dist/icons/{support.js → outline/support.js} +1 -1
  204. package/dist/icons/outline/support.js.map +1 -0
  205. package/dist/icons/{swap.d.ts → outline/swap.d.ts} +1 -1
  206. package/dist/icons/{swap.js → outline/swap.js} +1 -1
  207. package/dist/icons/outline/swap.js.map +1 -0
  208. package/dist/icons/{team.d.ts → outline/team.d.ts} +1 -1
  209. package/dist/icons/{team.js → outline/team.js} +1 -1
  210. package/dist/icons/outline/team.js.map +1 -0
  211. package/dist/icons/{to-right.d.ts → outline/to-right.d.ts} +1 -1
  212. package/dist/icons/{to-right.js → outline/to-right.js} +1 -1
  213. package/dist/icons/outline/to-right.js.map +1 -0
  214. package/dist/icons/outline/trends.d.ts +6 -0
  215. package/dist/icons/outline/trends.js +33 -0
  216. package/dist/icons/outline/trends.js.map +1 -0
  217. package/dist/icons/{up.d.ts → outline/up.d.ts} +1 -1
  218. package/dist/icons/{up.js → outline/up.js} +1 -1
  219. package/dist/icons/outline/up.js.map +1 -0
  220. package/dist/icons/{wallet.d.ts → outline/wallet.d.ts} +1 -1
  221. package/dist/icons/{wallet.js → outline/wallet.js} +1 -1
  222. package/dist/icons/outline/wallet.js.map +1 -0
  223. package/dist/icons/{webhooks.d.ts → outline/webhooks.d.ts} +1 -1
  224. package/dist/icons/{webhooks.js → outline/webhooks.js} +1 -1
  225. package/dist/icons/outline/webhooks.js.map +1 -0
  226. package/dist/icons/{alert-circle.d.ts → solid/alert-circle.d.ts} +1 -1
  227. package/dist/icons/{alert-circle.js → solid/alert-circle.js} +1 -1
  228. package/dist/icons/solid/alert-circle.js.map +1 -0
  229. package/dist/icons/{database.d.ts → solid/database.d.ts} +1 -1
  230. package/dist/icons/solid/database.js +33 -0
  231. package/dist/icons/solid/database.js.map +1 -0
  232. package/dist/icons/{duration.d.ts → solid/duration.d.ts} +1 -1
  233. package/dist/icons/{duration.js → solid/duration.js} +6 -9
  234. package/dist/icons/solid/duration.js.map +1 -0
  235. package/dist/icons/solid/eye.d.ts +6 -0
  236. package/dist/icons/solid/eye.js +33 -0
  237. package/dist/icons/solid/eye.js.map +1 -0
  238. package/dist/icons/{fee.d.ts → solid/fee.d.ts} +1 -1
  239. package/dist/icons/{fee.js → solid/fee.js} +1 -1
  240. package/dist/icons/solid/fee.js.map +1 -0
  241. package/dist/icons/{field-error.d.ts → solid/field-error.d.ts} +1 -1
  242. package/dist/icons/{field-error.js → solid/field-error.js} +1 -1
  243. package/dist/icons/solid/field-error.js.map +1 -0
  244. package/dist/icons/{google.d.ts → solid/google.d.ts} +1 -1
  245. package/dist/icons/{google.js → solid/google.js} +1 -1
  246. package/dist/icons/solid/google.js.map +1 -0
  247. package/dist/icons/{lock.d.ts → solid/lock.d.ts} +1 -1
  248. package/dist/icons/{lock.js → solid/lock.js} +1 -1
  249. package/dist/icons/solid/lock.js.map +1 -0
  250. package/dist/icons/{money.d.ts → solid/money.d.ts} +1 -1
  251. package/dist/icons/{money.js → solid/money.js} +1 -1
  252. package/dist/icons/solid/money.js.map +1 -0
  253. package/dist/icons/{node.d.ts → solid/node.d.ts} +1 -1
  254. package/dist/icons/{node.js → solid/node.js} +1 -1
  255. package/dist/icons/solid/node.js.map +1 -0
  256. package/dist/icons/{payout-status.d.ts → solid/payout-status.d.ts} +1 -1
  257. package/dist/icons/{payout-status.js → solid/payout-status.js} +1 -1
  258. package/dist/icons/solid/payout-status.js.map +1 -0
  259. package/dist/icons/{pen.d.ts → solid/pen.d.ts} +1 -1
  260. package/dist/icons/{pen.js → solid/pen.js} +1 -1
  261. package/dist/icons/solid/pen.js.map +1 -0
  262. package/dist/icons/{success.d.ts → solid/success.d.ts} +1 -1
  263. package/dist/icons/{success.js → solid/success.js} +1 -1
  264. package/dist/icons/solid/success.js.map +1 -0
  265. package/dist/overlay/index.js +2 -2
  266. package/dist/search-input/index.d.ts +1 -0
  267. package/dist/search-input/index.js +4 -4
  268. package/dist/search-input/index.js.map +1 -1
  269. package/dist/switch/index.js +1 -1
  270. package/dist/switch/index.js.map +1 -1
  271. package/dist/toast/index.js +4 -4
  272. package/dist/toast/index.js.map +1 -1
  273. package/package.json +1 -1
  274. package/dist/chunk-6OV2OZVR.js.map +0 -1
  275. package/dist/chunk-J5TQGGEN.js.map +0 -1
  276. package/dist/chunk-NZGSPYWG.js.map +0 -1
  277. package/dist/chunk-OGSFVQK2.js.map +0 -1
  278. package/dist/chunk-R4BKHISR.js.map +0 -1
  279. package/dist/chunk-RUT7LQ3A.js.map +0 -1
  280. package/dist/chunk-SE7Z4ZYP.js.map +0 -1
  281. package/dist/icons/alert-circle.js.map +0 -1
  282. package/dist/icons/all-networks.js.map +0 -1
  283. package/dist/icons/back.js.map +0 -1
  284. package/dist/icons/bonus.js.map +0 -1
  285. package/dist/icons/book.js.map +0 -1
  286. package/dist/icons/calendar.js.map +0 -1
  287. package/dist/icons/cash.js.map +0 -1
  288. package/dist/icons/chevron.js.map +0 -1
  289. package/dist/icons/cloud.js.map +0 -1
  290. package/dist/icons/code.js.map +0 -1
  291. package/dist/icons/copy.js.map +0 -1
  292. package/dist/icons/database.js.map +0 -1
  293. package/dist/icons/delete.js.map +0 -1
  294. package/dist/icons/down.js.map +0 -1
  295. package/dist/icons/download.js.map +0 -1
  296. package/dist/icons/duration.js.map +0 -1
  297. package/dist/icons/email.js.map +0 -1
  298. package/dist/icons/expense-user.js.map +0 -1
  299. package/dist/icons/expense.js.map +0 -1
  300. package/dist/icons/eye.d.ts +0 -8
  301. package/dist/icons/eye.js.map +0 -1
  302. package/dist/icons/fee.js.map +0 -1
  303. package/dist/icons/field-error.js.map +0 -1
  304. package/dist/icons/flask.js.map +0 -1
  305. package/dist/icons/google.js.map +0 -1
  306. package/dist/icons/grants.js.map +0 -1
  307. package/dist/icons/guard.js.map +0 -1
  308. package/dist/icons/history.js.map +0 -1
  309. package/dist/icons/import-file.js.map +0 -1
  310. package/dist/icons/key.js.map +0 -1
  311. package/dist/icons/kol-mkt.js.map +0 -1
  312. package/dist/icons/link.js.map +0 -1
  313. package/dist/icons/lock.js.map +0 -1
  314. package/dist/icons/logout.js.map +0 -1
  315. package/dist/icons/member.js.map +0 -1
  316. package/dist/icons/meno.js.map +0 -1
  317. package/dist/icons/menu.js.map +0 -1
  318. package/dist/icons/money.js.map +0 -1
  319. package/dist/icons/more.js.map +0 -1
  320. package/dist/icons/node.js.map +0 -1
  321. package/dist/icons/office.js.map +0 -1
  322. package/dist/icons/operations.js.map +0 -1
  323. package/dist/icons/otc-treasury.js.map +0 -1
  324. package/dist/icons/outsourcing.js.map +0 -1
  325. package/dist/icons/overview.js.map +0 -1
  326. package/dist/icons/pay.js.map +0 -1
  327. package/dist/icons/payout-status.js.map +0 -1
  328. package/dist/icons/payroll.js.map +0 -1
  329. package/dist/icons/pen.js.map +0 -1
  330. package/dist/icons/plus.js.map +0 -1
  331. package/dist/icons/private.js.map +0 -1
  332. package/dist/icons/processing.js.map +0 -1
  333. package/dist/icons/procurement.js.map +0 -1
  334. package/dist/icons/question.js.map +0 -1
  335. package/dist/icons/receipt.js.map +0 -1
  336. package/dist/icons/records.js.map +0 -1
  337. package/dist/icons/refresh.js.map +0 -1
  338. package/dist/icons/reimbursement.js.map +0 -1
  339. package/dist/icons/remove.js.map +0 -1
  340. package/dist/icons/request.js.map +0 -1
  341. package/dist/icons/reset-password.js.map +0 -1
  342. package/dist/icons/setting.js.map +0 -1
  343. package/dist/icons/settings.js.map +0 -1
  344. package/dist/icons/shield.js.map +0 -1
  345. package/dist/icons/success.js.map +0 -1
  346. package/dist/icons/support.js.map +0 -1
  347. package/dist/icons/swap.js.map +0 -1
  348. package/dist/icons/team.js.map +0 -1
  349. package/dist/icons/to-right.js.map +0 -1
  350. package/dist/icons/up.js.map +0 -1
  351. package/dist/icons/wallet.js.map +0 -1
  352. package/dist/icons/webhooks.js.map +0 -1
  353. /package/dist/{chunk-EYLLKIPV.js.map → chunk-WFHMCGZA.js.map} +0 -0
  354. /package/dist/icons/{alert.js.map → outline/alert.js.map} +0 -0
  355. /package/dist/icons/{arrow-down.js.map → outline/arrow-down.js.map} +0 -0
  356. /package/dist/icons/{check.js.map → outline/check.js.map} +0 -0
  357. /package/dist/icons/{close.js.map → outline/close.js.map} +0 -0
  358. /package/dist/icons/{loading.js.map → outline/loading.js.map} +0 -0
  359. /package/dist/icons/{search.js.map → outline/search.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  IconLoading
3
- } from "../chunk-SE7Z4ZYP.js";
3
+ } from "../chunk-Z4GG3E3C.js";
4
4
  import {
5
5
  FLOATING_ALIGN,
6
6
  FLOATING_SIDE,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/autocomplete/Autocomplete.tsx","../../src/autocomplete/config.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { useEffect, useLayoutEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { IconLoading } from \"../icons/loading\";\nimport { cn } from \"../lib/cn\";\nimport { fontSans } from \"../lib/font\";\nimport { floatingLayerZIndex } from \"../overlay/stack\";\nimport { FLOATING_ALIGN, FLOATING_SIDE, useFloatingPosition } from \"../overlay/use-floating-position\";\nimport { AUTOCOMPLETE_EMPTY, AUTOCOMPLETE_LOADING } from \"./config\";\n\nexport type AutocompleteOption = {\n value: string;\n label: ReactNode;\n disabled?: boolean;\n};\n\nexport type AutocompleteProps = {\n open: boolean;\n onOpenChange?: (open: boolean) => void;\n options: AutocompleteOption[];\n onSelect: (value: string) => void;\n value?: string;\n loading?: boolean;\n empty?: ReactNode;\n className?: string;\n panelClassName?: string;\n children: ReactNode;\n renderOption?: (option: AutocompleteOption, active: boolean) => ReactNode;\n};\n\nfunction optionValuesKey(options: readonly AutocompleteOption[]): string {\n return options.map((option) => option.value).join(\"\\0\");\n}\n\nfunction nextEnabledIndex(options: readonly AutocompleteOption[], from: number, direction: 1 | -1): number {\n const enabled: number[] = [];\n for (let index = 0; index < options.length; index += 1) {\n if (!options[index]?.disabled) enabled.push(index);\n }\n if (enabled.length === 0) return -1;\n if (from < 0) return direction === 1 ? enabled[0]! : enabled[enabled.length - 1]!;\n const position = enabled.indexOf(from);\n if (position < 0) return direction === 1 ? enabled[0]! : enabled[enabled.length - 1]!;\n const next = (position + direction + enabled.length) % enabled.length;\n return enabled[next]!;\n}\n\nexport function Autocomplete(props: AutocompleteProps) {\n const {\n open,\n onOpenChange,\n options,\n onSelect,\n value,\n loading = false,\n empty = AUTOCOMPLETE_EMPTY,\n className,\n panelClassName,\n children,\n renderOption,\n } = props;\n const triggerRef = useRef<HTMLDivElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const optionRefs = useRef<(HTMLButtonElement | null)[]>([]);\n const optionsRef = useRef(options);\n const onSelectRef = useRef(onSelect);\n const onOpenChangeRef = useRef(onOpenChange);\n const activeIndexRef = useRef(-1);\n const [triggerWidth, setTriggerWidth] = useState<number>();\n const [activeIndex, setActiveIndex] = useState(-1);\n const optionsKey = optionValuesKey(options);\n const panelStyle = useFloatingPosition({\n open,\n triggerRef,\n panelRef,\n side: FLOATING_SIDE.Bottom,\n align: FLOATING_ALIGN.Start,\n offset: 6,\n });\n\n optionsRef.current = options;\n onSelectRef.current = onSelect;\n onOpenChangeRef.current = onOpenChange;\n\n const setActive = (index: number) => {\n activeIndexRef.current = index;\n setActiveIndex(index);\n };\n\n const close = () => onOpenChangeRef.current?.(false);\n\n const selectIndex = (index: number) => {\n const option = optionsRef.current[index];\n if (!option || option.disabled) return;\n onSelectRef.current(option.value);\n close();\n };\n\n useLayoutEffect(() => {\n if (!open) return;\n const width = triggerRef.current?.getBoundingClientRect().width;\n if (width) setTriggerWidth(width);\n }, [open]);\n\n useEffect(() => {\n if (!open) {\n setActive(-1);\n return;\n }\n const match = value != null ? optionsRef.current.findIndex((option) => option.value === value) : -1;\n setActive(match);\n }, [open, optionsKey, value]);\n\n useLayoutEffect(() => {\n if (!open || activeIndex < 0) return;\n optionRefs.current[activeIndex]?.scrollIntoView({ block: \"nearest\" });\n }, [activeIndex, open]);\n\n useEffect(() => {\n if (!open) return;\n const onPointerDown = (event: MouseEvent) => {\n const target = event.target as Node | null;\n if (!target) return;\n if (triggerRef.current?.contains(target)) return;\n if (panelRef.current?.contains(target)) return;\n close();\n };\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n close();\n return;\n }\n if (loading || optionsRef.current.length === 0) return;\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n setActive(nextEnabledIndex(optionsRef.current, activeIndexRef.current, 1));\n return;\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n setActive(nextEnabledIndex(optionsRef.current, activeIndexRef.current, -1));\n return;\n }\n if (event.key === \"Enter\") {\n const index = activeIndexRef.current;\n if (index < 0) return;\n event.preventDefault();\n selectIndex(index);\n }\n };\n const onScroll = (event: Event) => {\n const target = event.target;\n if (target instanceof Node && panelRef.current?.contains(target)) return;\n close();\n };\n document.addEventListener(\"mousedown\", onPointerDown);\n document.addEventListener(\"keydown\", onKeyDown);\n window.addEventListener(\"scroll\", onScroll, true);\n return () => {\n document.removeEventListener(\"mousedown\", onPointerDown);\n document.removeEventListener(\"keydown\", onKeyDown);\n window.removeEventListener(\"scroll\", onScroll, true);\n };\n }, [loading, open]);\n\n return (\n <div className={cn(\"relative min-w-0\", className)}>\n <div\n ref={triggerRef}\n className=\"w-full min-w-0\"\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-activedescendant={open && activeIndex >= 0 ? `autocomplete-option-${activeIndex}` : undefined}\n >\n {children}\n </div>\n {open && typeof document !== \"undefined\"\n ? createPortal(\n <div\n ref={panelRef}\n role=\"listbox\"\n style={{ ...panelStyle, minWidth: triggerWidth, zIndex: floatingLayerZIndex() }}\n className={cn(\n \"max-h-60 w-max overflow-x-hidden overflow-y-auto rounded-[12px] border border-[#E0E0E0] bg-[#FDFDFD] py-1 text-base font-medium leading-normal text-black shadow-[0_0_20px_0_rgba(0,0,0,0.06)]\",\n fontSans,\n panelClassName,\n )}\n >\n {loading ? (\n <p\n role=\"status\"\n className={cn(\"flex items-center justify-center gap-2 px-3 py-4 text-sm font-medium text-[#aaa]\", fontSans)}\n >\n <IconLoading className=\"size-3.25 shrink-0 animate-spin\" />\n {AUTOCOMPLETE_LOADING}\n </p>\n ) : options.length === 0 ? (\n <p role=\"status\" className={cn(\"px-3 py-4 text-center text-sm font-medium text-[#aaa]\", fontSans)}>\n {empty}\n </p>\n ) : (\n options.map((option, index) => {\n const active = index === activeIndex;\n return (\n <button\n key={option.value}\n id={`autocomplete-option-${index}`}\n ref={(node) => {\n optionRefs.current[index] = node;\n }}\n type=\"button\"\n role=\"option\"\n aria-selected={active}\n disabled={option.disabled}\n onMouseEnter={() => {\n if (option.disabled) return;\n setActive(index);\n }}\n onClick={() => {\n if (option.disabled) return;\n selectIndex(index);\n }}\n className={cn(\n \"flex cursor-pointer w-full border-0 bg-transparent text-left text-xs font-medium text-black hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-30\",\n renderOption ? \"items-center px-2.5 py-1.5\" : \"px-3 py-2\",\n active && \"bg-black/5\",\n )}\n >\n {renderOption ? renderOption(option, active) : option.label}\n </button>\n );\n })\n )}\n </div>,\n document.body,\n )\n : null}\n </div>\n );\n}\n\nexport default Autocomplete;\n","export const AUTOCOMPLETE_EMPTY = \"No matching recipients\";\nexport const AUTOCOMPLETE_LOADING = \"Loading...\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/autocomplete/Autocomplete.tsx","../../src/autocomplete/config.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { useEffect, useLayoutEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { IconLoading } from \"../icons/outline/loading\";\nimport { cn } from \"../lib/cn\";\nimport { fontSans } from \"../lib/font\";\nimport { floatingLayerZIndex } from \"../overlay/stack\";\nimport { FLOATING_ALIGN, FLOATING_SIDE, useFloatingPosition } from \"../overlay/use-floating-position\";\nimport { AUTOCOMPLETE_EMPTY, AUTOCOMPLETE_LOADING } from \"./config\";\n\nexport type AutocompleteOption = {\n value: string;\n label: ReactNode;\n disabled?: boolean;\n};\n\nexport type AutocompleteProps = {\n open: boolean;\n onOpenChange?: (open: boolean) => void;\n options: AutocompleteOption[];\n onSelect: (value: string) => void;\n value?: string;\n loading?: boolean;\n empty?: ReactNode;\n className?: string;\n panelClassName?: string;\n children: ReactNode;\n renderOption?: (option: AutocompleteOption, active: boolean) => ReactNode;\n};\n\nfunction optionValuesKey(options: readonly AutocompleteOption[]): string {\n return options.map((option) => option.value).join(\"\\0\");\n}\n\nfunction nextEnabledIndex(options: readonly AutocompleteOption[], from: number, direction: 1 | -1): number {\n const enabled: number[] = [];\n for (let index = 0; index < options.length; index += 1) {\n if (!options[index]?.disabled) enabled.push(index);\n }\n if (enabled.length === 0) return -1;\n if (from < 0) return direction === 1 ? enabled[0]! : enabled[enabled.length - 1]!;\n const position = enabled.indexOf(from);\n if (position < 0) return direction === 1 ? enabled[0]! : enabled[enabled.length - 1]!;\n const next = (position + direction + enabled.length) % enabled.length;\n return enabled[next]!;\n}\n\nexport function Autocomplete(props: AutocompleteProps) {\n const {\n open,\n onOpenChange,\n options,\n onSelect,\n value,\n loading = false,\n empty = AUTOCOMPLETE_EMPTY,\n className,\n panelClassName,\n children,\n renderOption,\n } = props;\n const triggerRef = useRef<HTMLDivElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const optionRefs = useRef<(HTMLButtonElement | null)[]>([]);\n const optionsRef = useRef(options);\n const onSelectRef = useRef(onSelect);\n const onOpenChangeRef = useRef(onOpenChange);\n const activeIndexRef = useRef(-1);\n const [triggerWidth, setTriggerWidth] = useState<number>();\n const [activeIndex, setActiveIndex] = useState(-1);\n const optionsKey = optionValuesKey(options);\n const panelStyle = useFloatingPosition({\n open,\n triggerRef,\n panelRef,\n side: FLOATING_SIDE.Bottom,\n align: FLOATING_ALIGN.Start,\n offset: 6,\n });\n\n optionsRef.current = options;\n onSelectRef.current = onSelect;\n onOpenChangeRef.current = onOpenChange;\n\n const setActive = (index: number) => {\n activeIndexRef.current = index;\n setActiveIndex(index);\n };\n\n const close = () => onOpenChangeRef.current?.(false);\n\n const selectIndex = (index: number) => {\n const option = optionsRef.current[index];\n if (!option || option.disabled) return;\n onSelectRef.current(option.value);\n close();\n };\n\n useLayoutEffect(() => {\n if (!open) return;\n const width = triggerRef.current?.getBoundingClientRect().width;\n if (width) setTriggerWidth(width);\n }, [open]);\n\n useEffect(() => {\n if (!open) {\n setActive(-1);\n return;\n }\n const match = value != null ? optionsRef.current.findIndex((option) => option.value === value) : -1;\n setActive(match);\n }, [open, optionsKey, value]);\n\n useLayoutEffect(() => {\n if (!open || activeIndex < 0) return;\n optionRefs.current[activeIndex]?.scrollIntoView({ block: \"nearest\" });\n }, [activeIndex, open]);\n\n useEffect(() => {\n if (!open) return;\n const onPointerDown = (event: MouseEvent) => {\n const target = event.target as Node | null;\n if (!target) return;\n if (triggerRef.current?.contains(target)) return;\n if (panelRef.current?.contains(target)) return;\n close();\n };\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n close();\n return;\n }\n if (loading || optionsRef.current.length === 0) return;\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n setActive(nextEnabledIndex(optionsRef.current, activeIndexRef.current, 1));\n return;\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n setActive(nextEnabledIndex(optionsRef.current, activeIndexRef.current, -1));\n return;\n }\n if (event.key === \"Enter\") {\n const index = activeIndexRef.current;\n if (index < 0) return;\n event.preventDefault();\n selectIndex(index);\n }\n };\n const onScroll = (event: Event) => {\n const target = event.target;\n if (target instanceof Node && panelRef.current?.contains(target)) return;\n close();\n };\n document.addEventListener(\"mousedown\", onPointerDown);\n document.addEventListener(\"keydown\", onKeyDown);\n window.addEventListener(\"scroll\", onScroll, true);\n return () => {\n document.removeEventListener(\"mousedown\", onPointerDown);\n document.removeEventListener(\"keydown\", onKeyDown);\n window.removeEventListener(\"scroll\", onScroll, true);\n };\n }, [loading, open]);\n\n return (\n <div className={cn(\"relative min-w-0\", className)}>\n <div\n ref={triggerRef}\n className=\"w-full min-w-0\"\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-activedescendant={open && activeIndex >= 0 ? `autocomplete-option-${activeIndex}` : undefined}\n >\n {children}\n </div>\n {open && typeof document !== \"undefined\"\n ? createPortal(\n <div\n ref={panelRef}\n role=\"listbox\"\n style={{ ...panelStyle, minWidth: triggerWidth, zIndex: floatingLayerZIndex() }}\n className={cn(\n \"max-h-60 w-max overflow-x-hidden overflow-y-auto rounded-[12px] border border-[#E0E0E0] bg-[#FDFDFD] py-1 text-base font-medium leading-normal text-black shadow-[0_0_20px_0_rgba(0,0,0,0.06)]\",\n fontSans,\n panelClassName,\n )}\n >\n {loading ? (\n <p\n role=\"status\"\n className={cn(\"flex items-center justify-center gap-2 px-3 py-4 text-sm font-medium text-[#aaa]\", fontSans)}\n >\n <IconLoading className=\"size-3.25 shrink-0 animate-spin\" />\n {AUTOCOMPLETE_LOADING}\n </p>\n ) : options.length === 0 ? (\n <p role=\"status\" className={cn(\"px-3 py-4 text-center text-sm font-medium text-[#aaa]\", fontSans)}>\n {empty}\n </p>\n ) : (\n options.map((option, index) => {\n const active = index === activeIndex;\n return (\n <button\n key={option.value}\n id={`autocomplete-option-${index}`}\n ref={(node) => {\n optionRefs.current[index] = node;\n }}\n type=\"button\"\n role=\"option\"\n aria-selected={active}\n disabled={option.disabled}\n onMouseEnter={() => {\n if (option.disabled) return;\n setActive(index);\n }}\n onClick={() => {\n if (option.disabled) return;\n selectIndex(index);\n }}\n className={cn(\n \"flex cursor-pointer w-full border-0 bg-transparent text-left text-xs font-medium text-black hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-30\",\n renderOption ? \"items-center px-2.5 py-1.5\" : \"px-3 py-2\",\n active && \"bg-black/5\",\n )}\n >\n {renderOption ? renderOption(option, active) : option.label}\n </button>\n );\n })\n )}\n </div>,\n document.body,\n )\n : null}\n </div>\n );\n}\n\nexport default Autocomplete;\n","export const AUTOCOMPLETE_EMPTY = \"No matching recipients\";\nexport const AUTOCOMPLETE_LOADING = \"Loading...\";\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  IconLoading
3
- } from "../chunk-SE7Z4ZYP.js";
3
+ } from "../chunk-Z4GG3E3C.js";
4
4
  import {
5
5
  fontSans
6
6
  } from "../chunk-FXENEWNN.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/button/Button.tsx","../../src/button/config.ts"],"sourcesContent":["import type { ButtonHTMLAttributes } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { IconLoading } from \"../icons/loading\";\nimport { cn } from \"../lib/cn\";\nimport { fontSans } from \"../lib/font\";\nimport { BUTTON_SIZE, BUTTON_VARIANT } from \"./config\";\n\nconst buttonVariants = cva(\n `inline-flex cursor-pointer items-center justify-center gap-2 px-3 text-center ${fontSans} font-medium leading-normal transition-colors outline-none select-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-30 md:px-5`,\n {\n variants: {\n variant: {\n [BUTTON_VARIANT.Primary]:\n \"border border-transparent bg-black text-white shadow-[0_0_6px_0_rgba(0,0,0,0.06)] hover:opacity-90\",\n [BUTTON_VARIANT.Normal]:\n \"border border-[rgba(0,0,0,0.20)] bg-white text-[#606060] shadow-[0_0_6px_0_rgba(0,0,0,0.06)] hover:bg-black/5\",\n [BUTTON_VARIANT.Danger]:\n \"border border-transparent bg-[#ff5656] text-white shadow-[0_0_6px_0_rgba(0,0,0,0.06)] hover:opacity-90\",\n },\n size: {\n [BUTTON_SIZE.Xl]: \"h-12 rounded-[12px] text-[15px] md:h-14 md:text-base\",\n [BUTTON_SIZE.Lg]: \"h-10 rounded-[12px] text-sm md:h-[50px] md:text-base\",\n [BUTTON_SIZE.Md]: \"h-8 rounded-[10px] text-[13px] md:h-10 md:text-base\",\n [BUTTON_SIZE.Sm]: \"h-6 rounded-[8px] text-xl md:h-9 md:text-sm\",\n },\n },\n defaultVariants: {\n variant: BUTTON_VARIANT.Primary,\n size: BUTTON_SIZE.Md,\n },\n});\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof buttonVariants> & {\n loading?: boolean;\n rounded?: string;\n };\n\nexport function Button(props: ButtonProps) {\n const {\n className,\n variant = BUTTON_VARIANT.Primary,\n size = BUTTON_SIZE.Md,\n loading = false,\n rounded,\n disabled,\n children,\n type = \"button\",\n ...restProps\n } = props;\n\n return (\n <button\n type={type}\n disabled={disabled || loading}\n className={cn(buttonVariants({ variant, size }), rounded, className)}\n {...restProps}\n >\n {loading ? <IconLoading className=\"size-3.25 shrink-0 animate-spin\" /> : null}\n {children}\n </button>\n );\n}\n\nexport { buttonVariants };\nexport default Button;\n","export const BUTTON_VARIANT = {\n Primary: \"primary\",\n Normal: \"normal\",\n Danger: \"danger\",\n} as const;\n\nexport const BUTTON_SIZE = {\n Xl: \"xl\",\n Lg: \"lg\",\n Md: \"md\",\n Sm: \"sm\",\n} as const;\n"],"mappings":";;;;;;;;;;;AACA,SAAS,WAA8B;;;ACDhC,IAAM,iBAAiB;AAAA,EAC5B,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AACV;AAEO,IAAM,cAAc;AAAA,EACzB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;;;ADyCI,SAMa,KANb;AA7CJ,IAAM,iBAAiB;AAAA,EACrB,iFAAiF,QAAQ;AAAA,EACzF;AAAA,IACA,UAAU;AAAA,MACR,SAAS;AAAA,QACP,CAAC,eAAe,OAAO,GACrB;AAAA,QACF,CAAC,eAAe,MAAM,GACpB;AAAA,QACF,CAAC,eAAe,MAAM,GACpB;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,QACJ,CAAC,YAAY,EAAE,GAAG;AAAA,QAClB,CAAC,YAAY,EAAE,GAAG;AAAA,QAClB,CAAC,YAAY,EAAE,GAAG;AAAA,QAClB,CAAC,YAAY,EAAE,GAAG;AAAA,MACpB;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS,eAAe;AAAA,MACxB,MAAM,YAAY;AAAA,IACpB;AAAA,EACF;AAAC;AAQM,SAAS,OAAO,OAAoB;AACzC,QAAM;AAAA,IACJ;AAAA,IACA,UAAU,eAAe;AAAA,IACzB,OAAO,YAAY;AAAA,IACnB,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP,GAAG;AAAA,EACL,IAAI;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,UAAU,YAAY;AAAA,MACtB,WAAW,GAAG,eAAe,EAAE,SAAS,KAAK,CAAC,GAAG,SAAS,SAAS;AAAA,MAClE,GAAG;AAAA,MAEH;AAAA,kBAAU,oBAAC,eAAY,WAAU,mCAAkC,IAAK;AAAA,QACxE;AAAA;AAAA;AAAA,EACH;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../src/button/Button.tsx","../../src/button/config.ts"],"sourcesContent":["import type { ButtonHTMLAttributes } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { IconLoading } from \"../icons/outline/loading\";\nimport { cn } from \"../lib/cn\";\nimport { fontSans } from \"../lib/font\";\nimport { BUTTON_SIZE, BUTTON_VARIANT } from \"./config\";\n\nconst buttonVariants = cva(\n `inline-flex cursor-pointer items-center justify-center gap-2 px-3 text-center ${fontSans} font-medium leading-normal transition-colors outline-none select-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-30 md:px-5`,\n {\n variants: {\n variant: {\n [BUTTON_VARIANT.Primary]:\n \"border border-transparent bg-black text-white shadow-[0_0_6px_0_rgba(0,0,0,0.06)] hover:opacity-90\",\n [BUTTON_VARIANT.Normal]:\n \"border border-[rgba(0,0,0,0.20)] bg-white text-[#606060] shadow-[0_0_6px_0_rgba(0,0,0,0.06)] hover:bg-black/5\",\n [BUTTON_VARIANT.Danger]:\n \"border border-transparent bg-[#ff5656] text-white shadow-[0_0_6px_0_rgba(0,0,0,0.06)] hover:opacity-90\",\n },\n size: {\n [BUTTON_SIZE.Xl]: \"h-12 rounded-[12px] text-[15px] md:h-14 md:text-base\",\n [BUTTON_SIZE.Lg]: \"h-10 rounded-[12px] text-sm md:h-[50px] md:text-base\",\n [BUTTON_SIZE.Md]: \"h-8 rounded-[10px] text-[13px] md:h-10 md:text-base\",\n [BUTTON_SIZE.Sm]: \"h-6 rounded-[8px] text-xl md:h-9 md:text-sm\",\n },\n },\n defaultVariants: {\n variant: BUTTON_VARIANT.Primary,\n size: BUTTON_SIZE.Md,\n },\n});\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof buttonVariants> & {\n loading?: boolean;\n rounded?: string;\n };\n\nexport function Button(props: ButtonProps) {\n const {\n className,\n variant = BUTTON_VARIANT.Primary,\n size = BUTTON_SIZE.Md,\n loading = false,\n rounded,\n disabled,\n children,\n type = \"button\",\n ...restProps\n } = props;\n\n return (\n <button\n type={type}\n disabled={disabled || loading}\n className={cn(buttonVariants({ variant, size }), rounded, className)}\n {...restProps}\n >\n {loading ? <IconLoading className=\"size-3.25 shrink-0 animate-spin\" /> : null}\n {children}\n </button>\n );\n}\n\nexport { buttonVariants };\nexport default Button;\n","export const BUTTON_VARIANT = {\n Primary: \"primary\",\n Normal: \"normal\",\n Danger: \"danger\",\n} as const;\n\nexport const BUTTON_SIZE = {\n Xl: \"xl\",\n Lg: \"lg\",\n Md: \"md\",\n Sm: \"sm\",\n} as const;\n"],"mappings":";;;;;;;;;;;AACA,SAAS,WAA8B;;;ACDhC,IAAM,iBAAiB;AAAA,EAC5B,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AACV;AAEO,IAAM,cAAc;AAAA,EACzB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;;;ADyCI,SAMa,KANb;AA7CJ,IAAM,iBAAiB;AAAA,EACrB,iFAAiF,QAAQ;AAAA,EACzF;AAAA,IACA,UAAU;AAAA,MACR,SAAS;AAAA,QACP,CAAC,eAAe,OAAO,GACrB;AAAA,QACF,CAAC,eAAe,MAAM,GACpB;AAAA,QACF,CAAC,eAAe,MAAM,GACpB;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,QACJ,CAAC,YAAY,EAAE,GAAG;AAAA,QAClB,CAAC,YAAY,EAAE,GAAG;AAAA,QAClB,CAAC,YAAY,EAAE,GAAG;AAAA,QAClB,CAAC,YAAY,EAAE,GAAG;AAAA,MACpB;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS,eAAe;AAAA,MACxB,MAAM,YAAY;AAAA,IACpB;AAAA,EACF;AAAC;AAQM,SAAS,OAAO,OAAoB;AACzC,QAAM;AAAA,IACJ;AAAA,IACA,UAAU,eAAe;AAAA,IACzB,OAAO,YAAY;AAAA,IACnB,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP,GAAG;AAAA,EACL,IAAI;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,UAAU,YAAY;AAAA,MACtB,WAAW,GAAG,eAAe,EAAE,SAAS,KAAK,CAAC,GAAG,SAAS,SAAS;AAAA,MAClE,GAAG;AAAA,MAEH;AAAA,kBAAU,oBAAC,eAAY,WAAU,mCAAkC,IAAK;AAAA,QACxE;AAAA;AAAA;AAAA,EACH;AAEJ;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  IconCheck
3
- } from "../chunk-6OV2OZVR.js";
3
+ } from "../chunk-35PKR342.js";
4
4
  import {
5
5
  cn
6
6
  } from "../chunk-TUEV2KLC.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/checkbox/Checkbox.tsx"],"sourcesContent":["import { useState, type ButtonHTMLAttributes } from \"react\";\nimport { IconCheck } from \"../icons/check\";\nimport { cn } from \"../lib/cn\";\n\nexport type CheckboxProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"onChange\" | \"role\" | \"aria-checked\" | \"children\"\n> & {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n};\n\nexport function Checkbox(props: CheckboxProps) {\n const {\n checked,\n defaultChecked = false,\n onCheckedChange,\n disabled,\n className,\n type = \"button\",\n onClick,\n ...restProps\n } = props;\n const [uncontrolledChecked, setUncontrolledChecked] = useState(defaultChecked);\n const isChecked = checked ?? uncontrolledChecked;\n\n const toggle = () => {\n const nextChecked = !isChecked;\n if (checked === undefined) setUncontrolledChecked(nextChecked);\n onCheckedChange?.(nextChecked);\n };\n\n return (\n <button\n type={type}\n role=\"checkbox\"\n aria-checked={isChecked}\n disabled={disabled}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n toggle();\n }}\n className={cn(\n \"inline-flex size-4 shrink-0 cursor-pointer items-center justify-center rounded-[4px] border border-[#e3e3e3] bg-white p-0 text-white outline-none select-none aria-checked:bg-[#6284F5]\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-30\",\n className,\n )}\n {...restProps}\n >\n {isChecked ? <IconCheck className=\"size-2.5 text-white\" /> : null}\n </button>\n );\n}\n\nexport default Checkbox;\n"],"mappings":";;;;;;;;AAAA,SAAS,gBAA2C;AAmDjC;AAtCZ,SAAS,SAAS,OAAsB;AAC7C,QAAM;AAAA,IACJ;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,CAAC,qBAAqB,sBAAsB,IAAI,SAAS,cAAc;AAC7E,QAAM,YAAY,WAAW;AAE7B,QAAM,SAAS,MAAM;AACnB,UAAM,cAAc,CAAC;AACrB,QAAI,YAAY,OAAW,wBAAuB,WAAW;AAC7D,sBAAkB,WAAW;AAAA,EAC/B;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,MAAK;AAAA,MACL,gBAAc;AAAA,MACd;AAAA,MACA,SAAS,CAAC,UAAU;AAClB,kBAAU,KAAK;AACf,YAAI,MAAM,iBAAkB;AAC5B,eAAO;AAAA,MACT;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH,sBAAY,oBAAC,aAAU,WAAU,uBAAsB,IAAK;AAAA;AAAA,EAC/D;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../src/checkbox/Checkbox.tsx"],"sourcesContent":["import { useState, type ButtonHTMLAttributes } from \"react\";\nimport { IconCheck } from \"../icons/outline/check\";\nimport { cn } from \"../lib/cn\";\n\nexport type CheckboxProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"onChange\" | \"role\" | \"aria-checked\" | \"children\"\n> & {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n};\n\nexport function Checkbox(props: CheckboxProps) {\n const {\n checked,\n defaultChecked = false,\n onCheckedChange,\n disabled,\n className,\n type = \"button\",\n onClick,\n ...restProps\n } = props;\n const [uncontrolledChecked, setUncontrolledChecked] = useState(defaultChecked);\n const isChecked = checked ?? uncontrolledChecked;\n\n const toggle = () => {\n const nextChecked = !isChecked;\n if (checked === undefined) setUncontrolledChecked(nextChecked);\n onCheckedChange?.(nextChecked);\n };\n\n return (\n <button\n type={type}\n role=\"checkbox\"\n aria-checked={isChecked}\n disabled={disabled}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n toggle();\n }}\n className={cn(\n \"inline-flex size-4 shrink-0 cursor-pointer items-center justify-center rounded-[4px] border border-[#e3e3e3] bg-white p-0 text-white outline-none select-none aria-checked:bg-[#6284F5]\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-30\",\n className,\n )}\n {...restProps}\n >\n {isChecked ? <IconCheck className=\"size-2.5 text-white\" /> : null}\n </button>\n );\n}\n\nexport default Checkbox;\n"],"mappings":";;;;;;;;AAAA,SAAS,gBAA2C;AAmDjC;AAtCZ,SAAS,SAAS,OAAsB;AAC7C,QAAM;AAAA,IACJ;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,CAAC,qBAAqB,sBAAsB,IAAI,SAAS,cAAc;AAC7E,QAAM,YAAY,WAAW;AAE7B,QAAM,SAAS,MAAM;AACnB,UAAM,cAAc,CAAC;AACrB,QAAI,YAAY,OAAW,wBAAuB,WAAW;AAC7D,sBAAkB,WAAW;AAAA,EAC/B;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,MAAK;AAAA,MACL,gBAAc;AAAA,MACd;AAAA,MACA,SAAS,CAAC,UAAU;AAClB,kBAAU,KAAK;AACf,YAAI,MAAM,iBAAkB;AAC5B,eAAO;AAAA,MACT;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH,sBAAY,oBAAC,aAAU,WAAU,uBAAsB,IAAK;AAAA;AAAA,EAC/D;AAEJ;","names":[]}
@@ -1,4 +1,4 @@
1
- // src/icons/check.tsx
1
+ // src/icons/outline/check.tsx
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  var IconCheck = (props) => {
4
4
  const {
@@ -31,4 +31,4 @@ export {
31
31
  IconCheck,
32
32
  check_default
33
33
  };
34
- //# sourceMappingURL=chunk-6OV2OZVR.js.map
34
+ //# sourceMappingURL=chunk-35PKR342.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/icons/outline/check.tsx"],"sourcesContent":["import type { IconProps } from \"../types\";\n\nexport const IconCheck = (props: IconProps) => {\n const {\n className,\n style,\n } = props;\n\n return (\n <svg\n width=\"9\"\n height=\"7\"\n viewBox=\"0 0 9 7\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className ? `sfp-icon ${className}` : \"sfp-icon\"}\n style={style}\n >\n <path\n d=\"M4.25247 6.72007C4.08748 6.90671 3.87132 7 3.65516 7C3.43898 7 3.22279 6.90671 3.05785 6.72007L0.241694 3.53523C0.067883 3.33872 -0.00860543 3.07875 0.000765175 2.82177C0.00904404 2.59037 0.085487 2.36091 0.241694 2.18428C0.397878 2.00752 0.600801 1.92107 0.805431 1.91171C1.03262 1.90121 1.26254 1.98761 1.43631 2.18428L3.65516 4.69348L7.5637 0.273335C7.73746 0.0767699 7.96743 -0.00973202 8.19457 0.000865348C8.3992 0.0102795 8.60215 0.0966785 8.75831 0.273335C8.91454 0.449966 8.99096 0.679559 8.99924 0.910874C9.00859 1.16781 8.93212 1.42783 8.75831 1.62439L4.25247 6.72007Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default IconCheck;\n"],"mappings":";AAkBM;AAhBC,IAAM,YAAY,CAAC,UAAqB;AAC7C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MACN,WAAW,YAAY,YAAY,SAAS,KAAK;AAAA,MACjD;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,gBAAQ;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  IconClose
3
- } from "./chunk-J5TQGGEN.js";
3
+ } from "./chunk-D5X5OIZQ.js";
4
4
  import {
5
5
  Card
6
6
  } from "./chunk-MJ36QLY3.js";
@@ -182,7 +182,7 @@ function OverlayPanel(props) {
182
182
  "aria-labelledby": hasTitle ? titleId : void 0,
183
183
  "aria-label": hasTitle ? void 0 : ariaLabel,
184
184
  tabIndex: -1,
185
- className: cn("relative flex flex-col gap-5", cardClassName),
185
+ className: cn("relative flex flex-col gap-5 outline-none", cardClassName),
186
186
  style,
187
187
  onClick: (event) => event.stopPropagation(),
188
188
  children: [
@@ -221,4 +221,4 @@ export {
221
221
  Overlay,
222
222
  OverlayPanel
223
223
  };
224
- //# sourceMappingURL=chunk-RUT7LQ3A.js.map
224
+ //# sourceMappingURL=chunk-CHPMYAJ6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/overlay/Overlay.tsx","../src/overlay/use-overlay-layer.ts","../src/overlay/OverlayPanel.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { useEffect, useLayoutEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { AnimatePresence, motion } from \"motion/react\";\nimport { cn } from \"../lib/cn\";\nimport {\n OVERLAY_DIALOG_PANEL_FADE_SECONDS,\n OVERLAY_EXIT_SECONDS,\n OVERLAY_MASK_FADE_SECONDS,\n OVERLAY_PANEL_SLIDE_SECONDS,\n} from \"./config\";\nimport { elevatedOverlayZIndex, isTopOverlay } from \"./stack\";\nimport { useOverlayLayer } from \"./use-overlay-layer\";\n\nexport type OverlayProps = {\n type?: \"dialog\" | \"drawer\";\n open: boolean;\n onClose?: () => void;\n mask?: boolean;\n maskClassName?: string;\n closeOnMaskClick?: boolean;\n children?: ReactNode;\n className?: string;\n elevated?: boolean;\n};\n\nexport function Overlay(props: OverlayProps) {\n const {\n type = \"dialog\",\n open,\n onClose,\n mask = true,\n maskClassName,\n closeOnMaskClick = true,\n children,\n className,\n elevated = false,\n } = props;\n const [present, setPresent] = useState(open);\n\n useLayoutEffect(() => {\n if (open) setPresent(true);\n }, [open]);\n\n const zIndex = useOverlayLayer(open || present);\n const visualZIndex = elevated ? elevatedOverlayZIndex(zIndex) : zIndex;\n\n useEffect(() => {\n if (!open) return;\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key !== \"Escape\") return;\n if (!isTopOverlay(zIndex)) return;\n onClose?.();\n };\n\n document.addEventListener(\"keydown\", onKeyDown);\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, [open, onClose, zIndex]);\n\n if (typeof document === \"undefined\") return null;\n if (!open && !present) return null;\n\n return createPortal(\n <AnimatePresence onExitComplete={() => setPresent(false)}>\n {open ? (\n <motion.div\n key=\"overlay-root\"\n className={cn(\"fixed inset-0 overflow-hidden\", !mask && \"pointer-events-none\", className)}\n style={{ zIndex: visualZIndex }}\n role=\"presentation\"\n initial={{ opacity: 1 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 1 }}\n transition={{ duration: OVERLAY_EXIT_SECONDS }}\n >\n <motion.div\n className={cn(\n \"absolute inset-0\",\n mask ? \"bg-[rgba(0,0,0,0.50)]\" : \"bg-transparent\",\n !closeOnMaskClick && \"pointer-events-none\",\n maskClassName,\n )}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1, transition: { duration: OVERLAY_MASK_FADE_SECONDS, delay: 0 } }}\n exit={{\n opacity: 0,\n transition: {\n duration: OVERLAY_MASK_FADE_SECONDS,\n delay: type === \"drawer\" ? OVERLAY_PANEL_SLIDE_SECONDS : OVERLAY_DIALOG_PANEL_FADE_SECONDS,\n },\n }}\n onClick={closeOnMaskClick ? onClose : undefined}\n />\n {children}\n </motion.div>\n ) : null}\n </AnimatePresence>,\n document.body,\n );\n}\n\nexport default Overlay;\n","import { useLayoutEffect, useState } from \"react\";\nimport { OVERLAY_BASE_Z_INDEX } from \"./config\";\nimport { acquireOverlayLayer, releaseOverlayLayer } from \"./stack\";\n\nexport function useOverlayLayer(open: boolean) {\n const [zIndex, setZIndex] = useState(OVERLAY_BASE_Z_INDEX);\n\n useLayoutEffect(() => {\n if (!open) return;\n const nextZIndex = acquireOverlayLayer();\n setZIndex(nextZIndex);\n return () => {\n releaseOverlayLayer(nextZIndex);\n };\n }, [open]);\n\n return zIndex;\n}\n","import { useEffect, useId, type CSSProperties, type ReactNode } from \"react\";\nimport { IconClose } from \"../icons/outline/close\";\nimport { cn } from \"../lib/cn\";\nimport { fontSans } from \"../lib/font\";\nimport { Card } from \"../card/Card\";\n\nexport type OverlayPanelProps = {\n title?: ReactNode;\n ariaLabel?: string;\n titleClassName?: string;\n headerClassName?: string;\n closeClassName?: string;\n closeIcon?: ReactNode;\n headerAction?: ReactNode;\n onClose?: () => void;\n cardClassName?: string;\n contentClassName?: string;\n children?: ReactNode;\n style?: CSSProperties;\n trapFocus?: boolean;\n};\n\nexport function OverlayPanel(props: OverlayPanelProps) {\n const {\n title,\n ariaLabel,\n titleClassName,\n headerClassName,\n closeClassName,\n closeIcon,\n headerAction,\n onClose,\n cardClassName,\n contentClassName,\n children,\n style,\n trapFocus = true,\n } = props;\n const panelId = useId();\n const titleId = panelId + \"-title\";\n const hasTitle = title !== undefined && title !== null && title !== \"\";\n\n useEffect(() => {\n if (!trapFocus) return;\n\n const panel = document.getElementById(panelId);\n if (!panel) return;\n\n const previouslyFocused = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n panel.focus({ preventScroll: true });\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== \"Tab\") return;\n\n const focusableElements = Array.from(\n panel.querySelectorAll<HTMLElement>(\n 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])',\n ),\n ).filter((element) => element.getAttribute(\"aria-hidden\") !== \"true\" && element.getClientRects().length > 0);\n\n if (focusableElements.length === 0) {\n event.preventDefault();\n panel.focus({ preventScroll: true });\n return;\n }\n\n const firstElement = focusableElements[0];\n const lastElement = focusableElements[focusableElements.length - 1];\n const activeElement = document.activeElement;\n\n if (event.shiftKey && (activeElement === panel || activeElement === firstElement || !panel.contains(activeElement))) {\n event.preventDefault();\n lastElement.focus({ preventScroll: true });\n } else if (!event.shiftKey && activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus({ preventScroll: true });\n }\n };\n\n panel.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n panel.removeEventListener(\"keydown\", handleKeyDown);\n if (previouslyFocused?.isConnected) previouslyFocused.focus({ preventScroll: true });\n };\n }, [panelId, trapFocus]);\n\n return (\n <Card\n id={panelId}\n role=\"dialog\"\n aria-modal={trapFocus ? \"true\" : undefined}\n aria-labelledby={hasTitle ? titleId : undefined}\n aria-label={hasTitle ? undefined : ariaLabel}\n tabIndex={-1}\n className={cn(\"relative flex flex-col gap-5 outline-none\", cardClassName)}\n style={style}\n onClick={(event) => event.stopPropagation()}\n >\n <div className={cn(\"relative flex shrink-0 items-center gap-3\", headerClassName)}>\n <h2\n id={hasTitle ? titleId : undefined}\n className={cn(\n \"min-h-5 min-w-0 text-[20px] font-semibold leading-normal text-black\",\n fontSans,\n titleClassName,\n )}\n >\n {title}\n </h2>\n {headerAction}\n <button\n type=\"button\"\n aria-label=\"Close\"\n onClick={onClose}\n className={cn(\"ml-auto shrink-0 cursor-pointer border-0 bg-transparent p-0 text-black\", closeClassName)}\n >\n {closeIcon ?? <IconClose className=\"size-3.25\" />}\n </button>\n </div>\n <div className={cn(\"min-h-0 flex-1 overflow-y-auto\", contentClassName)}>{children}</div>\n </Card>\n );\n}\n\nexport default OverlayPanel;\n"],"mappings":"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","names":["useLayoutEffect","useState","useState","useLayoutEffect","useEffect","jsx","jsxs","useEffect"]}
@@ -1,4 +1,4 @@
1
- // src/icons/arrow-down.tsx
1
+ // src/icons/outline/arrow-down.tsx
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  var IconArrowDown = (props) => {
4
4
  const {
@@ -31,4 +31,4 @@ export {
31
31
  IconArrowDown,
32
32
  arrow_down_default
33
33
  };
34
- //# sourceMappingURL=chunk-OGSFVQK2.js.map
34
+ //# sourceMappingURL=chunk-CYTYDPSK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/icons/outline/arrow-down.tsx"],"sourcesContent":["import type { IconProps } from \"../types\";\n\nexport const IconArrowDown = (props: IconProps) => {\n const {\n className,\n style,\n } = props;\n\n return (\n <svg\n width=\"11\"\n height=\"6\"\n viewBox=\"0 0 11 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className ? `sfp-icon ${className}` : \"sfp-icon\"}\n style={style}\n >\n <path\n d=\"M0.305908 0.395508L5.47832 4.39551L10.3059 0.395508\"\n stroke=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default IconArrowDown;\n"],"mappings":";AAkBM;AAhBC,IAAM,gBAAgB,CAAC,UAAqB;AACjD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MACN,WAAW,YAAY,YAAY,SAAS,KAAK;AAAA,MACjD;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,qBAAQ;","names":[]}
@@ -1,4 +1,4 @@
1
- // src/icons/close.tsx
1
+ // src/icons/outline/close.tsx
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  var IconClose = (props) => {
4
4
  const {
@@ -54,4 +54,4 @@ export {
54
54
  IconClose,
55
55
  close_default
56
56
  };
57
- //# sourceMappingURL=chunk-J5TQGGEN.js.map
57
+ //# sourceMappingURL=chunk-D5X5OIZQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/icons/outline/close.tsx"],"sourcesContent":["import type { IconProps } from \"../types\";\n\nexport const IconClose = (props: IconProps) => {\n const {\n className,\n style,\n } = props;\n\n return (\n <svg\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 13 13\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className ? `sfp-icon ${className}` : \"sfp-icon\"}\n style={style}\n >\n <line\n x1=\"0.75\"\n y1=\"-0.75\"\n x2=\"16.2197\"\n y2=\"-0.75\"\n transform=\"matrix(0.707069 -0.707145 0.707069 0.707145 1.00122 12.75)\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <line\n x1=\"0.75\"\n y1=\"-0.75\"\n x2=\"16.2197\"\n y2=\"-0.75\"\n transform=\"matrix(-0.707069 -0.707145 -0.707069 0.707145 11.9985 12.75)\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n\nexport default IconClose;\n"],"mappings":";AASI,SASE,KATF;AAPG,IAAM,YAAY,CAAC,UAAqB;AAC7C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MACN,WAAW,YAAY,YAAY,SAAS,KAAK;AAAA,MACjD;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,WAAU;AAAA,YACV,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,WAAU;AAAA,YACV,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,gBAAQ;","names":[]}
@@ -1,4 +1,4 @@
1
- // src/icons/alert.tsx
1
+ // src/icons/outline/alert.tsx
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  var IconAlert = (props) => {
4
4
  const {
@@ -31,4 +31,4 @@ export {
31
31
  IconAlert,
32
32
  alert_default
33
33
  };
34
- //# sourceMappingURL=chunk-NZGSPYWG.js.map
34
+ //# sourceMappingURL=chunk-JVHXUOHJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/icons/outline/alert.tsx"],"sourcesContent":["import type { IconProps } from \"../types\";\n\nexport const IconAlert = (props: IconProps) => {\n const {\n className,\n style,\n } = props;\n\n return (\n <svg\n width=\"2\"\n height=\"7\"\n viewBox=\"0 0 2 7\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className ? `sfp-icon ${className}` : \"sfp-icon\"}\n style={style}\n >\n <path\n d=\"M0.888801 5.112C0.653076 5.112 0.427006 5.20564 0.260324 5.37232C0.0936412 5.53901 0 5.76508 0 6.0008C0 6.23653 0.0936412 6.46259 0.260324 6.62928C0.427006 6.79596 0.653076 6.8896 0.888801 6.8896C1.12453 6.8896 1.35059 6.79596 1.51728 6.62928C1.68396 6.46259 1.7776 6.23653 1.7776 6.0008C1.7776 5.76508 1.68396 5.53901 1.51728 5.37232C1.35059 5.20564 1.12453 5.112 0.888801 5.112ZM0.888801 0.000800133C0.397601 0.000800133 0 0.3984 0 0.8896L0 3.3344C0 3.57013 0.0936412 3.79619 0.260324 3.96288C0.427006 4.12956 0.653076 4.2232 0.888801 4.2232C1.12453 4.2232 1.35059 4.12956 1.51728 3.96288C1.68396 3.79619 1.7776 3.57013 1.7776 3.3344V0.8888C1.7776 0.3976 1.38 0 0.8896 0L0.888801 0.000800133Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default IconAlert;\n"],"mappings":";AAkBM;AAhBC,IAAM,YAAY,CAAC,UAAqB;AAC7C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MACN,WAAW,YAAY,YAAY,SAAS,KAAK;AAAA,MACjD;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,gBAAQ;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Overlay,
3
3
  OverlayPanel
4
- } from "./chunk-RUT7LQ3A.js";
4
+ } from "./chunk-CHPMYAJ6.js";
5
5
  import {
6
6
  OVERLAY_MASK_FADE_SECONDS,
7
7
  OVERLAY_PANEL_SLIDE_SECONDS
@@ -112,4 +112,4 @@ export {
112
112
  DRAWER_SIDE,
113
113
  Drawer
114
114
  };
115
- //# sourceMappingURL=chunk-EYLLKIPV.js.map
115
+ //# sourceMappingURL=chunk-WFHMCGZA.js.map
@@ -1,4 +1,4 @@
1
- // src/icons/search.tsx
1
+ // src/icons/outline/search.tsx
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  var IconSearch = (props) => {
4
4
  const {
@@ -31,4 +31,4 @@ export {
31
31
  IconSearch,
32
32
  search_default
33
33
  };
34
- //# sourceMappingURL=chunk-R4BKHISR.js.map
34
+ //# sourceMappingURL=chunk-XPXCIY2R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/icons/outline/search.tsx"],"sourcesContent":["import type { IconProps } from \"../types\";\n\nexport const IconSearch = (props: IconProps) => {\n const {\n className,\n style,\n } = props;\n\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className ? `sfp-icon ${className}` : \"sfp-icon\"}\n style={style}\n >\n <path\n d=\"M6.36129 0C9.8746 0 12.7226 2.84799 12.7226 6.36129C12.7226 7.87116 12.1965 9.2583 11.3179 10.3491C11.3904 10.363 11.457 10.3985 11.5091 10.4509L13.8904 12.8322C13.9606 12.9024 14 12.9976 14 13.0968C14 13.196 13.9606 13.2912 13.8904 13.3613L13.3613 13.8904C13.2912 13.9606 13.196 14 13.0968 14C12.9976 14 12.9024 13.9606 12.8322 13.8904L10.4509 11.5091C10.3985 11.4569 10.3628 11.3904 10.3483 11.3179C9.21949 12.229 7.81199 12.7249 6.36129 12.7226C2.84799 12.7226 -1.75403e-08 9.8746 0 6.36129C1.75403e-08 2.84799 2.84799 0 6.36129 0ZM6.36129 1.49677C3.67458 1.49677 1.49677 3.67458 1.49677 6.36129C1.49677 9.048 3.67458 11.2258 6.36129 11.2258C9.048 11.2258 11.2258 9.048 11.2258 6.36129C11.2258 3.67458 9.048 1.49677 6.36129 1.49677Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default IconSearch;\n"],"mappings":";AAkBM;AAhBC,IAAM,aAAa,CAAC,UAAqB;AAC9C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MACN,WAAW,YAAY,YAAY,SAAS,KAAK;AAAA,MACjD;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,iBAAQ;","names":[]}
@@ -1,4 +1,4 @@
1
- // src/icons/loading.tsx
1
+ // src/icons/outline/loading.tsx
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  var IconLoading = (props) => {
4
4
  const {
@@ -31,4 +31,4 @@ export {
31
31
  IconLoading,
32
32
  loading_default
33
33
  };
34
- //# sourceMappingURL=chunk-SE7Z4ZYP.js.map
34
+ //# sourceMappingURL=chunk-Z4GG3E3C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/icons/outline/loading.tsx"],"sourcesContent":["import type { IconProps } from \"../types\";\n\nexport const IconLoading = (props: IconProps) => {\n const {\n className,\n style,\n } = props;\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 13 13\"\n fill=\"none\"\n className={className ? `sfp-icon ${className}` : \"sfp-icon\"}\n style={style}\n >\n <path\n d=\"M10.9474 6.5C10.9474 4.04379 8.95621 2.05263 6.5 2.05263C4.04379 2.05263 2.05263 4.04379 2.05263 6.5C2.05263 7.06682 1.59313 7.52632 1.02632 7.52632C0.459497 7.52632 0 7.06682 0 6.5C0 2.91015 2.91015 0 6.5 0C10.0899 0 13 2.91015 13 6.5C13 10.0899 10.0899 13 6.5 13C5.93318 13 5.47368 12.5405 5.47368 11.9737C5.47368 11.4069 5.93318 10.9474 6.5 10.9474C8.95621 10.9474 10.9474 8.95621 10.9474 6.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default IconLoading;\n"],"mappings":";AAkBM;AAhBC,IAAM,cAAc,CAAC,UAAqB;AAC/C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,WAAW,YAAY,YAAY,SAAS,KAAK;AAAA,MACjD;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,kBAAQ;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  IconArrowDown
3
- } from "../chunk-OGSFVQK2.js";
3
+ } from "../chunk-CYTYDPSK.js";
4
4
  import {
5
5
  FLOATING_ALIGN,
6
6
  FLOATING_SIDE,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/date-range-picker/DateRangePicker.tsx","../../src/date-range-picker/config.ts","../../src/date-range-picker/utils.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport {\n addMonths,\n eachDayOfInterval,\n endOfMonth,\n endOfWeek,\n format,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfMonth,\n startOfWeek,\n} from \"date-fns\";\nimport { IconArrowDown } from \"../icons/arrow-down\";\nimport { cn } from \"../lib/cn\";\nimport { fontSans } from \"../lib/font\";\nimport { floatingLayerZIndex } from \"../overlay/stack\";\nimport { FLOATING_ALIGN, FLOATING_SIDE, useFloatingPosition } from \"../overlay/use-floating-position\";\nimport { DATE_RANGE_PRESET_OPTIONS, DATE_RANGE_WEEKDAY_LABELS } from \"./config\";\nimport { calendarRangeFromPicks, formatDateRangeLabel, lastNDaysRange, type DateRangeValue } from \"./utils\";\n\nexport type { DateRangeValue } from \"./utils\";\n\nexport function DateRangePicker(props: {\n value: DateRangeValue;\n onChange: (range: DateRangeValue) => void;\n className?: string;\n triggerClassName?: string;\n}) {\n const { value, onChange, className, triggerClassName } = props;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const [open, setOpen] = useState(false);\n const [viewMonth, setViewMonth] = useState(() => startOfMonth(value.to));\n const [draftStart, setDraftStart] = useState<Date | null>(null);\n const panelStyle = useFloatingPosition({\n open,\n triggerRef,\n panelRef,\n side: FLOATING_SIDE.Bottom,\n align: FLOATING_ALIGN.Start,\n offset: 6,\n });\n\n useEffect(() => {\n if (open) setViewMonth(startOfMonth(value.to));\n }, [open, value.to]);\n\n useEffect(() => {\n if (!open) return;\n const onPointerDown = (event: MouseEvent) => {\n const target = event.target as Node | null;\n if (!target) return;\n if (triggerRef.current?.contains(target)) return;\n if (panelRef.current?.contains(target)) return;\n setOpen(false);\n setDraftStart(null);\n };\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n setDraftStart(null);\n }\n };\n document.addEventListener(\"mousedown\", onPointerDown);\n document.addEventListener(\"keydown\", onKeyDown);\n return () => {\n document.removeEventListener(\"mousedown\", onPointerDown);\n document.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [open]);\n\n const days = useMemo(() => {\n const monthStart = startOfMonth(viewMonth);\n return eachDayOfInterval({\n start: startOfWeek(monthStart),\n end: endOfWeek(endOfMonth(monthStart)),\n });\n }, [viewMonth]);\n\n const commit = (range: DateRangeValue) => {\n onChange(range);\n setDraftStart(null);\n setOpen(false);\n };\n\n const pickDay = (day: Date) => {\n if (!draftStart) {\n setDraftStart(day);\n return;\n }\n commit(calendarRangeFromPicks(draftStart, day));\n };\n\n return (\n <div className={cn(\"relative inline-block min-w-0\", className)}>\n <button\n ref={triggerRef}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n aria-label=\"Select time range\"\n onClick={() => {\n setOpen((current) => !current);\n setDraftStart(null);\n }}\n className={cn(\n \"inline-flex cursor-pointer h-9 w-full min-w-0 items-center justify-between gap-2 overflow-hidden rounded-[6px] border border-[#E3E3E3] bg-white px-3 text-sm font-medium text-black outline-none\",\n fontSans,\n triggerClassName,\n )}\n >\n <span className=\"min-w-0 shrink truncate text-[#aaa]\">Time</span>\n <span className=\"flex min-w-0 flex-1 items-center justify-end gap-2 truncate text-right\">\n {formatDateRangeLabel(value)}\n </span>\n <IconArrowDown className={cn(\"h-1.5 w-2.75 shrink-0 text-black transition-transform\", open && \"rotate-180\")} />\n </button>\n {open && typeof document !== \"undefined\"\n ? createPortal(\n <div\n ref={panelRef}\n role=\"dialog\"\n aria-label=\"Date range\"\n style={{ ...panelStyle, zIndex: floatingLayerZIndex() }}\n className={cn(\n \"w-[min(320px,calc(100vw-32px))] rounded-[16px] border border-black/10 bg-white p-4 shadow-[0_8px_24px_rgba(0,0,0,0.08)]\",\n fontSans,\n )}\n >\n <div className=\"mb-3 flex items-center justify-between\">\n <button\n type=\"button\"\n aria-label=\"Previous month\"\n onClick={() => setViewMonth((month) => addMonths(month, -1))}\n className=\"inline-flex size-8 cursor-pointer items-center justify-center rounded-full border-0 bg-transparent p-0 text-[#606060] hover:bg-black/5\"\n >\n <IconArrowDown className=\"h-1.5 w-2.75 rotate-90\" />\n </button>\n <span className=\"text-sm font-semibold text-black\">{format(viewMonth, \"yyyy MMM\")}</span>\n <button\n type=\"button\"\n aria-label=\"Next month\"\n onClick={() => setViewMonth((month) => addMonths(month, 1))}\n className=\"inline-flex size-8 cursor-pointer items-center justify-center rounded-full border-0 bg-transparent p-0 text-[#606060] hover:bg-black/5\"\n >\n <IconArrowDown className=\"h-1.5 w-2.75 -rotate-90\" />\n </button>\n </div>\n <div className=\"grid grid-cols-7 gap-1\">\n {DATE_RANGE_WEEKDAY_LABELS.map((label) => (\n <div key={label} className=\"text-center text-[11px] font-medium text-[#aaa]\">\n {label}\n </div>\n ))}\n </div>\n <div className=\"grid grid-cols-7 gap-1\">\n {days.map((day) => {\n const inMonth = isSameMonth(day, viewMonth);\n const selected = isSameDay(day, value.from) || isSameDay(day, value.to) || (draftStart ? isSameDay(day, draftStart) : false);\n const inRange = !draftStart && isWithinInterval(day, { start: value.from, end: value.to });\n return (\n <button\n key={day.toISOString()}\n type=\"button\"\n onClick={() => pickDay(day)}\n className={cn(\n \"h-8 cursor-pointer rounded-[8px] border-0 bg-transparent text-[13px] font-medium text-black hover:bg-black/5\",\n !inMonth && \"text-[#ccc]\",\n inRange && !selected && \"bg-black/5\",\n selected && \"bg-black text-white hover:bg-black\",\n )}\n >\n {format(day, \"d\")}\n </button>\n );\n })}\n </div>\n <div className=\"mt-3 flex flex-col gap-1 border-t border-black/10 pt-2\">\n {DATE_RANGE_PRESET_OPTIONS.map((option) => (\n <button\n key={option.days}\n type=\"button\"\n onClick={() => commit(lastNDaysRange(option.days))}\n className=\"cursor-pointer rounded-[8px] border-0 bg-transparent px-2 py-1.5 text-left text-sm font-medium text-black hover:bg-black/5\"\n >\n {option.label}\n </button>\n ))}\n </div>\n </div>,\n document.body,\n )\n : null}\n </div>\n );\n}\n\nexport default DateRangePicker;\n","export const DATE_RANGE_WEEKDAY_LABELS = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"] as const;\n\nexport const DATE_RANGE_PRESET = {\n Days30: 30,\n Days7: 7,\n Days1: 1,\n} as const;\n\nexport const DATE_RANGE_PRESET_OPTIONS = [\n { days: DATE_RANGE_PRESET.Days30, label: \"Last 30 days\" },\n { days: DATE_RANGE_PRESET.Days7, label: \"Last 7 days\" },\n { days: DATE_RANGE_PRESET.Days1, label: \"Last 1 day\" },\n] as const;\n","import {\n differenceInCalendarDays,\n endOfDay,\n format,\n isSameDay,\n startOfDay,\n subDays,\n} from \"date-fns\";\nimport { DATE_RANGE_PRESET_OPTIONS } from \"./config\";\n\nexport type DateRangeValue = {\n from: Date;\n to: Date;\n};\n\nexport function calendarRangeFromPicks(start: Date, end: Date): DateRangeValue {\n if (isSameDay(start, end)) {\n return { from: startOfDay(end), to: endOfDay(end) };\n }\n const from = start.getTime() <= end.getTime() ? start : end;\n const to = start.getTime() <= end.getTime() ? end : start;\n return { from: startOfDay(from), to: endOfDay(to) };\n}\n\nexport function lastNDaysRange(days: number, now: Date = new Date()): DateRangeValue {\n return {\n from: startOfDay(subDays(now, days - 1)),\n to: endOfDay(now),\n };\n}\n\nexport function matchesLastNDays(range: DateRangeValue, days: number, now: Date = new Date()) {\n const expected = lastNDaysRange(days, now);\n return isSameDay(range.from, expected.from) && isSameDay(range.to, expected.to);\n}\n\nexport function formatDateRangeLabel(range: DateRangeValue, now: Date = new Date()) {\n const preset = DATE_RANGE_PRESET_OPTIONS.find((option) =>\n matchesLastNDays(range, option.days, now),\n );\n if (preset) return preset.label;\n if (isSameDay(range.from, range.to)) return format(range.from, \"MMM d, yyyy\");\n return `${format(range.from, \"MMM d, yyyy\")} – ${format(range.to, \"MMM d, yyyy\")}`;\n}\n\nexport function isInDateRange(iso: string, range: DateRangeValue) {\n const time = new Date(iso).getTime();\n if (Number.isNaN(time)) return true;\n return time >= range.from.getTime() && time <= range.to.getTime();\n}\n\nexport function rangeToUnixSeconds(range: DateRangeValue) {\n return {\n start_time: Math.floor(range.from.getTime() / 1000),\n end_time: Math.floor(range.to.getTime() / 1000),\n };\n}\n\nexport function dateRangeDayCount(range: DateRangeValue) {\n return differenceInCalendarDays(range.to, range.from) + 1;\n}\n"],"mappings":"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","names":["format","isSameDay","format","isSameDay"]}
1
+ {"version":3,"sources":["../../src/date-range-picker/DateRangePicker.tsx","../../src/date-range-picker/config.ts","../../src/date-range-picker/utils.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport {\n addMonths,\n eachDayOfInterval,\n endOfMonth,\n endOfWeek,\n format,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfMonth,\n startOfWeek,\n} from \"date-fns\";\nimport { IconArrowDown } from \"../icons/outline/arrow-down\";\nimport { cn } from \"../lib/cn\";\nimport { fontSans } from \"../lib/font\";\nimport { floatingLayerZIndex } from \"../overlay/stack\";\nimport { FLOATING_ALIGN, FLOATING_SIDE, useFloatingPosition } from \"../overlay/use-floating-position\";\nimport { DATE_RANGE_PRESET_OPTIONS, DATE_RANGE_WEEKDAY_LABELS } from \"./config\";\nimport { calendarRangeFromPicks, formatDateRangeLabel, lastNDaysRange, type DateRangeValue } from \"./utils\";\n\nexport type { DateRangeValue } from \"./utils\";\n\nexport function DateRangePicker(props: {\n value: DateRangeValue;\n onChange: (range: DateRangeValue) => void;\n className?: string;\n triggerClassName?: string;\n}) {\n const { value, onChange, className, triggerClassName } = props;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const [open, setOpen] = useState(false);\n const [viewMonth, setViewMonth] = useState(() => startOfMonth(value.to));\n const [draftStart, setDraftStart] = useState<Date | null>(null);\n const panelStyle = useFloatingPosition({\n open,\n triggerRef,\n panelRef,\n side: FLOATING_SIDE.Bottom,\n align: FLOATING_ALIGN.Start,\n offset: 6,\n });\n\n useEffect(() => {\n if (open) setViewMonth(startOfMonth(value.to));\n }, [open, value.to]);\n\n useEffect(() => {\n if (!open) return;\n const onPointerDown = (event: MouseEvent) => {\n const target = event.target as Node | null;\n if (!target) return;\n if (triggerRef.current?.contains(target)) return;\n if (panelRef.current?.contains(target)) return;\n setOpen(false);\n setDraftStart(null);\n };\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n setDraftStart(null);\n }\n };\n document.addEventListener(\"mousedown\", onPointerDown);\n document.addEventListener(\"keydown\", onKeyDown);\n return () => {\n document.removeEventListener(\"mousedown\", onPointerDown);\n document.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [open]);\n\n const days = useMemo(() => {\n const monthStart = startOfMonth(viewMonth);\n return eachDayOfInterval({\n start: startOfWeek(monthStart),\n end: endOfWeek(endOfMonth(monthStart)),\n });\n }, [viewMonth]);\n\n const commit = (range: DateRangeValue) => {\n onChange(range);\n setDraftStart(null);\n setOpen(false);\n };\n\n const pickDay = (day: Date) => {\n if (!draftStart) {\n setDraftStart(day);\n return;\n }\n commit(calendarRangeFromPicks(draftStart, day));\n };\n\n return (\n <div className={cn(\"relative inline-block min-w-0\", className)}>\n <button\n ref={triggerRef}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n aria-label=\"Select time range\"\n onClick={() => {\n setOpen((current) => !current);\n setDraftStart(null);\n }}\n className={cn(\n \"inline-flex cursor-pointer h-9 w-full min-w-0 items-center justify-between gap-2 overflow-hidden rounded-[6px] border border-[#E3E3E3] bg-white px-3 text-sm font-medium text-black outline-none\",\n fontSans,\n triggerClassName,\n )}\n >\n <span className=\"min-w-0 shrink truncate text-[#aaa]\">Time</span>\n <span className=\"flex min-w-0 flex-1 items-center justify-end gap-2 truncate text-right\">\n {formatDateRangeLabel(value)}\n </span>\n <IconArrowDown className={cn(\"h-1.5 w-2.75 shrink-0 text-black transition-transform\", open && \"rotate-180\")} />\n </button>\n {open && typeof document !== \"undefined\"\n ? createPortal(\n <div\n ref={panelRef}\n role=\"dialog\"\n aria-label=\"Date range\"\n style={{ ...panelStyle, zIndex: floatingLayerZIndex() }}\n className={cn(\n \"w-[min(320px,calc(100vw-32px))] rounded-[16px] border border-black/10 bg-white p-4 shadow-[0_8px_24px_rgba(0,0,0,0.08)]\",\n fontSans,\n )}\n >\n <div className=\"mb-3 flex items-center justify-between\">\n <button\n type=\"button\"\n aria-label=\"Previous month\"\n onClick={() => setViewMonth((month) => addMonths(month, -1))}\n className=\"inline-flex size-8 cursor-pointer items-center justify-center rounded-full border-0 bg-transparent p-0 text-[#606060] hover:bg-black/5\"\n >\n <IconArrowDown className=\"h-1.5 w-2.75 rotate-90\" />\n </button>\n <span className=\"text-sm font-semibold text-black\">{format(viewMonth, \"yyyy MMM\")}</span>\n <button\n type=\"button\"\n aria-label=\"Next month\"\n onClick={() => setViewMonth((month) => addMonths(month, 1))}\n className=\"inline-flex size-8 cursor-pointer items-center justify-center rounded-full border-0 bg-transparent p-0 text-[#606060] hover:bg-black/5\"\n >\n <IconArrowDown className=\"h-1.5 w-2.75 -rotate-90\" />\n </button>\n </div>\n <div className=\"grid grid-cols-7 gap-1\">\n {DATE_RANGE_WEEKDAY_LABELS.map((label) => (\n <div key={label} className=\"text-center text-[11px] font-medium text-[#aaa]\">\n {label}\n </div>\n ))}\n </div>\n <div className=\"grid grid-cols-7 gap-1\">\n {days.map((day) => {\n const inMonth = isSameMonth(day, viewMonth);\n const selected = isSameDay(day, value.from) || isSameDay(day, value.to) || (draftStart ? isSameDay(day, draftStart) : false);\n const inRange = !draftStart && isWithinInterval(day, { start: value.from, end: value.to });\n return (\n <button\n key={day.toISOString()}\n type=\"button\"\n onClick={() => pickDay(day)}\n className={cn(\n \"h-8 cursor-pointer rounded-[8px] border-0 bg-transparent text-[13px] font-medium text-black hover:bg-black/5\",\n !inMonth && \"text-[#ccc]\",\n inRange && !selected && \"bg-black/5\",\n selected && \"bg-black text-white hover:bg-black\",\n )}\n >\n {format(day, \"d\")}\n </button>\n );\n })}\n </div>\n <div className=\"mt-3 flex flex-col gap-1 border-t border-black/10 pt-2\">\n {DATE_RANGE_PRESET_OPTIONS.map((option) => (\n <button\n key={option.days}\n type=\"button\"\n onClick={() => commit(lastNDaysRange(option.days))}\n className=\"cursor-pointer rounded-[8px] border-0 bg-transparent px-2 py-1.5 text-left text-sm font-medium text-black hover:bg-black/5\"\n >\n {option.label}\n </button>\n ))}\n </div>\n </div>,\n document.body,\n )\n : null}\n </div>\n );\n}\n\nexport default DateRangePicker;\n","export const DATE_RANGE_WEEKDAY_LABELS = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"] as const;\n\nexport const DATE_RANGE_PRESET = {\n Days30: 30,\n Days7: 7,\n Days1: 1,\n} as const;\n\nexport const DATE_RANGE_PRESET_OPTIONS = [\n { days: DATE_RANGE_PRESET.Days30, label: \"Last 30 days\" },\n { days: DATE_RANGE_PRESET.Days7, label: \"Last 7 days\" },\n { days: DATE_RANGE_PRESET.Days1, label: \"Last 1 day\" },\n] as const;\n","import {\n differenceInCalendarDays,\n endOfDay,\n format,\n isSameDay,\n startOfDay,\n subDays,\n} from \"date-fns\";\nimport { DATE_RANGE_PRESET_OPTIONS } from \"./config\";\n\nexport type DateRangeValue = {\n from: Date;\n to: Date;\n};\n\nexport function calendarRangeFromPicks(start: Date, end: Date): DateRangeValue {\n if (isSameDay(start, end)) {\n return { from: startOfDay(end), to: endOfDay(end) };\n }\n const from = start.getTime() <= end.getTime() ? start : end;\n const to = start.getTime() <= end.getTime() ? end : start;\n return { from: startOfDay(from), to: endOfDay(to) };\n}\n\nexport function lastNDaysRange(days: number, now: Date = new Date()): DateRangeValue {\n return {\n from: startOfDay(subDays(now, days - 1)),\n to: endOfDay(now),\n };\n}\n\nexport function matchesLastNDays(range: DateRangeValue, days: number, now: Date = new Date()) {\n const expected = lastNDaysRange(days, now);\n return isSameDay(range.from, expected.from) && isSameDay(range.to, expected.to);\n}\n\nexport function formatDateRangeLabel(range: DateRangeValue, now: Date = new Date()) {\n const preset = DATE_RANGE_PRESET_OPTIONS.find((option) =>\n matchesLastNDays(range, option.days, now),\n );\n if (preset) return preset.label;\n if (isSameDay(range.from, range.to)) return format(range.from, \"MMM d, yyyy\");\n return `${format(range.from, \"MMM d, yyyy\")} – ${format(range.to, \"MMM d, yyyy\")}`;\n}\n\nexport function isInDateRange(iso: string, range: DateRangeValue) {\n const time = new Date(iso).getTime();\n if (Number.isNaN(time)) return true;\n return time >= range.from.getTime() && time <= range.to.getTime();\n}\n\nexport function rangeToUnixSeconds(range: DateRangeValue) {\n return {\n start_time: Math.floor(range.from.getTime() / 1000),\n end_time: Math.floor(range.to.getTime() / 1000),\n };\n}\n\nexport function dateRangeDayCount(range: DateRangeValue) {\n return differenceInCalendarDays(range.to, range.from) + 1;\n}\n"],"mappings":"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","names":["format","isSameDay","format","isSameDay"]}
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  DRAWER_SIDE,
3
3
  Drawer
4
- } from "../chunk-EYLLKIPV.js";
4
+ } from "../chunk-WFHMCGZA.js";
5
5
  import {
6
6
  Overlay,
7
7
  OverlayPanel
8
- } from "../chunk-RUT7LQ3A.js";
9
- import "../chunk-J5TQGGEN.js";
8
+ } from "../chunk-CHPMYAJ6.js";
9
+ import "../chunk-D5X5OIZQ.js";
10
10
  import "../chunk-MJ36QLY3.js";
11
11
  import {
12
12
  DESKTOP_MEDIA_QUERY,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  DRAWER_SIDE,
3
3
  Drawer
4
- } from "../chunk-EYLLKIPV.js";
5
- import "../chunk-RUT7LQ3A.js";
6
- import "../chunk-J5TQGGEN.js";
4
+ } from "../chunk-WFHMCGZA.js";
5
+ import "../chunk-CHPMYAJ6.js";
6
+ import "../chunk-D5X5OIZQ.js";
7
7
  import "../chunk-MJ36QLY3.js";
8
8
  import "../chunk-RUOUGZWI.js";
9
9
  import "../chunk-FXENEWNN.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  IconLoading
3
- } from "../chunk-SE7Z4ZYP.js";
3
+ } from "../chunk-Z4GG3E3C.js";
4
4
  import {
5
5
  IconArrowDown
6
- } from "../chunk-OGSFVQK2.js";
6
+ } from "../chunk-CYTYDPSK.js";
7
7
  import {
8
8
  FLOATING_ALIGN,
9
9
  FLOATING_SIDE,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dropdown/Dropdown.tsx","../../src/dropdown/config.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { useEffect, useLayoutEffect, useMemo, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { IconArrowDown } from \"../icons/arrow-down\";\nimport { IconLoading } from \"../icons/loading\";\nimport { cn } from \"../lib/cn\";\nimport { fontSans } from \"../lib/font\";\nimport { floatingLayerZIndex } from \"../overlay/stack\";\nimport { FLOATING_ALIGN, FLOATING_SIDE, useFloatingPosition } from \"../overlay/use-floating-position\";\nimport { DROPDOWN_LOADING } from \"./config\";\n\nexport type DropdownOption = {\n value: string;\n label: ReactNode;\n disabled?: boolean;\n};\n\nexport type DropdownProps = {\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n options: DropdownOption[];\n label?: ReactNode;\n placeholder?: string;\n disabled?: boolean;\n loading?: boolean;\n className?: string;\n triggerClassName?: string;\n panelClassName?: string;\n empty?: ReactNode;\n renderOption?: (option: DropdownOption, selected: boolean) => ReactNode;\n};\n\nexport function Dropdown(props: DropdownProps) {\n const {\n value,\n defaultValue,\n onChange,\n options,\n label,\n placeholder = \"Select\",\n disabled = false,\n loading = false,\n className,\n triggerClassName,\n panelClassName,\n empty = \"No options\",\n renderOption,\n } = props;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const [open, setOpen] = useState(false);\n const [triggerWidth, setTriggerWidth] = useState<number>();\n const selectedValue = value ?? uncontrolledValue;\n const panelStyle = useFloatingPosition({\n open,\n triggerRef,\n panelRef,\n side: FLOATING_SIDE.Bottom,\n align: FLOATING_ALIGN.Start,\n offset: 6,\n });\n\n const selectedOption = useMemo(\n () => options.find((option) => option.value === selectedValue),\n [options, selectedValue],\n );\n\n const close = () => setOpen(false);\n\n const selectValue = (nextValue: string) => {\n if (value === undefined) setUncontrolledValue(nextValue);\n onChange?.(nextValue);\n close();\n };\n\n useLayoutEffect(() => {\n if (!open) return;\n const width = triggerRef.current?.getBoundingClientRect().width;\n if (width) setTriggerWidth(width);\n }, [open]);\n\n useEffect(() => {\n if (!open) return;\n const onPointerDown = (event: MouseEvent) => {\n const target = event.target as Node | null;\n if (!target) return;\n if (triggerRef.current?.contains(target)) return;\n if (panelRef.current?.contains(target)) return;\n close();\n };\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") close();\n };\n const onScroll = (event: Event) => {\n const target = event.target;\n if (target instanceof Node && panelRef.current?.contains(target)) return;\n close();\n };\n document.addEventListener(\"mousedown\", onPointerDown);\n document.addEventListener(\"keydown\", onKeyDown);\n window.addEventListener(\"scroll\", onScroll, true);\n return () => {\n document.removeEventListener(\"mousedown\", onPointerDown);\n document.removeEventListener(\"keydown\", onKeyDown);\n window.removeEventListener(\"scroll\", onScroll, true);\n };\n }, [open]);\n\n return (\n <div className={cn(\"relative inline-block min-w-0\", className)}>\n <button\n ref={triggerRef}\n type=\"button\"\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n onClick={() => {\n if (disabled) return;\n setOpen((current) => !current);\n }}\n className={cn(\n \"inline-flex cursor-pointer h-9 w-full min-w-0 items-center justify-between gap-2 overflow-hidden rounded-[6px] border border-[#E3E3E3] bg-white px-3 text-sm font-medium text-black outline-none\",\n fontSans,\n disabled && \"cursor-not-allowed opacity-30\",\n triggerClassName,\n )}\n >\n {label ? <span className=\"min-w-0 shrink truncate text-[#aaa]\">{label}</span> : null}\n <span\n className={cn(\n \"flex min-w-0 items-center gap-2 truncate\",\n label && \"flex-1 justify-end text-right\",\n !selectedOption && \"text-[#606060]\",\n )}\n >\n {loading ? <IconLoading className=\"size-3.25 shrink-0 animate-spin text-[#909090]\" /> : null}\n <span className=\"min-w-0 truncate\">{selectedOption?.label ?? placeholder}</span>\n </span>\n <IconArrowDown className={cn(\"h-1.5 w-2.75 shrink-0 text-black transition-transform\", open && \"rotate-180\")} />\n </button>\n {open && typeof document !== \"undefined\"\n ? createPortal(\n <div\n ref={panelRef}\n role=\"listbox\"\n style={{ ...panelStyle, minWidth: triggerWidth, zIndex: floatingLayerZIndex() }}\n className={cn(\n \"w-max overflow-hidden rounded-[12px] border border-[#E0E0E0] bg-[#FDFDFD] py-1 text-base font-medium leading-normal text-black shadow-[0_0_20px_0_rgba(0,0,0,0.06)]\",\n fontSans,\n panelClassName,\n )}\n >\n {loading ? (\n <p\n role=\"status\"\n className={cn(\"flex items-center justify-center gap-2 px-3 py-4 text-sm font-medium text-[#aaa]\", fontSans)}\n >\n <IconLoading className=\"size-3.25 shrink-0 animate-spin\" />\n {DROPDOWN_LOADING}\n </p>\n ) : options.length === 0 ? (\n <p role=\"status\" className={cn(\"px-3 py-4 text-center text-sm font-medium text-[#aaa]\", fontSans)}>\n {empty}\n </p>\n ) : (\n options.map((option) => {\n const selected = option.value === selectedValue;\n return (\n <button\n key={option.value}\n type=\"button\"\n role=\"option\"\n aria-selected={selected}\n disabled={option.disabled}\n onClick={() => {\n if (option.disabled) return;\n selectValue(option.value);\n }}\n className={cn(\n \"flex cursor-pointer w-full border-0 bg-transparent text-left text-xs font-medium text-black hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-30\",\n renderOption ? \"items-center px-2.5 py-1.5\" : \"px-3 py-2\",\n selected && \"bg-black/5\",\n )}\n >\n {renderOption ? renderOption(option, selected) : option.label}\n </button>\n );\n })\n )}\n </div>,\n document.body,\n )\n : null}\n </div>\n );\n}\n\nexport default Dropdown;\n","export const DROPDOWN_PLACEHOLDER = \"Select\";\nexport const DROPDOWN_LOADING = \"Loading...\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/dropdown/Dropdown.tsx","../../src/dropdown/config.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { useEffect, useLayoutEffect, useMemo, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { IconArrowDown } from \"../icons/outline/arrow-down\";\nimport { IconLoading } from \"../icons/outline/loading\";\nimport { cn } from \"../lib/cn\";\nimport { fontSans } from \"../lib/font\";\nimport { floatingLayerZIndex } from \"../overlay/stack\";\nimport { FLOATING_ALIGN, FLOATING_SIDE, useFloatingPosition } from \"../overlay/use-floating-position\";\nimport { DROPDOWN_LOADING } from \"./config\";\n\nexport type DropdownOption = {\n value: string;\n label: ReactNode;\n disabled?: boolean;\n};\n\nexport type DropdownProps = {\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n options: DropdownOption[];\n label?: ReactNode;\n placeholder?: string;\n disabled?: boolean;\n loading?: boolean;\n className?: string;\n triggerClassName?: string;\n panelClassName?: string;\n empty?: ReactNode;\n renderOption?: (option: DropdownOption, selected: boolean) => ReactNode;\n};\n\nexport function Dropdown(props: DropdownProps) {\n const {\n value,\n defaultValue,\n onChange,\n options,\n label,\n placeholder = \"Select\",\n disabled = false,\n loading = false,\n className,\n triggerClassName,\n panelClassName,\n empty = \"No options\",\n renderOption,\n } = props;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const [open, setOpen] = useState(false);\n const [triggerWidth, setTriggerWidth] = useState<number>();\n const selectedValue = value ?? uncontrolledValue;\n const panelStyle = useFloatingPosition({\n open,\n triggerRef,\n panelRef,\n side: FLOATING_SIDE.Bottom,\n align: FLOATING_ALIGN.Start,\n offset: 6,\n });\n\n const selectedOption = useMemo(\n () => options.find((option) => option.value === selectedValue),\n [options, selectedValue],\n );\n\n const close = () => setOpen(false);\n\n const selectValue = (nextValue: string) => {\n if (value === undefined) setUncontrolledValue(nextValue);\n onChange?.(nextValue);\n close();\n };\n\n useLayoutEffect(() => {\n if (!open) return;\n const width = triggerRef.current?.getBoundingClientRect().width;\n if (width) setTriggerWidth(width);\n }, [open]);\n\n useEffect(() => {\n if (!open) return;\n const onPointerDown = (event: MouseEvent) => {\n const target = event.target as Node | null;\n if (!target) return;\n if (triggerRef.current?.contains(target)) return;\n if (panelRef.current?.contains(target)) return;\n close();\n };\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") close();\n };\n const onScroll = (event: Event) => {\n const target = event.target;\n if (target instanceof Node && panelRef.current?.contains(target)) return;\n close();\n };\n document.addEventListener(\"mousedown\", onPointerDown);\n document.addEventListener(\"keydown\", onKeyDown);\n window.addEventListener(\"scroll\", onScroll, true);\n return () => {\n document.removeEventListener(\"mousedown\", onPointerDown);\n document.removeEventListener(\"keydown\", onKeyDown);\n window.removeEventListener(\"scroll\", onScroll, true);\n };\n }, [open]);\n\n return (\n <div className={cn(\"relative inline-block min-w-0\", className)}>\n <button\n ref={triggerRef}\n type=\"button\"\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n onClick={() => {\n if (disabled) return;\n setOpen((current) => !current);\n }}\n className={cn(\n \"inline-flex cursor-pointer h-9 w-full min-w-0 items-center justify-between gap-2 overflow-hidden rounded-[6px] border border-[#E3E3E3] bg-white px-3 text-sm font-medium text-black outline-none\",\n fontSans,\n disabled && \"cursor-not-allowed opacity-30\",\n triggerClassName,\n )}\n >\n {label ? <span className=\"min-w-0 shrink truncate text-[#aaa]\">{label}</span> : null}\n <span\n className={cn(\n \"flex min-w-0 items-center gap-2 truncate\",\n label && \"flex-1 justify-end text-right\",\n !selectedOption && \"text-[#606060]\",\n )}\n >\n {loading ? <IconLoading className=\"size-3.25 shrink-0 animate-spin text-[#909090]\" /> : null}\n <span className=\"min-w-0 truncate\">{selectedOption?.label ?? placeholder}</span>\n </span>\n <IconArrowDown className={cn(\"h-1.5 w-2.75 shrink-0 text-black transition-transform\", open && \"rotate-180\")} />\n </button>\n {open && typeof document !== \"undefined\"\n ? createPortal(\n <div\n ref={panelRef}\n role=\"listbox\"\n style={{ ...panelStyle, minWidth: triggerWidth, zIndex: floatingLayerZIndex() }}\n className={cn(\n \"w-max overflow-hidden rounded-[12px] border border-[#E0E0E0] bg-[#FDFDFD] py-1 text-base font-medium leading-normal text-black shadow-[0_0_20px_0_rgba(0,0,0,0.06)]\",\n fontSans,\n panelClassName,\n )}\n >\n {loading ? (\n <p\n role=\"status\"\n className={cn(\"flex items-center justify-center gap-2 px-3 py-4 text-sm font-medium text-[#aaa]\", fontSans)}\n >\n <IconLoading className=\"size-3.25 shrink-0 animate-spin\" />\n {DROPDOWN_LOADING}\n </p>\n ) : options.length === 0 ? (\n <p role=\"status\" className={cn(\"px-3 py-4 text-center text-sm font-medium text-[#aaa]\", fontSans)}>\n {empty}\n </p>\n ) : (\n options.map((option) => {\n const selected = option.value === selectedValue;\n return (\n <button\n key={option.value}\n type=\"button\"\n role=\"option\"\n aria-selected={selected}\n disabled={option.disabled}\n onClick={() => {\n if (option.disabled) return;\n selectValue(option.value);\n }}\n className={cn(\n \"flex cursor-pointer w-full border-0 bg-transparent text-left text-xs font-medium text-black hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-30\",\n renderOption ? \"items-center px-2.5 py-1.5\" : \"px-3 py-2\",\n selected && \"bg-black/5\",\n )}\n >\n {renderOption ? renderOption(option, selected) : option.label}\n </button>\n );\n })\n )}\n </div>,\n document.body,\n )\n : null}\n </div>\n );\n}\n\nexport default Dropdown;\n","export const DROPDOWN_PLACEHOLDER = \"Select\";\nexport const DROPDOWN_LOADING = \"Loading...\";\n"],"mappings":"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","names":[]}
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import { IconProps } from './types.js';
2
+ import { IconProps } from '../types.js';
3
3
 
4
4
  declare const IconAlert: (props: IconProps) => react.JSX.Element;
5
5
 
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  IconAlert,
3
3
  alert_default
4
- } from "../chunk-NZGSPYWG.js";
4
+ } from "../../chunk-JVHXUOHJ.js";
5
5
  export {
6
6
  IconAlert,
7
7
  alert_default as default
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import { IconProps } from './types.js';
2
+ import { IconProps } from '../types.js';
3
3
 
4
4
  declare const IconAllNetworks: (props: IconProps) => react.JSX.Element;
5
5
 
@@ -1,4 +1,4 @@
1
- // src/icons/all-networks.tsx
1
+ // src/icons/outline/all-networks.tsx
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  var IconAllNetworks = (props) => {
4
4
  const { className, style } = props;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/icons/outline/all-networks.tsx"],"sourcesContent":["import type { IconProps } from \"../types\";\n\nexport const IconAllNetworks = (props: IconProps) => {\n const { className, style } = props;\n\n return (\n <svg\n width=\"22\"\n height=\"22\"\n viewBox=\"0 0 22 22\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n style={style}\n >\n <path\n d=\"M8.25 0C8.52085 -3.70305e-09 8.78905 0.053348 9.03928 0.156998C9.28952 0.260649 9.51689 0.412571 9.70841 0.604092C9.89993 0.795613 10.0519 1.02298 10.1555 1.27322C10.2592 1.52345 10.3125 1.79165 10.3125 2.0625V10.3125H2.0625C1.79165 10.3125 1.52345 10.2592 1.27322 10.1555C1.02298 10.0519 0.795613 9.89993 0.604092 9.70841C0.412571 9.51689 0.260649 9.28952 0.156998 9.03928C0.053348 8.78905 -3.70305e-09 8.52085 0 8.25V2.0625C0 1.51549 0.217298 0.990886 0.604092 0.604092C0.990886 0.217298 1.51549 0 2.0625 0H8.25ZM8.25 2.0625H2.0625V8.25H8.25V2.0625ZM10.3125 11.6875V19.9375C10.3125 20.2084 10.2592 20.4766 10.1555 20.7268C10.0519 20.977 9.89993 21.2044 9.70841 21.3959C9.51689 21.5874 9.28952 21.7394 9.03928 21.843C8.78905 21.9467 8.52085 22 8.25 22H2.0625C1.51549 22 0.990886 21.7827 0.604092 21.3959C0.217298 21.0091 0 20.4845 0 19.9375V13.75C-3.70305e-09 13.4791 0.053348 13.211 0.156998 12.9607C0.260649 12.7105 0.412571 12.4831 0.604092 12.2916C0.795613 12.1001 1.02298 11.9481 1.27322 11.8445C1.52345 11.7408 1.79165 11.6875 2.0625 11.6875H10.3125ZM2.0625 13.75V19.9375H8.25V13.75H2.0625ZM16.8438 0C18.2113 0 19.5228 0.543246 20.4898 1.51023C21.4568 2.47722 22 3.78873 22 5.15625C22 6.52377 21.4568 7.83529 20.4898 8.80227C19.5228 9.76925 18.2113 10.3125 16.8438 10.3125C15.4762 10.3125 14.1647 9.76925 13.1977 8.80227C12.2307 7.83529 11.6875 6.52377 11.6875 5.15625C11.6875 3.78873 12.2307 2.47722 13.1977 1.51023C14.1647 0.543246 15.4762 0 16.8438 0ZM16.8438 2.0625C16.4374 2.06246 16.0351 2.14246 15.6597 2.29791C15.2843 2.45337 14.9433 2.68125 14.6559 2.96853C14.3686 3.25582 14.1407 3.59689 13.9852 3.97226C13.8297 4.34763 13.7497 4.74995 13.7497 5.15625C13.7497 5.56255 13.8297 5.96488 13.9852 6.34025C14.1407 6.71562 14.3686 7.05668 14.6559 7.34397C14.9433 7.63125 15.2843 7.85913 15.6597 8.01459C16.0351 8.17005 16.4374 8.25004 16.8438 8.25C17.6642 8.24992 18.451 7.92394 19.0312 7.34376C19.6113 6.76358 19.9372 5.97671 19.9372 5.15625C19.9372 4.33579 19.6113 3.54893 19.0312 2.96874C18.451 2.38856 17.6642 2.06258 16.8438 2.0625ZM19.9375 11.6875C20.2084 11.6875 20.4766 11.7408 20.7268 11.8445C20.977 11.9481 21.2044 12.1001 21.3959 12.2916C21.5874 12.4831 21.7394 12.7105 21.843 12.9607C21.9467 13.211 22 13.4791 22 13.75V19.9375C22 20.2084 21.9467 20.4766 21.843 20.7268C21.7394 20.977 21.5874 21.2044 21.3959 21.3959C21.2044 21.5874 20.977 21.7394 20.7268 21.843C20.4766 21.9467 20.2084 22 19.9375 22H13.75C13.4791 22 13.211 21.9467 12.9607 21.843C12.7105 21.7394 12.4831 21.5874 12.2916 21.3959C12.1001 21.2044 11.9481 20.977 11.8445 20.7268C11.7408 20.4766 11.6875 20.2084 11.6875 19.9375V11.6875H19.9375ZM13.75 19.9375H19.9375V13.75H13.75V19.9375Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default IconAllNetworks;\n"],"mappings":";AAeM;AAbC,IAAM,kBAAkB,CAAC,UAAqB;AACnD,QAAM,EAAE,WAAW,MAAM,IAAI;AAE7B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MACN;AAAA,MACA;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,uBAAQ;","names":[]}
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import { IconProps } from './types.js';
2
+ import { IconProps } from '../types.js';
3
3
 
4
4
  declare const IconArrowDown: (props: IconProps) => react.JSX.Element;
5
5
 
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  IconArrowDown,
3
3
  arrow_down_default
4
- } from "../chunk-OGSFVQK2.js";
4
+ } from "../../chunk-CYTYDPSK.js";
5
5
  export {
6
6
  IconArrowDown,
7
7
  arrow_down_default as default
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import { IconProps } from './types.js';
2
+ import { IconProps } from '../types.js';
3
3
 
4
4
  declare const IconBack: (props: IconProps) => react.JSX.Element;
5
5
 
@@ -1,4 +1,4 @@
1
- // src/icons/back.tsx
1
+ // src/icons/outline/back.tsx
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  var IconBack = (props) => {
4
4
  const { className, style } = props;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/icons/outline/back.tsx"],"sourcesContent":["import type { IconProps } from \"../types\";\n\nexport const IconBack = (props: IconProps) => {\n const { className, style } = props;\n\n return (\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className ? `sfp-icon ${className}` : \"sfp-icon\"}\n style={style}\n >\n <path\n d=\"M16 9L12 14.1724L16 19\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <rect\n opacity=\"0.1\"\n x=\"0.5\"\n y=\"0.5\"\n width=\"27\"\n height=\"27\"\n rx=\"13.5\"\n stroke=\"black\"\n />\n </svg>\n );\n};\n\nexport default IconBack;\n"],"mappings":";AAMI,SASE,KATF;AAJG,IAAM,WAAW,CAAC,UAAqB;AAC5C,QAAM,EAAE,WAAW,MAAM,IAAI;AAE7B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MACN,WAAW,YAAY,YAAY,SAAS,KAAK;AAAA,MACjD;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,SAAQ;AAAA,YACR,GAAE;AAAA,YACF,GAAE;AAAA,YACF,OAAM;AAAA,YACN,QAAO;AAAA,YACP,IAAG;AAAA,YACH,QAAO;AAAA;AAAA,QACT;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,eAAQ;","names":[]}