shad-m 1.0.0 → 1.0.2

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 (628) hide show
  1. package/dist/common/interactive/list.d.ts +1 -1
  2. package/dist/common/interactive/select/variants.d.ts +1 -1
  3. package/dist/components/alert-dialog.d.ts +2 -2
  4. package/dist/components/badge.d.ts +3 -3
  5. package/dist/components/button.d.ts +4 -4
  6. package/dist/components/chip.d.ts +2 -2
  7. package/dist/components/command.d.ts +7 -7
  8. package/dist/components/dialog.d.ts +2 -2
  9. package/dist/components/input-otp.d.ts +2 -2
  10. package/dist/components/resizable.d.ts +1 -1
  11. package/dist/components/sidebar.d.ts +1 -1
  12. package/dist/components/spinner.d.ts +2 -2
  13. package/dist/components/stepper.d.ts +3 -3
  14. package/dist/components/toggle-group.d.ts +2 -2
  15. package/dist/components/toggle.d.ts +2 -2
  16. package/dist/index.css +43 -0
  17. package/dist/index.css.map +1 -0
  18. package/dist/index.d.ts +59 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +8189 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/index.mjs +7846 -0
  23. package/dist/index.mjs.map +1 -0
  24. package/package.json +34 -2
  25. package/dist/assets/Animation/index.js +0 -180
  26. package/dist/assets/Animation/index.js.map +0 -1
  27. package/dist/assets/Animation/index.mjs +0 -79
  28. package/dist/assets/Animation/index.mjs.map +0 -1
  29. package/dist/assets/Icon/index.js +0 -2102
  30. package/dist/assets/Icon/index.js.map +0 -1
  31. package/dist/assets/Icon/index.mjs +0 -421
  32. package/dist/assets/Icon/index.mjs.map +0 -1
  33. package/dist/assets/Image/index.js +0 -755
  34. package/dist/assets/Image/index.js.map +0 -1
  35. package/dist/assets/Image/index.mjs +0 -150
  36. package/dist/assets/Image/index.mjs.map +0 -1
  37. package/dist/common/display/countdown.js +0 -68
  38. package/dist/common/display/countdown.js.map +0 -1
  39. package/dist/common/display/countdown.mjs +0 -46
  40. package/dist/common/display/countdown.mjs.map +0 -1
  41. package/dist/common/display/display-field-group.js +0 -91
  42. package/dist/common/display/display-field-group.js.map +0 -1
  43. package/dist/common/display/display-field-group.mjs +0 -89
  44. package/dist/common/display/display-field-group.mjs.map +0 -1
  45. package/dist/common/display/display-field.js +0 -46
  46. package/dist/common/display/display-field.js.map +0 -1
  47. package/dist/common/display/display-field.mjs +0 -40
  48. package/dist/common/display/display-field.mjs.map +0 -1
  49. package/dist/common/display/display-html-string.js +0 -52
  50. package/dist/common/display/display-html-string.js.map +0 -1
  51. package/dist/common/display/display-html-string.mjs +0 -30
  52. package/dist/common/display/display-html-string.mjs.map +0 -1
  53. package/dist/common/display/index.js +0 -59
  54. package/dist/common/display/index.js.map +0 -1
  55. package/dist/common/display/index.mjs +0 -10
  56. package/dist/common/display/index.mjs.map +0 -1
  57. package/dist/common/display/page-breadcrumb.js +0 -43
  58. package/dist/common/display/page-breadcrumb.js.map +0 -1
  59. package/dist/common/display/page-breadcrumb.mjs +0 -37
  60. package/dist/common/display/page-breadcrumb.mjs.map +0 -1
  61. package/dist/common/display/page-v2.js +0 -58
  62. package/dist/common/display/page-v2.js.map +0 -1
  63. package/dist/common/display/page-v2.mjs +0 -20
  64. package/dist/common/display/page-v2.mjs.map +0 -1
  65. package/dist/common/display/page.js +0 -155
  66. package/dist/common/display/page.js.map +0 -1
  67. package/dist/common/display/page.mjs +0 -138
  68. package/dist/common/display/page.mjs.map +0 -1
  69. package/dist/common/display/score-meter.js +0 -161
  70. package/dist/common/display/score-meter.js.map +0 -1
  71. package/dist/common/display/score-meter.mjs +0 -140
  72. package/dist/common/display/score-meter.mjs.map +0 -1
  73. package/dist/common/display/sidebar/app-sidebar.js +0 -114
  74. package/dist/common/display/sidebar/app-sidebar.js.map +0 -1
  75. package/dist/common/display/sidebar/app-sidebar.mjs +0 -92
  76. package/dist/common/display/sidebar/app-sidebar.mjs.map +0 -1
  77. package/dist/common/display/sidebar/index.js +0 -89
  78. package/dist/common/display/sidebar/index.js.map +0 -1
  79. package/dist/common/display/sidebar/index.mjs +0 -81
  80. package/dist/common/display/sidebar/index.mjs.map +0 -1
  81. package/dist/common/display/sidebar/nav-main.js +0 -406
  82. package/dist/common/display/sidebar/nav-main.js.map +0 -1
  83. package/dist/common/display/sidebar/nav-main.mjs +0 -400
  84. package/dist/common/display/sidebar/nav-main.mjs.map +0 -1
  85. package/dist/common/display/sidebar/sidebar-sheet.js +0 -140
  86. package/dist/common/display/sidebar/sidebar-sheet.js.map +0 -1
  87. package/dist/common/display/sidebar/sidebar-sheet.mjs +0 -118
  88. package/dist/common/display/sidebar/sidebar-sheet.mjs.map +0 -1
  89. package/dist/common/display/sidebar/types.js +0 -4
  90. package/dist/common/display/sidebar/types.js.map +0 -1
  91. package/dist/common/display/sidebar/types.mjs +0 -3
  92. package/dist/common/display/sidebar/types.mjs.map +0 -1
  93. package/dist/common/display/status-state.js +0 -97
  94. package/dist/common/display/status-state.js.map +0 -1
  95. package/dist/common/display/status-state.mjs +0 -88
  96. package/dist/common/display/status-state.mjs.map +0 -1
  97. package/dist/common/forms/auto-form.js +0 -101
  98. package/dist/common/forms/auto-form.js.map +0 -1
  99. package/dist/common/forms/auto-form.mjs +0 -78
  100. package/dist/common/forms/auto-form.mjs.map +0 -1
  101. package/dist/common/forms/form-field.js +0 -58
  102. package/dist/common/forms/form-field.js.map +0 -1
  103. package/dist/common/forms/form-field.mjs +0 -56
  104. package/dist/common/forms/form-field.mjs.map +0 -1
  105. package/dist/common/forms/form-input-field.js +0 -64
  106. package/dist/common/forms/form-input-field.js.map +0 -1
  107. package/dist/common/forms/form-input-field.mjs +0 -62
  108. package/dist/common/forms/form-input-field.mjs.map +0 -1
  109. package/dist/common/forms/index.js +0 -22
  110. package/dist/common/forms/index.js.map +0 -1
  111. package/dist/common/forms/index.mjs +0 -5
  112. package/dist/common/forms/index.mjs.map +0 -1
  113. package/dist/common/forms/switch-field.js +0 -106
  114. package/dist/common/forms/switch-field.js.map +0 -1
  115. package/dist/common/forms/switch-field.mjs +0 -104
  116. package/dist/common/forms/switch-field.mjs.map +0 -1
  117. package/dist/common/interactive/alert-dialog-wrapper.js +0 -141
  118. package/dist/common/interactive/alert-dialog-wrapper.js.map +0 -1
  119. package/dist/common/interactive/alert-dialog-wrapper.mjs +0 -119
  120. package/dist/common/interactive/alert-dialog-wrapper.mjs.map +0 -1
  121. package/dist/common/interactive/autocomplete.js +0 -178
  122. package/dist/common/interactive/autocomplete.js.map +0 -1
  123. package/dist/common/interactive/autocomplete.mjs +0 -157
  124. package/dist/common/interactive/autocomplete.mjs.map +0 -1
  125. package/dist/common/interactive/copy-tooltip.js +0 -152
  126. package/dist/common/interactive/copy-tooltip.js.map +0 -1
  127. package/dist/common/interactive/copy-tooltip.mjs +0 -143
  128. package/dist/common/interactive/copy-tooltip.mjs.map +0 -1
  129. package/dist/common/interactive/date-field.js +0 -303
  130. package/dist/common/interactive/date-field.js.map +0 -1
  131. package/dist/common/interactive/date-field.mjs +0 -281
  132. package/dist/common/interactive/date-field.mjs.map +0 -1
  133. package/dist/common/interactive/date-input/date-input.js +0 -68
  134. package/dist/common/interactive/date-input/date-input.js.map +0 -1
  135. package/dist/common/interactive/date-input/date-input.mjs +0 -62
  136. package/dist/common/interactive/date-input/date-input.mjs.map +0 -1
  137. package/dist/common/interactive/date-input/index.js +0 -17
  138. package/dist/common/interactive/date-input/index.js.map +0 -1
  139. package/dist/common/interactive/date-input/index.mjs +0 -4
  140. package/dist/common/interactive/date-input/index.mjs.map +0 -1
  141. package/dist/common/interactive/date-input/types.js +0 -4
  142. package/dist/common/interactive/date-input/types.js.map +0 -1
  143. package/dist/common/interactive/date-input/types.mjs +0 -3
  144. package/dist/common/interactive/date-input/types.mjs.map +0 -1
  145. package/dist/common/interactive/date-input/use-typed-date.js +0 -478
  146. package/dist/common/interactive/date-input/use-typed-date.js.map +0 -1
  147. package/dist/common/interactive/date-input/use-typed-date.mjs +0 -476
  148. package/dist/common/interactive/date-input/use-typed-date.mjs.map +0 -1
  149. package/dist/common/interactive/date-input/utils.js +0 -34
  150. package/dist/common/interactive/date-input/utils.js.map +0 -1
  151. package/dist/common/interactive/date-input/utils.mjs +0 -29
  152. package/dist/common/interactive/date-input/utils.mjs.map +0 -1
  153. package/dist/common/interactive/date-picker.js +0 -616
  154. package/dist/common/interactive/date-picker.js.map +0 -1
  155. package/dist/common/interactive/date-picker.mjs +0 -594
  156. package/dist/common/interactive/date-picker.mjs.map +0 -1
  157. package/dist/common/interactive/date-range-input/date-range-input.js +0 -82
  158. package/dist/common/interactive/date-range-input/date-range-input.js.map +0 -1
  159. package/dist/common/interactive/date-range-input/date-range-input.mjs +0 -76
  160. package/dist/common/interactive/date-range-input/date-range-input.mjs.map +0 -1
  161. package/dist/common/interactive/date-range-input/index.js +0 -12
  162. package/dist/common/interactive/date-range-input/index.js.map +0 -1
  163. package/dist/common/interactive/date-range-input/index.mjs +0 -3
  164. package/dist/common/interactive/date-range-input/index.mjs.map +0 -1
  165. package/dist/common/interactive/date-range-input/types.js +0 -4
  166. package/dist/common/interactive/date-range-input/types.js.map +0 -1
  167. package/dist/common/interactive/date-range-input/types.mjs +0 -3
  168. package/dist/common/interactive/date-range-input/types.mjs.map +0 -1
  169. package/dist/common/interactive/date-range-input/use-typed-date-range.js +0 -602
  170. package/dist/common/interactive/date-range-input/use-typed-date-range.js.map +0 -1
  171. package/dist/common/interactive/date-range-input/use-typed-date-range.mjs +0 -600
  172. package/dist/common/interactive/date-range-input/use-typed-date-range.mjs.map +0 -1
  173. package/dist/common/interactive/date-time-picker.js +0 -215
  174. package/dist/common/interactive/date-time-picker.js.map +0 -1
  175. package/dist/common/interactive/date-time-picker.mjs +0 -213
  176. package/dist/common/interactive/date-time-picker.mjs.map +0 -1
  177. package/dist/common/interactive/dialog-wrapper.js +0 -124
  178. package/dist/common/interactive/dialog-wrapper.js.map +0 -1
  179. package/dist/common/interactive/dialog-wrapper.mjs +0 -102
  180. package/dist/common/interactive/dialog-wrapper.mjs.map +0 -1
  181. package/dist/common/interactive/filter.js +0 -287
  182. package/dist/common/interactive/filter.js.map +0 -1
  183. package/dist/common/interactive/filter.mjs +0 -280
  184. package/dist/common/interactive/filter.mjs.map +0 -1
  185. package/dist/common/interactive/index.js +0 -235
  186. package/dist/common/interactive/index.js.map +0 -1
  187. package/dist/common/interactive/index.mjs +0 -24
  188. package/dist/common/interactive/index.mjs.map +0 -1
  189. package/dist/common/interactive/list.js +0 -160
  190. package/dist/common/interactive/list.js.map +0 -1
  191. package/dist/common/interactive/list.mjs +0 -134
  192. package/dist/common/interactive/list.mjs.map +0 -1
  193. package/dist/common/interactive/otp-dialog/index.js +0 -35
  194. package/dist/common/interactive/otp-dialog/index.js.map +0 -1
  195. package/dist/common/interactive/otp-dialog/index.mjs +0 -6
  196. package/dist/common/interactive/otp-dialog/index.mjs.map +0 -1
  197. package/dist/common/interactive/otp-dialog/otp-dialog.js +0 -325
  198. package/dist/common/interactive/otp-dialog/otp-dialog.js.map +0 -1
  199. package/dist/common/interactive/otp-dialog/otp-dialog.mjs +0 -303
  200. package/dist/common/interactive/otp-dialog/otp-dialog.mjs.map +0 -1
  201. package/dist/common/interactive/otp-dialog/reducer.js +0 -40
  202. package/dist/common/interactive/otp-dialog/reducer.js.map +0 -1
  203. package/dist/common/interactive/otp-dialog/reducer.mjs +0 -37
  204. package/dist/common/interactive/otp-dialog/reducer.mjs.map +0 -1
  205. package/dist/common/interactive/otp-dialog/types.js +0 -15
  206. package/dist/common/interactive/otp-dialog/types.js.map +0 -1
  207. package/dist/common/interactive/otp-dialog/types.mjs +0 -13
  208. package/dist/common/interactive/otp-dialog/types.mjs.map +0 -1
  209. package/dist/common/interactive/otp-dialog/utils.js +0 -24
  210. package/dist/common/interactive/otp-dialog/utils.js.map +0 -1
  211. package/dist/common/interactive/otp-dialog/utils.mjs +0 -21
  212. package/dist/common/interactive/otp-dialog/utils.mjs.map +0 -1
  213. package/dist/common/interactive/pagination/PaginationSkeleton.js +0 -51
  214. package/dist/common/interactive/pagination/PaginationSkeleton.js.map +0 -1
  215. package/dist/common/interactive/pagination/PaginationSkeleton.mjs +0 -49
  216. package/dist/common/interactive/pagination/PaginationSkeleton.mjs.map +0 -1
  217. package/dist/common/interactive/pagination/index.js +0 -235
  218. package/dist/common/interactive/pagination/index.js.map +0 -1
  219. package/dist/common/interactive/pagination/index.mjs +0 -223
  220. package/dist/common/interactive/pagination/index.mjs.map +0 -1
  221. package/dist/common/interactive/pagination/usePagination.js +0 -28
  222. package/dist/common/interactive/pagination/usePagination.js.map +0 -1
  223. package/dist/common/interactive/pagination/usePagination.mjs +0 -25
  224. package/dist/common/interactive/pagination/usePagination.mjs.map +0 -1
  225. package/dist/common/interactive/popover-wrapper.js +0 -138
  226. package/dist/common/interactive/popover-wrapper.js.map +0 -1
  227. package/dist/common/interactive/popover-wrapper.mjs +0 -116
  228. package/dist/common/interactive/popover-wrapper.mjs.map +0 -1
  229. package/dist/common/interactive/pressable.js +0 -84
  230. package/dist/common/interactive/pressable.js.map +0 -1
  231. package/dist/common/interactive/pressable.mjs +0 -62
  232. package/dist/common/interactive/pressable.mjs.map +0 -1
  233. package/dist/common/interactive/select/context.js +0 -38
  234. package/dist/common/interactive/select/context.js.map +0 -1
  235. package/dist/common/interactive/select/context.mjs +0 -14
  236. package/dist/common/interactive/select/context.mjs.map +0 -1
  237. package/dist/common/interactive/select/index.js +0 -123
  238. package/dist/common/interactive/select/index.js.map +0 -1
  239. package/dist/common/interactive/select/index.mjs +0 -18
  240. package/dist/common/interactive/select/index.mjs.map +0 -1
  241. package/dist/common/interactive/select/select-body.js +0 -89
  242. package/dist/common/interactive/select/select-body.js.map +0 -1
  243. package/dist/common/interactive/select/select-body.mjs +0 -67
  244. package/dist/common/interactive/select/select-body.mjs.map +0 -1
  245. package/dist/common/interactive/select/select-close.js +0 -38
  246. package/dist/common/interactive/select/select-close.js.map +0 -1
  247. package/dist/common/interactive/select/select-close.mjs +0 -16
  248. package/dist/common/interactive/select/select-close.mjs.map +0 -1
  249. package/dist/common/interactive/select/select-content-auto-layout.js +0 -221
  250. package/dist/common/interactive/select/select-content-auto-layout.js.map +0 -1
  251. package/dist/common/interactive/select/select-content-auto-layout.mjs +0 -199
  252. package/dist/common/interactive/select/select-content-auto-layout.mjs.map +0 -1
  253. package/dist/common/interactive/select/select-content-group-auto-layout.js +0 -411
  254. package/dist/common/interactive/select/select-content-group-auto-layout.js.map +0 -1
  255. package/dist/common/interactive/select/select-content-group-auto-layout.mjs +0 -389
  256. package/dist/common/interactive/select/select-content-group-auto-layout.mjs.map +0 -1
  257. package/dist/common/interactive/select/select-content.js +0 -187
  258. package/dist/common/interactive/select/select-content.js.map +0 -1
  259. package/dist/common/interactive/select/select-content.mjs +0 -165
  260. package/dist/common/interactive/select/select-content.mjs.map +0 -1
  261. package/dist/common/interactive/select/select-footer.js +0 -82
  262. package/dist/common/interactive/select/select-footer.js.map +0 -1
  263. package/dist/common/interactive/select/select-footer.mjs +0 -60
  264. package/dist/common/interactive/select/select-footer.mjs.map +0 -1
  265. package/dist/common/interactive/select/select-item.js +0 -214
  266. package/dist/common/interactive/select/select-item.js.map +0 -1
  267. package/dist/common/interactive/select/select-item.mjs +0 -191
  268. package/dist/common/interactive/select/select-item.mjs.map +0 -1
  269. package/dist/common/interactive/select/select-layout.js +0 -66
  270. package/dist/common/interactive/select/select-layout.js.map +0 -1
  271. package/dist/common/interactive/select/select-layout.mjs +0 -41
  272. package/dist/common/interactive/select/select-layout.mjs.map +0 -1
  273. package/dist/common/interactive/select/select-search.js +0 -55
  274. package/dist/common/interactive/select/select-search.js.map +0 -1
  275. package/dist/common/interactive/select/select-search.mjs +0 -33
  276. package/dist/common/interactive/select/select-search.mjs.map +0 -1
  277. package/dist/common/interactive/select/select-states.js +0 -57
  278. package/dist/common/interactive/select/select-states.js.map +0 -1
  279. package/dist/common/interactive/select/select-states.mjs +0 -34
  280. package/dist/common/interactive/select/select-states.mjs.map +0 -1
  281. package/dist/common/interactive/select/select-trigger.js +0 -310
  282. package/dist/common/interactive/select/select-trigger.js.map +0 -1
  283. package/dist/common/interactive/select/select-trigger.mjs +0 -286
  284. package/dist/common/interactive/select/select-trigger.mjs.map +0 -1
  285. package/dist/common/interactive/select/select-value.js +0 -52
  286. package/dist/common/interactive/select/select-value.js.map +0 -1
  287. package/dist/common/interactive/select/select-value.mjs +0 -30
  288. package/dist/common/interactive/select/select-value.mjs.map +0 -1
  289. package/dist/common/interactive/select/select.js +0 -184
  290. package/dist/common/interactive/select/select.js.map +0 -1
  291. package/dist/common/interactive/select/select.mjs +0 -162
  292. package/dist/common/interactive/select/select.mjs.map +0 -1
  293. package/dist/common/interactive/select/types.js +0 -4
  294. package/dist/common/interactive/select/types.js.map +0 -1
  295. package/dist/common/interactive/select/types.mjs +0 -3
  296. package/dist/common/interactive/select/types.mjs.map +0 -1
  297. package/dist/common/interactive/select/utils.js +0 -31
  298. package/dist/common/interactive/select/utils.js.map +0 -1
  299. package/dist/common/interactive/select/utils.mjs +0 -28
  300. package/dist/common/interactive/select/utils.mjs.map +0 -1
  301. package/dist/common/interactive/select/variants.js +0 -27
  302. package/dist/common/interactive/select/variants.js.map +0 -1
  303. package/dist/common/interactive/select/variants.mjs +0 -25
  304. package/dist/common/interactive/select/variants.mjs.map +0 -1
  305. package/dist/common/interactive/select-chip.js +0 -76
  306. package/dist/common/interactive/select-chip.js.map +0 -1
  307. package/dist/common/interactive/select-chip.mjs +0 -74
  308. package/dist/common/interactive/select-chip.mjs.map +0 -1
  309. package/dist/common/interactive/select-level.js +0 -236
  310. package/dist/common/interactive/select-level.js.map +0 -1
  311. package/dist/common/interactive/select-level.mjs +0 -230
  312. package/dist/common/interactive/select-level.mjs.map +0 -1
  313. package/dist/common/interactive/select-range.js +0 -211
  314. package/dist/common/interactive/select-range.js.map +0 -1
  315. package/dist/common/interactive/select-range.mjs +0 -209
  316. package/dist/common/interactive/select-range.mjs.map +0 -1
  317. package/dist/common/interactive/select-with-api.js +0 -767
  318. package/dist/common/interactive/select-with-api.js.map +0 -1
  319. package/dist/common/interactive/select-with-api.mjs +0 -758
  320. package/dist/common/interactive/select-with-api.mjs.map +0 -1
  321. package/dist/common/interactive/select.js +0 -15
  322. package/dist/common/interactive/select.js.map +0 -1
  323. package/dist/common/interactive/select.mjs +0 -4
  324. package/dist/common/interactive/select.mjs.map +0 -1
  325. package/dist/common/interactive/sheet-wrapper.js +0 -105
  326. package/dist/common/interactive/sheet-wrapper.js.map +0 -1
  327. package/dist/common/interactive/sheet-wrapper.mjs +0 -83
  328. package/dist/common/interactive/sheet-wrapper.mjs.map +0 -1
  329. package/dist/common/interactive/table/enhanced-table.js +0 -390
  330. package/dist/common/interactive/table/enhanced-table.js.map +0 -1
  331. package/dist/common/interactive/table/enhanced-table.mjs +0 -388
  332. package/dist/common/interactive/table/enhanced-table.mjs.map +0 -1
  333. package/dist/common/interactive/table/index.js +0 -83
  334. package/dist/common/interactive/table/index.js.map +0 -1
  335. package/dist/common/interactive/table/index.mjs +0 -68
  336. package/dist/common/interactive/table/index.mjs.map +0 -1
  337. package/dist/common/interactive/table/table-pagination.js +0 -12
  338. package/dist/common/interactive/table/table-pagination.js.map +0 -1
  339. package/dist/common/interactive/table/table-pagination.mjs +0 -10
  340. package/dist/common/interactive/table/table-pagination.mjs.map +0 -1
  341. package/dist/common/interactive/table/types.js +0 -4
  342. package/dist/common/interactive/table/types.js.map +0 -1
  343. package/dist/common/interactive/table/types.mjs +0 -3
  344. package/dist/common/interactive/table/types.mjs.map +0 -1
  345. package/dist/common/interactive/time-picker.js +0 -313
  346. package/dist/common/interactive/time-picker.js.map +0 -1
  347. package/dist/common/interactive/time-picker.mjs +0 -307
  348. package/dist/common/interactive/time-picker.mjs.map +0 -1
  349. package/dist/common/interactive/types.js +0 -4
  350. package/dist/common/interactive/types.js.map +0 -1
  351. package/dist/common/interactive/types.mjs +0 -3
  352. package/dist/common/interactive/types.mjs.map +0 -1
  353. package/dist/common/pages/page-404.js +0 -16
  354. package/dist/common/pages/page-404.js.map +0 -1
  355. package/dist/common/pages/page-404.mjs +0 -11
  356. package/dist/common/pages/page-404.mjs.map +0 -1
  357. package/dist/common/pages/page-500.js +0 -30
  358. package/dist/common/pages/page-500.js.map +0 -1
  359. package/dist/common/pages/page-500.mjs +0 -25
  360. package/dist/common/pages/page-500.mjs.map +0 -1
  361. package/dist/components/accordion.js +0 -65
  362. package/dist/components/accordion.js.map +0 -1
  363. package/dist/components/accordion.mjs +0 -39
  364. package/dist/components/accordion.mjs.map +0 -1
  365. package/dist/components/alert-dialog.js +0 -231
  366. package/dist/components/alert-dialog.js.map +0 -1
  367. package/dist/components/alert-dialog.mjs +0 -197
  368. package/dist/components/alert-dialog.mjs.map +0 -1
  369. package/dist/components/alert.js +0 -97
  370. package/dist/components/alert.js.map +0 -1
  371. package/dist/components/alert.mjs +0 -72
  372. package/dist/components/alert.mjs.map +0 -1
  373. package/dist/components/aspect-ratio.js +0 -29
  374. package/dist/components/aspect-ratio.js.map +0 -1
  375. package/dist/components/aspect-ratio.mjs +0 -7
  376. package/dist/components/aspect-ratio.mjs.map +0 -1
  377. package/dist/components/avatar.js +0 -64
  378. package/dist/components/avatar.js.map +0 -1
  379. package/dist/components/avatar.mjs +0 -39
  380. package/dist/components/avatar.mjs.map +0 -1
  381. package/dist/components/badge.js +0 -72
  382. package/dist/components/badge.js.map +0 -1
  383. package/dist/components/badge.mjs +0 -69
  384. package/dist/components/badge.mjs.map +0 -1
  385. package/dist/components/breadcrumb.js +0 -109
  386. package/dist/components/breadcrumb.js.map +0 -1
  387. package/dist/components/breadcrumb.mjs +0 -81
  388. package/dist/components/breadcrumb.mjs.map +0 -1
  389. package/dist/components/button.js +0 -250
  390. package/dist/components/button.js.map +0 -1
  391. package/dist/components/button.mjs +0 -226
  392. package/dist/components/button.mjs.map +0 -1
  393. package/dist/components/calendar.js +0 -681
  394. package/dist/components/calendar.js.map +0 -1
  395. package/dist/components/calendar.mjs +0 -659
  396. package/dist/components/calendar.mjs.map +0 -1
  397. package/dist/components/card.js +0 -98
  398. package/dist/components/card.js.map +0 -1
  399. package/dist/components/card.mjs +0 -71
  400. package/dist/components/card.mjs.map +0 -1
  401. package/dist/components/carousel.js +0 -237
  402. package/dist/components/carousel.js.map +0 -1
  403. package/dist/components/carousel.mjs +0 -208
  404. package/dist/components/carousel.mjs.map +0 -1
  405. package/dist/components/chart.js +0 -252
  406. package/dist/components/chart.js.map +0 -1
  407. package/dist/components/chart.mjs +0 -224
  408. package/dist/components/chart.mjs.map +0 -1
  409. package/dist/components/checkbox.js +0 -97
  410. package/dist/components/checkbox.js.map +0 -1
  411. package/dist/components/checkbox.mjs +0 -74
  412. package/dist/components/checkbox.mjs.map +0 -1
  413. package/dist/components/chip.js +0 -88
  414. package/dist/components/chip.js.map +0 -1
  415. package/dist/components/chip.mjs +0 -82
  416. package/dist/components/chip.mjs.map +0 -1
  417. package/dist/components/collapsible.js +0 -33
  418. package/dist/components/collapsible.js.map +0 -1
  419. package/dist/components/collapsible.mjs +0 -9
  420. package/dist/components/collapsible.mjs.map +0 -1
  421. package/dist/components/command.js +0 -125
  422. package/dist/components/command.js.map +0 -1
  423. package/dist/components/command.mjs +0 -95
  424. package/dist/components/command.mjs.map +0 -1
  425. package/dist/components/context-menu.js +0 -168
  426. package/dist/components/context-menu.js.map +0 -1
  427. package/dist/components/context-menu.mjs +0 -131
  428. package/dist/components/context-menu.mjs.map +0 -1
  429. package/dist/components/dialog.js +0 -192
  430. package/dist/components/dialog.js.map +0 -1
  431. package/dist/components/dialog.mjs +0 -159
  432. package/dist/components/dialog.mjs.map +0 -1
  433. package/dist/components/drawer.js +0 -98
  434. package/dist/components/drawer.js.map +0 -1
  435. package/dist/components/drawer.mjs +0 -67
  436. package/dist/components/drawer.mjs.map +0 -1
  437. package/dist/components/dropdown-menu.js +0 -163
  438. package/dist/components/dropdown-menu.js.map +0 -1
  439. package/dist/components/dropdown-menu.mjs +0 -126
  440. package/dist/components/dropdown-menu.mjs.map +0 -1
  441. package/dist/components/form.js +0 -123
  442. package/dist/components/form.js.map +0 -1
  443. package/dist/components/form.mjs +0 -94
  444. package/dist/components/form.mjs.map +0 -1
  445. package/dist/components/hover-card.js +0 -50
  446. package/dist/components/hover-card.js.map +0 -1
  447. package/dist/components/hover-card.mjs +0 -25
  448. package/dist/components/hover-card.mjs.map +0 -1
  449. package/dist/components/input-otp.js +0 -84
  450. package/dist/components/input-otp.js.map +0 -1
  451. package/dist/components/input-otp.mjs +0 -59
  452. package/dist/components/input-otp.mjs.map +0 -1
  453. package/dist/components/input.js +0 -858
  454. package/dist/components/input.js.map +0 -1
  455. package/dist/components/input.mjs +0 -831
  456. package/dist/components/input.mjs.map +0 -1
  457. package/dist/components/label.js +0 -38
  458. package/dist/components/label.js.map +0 -1
  459. package/dist/components/label.mjs +0 -15
  460. package/dist/components/label.mjs.map +0 -1
  461. package/dist/components/lottie.js +0 -59
  462. package/dist/components/lottie.js.map +0 -1
  463. package/dist/components/lottie.mjs +0 -49
  464. package/dist/components/lottie.mjs.map +0 -1
  465. package/dist/components/menubar.js +0 -195
  466. package/dist/components/menubar.js.map +0 -1
  467. package/dist/components/menubar.mjs +0 -157
  468. package/dist/components/menubar.mjs.map +0 -1
  469. package/dist/components/navigation-menu.js +0 -126
  470. package/dist/components/navigation-menu.js.map +0 -1
  471. package/dist/components/navigation-menu.mjs +0 -95
  472. package/dist/components/navigation-menu.mjs.map +0 -1
  473. package/dist/components/pagination.js +0 -112
  474. package/dist/components/pagination.js.map +0 -1
  475. package/dist/components/pagination.mjs +0 -84
  476. package/dist/components/pagination.mjs.map +0 -1
  477. package/dist/components/popover.js +0 -63
  478. package/dist/components/popover.js.map +0 -1
  479. package/dist/components/popover.mjs +0 -38
  480. package/dist/components/popover.mjs.map +0 -1
  481. package/dist/components/progress.js +0 -50
  482. package/dist/components/progress.js.map +0 -1
  483. package/dist/components/progress.mjs +0 -27
  484. package/dist/components/progress.mjs.map +0 -1
  485. package/dist/components/radio-group.js +0 -91
  486. package/dist/components/radio-group.js.map +0 -1
  487. package/dist/components/radio-group.mjs +0 -67
  488. package/dist/components/radio-group.mjs.map +0 -1
  489. package/dist/components/resizable.js +0 -59
  490. package/dist/components/resizable.js.map +0 -1
  491. package/dist/components/resizable.mjs +0 -35
  492. package/dist/components/resizable.mjs.map +0 -1
  493. package/dist/components/responsive-popover.js +0 -74
  494. package/dist/components/responsive-popover.js.map +0 -1
  495. package/dist/components/responsive-popover.mjs +0 -50
  496. package/dist/components/responsive-popover.mjs.map +0 -1
  497. package/dist/components/scroll-area.js +0 -63
  498. package/dist/components/scroll-area.js.map +0 -1
  499. package/dist/components/scroll-area.mjs +0 -39
  500. package/dist/components/scroll-area.mjs.map +0 -1
  501. package/dist/components/separator.js +0 -47
  502. package/dist/components/separator.js.map +0 -1
  503. package/dist/components/separator.mjs +0 -24
  504. package/dist/components/separator.mjs.map +0 -1
  505. package/dist/components/sheet.js +0 -239
  506. package/dist/components/sheet.js.map +0 -1
  507. package/dist/components/sheet.mjs +0 -206
  508. package/dist/components/sheet.mjs.map +0 -1
  509. package/dist/components/sidebar.js +0 -888
  510. package/dist/components/sidebar.js.map +0 -1
  511. package/dist/components/sidebar.mjs +0 -842
  512. package/dist/components/sidebar.mjs.map +0 -1
  513. package/dist/components/skeleton.js +0 -153
  514. package/dist/components/skeleton.js.map +0 -1
  515. package/dist/components/skeleton.mjs +0 -127
  516. package/dist/components/skeleton.mjs.map +0 -1
  517. package/dist/components/slider.js +0 -45
  518. package/dist/components/slider.js.map +0 -1
  519. package/dist/components/slider.mjs +0 -22
  520. package/dist/components/slider.mjs.map +0 -1
  521. package/dist/components/sonner.js +0 -76
  522. package/dist/components/sonner.js.map +0 -1
  523. package/dist/components/sonner.mjs +0 -71
  524. package/dist/components/sonner.mjs.map +0 -1
  525. package/dist/components/spinner.js +0 -59
  526. package/dist/components/spinner.js.map +0 -1
  527. package/dist/components/spinner.mjs +0 -36
  528. package/dist/components/spinner.mjs.map +0 -1
  529. package/dist/components/stepper.js +0 -726
  530. package/dist/components/stepper.js.map +0 -1
  531. package/dist/components/stepper.mjs +0 -702
  532. package/dist/components/stepper.mjs.map +0 -1
  533. package/dist/components/switch.js +0 -85
  534. package/dist/components/switch.js.map +0 -1
  535. package/dist/components/switch.mjs +0 -62
  536. package/dist/components/switch.mjs.map +0 -1
  537. package/dist/components/table.js +0 -91
  538. package/dist/components/table.js.map +0 -1
  539. package/dist/components/table.mjs +0 -62
  540. package/dist/components/table.mjs.map +0 -1
  541. package/dist/components/tabs.js +0 -287
  542. package/dist/components/tabs.js.map +0 -1
  543. package/dist/components/tabs.mjs +0 -261
  544. package/dist/components/tabs.mjs.map +0 -1
  545. package/dist/components/textarea.js +0 -200
  546. package/dist/components/textarea.js.map +0 -1
  547. package/dist/components/textarea.mjs +0 -174
  548. package/dist/components/textarea.mjs.map +0 -1
  549. package/dist/components/toggle-group.js +0 -67
  550. package/dist/components/toggle-group.js.map +0 -1
  551. package/dist/components/toggle-group.mjs +0 -43
  552. package/dist/components/toggle-group.mjs.map +0 -1
  553. package/dist/components/toggle.js +0 -63
  554. package/dist/components/toggle.js.map +0 -1
  555. package/dist/components/toggle.mjs +0 -39
  556. package/dist/components/toggle.mjs.map +0 -1
  557. package/dist/components/tooltip.js +0 -172
  558. package/dist/components/tooltip.js.map +0 -1
  559. package/dist/components/tooltip.mjs +0 -145
  560. package/dist/components/tooltip.mjs.map +0 -1
  561. package/dist/hooks/index.js +0 -27
  562. package/dist/hooks/index.js.map +0 -1
  563. package/dist/hooks/index.mjs +0 -6
  564. package/dist/hooks/index.mjs.map +0 -1
  565. package/dist/hooks/useCopyToClipboard.js +0 -59
  566. package/dist/hooks/useCopyToClipboard.js.map +0 -1
  567. package/dist/hooks/useCopyToClipboard.mjs +0 -57
  568. package/dist/hooks/useCopyToClipboard.mjs.map +0 -1
  569. package/dist/hooks/useDevice.js +0 -20
  570. package/dist/hooks/useDevice.js.map +0 -1
  571. package/dist/hooks/useDevice.mjs +0 -14
  572. package/dist/hooks/useDevice.mjs.map +0 -1
  573. package/dist/hooks/useDialogTracking.js +0 -113
  574. package/dist/hooks/useDialogTracking.js.map +0 -1
  575. package/dist/hooks/useDialogTracking.mjs +0 -91
  576. package/dist/hooks/useDialogTracking.mjs.map +0 -1
  577. package/dist/hooks/useIsMounted.js +0 -15
  578. package/dist/hooks/useIsMounted.js.map +0 -1
  579. package/dist/hooks/useIsMounted.mjs +0 -13
  580. package/dist/hooks/useIsMounted.mjs.map +0 -1
  581. package/dist/hooks/usePathname.js +0 -85
  582. package/dist/hooks/usePathname.js.map +0 -1
  583. package/dist/hooks/usePathname.mjs +0 -83
  584. package/dist/hooks/usePathname.mjs.map +0 -1
  585. package/dist/icons.js +0 -14
  586. package/dist/icons.js.map +0 -1
  587. package/dist/icons.mjs +0 -3
  588. package/dist/icons.mjs.map +0 -1
  589. package/dist/lib/formatCurrency.js +0 -187
  590. package/dist/lib/formatCurrency.js.map +0 -1
  591. package/dist/lib/formatCurrency.mjs +0 -185
  592. package/dist/lib/formatCurrency.mjs.map +0 -1
  593. package/dist/lib/helpers.js +0 -171
  594. package/dist/lib/helpers.js.map +0 -1
  595. package/dist/lib/helpers.mjs +0 -157
  596. package/dist/lib/helpers.mjs.map +0 -1
  597. package/dist/lib/index.js +0 -33
  598. package/dist/lib/index.js.map +0 -1
  599. package/dist/lib/index.mjs +0 -6
  600. package/dist/lib/index.mjs.map +0 -1
  601. package/dist/lib/types.js +0 -11
  602. package/dist/lib/types.js.map +0 -1
  603. package/dist/lib/types.mjs +0 -9
  604. package/dist/lib/types.mjs.map +0 -1
  605. package/dist/lib/utils.js +0 -24
  606. package/dist/lib/utils.js.map +0 -1
  607. package/dist/lib/utils.mjs +0 -19
  608. package/dist/lib/utils.mjs.map +0 -1
  609. package/dist/providers/DeviceSizeWatcher/index.js +0 -72
  610. package/dist/providers/DeviceSizeWatcher/index.js.map +0 -1
  611. package/dist/providers/DeviceSizeWatcher/index.mjs +0 -47
  612. package/dist/providers/DeviceSizeWatcher/index.mjs.map +0 -1
  613. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js +0 -22
  614. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js.map +0 -1
  615. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs +0 -20
  616. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs.map +0 -1
  617. package/dist/providers/UISystemProvider.js +0 -197
  618. package/dist/providers/UISystemProvider.js.map +0 -1
  619. package/dist/providers/UISystemProvider.mjs +0 -188
  620. package/dist/providers/UISystemProvider.mjs.map +0 -1
  621. package/dist/providers/index.js +0 -24
  622. package/dist/providers/index.js.map +0 -1
  623. package/dist/providers/index.mjs +0 -3
  624. package/dist/providers/index.mjs.map +0 -1
  625. package/dist/theme.js +0 -333
  626. package/dist/theme.js.map +0 -1
  627. package/dist/theme.mjs +0 -327
  628. package/dist/theme.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/common/interactive/pagination/index.tsx"],"names":["useState","useEffect","usePagination","useMemo","DOTS","jsx","PaginationSkeleton","jsxs","cn","Fragment","PaginationContainer","PaginationContent","Button","ChevronLeftIcon","PaginationItem","PaginationEllipsis","ChevronRight","Select","SelectTrigger","ChevronDown","SelectBody","SelectContentAutoLayout"],"mappings":";;;;;;;;;;;;AAyBO,MAAM,aAAa,CAAC;AAAA,EACzB,OAAA,GAAU,CAAA;AAAA,EACV,QAAA,GAAW,EAAA;AAAA,EACX,KAAA,GAAQ,CAAA;AAAA,EACR,QAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA,GAAW,IAAA;AAAA,EACX,oBAAA,GAAuB;AACzB,CAAA,KAAwB;AACtB,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIA,cAAA,CAAmB;AAAA,IACnE,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,IAAA,EAAK;AAAA,IAC1B,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,IAAA,EAAK;AAAA,IAC1B,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,IAAA,EAAK;AAAA,IAC1B,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,IAAA,EAAK;AAAA,IAC1B,EAAE,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,KAAA;AAAM,GAC7B,CAAA;AAED,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,oBAAA,CAAqB,CAAC,IAAA,KAAmB;AACvC,MAAA,MAAM,OAAA,GAAoB,CAAC,GAAG,IAAI,CAAA;AAGlC,MAAA,MAAM,WAAA,GAAc,OAAO,QAAQ,CAAA;AAGnC,MAAA,MAAM,iBAAiB,OAAA,CAAQ,IAAA,CAAK,CAAC,MAAA,KAAW,MAAA,CAAO,UAAU,WAAW,CAAA;AAG5E,MAAA,IAAI,CAAC,kBAAkB,QAAA,EAAU;AAC/B,QAAA,OAAA,CAAQ,QAAQ,EAAE,KAAA,EAAO,WAAA,EAAa,IAAA,EAAM,aAAa,CAAA;AAAA,MAC3D;AAEA,MAAA,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,MAAA,CAAO,CAAA,CAAE,KAAK,CAAA,GAAI,MAAA,CAAO,CAAA,CAAE,KAAK,CAAC,CAAA;AAExD,MAAA,OAAO,OAAA;AAAA,IACT,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,MAAM,UAAA,GAAa,IAAA,CAAK,IAAA,CAAK,KAAA,GAAQ,QAAQ,CAAA;AAE7C,EAAA,MAAM,YAAA,GAAe,CAAC,IAAA,KAA0B;AAE9C,IAAA,IAAI,OAAO,SAAS,QAAA,IAAY,IAAA,IAAQ,KAAK,IAAA,IAAQ,UAAA,IAAc,SAAS,OAAA,EAAS;AACnF,MAAA,QAAA,GAAW,MAAM,QAAQ,CAAA;AAAA,IAC3B;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,SAAS,MAAM;AACnB,IAAA,IAAI,UAAU,UAAA,EAAY;AACxB,MAAA,YAAA,CAAa,UAAU,CAAC,CAAA;AAAA,IAC1B;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,IAAI,UAAU,CAAA,EAAG;AACf,MAAA,YAAA,CAAa,UAAU,CAAC,CAAA;AAAA,IAC1B;AAAA,EACF,CAAA;AAGA,EAAA,MAAM,KAAA,GAAQ,CAAC,KAAA,EAAe,GAAA,KAAgB;AAC5C,IAAA,MAAM,MAAA,GAAS,MAAM,KAAA,GAAQ,CAAA;AAC7B,IAAA,OAAO,KAAA,CAAM,KAAK,EAAE,MAAA,IAAU,CAAC,CAAA,EAAG,GAAA,KAAQ,GAAA,GAAM,KAAK,CAAA;AAAA,EACvD,CAAA;AAGA,EAAA,MAAM,UAAA,GAAA,CAAc,OAAA,GAAU,CAAA,IAAK,QAAA,GAAW,CAAA;AAC9C,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,GAAA,CAAI,OAAA,GAAU,UAAU,KAAK,CAAA;AAEnD,EAAA,MAAM,kBAAkBC,2BAAA,CAAc;AAAA,IACpC,OAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA,EAAc;AAAA;AAAA,GACf,CAAA;AAGD,EAAA,MAAM,qBAAA,GAAwBC,cAAQ,MAAM;AAC1C,IAAA,IAAI,cAAc,CAAA,EAAG;AACnB,MAAA,OAAO,KAAA,CAAM,GAAG,UAAU,CAAA;AAAA,IAC5B;AACA,IAAA,OAAO,CAAC,CAAA,EAAG,CAAA,EAAG,CAAA,EAAGC,kBAAI,CAAA;AAAA,EACvB,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAGf,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBAAOC,cAAA,CAACC,yCAAmB,SAAA,EAAsB,CAAA;AAAA,EACnD;AAEA,EAAA,uBACEC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,QAAA;AAAA,QACT,oEAAA;AAAA,QACA;AAAA,OACF;AAAA,MAGC,QAAA,EAAA;AAAA,QAAA,QAAA,mCACE,KAAA,EAAA,EAAI,SAAA,EAAU,6DAAA,EACZ,QAAA,EAAA,KAAA,GAAQ,oBACPD,eAAA,CAAAE,mBAAA,EAAA,EAAE,QAAA,EAAA;AAAA,UAAA,qBAAA;AAAA,UACU,UAAA;AAAA,UAAW,KAAA;AAAA,UAAI,QAAA;AAAA,UAAS,2BAAA;AAAA,UAAgB;AAAA,SAAA,EACpD,CAAA,mBAEAJ,cAAA,CAAAI,mBAAA,EAAA,EAAE,QAAA,EAAA,oDAAA,EAA8B,CAAA,EAEpC,CAAA;AAAA,uCAIDC,qBAAA,EAAA,EAAoB,SAAA,EAAU,mCAC7B,QAAA,kBAAAH,eAAA,CAACI,4BAAA,EAAA,EAAkB,WAAU,yBAAA,EAE3B,QAAA,EAAA;AAAA,0BAAAN,cAAA;AAAA,YAACO,aAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAQ,SAAA;AAAA,cACR,IAAA,EAAK,IAAA;AAAA,cACL,SAAA,EAAU,MAAA;AAAA,cACV,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,gBAAA,CAAA,CAAE,cAAA,EAAe;AACjB,gBAAA,UAAA,EAAW;AAAA,cACb,CAAA;AAAA,cACA,UAAU,OAAA,IAAW,CAAA;AAAA,cAErB,QAAA,kBAAAP,cAAA,CAACQ,2BAAA,EAAA,EAAgB,SAAA,EAAU,kCAAA,EAAmC;AAAA;AAAA,WAChE;AAAA,0BAGAR,cAAA,CAAC,SAAI,SAAA,EAAU,oBAAA,EACZ,gCAAsB,GAAA,CAAI,CAAC,YAAY,KAAA,KAAU;AAChD,YAAA,IAAI,eAAeD,kBAAA,EAAM;AACvB,cAAA,uBACEC,cAAA;AAAA,gBAACS,yBAAA;AAAA,gBAAA;AAAA,kBAEC,SAAA,EAAU,2BAAA;AAAA,kBAEV,yCAACC,6BAAA,EAAA,EAAmB;AAAA,iBAAA;AAAA,gBAHf,eAAe,KAAK,CAAA;AAAA,eAI3B;AAAA,YAEJ;AAEA,YAAA,uBACEV,cAAA,CAACS,yBAAA,EAAA,EAAgC,SAAA,EAAU,2BAAA,EACzC,QAAA,kBAAAT,cAAA;AAAA,cAACO,aAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,IAAA;AAAA,gBACL,OAAA,EAAS,UAAA,KAAe,OAAA,GAAU,WAAA,GAAc,OAAA;AAAA,gBAChD,SAAA,EAAWJ,SAAG,qCAAqC,CAAA;AAAA,gBACnD,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,kBAAA,CAAA,CAAE,cAAA,EAAe;AACjB,kBAAA,YAAA,CAAa,UAAU,CAAA;AAAA,gBACzB,CAAA;AAAA,gBACA,OAAA,EAAS,UAAA,KAAe,OAAA,GAAU,OAAA,GAAU,KAAA;AAAA,gBAE3C,QAAA,EAAA,EAAE,OAAA,IAAW,UAAA,KAAe,OAAA,CAAA,IAAY;AAAA;AAAA,iBAXxB,UAarB,CAAA;AAAA,UAEJ,CAAC,CAAA,EACH,CAAA;AAAA,0BAGAH,cAAA,CAAC,SAAI,SAAA,EAAU,oBAAA,EACZ,0BAAgB,GAAA,CAAI,CAAC,YAAY,KAAA,KAAU;AAC1C,YAAA,IAAI,eAAeD,kBAAA,EAAM;AACvB,cAAA,uBACEC,cAAA;AAAA,gBAACS,yBAAA;AAAA,gBAAA;AAAA,kBAEC,SAAA,EAAU,2BAAA;AAAA,kBAEV,yCAACC,6BAAA,EAAA,EAAmB;AAAA,iBAAA;AAAA,gBAHf,gBAAgB,KAAK,CAAA;AAAA,eAI5B;AAAA,YAEJ;AAEA,YAAA,uBACEV,cAAA,CAACS,yBAAA,EAAA,EAA6C,SAAA,EAAU,2BAAA,EACtD,QAAA,kBAAAT,cAAA;AAAA,cAACO,aAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,IAAA;AAAA,gBACL,OAAA,EAAS,UAAA,KAAe,OAAA,GAAU,WAAA,GAAc,OAAA;AAAA,gBAChD,SAAA,EAAWJ,SAAG,qCAAqC,CAAA;AAAA,gBACnD,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,kBAAA,CAAA,CAAE,cAAA,EAAe;AACjB,kBAAA,YAAA,CAAa,UAAU,CAAA;AAAA,gBACzB,CAAA;AAAA,gBACA,OAAA,EAAS,UAAA,KAAe,OAAA,GAAU,OAAA,GAAU,KAAA;AAAA,gBAE3C,QAAA,EAAA,EAAE,OAAA,IAAW,UAAA,KAAe,OAAA,CAAA,IAAY;AAAA;AAAA,aAC3C,EAAA,EAZmB,CAAA,QAAA,EAAW,UAAU,CAAA,CAa1C,CAAA;AAAA,UAEJ,CAAC,CAAA,EACH,CAAA;AAAA,0BAGAH,cAAA;AAAA,YAACO,aAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAQ,SAAA;AAAA,cACR,IAAA,EAAK,IAAA;AAAA,cACL,SAAA,EAAU,MAAA;AAAA,cACV,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,gBAAA,CAAA,CAAE,cAAA,EAAe;AACjB,gBAAA,MAAA,EAAO;AAAA,cACT,CAAA;AAAA,cACA,UAAU,OAAA,IAAW,UAAA;AAAA,cAErB,QAAA,kBAAAP,cAAA,CAACW,wBAAA,EAAA,EAAa,SAAA,EAAU,kCAAA,EAAmC;AAAA;AAAA;AAC7D,SAAA,EACF,CAAA,EACF,CAAA;AAAA,QAGC,oBAAA,oBACCT,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+CAAA,EACb,QAAA,EAAA;AAAA,0BAAAF,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,6CAAA,EAA8C,QAAA,EAAA,kCAAA,EAAiB,CAAA;AAAA,0BAC5EE,eAAA;AAAA,YAACU,aAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,QAAA,CAAS,QAAA,EAAS,EAAG,IAAA,EAAM,QAAA,CAAS,QAAA,EAAS,EAAG,CAAA;AAAA,cACjE,aAAA,EAAe,CAAC,MAAA,KAAW;AACzB,gBAAA,MAAA,CAAO,MAAA,GAAS,CAAA,IAAK,QAAA,GAAW,CAAA,EAAG,QAAA,CAAS,MAAA,GAAS,CAAC,CAAA,EAAG,KAAA,IAAS,GAAA,EAAK,EAAE,CAAC,CAAA;AAAA,cAC5E,CAAA;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAAZ,cAAA,CAACa,oBAAA,EAAA,EAAc,cAAY,IAAA,EAAC,OAAA,EAAO,MACjC,QAAA,kBAAAX,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,wCAAA,EACb,QAAA,EAAA;AAAA,kCAAAF,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mCAAA,EAAqC,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,kCAC9DA,cAAA,CAACc,uBAAA,EAAA,EAAY,SAAA,EAAU,uBAAA,EAAwB;AAAA,iBAAA,EACjD,CAAA,EACF,CAAA;AAAA,gCACAd,cAAA,CAACe,qBAAW,KAAA,EAAM,KAAA,EAChB,yCAACC,8BAAA,EAAA,EAAwB,OAAA,EAAS,mBAAmB,CAAA,EACvD;AAAA;AAAA;AAAA;AACF,SAAA,EACF,CAAA;AAAA,QAGD,oBAAA,oBACCd,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4CAAA,EACb,QAAA,EAAA;AAAA,0BAAAF,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,6CAAA,EAA8C,QAAA,EAAA,kCAAA,EAAiB,CAAA;AAAA,0BAC5EE,eAAA;AAAA,YAACU,aAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,QAAA,CAAS,QAAA,EAAS,EAAG,IAAA,EAAM,QAAA,CAAS,QAAA,EAAS,EAAG,CAAA;AAAA,cACjE,aAAA,EAAe,CAAC,MAAA,KAAW;AACzB,gBAAA,MAAA,CAAO,MAAA,GAAS,CAAA,IAAK,QAAA,GAAW,CAAA,EAAG,QAAA,CAAS,MAAA,GAAS,CAAC,CAAA,EAAG,KAAA,IAAS,GAAA,EAAK,EAAE,CAAC,CAAA;AAAA,cAC5E,CAAA;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAAZ,cAAA,CAACa,oBAAA,EAAA,EAAc,cAAY,IAAA,EAAC,OAAA,EAAO,MACjC,QAAA,kBAAAX,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,wCAAA,EACb,QAAA,EAAA;AAAA,kCAAAF,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mCAAA,EAAqC,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,kCAC9DA,cAAA,CAACc,uBAAA,EAAA,EAAY,SAAA,EAAU,uBAAA,EAAwB;AAAA,iBAAA,EACjD,CAAA,EACF,CAAA;AAAA,gCACAd,cAAA,CAACe,iBAAA,EAAA,EAAW,KAAA,EAAM,KAAA,EAAM,IAAA,EAAK,QAAA,EAAS,SAAA,EAAU,oBAAA,EAC9C,QAAA,kBAAAf,cAAA,CAACgB,8BAAA,EAAA,EAAwB,OAAA,EAAS,iBAAA,EAAmB,CAAA,EACvD;AAAA;AAAA;AAAA;AACF,SAAA,EACF;AAAA;AAAA;AAAA,GAEJ;AAEJ","file":"index.js","sourcesContent":["import { ChevronDown, ChevronLeftIcon, ChevronRight } from 'lucide-react';\nimport { useEffect, useMemo, useState } from 'react';\nimport { Button } from '../../../components/button';\nimport {\n Pagination as PaginationContainer,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n} from '../../../components/pagination';\nimport { cn } from '../../../lib/utils';\nimport { Option, Select, SelectBody, SelectContentAutoLayout, SelectTrigger } from '../select';\nimport { DOTS, usePagination } from './usePagination';\nimport { PaginationSkeleton } from './PaginationSkeleton';\n\nexport interface PaginationConfig {\n current?: number;\n pageSize?: number;\n total?: number;\n onChange?: (page: number, pageSize: number) => void;\n loading?: boolean;\n className?: string;\n showInfo?: boolean; // Option to show/hide \"Hiển thị 1 - 20 trong tổng số 177\"\n showPageSizeSelector?: boolean; // Option to show/hide page size selector\n}\n\nexport const Pagination = ({\n current = 1,\n pageSize = 20,\n total = 0,\n onChange,\n loading,\n className,\n showInfo = true,\n showPageSizeSelector = true,\n}: PaginationConfig) => {\n const [paginationOptions, setPaginationOptions] = useState<Option[]>([\n { value: '10', name: '10' },\n { value: '20', name: '20' },\n { value: '30', name: '30' },\n { value: '50', name: '50' },\n { value: '100', name: '100' },\n ]);\n\n useEffect(() => {\n setPaginationOptions((prev: Option[]) => {\n const options: Option[] = [...prev];\n\n // Convert pageSize to string for comparison\n const pageSizeStr = String(pageSize);\n\n // Check if current pageSize exists in options\n const pageSizeExists = options.some((option) => option.value === pageSizeStr);\n\n // If pageSize doesn't exist in options, add it at the beginning\n if (!pageSizeExists && pageSize) {\n options.unshift({ value: pageSizeStr, name: pageSizeStr });\n }\n\n options.sort((a, b) => Number(a.value) - Number(b.value));\n\n return options;\n });\n }, [pageSize]);\n\n const totalPages = Math.ceil(total / pageSize);\n\n const onPageChange = (page: number | string) => {\n // Đảm bảo page là một số và nằm trong giới hạn cho phép\n if (typeof page === 'number' && page >= 1 && page <= totalPages && page !== current) {\n onChange?.(page, pageSize);\n }\n };\n\n const onNext = () => {\n if (current < totalPages) {\n onPageChange(current + 1);\n }\n };\n\n const onPrevious = () => {\n if (current > 1) {\n onPageChange(current - 1);\n }\n };\n\n // Helper function to create range\n const range = (start: number, end: number) => {\n const length = end - start + 1;\n return Array.from({ length }, (_, idx) => idx + start);\n };\n\n // Calculate display range\n const startIndex = (current - 1) * pageSize + 1;\n const endIndex = Math.min(current * pageSize, total);\n\n const paginationRange = usePagination({\n current: current,\n total,\n pageSize,\n siblingCount: 1, // Bạn có thể tùy chỉnh số trang hiển thị bên cạnh trang hiện tại\n });\n\n // Mobile pagination range: only show first 3 pages + ...\n const mobilePaginationRange = useMemo(() => {\n if (totalPages <= 3) {\n return range(1, totalPages);\n }\n return [1, 2, 3, DOTS];\n }, [totalPages]);\n\n // Show skeleton when loading\n if (loading) {\n return <PaginationSkeleton className={className} />;\n }\n\n return (\n <div\n className={cn(\n 'flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between',\n className,\n )}\n >\n {/* Info text - hidden on mobile, shown on desktop */}\n {showInfo && (\n <div className=\"text-t14m text-muted-foreground hidden text-nowrap lg:block\">\n {total > 0 ? (\n <>\n Hiển thị {startIndex} - {endIndex} trong tổng số {total}\n </>\n ) : (\n <>Hiển thị 0 - 0 trong tổng số 0</>\n )}\n </div>\n )}\n\n {/* Pagination controls */}\n <PaginationContainer className=\"w-full justify-center lg:flex-1\">\n <PaginationContent className=\"gap-1 sm:gap-2 lg:gap-3\">\n {/* Nút Previous */}\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"px-2\"\n onClick={(e) => {\n e.preventDefault();\n onPrevious();\n }}\n disabled={current <= 1}\n >\n <ChevronLeftIcon className=\"text-ink-400s !size-4 sm:!size-6\" />\n </Button>\n\n {/* Mobile: Simple pagination (first 3 pages + ...) */}\n <div className=\"contents lg:hidden\">\n {mobilePaginationRange.map((pageNumber, index) => {\n if (pageNumber === DOTS) {\n return (\n <PaginationItem\n key={`dots-mobile-${index}`}\n className=\"text-t14m text-foreground\"\n >\n <PaginationEllipsis />\n </PaginationItem>\n );\n }\n\n return (\n <PaginationItem key={pageNumber} className=\"text-t14m text-foreground\">\n <Button\n size=\"sm\"\n variant={pageNumber === current ? 'soft-info' : 'ghost'}\n className={cn('text-t14m !min-w-[40px] border-none')}\n onClick={(e) => {\n e.preventDefault();\n onPageChange(pageNumber);\n }}\n loading={pageNumber === current ? loading : false}\n >\n {!(loading && pageNumber === current) && pageNumber}\n </Button>\n </PaginationItem>\n );\n })}\n </div>\n\n {/* Desktop: Full pagination */}\n <div className=\"hidden lg:contents\">\n {paginationRange.map((pageNumber, index) => {\n if (pageNumber === DOTS) {\n return (\n <PaginationItem\n key={`dots-desktop-${index}`}\n className=\"text-t14m text-foreground\"\n >\n <PaginationEllipsis />\n </PaginationItem>\n );\n }\n\n return (\n <PaginationItem key={`desktop-${pageNumber}`} className=\"text-t14m text-foreground\">\n <Button\n size=\"sm\"\n variant={pageNumber === current ? 'soft-info' : 'ghost'}\n className={cn('text-t14m !min-w-[40px] border-none')}\n onClick={(e) => {\n e.preventDefault();\n onPageChange(pageNumber);\n }}\n loading={pageNumber === current ? loading : false}\n >\n {!(loading && pageNumber === current) && pageNumber}\n </Button>\n </PaginationItem>\n );\n })}\n </div>\n\n {/* Nút Next */}\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"px-2\"\n onClick={(e) => {\n e.preventDefault();\n onNext();\n }}\n disabled={current >= totalPages}\n >\n <ChevronRight className=\"text-ink-400s !size-4 sm:!size-6\" />\n </Button>\n </PaginationContent>\n </PaginationContainer>\n\n {/* Mobile: Page size selector on top */}\n {showPageSizeSelector && (\n <div className=\"flex items-center justify-end gap-1 lg:hidden\">\n <p className=\"text-muted-foreground text-t14m text-nowrap\">Số mục mỗi trang:</p>\n <Select\n value={[{ value: pageSize.toString(), name: pageSize.toString() }]}\n onValueChange={(values) => {\n values.length > 0 && onChange?.(1, parseInt(values?.[0]?.value ?? '0', 10));\n }}\n >\n <SelectTrigger isCustomMode asChild>\n <div className=\"flex cursor-pointer items-center gap-1\">\n <span className=\"text-sm font-medium text-blue-500\">{pageSize}</span>\n <ChevronDown className=\"h-4 w-4 text-blue-500\" />\n </div>\n </SelectTrigger>\n <SelectBody align=\"end\">\n <SelectContentAutoLayout options={paginationOptions} />\n </SelectBody>\n </Select>\n </div>\n )}\n {/* Desktop: Page size selector on the right */}\n {showPageSizeSelector && (\n <div className=\"hidden shrink-0 items-center gap-1 lg:flex\">\n <p className=\"text-muted-foreground text-t14m text-nowrap\">Số mục mỗi trang:</p>\n <Select\n value={[{ value: pageSize.toString(), name: pageSize.toString() }]}\n onValueChange={(values) => {\n values.length > 0 && onChange?.(1, parseInt(values?.[0]?.value ?? '0', 10));\n }}\n >\n <SelectTrigger isCustomMode asChild>\n <div className=\"flex cursor-pointer items-center gap-1\">\n <span className=\"text-sm font-medium text-blue-500\">{pageSize}</span>\n <ChevronDown className=\"h-4 w-4 text-blue-500\" />\n </div>\n </SelectTrigger>\n <SelectBody align=\"end\" side=\"bottom\" className=\"ml-0 min-w-[120px]\">\n <SelectContentAutoLayout options={paginationOptions} />\n </SelectBody>\n </Select>\n </div>\n )}\n </div>\n );\n};\n\n// Export usePagination hook and DOTS constant for external use\nexport { DOTS, usePagination } from './usePagination';\nexport { PaginationSkeleton } from './PaginationSkeleton';\n"]}
@@ -1,223 +0,0 @@
1
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { ChevronLeftIcon, ChevronRight, ChevronDown } from 'lucide-react';
3
- import { useState, useEffect, useMemo } from 'react';
4
- import { Button } from '../../../components/button';
5
- import { Pagination as Pagination$1, PaginationContent, PaginationItem, PaginationEllipsis } from '../../../components/pagination';
6
- import { cn } from '../../../lib/utils';
7
- import { Select, SelectTrigger, SelectBody, SelectContentAutoLayout } from '../select';
8
- import { usePagination, DOTS } from './usePagination';
9
- export { DOTS, usePagination } from './usePagination';
10
- import { PaginationSkeleton } from './PaginationSkeleton';
11
- export { PaginationSkeleton } from './PaginationSkeleton';
12
-
13
- const Pagination = ({
14
- current = 1,
15
- pageSize = 20,
16
- total = 0,
17
- onChange,
18
- loading,
19
- className,
20
- showInfo = true,
21
- showPageSizeSelector = true
22
- }) => {
23
- const [paginationOptions, setPaginationOptions] = useState([
24
- { value: "10", name: "10" },
25
- { value: "20", name: "20" },
26
- { value: "30", name: "30" },
27
- { value: "50", name: "50" },
28
- { value: "100", name: "100" }
29
- ]);
30
- useEffect(() => {
31
- setPaginationOptions((prev) => {
32
- const options = [...prev];
33
- const pageSizeStr = String(pageSize);
34
- const pageSizeExists = options.some((option) => option.value === pageSizeStr);
35
- if (!pageSizeExists && pageSize) {
36
- options.unshift({ value: pageSizeStr, name: pageSizeStr });
37
- }
38
- options.sort((a, b) => Number(a.value) - Number(b.value));
39
- return options;
40
- });
41
- }, [pageSize]);
42
- const totalPages = Math.ceil(total / pageSize);
43
- const onPageChange = (page) => {
44
- if (typeof page === "number" && page >= 1 && page <= totalPages && page !== current) {
45
- onChange?.(page, pageSize);
46
- }
47
- };
48
- const onNext = () => {
49
- if (current < totalPages) {
50
- onPageChange(current + 1);
51
- }
52
- };
53
- const onPrevious = () => {
54
- if (current > 1) {
55
- onPageChange(current - 1);
56
- }
57
- };
58
- const range = (start, end) => {
59
- const length = end - start + 1;
60
- return Array.from({ length }, (_, idx) => idx + start);
61
- };
62
- const startIndex = (current - 1) * pageSize + 1;
63
- const endIndex = Math.min(current * pageSize, total);
64
- const paginationRange = usePagination({
65
- current,
66
- total,
67
- pageSize,
68
- siblingCount: 1
69
- // Bạn có thể tùy chỉnh số trang hiển thị bên cạnh trang hiện tại
70
- });
71
- const mobilePaginationRange = useMemo(() => {
72
- if (totalPages <= 3) {
73
- return range(1, totalPages);
74
- }
75
- return [1, 2, 3, DOTS];
76
- }, [totalPages]);
77
- if (loading) {
78
- return /* @__PURE__ */ jsx(PaginationSkeleton, { className });
79
- }
80
- return /* @__PURE__ */ jsxs(
81
- "div",
82
- {
83
- className: cn(
84
- "flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between",
85
- className
86
- ),
87
- children: [
88
- showInfo && /* @__PURE__ */ jsx("div", { className: "text-t14m text-muted-foreground hidden text-nowrap lg:block", children: total > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
89
- "Hi\u1EC3n th\u1ECB ",
90
- startIndex,
91
- " - ",
92
- endIndex,
93
- " trong t\u1ED5ng s\u1ED1 ",
94
- total
95
- ] }) : /* @__PURE__ */ jsx(Fragment, { children: "Hi\u1EC3n th\u1ECB 0 - 0 trong t\u1ED5ng s\u1ED1 0" }) }),
96
- /* @__PURE__ */ jsx(Pagination$1, { className: "w-full justify-center lg:flex-1", children: /* @__PURE__ */ jsxs(PaginationContent, { className: "gap-1 sm:gap-2 lg:gap-3", children: [
97
- /* @__PURE__ */ jsx(
98
- Button,
99
- {
100
- variant: "outline",
101
- size: "sm",
102
- className: "px-2",
103
- onClick: (e) => {
104
- e.preventDefault();
105
- onPrevious();
106
- },
107
- disabled: current <= 1,
108
- children: /* @__PURE__ */ jsx(ChevronLeftIcon, { className: "text-ink-400s !size-4 sm:!size-6" })
109
- }
110
- ),
111
- /* @__PURE__ */ jsx("div", { className: "contents lg:hidden", children: mobilePaginationRange.map((pageNumber, index) => {
112
- if (pageNumber === DOTS) {
113
- return /* @__PURE__ */ jsx(
114
- PaginationItem,
115
- {
116
- className: "text-t14m text-foreground",
117
- children: /* @__PURE__ */ jsx(PaginationEllipsis, {})
118
- },
119
- `dots-mobile-${index}`
120
- );
121
- }
122
- return /* @__PURE__ */ jsx(PaginationItem, { className: "text-t14m text-foreground", children: /* @__PURE__ */ jsx(
123
- Button,
124
- {
125
- size: "sm",
126
- variant: pageNumber === current ? "soft-info" : "ghost",
127
- className: cn("text-t14m !min-w-[40px] border-none"),
128
- onClick: (e) => {
129
- e.preventDefault();
130
- onPageChange(pageNumber);
131
- },
132
- loading: pageNumber === current ? loading : false,
133
- children: !(loading && pageNumber === current) && pageNumber
134
- }
135
- ) }, pageNumber);
136
- }) }),
137
- /* @__PURE__ */ jsx("div", { className: "hidden lg:contents", children: paginationRange.map((pageNumber, index) => {
138
- if (pageNumber === DOTS) {
139
- return /* @__PURE__ */ jsx(
140
- PaginationItem,
141
- {
142
- className: "text-t14m text-foreground",
143
- children: /* @__PURE__ */ jsx(PaginationEllipsis, {})
144
- },
145
- `dots-desktop-${index}`
146
- );
147
- }
148
- return /* @__PURE__ */ jsx(PaginationItem, { className: "text-t14m text-foreground", children: /* @__PURE__ */ jsx(
149
- Button,
150
- {
151
- size: "sm",
152
- variant: pageNumber === current ? "soft-info" : "ghost",
153
- className: cn("text-t14m !min-w-[40px] border-none"),
154
- onClick: (e) => {
155
- e.preventDefault();
156
- onPageChange(pageNumber);
157
- },
158
- loading: pageNumber === current ? loading : false,
159
- children: !(loading && pageNumber === current) && pageNumber
160
- }
161
- ) }, `desktop-${pageNumber}`);
162
- }) }),
163
- /* @__PURE__ */ jsx(
164
- Button,
165
- {
166
- variant: "outline",
167
- size: "sm",
168
- className: "px-2",
169
- onClick: (e) => {
170
- e.preventDefault();
171
- onNext();
172
- },
173
- disabled: current >= totalPages,
174
- children: /* @__PURE__ */ jsx(ChevronRight, { className: "text-ink-400s !size-4 sm:!size-6" })
175
- }
176
- )
177
- ] }) }),
178
- showPageSizeSelector && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-1 lg:hidden", children: [
179
- /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-t14m text-nowrap", children: "S\u1ED1 m\u1EE5c m\u1ED7i trang:" }),
180
- /* @__PURE__ */ jsxs(
181
- Select,
182
- {
183
- value: [{ value: pageSize.toString(), name: pageSize.toString() }],
184
- onValueChange: (values) => {
185
- values.length > 0 && onChange?.(1, parseInt(values?.[0]?.value ?? "0", 10));
186
- },
187
- children: [
188
- /* @__PURE__ */ jsx(SelectTrigger, { isCustomMode: true, asChild: true, children: /* @__PURE__ */ jsxs("div", { className: "flex cursor-pointer items-center gap-1", children: [
189
- /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-blue-500", children: pageSize }),
190
- /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4 text-blue-500" })
191
- ] }) }),
192
- /* @__PURE__ */ jsx(SelectBody, { align: "end", children: /* @__PURE__ */ jsx(SelectContentAutoLayout, { options: paginationOptions }) })
193
- ]
194
- }
195
- )
196
- ] }),
197
- showPageSizeSelector && /* @__PURE__ */ jsxs("div", { className: "hidden shrink-0 items-center gap-1 lg:flex", children: [
198
- /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-t14m text-nowrap", children: "S\u1ED1 m\u1EE5c m\u1ED7i trang:" }),
199
- /* @__PURE__ */ jsxs(
200
- Select,
201
- {
202
- value: [{ value: pageSize.toString(), name: pageSize.toString() }],
203
- onValueChange: (values) => {
204
- values.length > 0 && onChange?.(1, parseInt(values?.[0]?.value ?? "0", 10));
205
- },
206
- children: [
207
- /* @__PURE__ */ jsx(SelectTrigger, { isCustomMode: true, asChild: true, children: /* @__PURE__ */ jsxs("div", { className: "flex cursor-pointer items-center gap-1", children: [
208
- /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-blue-500", children: pageSize }),
209
- /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4 text-blue-500" })
210
- ] }) }),
211
- /* @__PURE__ */ jsx(SelectBody, { align: "end", side: "bottom", className: "ml-0 min-w-[120px]", children: /* @__PURE__ */ jsx(SelectContentAutoLayout, { options: paginationOptions }) })
212
- ]
213
- }
214
- )
215
- ] })
216
- ]
217
- }
218
- );
219
- };
220
-
221
- export { Pagination };
222
- //# sourceMappingURL=index.mjs.map
223
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/common/interactive/pagination/index.tsx"],"names":["PaginationContainer"],"mappings":"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","file":"index.mjs","sourcesContent":["import { ChevronDown, ChevronLeftIcon, ChevronRight } from 'lucide-react';\nimport { useEffect, useMemo, useState } from 'react';\nimport { Button } from '../../../components/button';\nimport {\n Pagination as PaginationContainer,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n} from '../../../components/pagination';\nimport { cn } from '../../../lib/utils';\nimport { Option, Select, SelectBody, SelectContentAutoLayout, SelectTrigger } from '../select';\nimport { DOTS, usePagination } from './usePagination';\nimport { PaginationSkeleton } from './PaginationSkeleton';\n\nexport interface PaginationConfig {\n current?: number;\n pageSize?: number;\n total?: number;\n onChange?: (page: number, pageSize: number) => void;\n loading?: boolean;\n className?: string;\n showInfo?: boolean; // Option to show/hide \"Hiển thị 1 - 20 trong tổng số 177\"\n showPageSizeSelector?: boolean; // Option to show/hide page size selector\n}\n\nexport const Pagination = ({\n current = 1,\n pageSize = 20,\n total = 0,\n onChange,\n loading,\n className,\n showInfo = true,\n showPageSizeSelector = true,\n}: PaginationConfig) => {\n const [paginationOptions, setPaginationOptions] = useState<Option[]>([\n { value: '10', name: '10' },\n { value: '20', name: '20' },\n { value: '30', name: '30' },\n { value: '50', name: '50' },\n { value: '100', name: '100' },\n ]);\n\n useEffect(() => {\n setPaginationOptions((prev: Option[]) => {\n const options: Option[] = [...prev];\n\n // Convert pageSize to string for comparison\n const pageSizeStr = String(pageSize);\n\n // Check if current pageSize exists in options\n const pageSizeExists = options.some((option) => option.value === pageSizeStr);\n\n // If pageSize doesn't exist in options, add it at the beginning\n if (!pageSizeExists && pageSize) {\n options.unshift({ value: pageSizeStr, name: pageSizeStr });\n }\n\n options.sort((a, b) => Number(a.value) - Number(b.value));\n\n return options;\n });\n }, [pageSize]);\n\n const totalPages = Math.ceil(total / pageSize);\n\n const onPageChange = (page: number | string) => {\n // Đảm bảo page là một số và nằm trong giới hạn cho phép\n if (typeof page === 'number' && page >= 1 && page <= totalPages && page !== current) {\n onChange?.(page, pageSize);\n }\n };\n\n const onNext = () => {\n if (current < totalPages) {\n onPageChange(current + 1);\n }\n };\n\n const onPrevious = () => {\n if (current > 1) {\n onPageChange(current - 1);\n }\n };\n\n // Helper function to create range\n const range = (start: number, end: number) => {\n const length = end - start + 1;\n return Array.from({ length }, (_, idx) => idx + start);\n };\n\n // Calculate display range\n const startIndex = (current - 1) * pageSize + 1;\n const endIndex = Math.min(current * pageSize, total);\n\n const paginationRange = usePagination({\n current: current,\n total,\n pageSize,\n siblingCount: 1, // Bạn có thể tùy chỉnh số trang hiển thị bên cạnh trang hiện tại\n });\n\n // Mobile pagination range: only show first 3 pages + ...\n const mobilePaginationRange = useMemo(() => {\n if (totalPages <= 3) {\n return range(1, totalPages);\n }\n return [1, 2, 3, DOTS];\n }, [totalPages]);\n\n // Show skeleton when loading\n if (loading) {\n return <PaginationSkeleton className={className} />;\n }\n\n return (\n <div\n className={cn(\n 'flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between',\n className,\n )}\n >\n {/* Info text - hidden on mobile, shown on desktop */}\n {showInfo && (\n <div className=\"text-t14m text-muted-foreground hidden text-nowrap lg:block\">\n {total > 0 ? (\n <>\n Hiển thị {startIndex} - {endIndex} trong tổng số {total}\n </>\n ) : (\n <>Hiển thị 0 - 0 trong tổng số 0</>\n )}\n </div>\n )}\n\n {/* Pagination controls */}\n <PaginationContainer className=\"w-full justify-center lg:flex-1\">\n <PaginationContent className=\"gap-1 sm:gap-2 lg:gap-3\">\n {/* Nút Previous */}\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"px-2\"\n onClick={(e) => {\n e.preventDefault();\n onPrevious();\n }}\n disabled={current <= 1}\n >\n <ChevronLeftIcon className=\"text-ink-400s !size-4 sm:!size-6\" />\n </Button>\n\n {/* Mobile: Simple pagination (first 3 pages + ...) */}\n <div className=\"contents lg:hidden\">\n {mobilePaginationRange.map((pageNumber, index) => {\n if (pageNumber === DOTS) {\n return (\n <PaginationItem\n key={`dots-mobile-${index}`}\n className=\"text-t14m text-foreground\"\n >\n <PaginationEllipsis />\n </PaginationItem>\n );\n }\n\n return (\n <PaginationItem key={pageNumber} className=\"text-t14m text-foreground\">\n <Button\n size=\"sm\"\n variant={pageNumber === current ? 'soft-info' : 'ghost'}\n className={cn('text-t14m !min-w-[40px] border-none')}\n onClick={(e) => {\n e.preventDefault();\n onPageChange(pageNumber);\n }}\n loading={pageNumber === current ? loading : false}\n >\n {!(loading && pageNumber === current) && pageNumber}\n </Button>\n </PaginationItem>\n );\n })}\n </div>\n\n {/* Desktop: Full pagination */}\n <div className=\"hidden lg:contents\">\n {paginationRange.map((pageNumber, index) => {\n if (pageNumber === DOTS) {\n return (\n <PaginationItem\n key={`dots-desktop-${index}`}\n className=\"text-t14m text-foreground\"\n >\n <PaginationEllipsis />\n </PaginationItem>\n );\n }\n\n return (\n <PaginationItem key={`desktop-${pageNumber}`} className=\"text-t14m text-foreground\">\n <Button\n size=\"sm\"\n variant={pageNumber === current ? 'soft-info' : 'ghost'}\n className={cn('text-t14m !min-w-[40px] border-none')}\n onClick={(e) => {\n e.preventDefault();\n onPageChange(pageNumber);\n }}\n loading={pageNumber === current ? loading : false}\n >\n {!(loading && pageNumber === current) && pageNumber}\n </Button>\n </PaginationItem>\n );\n })}\n </div>\n\n {/* Nút Next */}\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"px-2\"\n onClick={(e) => {\n e.preventDefault();\n onNext();\n }}\n disabled={current >= totalPages}\n >\n <ChevronRight className=\"text-ink-400s !size-4 sm:!size-6\" />\n </Button>\n </PaginationContent>\n </PaginationContainer>\n\n {/* Mobile: Page size selector on top */}\n {showPageSizeSelector && (\n <div className=\"flex items-center justify-end gap-1 lg:hidden\">\n <p className=\"text-muted-foreground text-t14m text-nowrap\">Số mục mỗi trang:</p>\n <Select\n value={[{ value: pageSize.toString(), name: pageSize.toString() }]}\n onValueChange={(values) => {\n values.length > 0 && onChange?.(1, parseInt(values?.[0]?.value ?? '0', 10));\n }}\n >\n <SelectTrigger isCustomMode asChild>\n <div className=\"flex cursor-pointer items-center gap-1\">\n <span className=\"text-sm font-medium text-blue-500\">{pageSize}</span>\n <ChevronDown className=\"h-4 w-4 text-blue-500\" />\n </div>\n </SelectTrigger>\n <SelectBody align=\"end\">\n <SelectContentAutoLayout options={paginationOptions} />\n </SelectBody>\n </Select>\n </div>\n )}\n {/* Desktop: Page size selector on the right */}\n {showPageSizeSelector && (\n <div className=\"hidden shrink-0 items-center gap-1 lg:flex\">\n <p className=\"text-muted-foreground text-t14m text-nowrap\">Số mục mỗi trang:</p>\n <Select\n value={[{ value: pageSize.toString(), name: pageSize.toString() }]}\n onValueChange={(values) => {\n values.length > 0 && onChange?.(1, parseInt(values?.[0]?.value ?? '0', 10));\n }}\n >\n <SelectTrigger isCustomMode asChild>\n <div className=\"flex cursor-pointer items-center gap-1\">\n <span className=\"text-sm font-medium text-blue-500\">{pageSize}</span>\n <ChevronDown className=\"h-4 w-4 text-blue-500\" />\n </div>\n </SelectTrigger>\n <SelectBody align=\"end\" side=\"bottom\" className=\"ml-0 min-w-[120px]\">\n <SelectContentAutoLayout options={paginationOptions} />\n </SelectBody>\n </Select>\n </div>\n )}\n </div>\n );\n};\n\n// Export usePagination hook and DOTS constant for external use\nexport { DOTS, usePagination } from './usePagination';\nexport { PaginationSkeleton } from './PaginationSkeleton';\n"]}
@@ -1,28 +0,0 @@
1
- 'use strict';
2
-
3
- var react = require('react');
4
-
5
- const DOTS = "...";
6
- const range = (start, end) => {
7
- const length = end - start + 1;
8
- return Array.from({ length }, (_, idx) => idx + start);
9
- };
10
- const usePagination = ({ total, pageSize, siblingCount = 1, current }) => {
11
- const paginationRange = react.useMemo(() => {
12
- const totalPages = Math.ceil(total / pageSize);
13
- const firstPagesCount = 5;
14
- const lastPagesCount = 2;
15
- if (totalPages <= firstPagesCount + lastPagesCount) {
16
- return range(1, totalPages);
17
- }
18
- const firstRange = range(1, firstPagesCount);
19
- const lastRange = range(totalPages - lastPagesCount + 1, totalPages);
20
- return [...firstRange, DOTS, ...lastRange];
21
- }, [total, pageSize, siblingCount, current]);
22
- return paginationRange;
23
- };
24
-
25
- exports.DOTS = DOTS;
26
- exports.usePagination = usePagination;
27
- //# sourceMappingURL=usePagination.js.map
28
- //# sourceMappingURL=usePagination.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/common/interactive/pagination/usePagination.ts"],"names":["useMemo"],"mappings":";;;;AAEO,MAAM,IAAA,GAAO;AAEpB,MAAM,KAAA,GAAQ,CAAC,KAAA,EAAe,GAAA,KAAgB;AAC5C,EAAA,MAAM,MAAA,GAAS,MAAM,KAAA,GAAQ,CAAA;AAC7B,EAAA,OAAO,KAAA,CAAM,KAAK,EAAE,MAAA,IAAU,CAAC,CAAA,EAAG,GAAA,KAAQ,GAAA,GAAM,KAAK,CAAA;AACvD,CAAA;AAEO,MAAM,aAAA,GAAgB,CAAC,EAAE,KAAA,EAAO,UAAU,YAAA,GAAe,CAAA,EAAG,SAAQ,KAAW;AACpF,EAAA,MAAM,eAAA,GAAkBA,cAAQ,MAAM;AACpC,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,IAAA,CAAK,KAAA,GAAQ,QAAQ,CAAA;AAI7C,IAAA,MAAM,eAAA,GAAkB,CAAA;AACxB,IAAA,MAAM,cAAA,GAAiB,CAAA;AAKvB,IAAA,IAAI,UAAA,IAAc,kBAAkB,cAAA,EAAgB;AAClD,MAAA,OAAO,KAAA,CAAM,GAAG,UAAU,CAAA;AAAA,IAC5B;AAMA,IAAA,MAAM,UAAA,GAAa,KAAA,CAAM,CAAA,EAAG,eAAe,CAAA;AAC3C,IAAA,MAAM,SAAA,GAAY,KAAA,CAAM,UAAA,GAAa,cAAA,GAAiB,GAAG,UAAU,CAAA;AAEnE,IAAA,OAAO,CAAC,GAAG,UAAA,EAAY,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,EAC3C,GAAG,CAAC,KAAA,EAAO,QAAA,EAAU,YAAA,EAAc,OAAO,CAAC,CAAA;AAE3C,EAAA,OAAO,eAAA;AACT","file":"usePagination.js","sourcesContent":["import { useMemo } from 'react';\n\nexport const DOTS = '...';\n\nconst range = (start: number, end: number) => {\n const length = end - start + 1;\n return Array.from({ length }, (_, idx) => idx + start);\n};\n\nexport const usePagination = ({ total, pageSize, siblingCount = 1, current }: any) => {\n const paginationRange = useMemo(() => {\n const totalPages = Math.ceil(total / pageSize);\n\n // Always show: first 5 pages + DOTS + last 2 pages\n // Format: 1 2 3 4 5 ... 16 17\n const firstPagesCount = 5;\n const lastPagesCount = 2;\n\n /*\n Trường hợp 1: Nếu tổng số trang <= 7 (5 + 2), hiển thị tất cả\n */\n if (totalPages <= firstPagesCount + lastPagesCount) {\n return range(1, totalPages);\n }\n\n /*\n Trường hợp 2: Tổng số trang > 7\n Luôn hiển thị: 1 2 3 4 5 ... [lastPages]\n */\n const firstRange = range(1, firstPagesCount);\n const lastRange = range(totalPages - lastPagesCount + 1, totalPages);\n\n return [...firstRange, DOTS, ...lastRange];\n }, [total, pageSize, siblingCount, current]);\n\n return paginationRange;\n};\n"]}
@@ -1,25 +0,0 @@
1
- import { useMemo } from 'react';
2
-
3
- const DOTS = "...";
4
- const range = (start, end) => {
5
- const length = end - start + 1;
6
- return Array.from({ length }, (_, idx) => idx + start);
7
- };
8
- const usePagination = ({ total, pageSize, siblingCount = 1, current }) => {
9
- const paginationRange = useMemo(() => {
10
- const totalPages = Math.ceil(total / pageSize);
11
- const firstPagesCount = 5;
12
- const lastPagesCount = 2;
13
- if (totalPages <= firstPagesCount + lastPagesCount) {
14
- return range(1, totalPages);
15
- }
16
- const firstRange = range(1, firstPagesCount);
17
- const lastRange = range(totalPages - lastPagesCount + 1, totalPages);
18
- return [...firstRange, DOTS, ...lastRange];
19
- }, [total, pageSize, siblingCount, current]);
20
- return paginationRange;
21
- };
22
-
23
- export { DOTS, usePagination };
24
- //# sourceMappingURL=usePagination.mjs.map
25
- //# sourceMappingURL=usePagination.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/common/interactive/pagination/usePagination.ts"],"names":[],"mappings":";;AAEO,MAAM,IAAA,GAAO;AAEpB,MAAM,KAAA,GAAQ,CAAC,KAAA,EAAe,GAAA,KAAgB;AAC5C,EAAA,MAAM,MAAA,GAAS,MAAM,KAAA,GAAQ,CAAA;AAC7B,EAAA,OAAO,KAAA,CAAM,KAAK,EAAE,MAAA,IAAU,CAAC,CAAA,EAAG,GAAA,KAAQ,GAAA,GAAM,KAAK,CAAA;AACvD,CAAA;AAEO,MAAM,aAAA,GAAgB,CAAC,EAAE,KAAA,EAAO,UAAU,YAAA,GAAe,CAAA,EAAG,SAAQ,KAAW;AACpF,EAAA,MAAM,eAAA,GAAkB,QAAQ,MAAM;AACpC,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,IAAA,CAAK,KAAA,GAAQ,QAAQ,CAAA;AAI7C,IAAA,MAAM,eAAA,GAAkB,CAAA;AACxB,IAAA,MAAM,cAAA,GAAiB,CAAA;AAKvB,IAAA,IAAI,UAAA,IAAc,kBAAkB,cAAA,EAAgB;AAClD,MAAA,OAAO,KAAA,CAAM,GAAG,UAAU,CAAA;AAAA,IAC5B;AAMA,IAAA,MAAM,UAAA,GAAa,KAAA,CAAM,CAAA,EAAG,eAAe,CAAA;AAC3C,IAAA,MAAM,SAAA,GAAY,KAAA,CAAM,UAAA,GAAa,cAAA,GAAiB,GAAG,UAAU,CAAA;AAEnE,IAAA,OAAO,CAAC,GAAG,UAAA,EAAY,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,EAC3C,GAAG,CAAC,KAAA,EAAO,QAAA,EAAU,YAAA,EAAc,OAAO,CAAC,CAAA;AAE3C,EAAA,OAAO,eAAA;AACT","file":"usePagination.mjs","sourcesContent":["import { useMemo } from 'react';\n\nexport const DOTS = '...';\n\nconst range = (start: number, end: number) => {\n const length = end - start + 1;\n return Array.from({ length }, (_, idx) => idx + start);\n};\n\nexport const usePagination = ({ total, pageSize, siblingCount = 1, current }: any) => {\n const paginationRange = useMemo(() => {\n const totalPages = Math.ceil(total / pageSize);\n\n // Always show: first 5 pages + DOTS + last 2 pages\n // Format: 1 2 3 4 5 ... 16 17\n const firstPagesCount = 5;\n const lastPagesCount = 2;\n\n /*\n Trường hợp 1: Nếu tổng số trang <= 7 (5 + 2), hiển thị tất cả\n */\n if (totalPages <= firstPagesCount + lastPagesCount) {\n return range(1, totalPages);\n }\n\n /*\n Trường hợp 2: Tổng số trang > 7\n Luôn hiển thị: 1 2 3 4 5 ... [lastPages]\n */\n const firstRange = range(1, firstPagesCount);\n const lastRange = range(totalPages - lastPagesCount + 1, totalPages);\n\n return [...firstRange, DOTS, ...lastRange];\n }, [total, pageSize, siblingCount, current]);\n\n return paginationRange;\n};\n"]}
@@ -1,138 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var React = require('react');
5
- var utils = require('@/lib/utils');
6
- var scrollArea = require('../../components/scroll-area');
7
- var popover = require('../../components/popover');
8
-
9
- function _interopNamespace(e) {
10
- if (e && e.__esModule) return e;
11
- var n = Object.create(null);
12
- if (e) {
13
- Object.keys(e).forEach(function (k) {
14
- if (k !== 'default') {
15
- var d = Object.getOwnPropertyDescriptor(e, k);
16
- Object.defineProperty(n, k, d.get ? d : {
17
- enumerable: true,
18
- get: function () { return e[k]; }
19
- });
20
- }
21
- });
22
- }
23
- n.default = e;
24
- return Object.freeze(n);
25
- }
26
-
27
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
-
29
- const PopoverWrapper = React__namespace.forwardRef(
30
- ({
31
- // Trigger props
32
- trigger,
33
- triggerAsChild = false,
34
- triggerClassName,
35
- // Header props
36
- showHeader = false,
37
- title,
38
- titleClassName,
39
- description,
40
- descriptionClassName,
41
- headerClassName,
42
- headerContent,
43
- // Footer props
44
- showFooter = false,
45
- footerContent,
46
- footerClassName,
47
- // Content props
48
- children,
49
- contentClassName,
50
- childrenClassName,
51
- // Popover behavior props
52
- open,
53
- onOpenChange,
54
- defaultOpen,
55
- modal,
56
- // Popover positioning
57
- side = "bottom",
58
- align = "center",
59
- sideOffset = 4,
60
- alignOffset,
61
- // ScrollArea props
62
- height = "350px",
63
- maxWidth = "90vw",
64
- autoHeight,
65
- // Focus behavior
66
- preventAutoFocus = false,
67
- preventInputClose = false,
68
- // Other props
69
- className,
70
- ...props
71
- }, ref) => {
72
- const PopoverHeader = ({ className: className2, ...props2 }) => /* @__PURE__ */ jsxRuntime.jsx(
73
- "div",
74
- {
75
- className: utils.cn("flex flex-col space-y-1.5 border-b p-3 text-left", className2),
76
- ...props2
77
- }
78
- );
79
- const PopoverTitle = ({ className: className2, ...props2 }) => /* @__PURE__ */ jsxRuntime.jsx("h4", { className: utils.cn("text-sm font-medium leading-none", className2), ...props2 });
80
- const PopoverDescription = ({
81
- className: className2,
82
- ...props2
83
- }) => /* @__PURE__ */ jsxRuntime.jsx("p", { className: utils.cn("text-muted-foreground text-xs", className2), ...props2 });
84
- const PopoverFooter = ({ className: className2, ...props2 }) => /* @__PURE__ */ jsxRuntime.jsx(
85
- "div",
86
- {
87
- className: utils.cn(
88
- "flex flex-col-reverse border-t p-3 sm:flex-row sm:justify-end sm:space-x-2",
89
- className2
90
- ),
91
- ...props2
92
- }
93
- );
94
- const contentComponent = autoHeight ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils.cn("p-3", childrenClassName), children }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(scrollArea.ScrollArea, { className: "h-full w-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils.cn("p-3", childrenClassName), children }) }) });
95
- return /* @__PURE__ */ jsxRuntime.jsxs(popover.Popover, { open, onOpenChange, defaultOpen, modal, children: [
96
- trigger && /* @__PURE__ */ jsxRuntime.jsx(popover.PopoverTrigger, { asChild: triggerAsChild, className: triggerClassName, children: trigger }),
97
- /* @__PURE__ */ jsxRuntime.jsxs(
98
- popover.PopoverContent,
99
- {
100
- ref,
101
- side,
102
- align,
103
- sideOffset,
104
- alignOffset,
105
- className: utils.cn("flex flex-col p-0", className, contentClassName),
106
- style: autoHeight ? { width: maxWidth, maxWidth } : { width: maxWidth, maxWidth, height },
107
- onOpenAutoFocus: preventAutoFocus ? (event) => {
108
- event.preventDefault();
109
- } : void 0,
110
- onCloseAutoFocus: preventAutoFocus ? (event) => {
111
- event.preventDefault();
112
- } : void 0,
113
- onInteractOutside: preventInputClose ? (event) => {
114
- const target = event.target;
115
- if (target && target.closest("input, textarea")) {
116
- event.preventDefault();
117
- return;
118
- }
119
- } : void 0,
120
- ...props,
121
- children: [
122
- showHeader && (title || description || headerContent) && /* @__PURE__ */ jsxRuntime.jsx(PopoverHeader, { className: utils.cn("flex-shrink-0", headerClassName), children: headerContent ? headerContent : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
123
- title && /* @__PURE__ */ jsxRuntime.jsx(PopoverTitle, { className: titleClassName, children: title }),
124
- description && /* @__PURE__ */ jsxRuntime.jsx(PopoverDescription, { className: descriptionClassName, children: description })
125
- ] }) }),
126
- contentComponent,
127
- showFooter && footerContent && /* @__PURE__ */ jsxRuntime.jsx(PopoverFooter, { className: utils.cn("flex-shrink-0", footerClassName), children: footerContent })
128
- ]
129
- }
130
- )
131
- ] });
132
- }
133
- );
134
- PopoverWrapper.displayName = "PopoverWrapper";
135
-
136
- exports.PopoverWrapper = PopoverWrapper;
137
- //# sourceMappingURL=popover-wrapper.js.map
138
- //# sourceMappingURL=popover-wrapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/common/interactive/popover-wrapper.tsx"],"names":["React","className","props","jsx","cn","ScrollArea","jsxs","Popover","PopoverTrigger","PopoverContent","Fragment"],"mappings":"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","file":"popover-wrapper.js","sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport { ScrollArea } from '../../components/scroll-area';\nimport { Popover, PopoverContent, PopoverTrigger } from '../../components/popover';\n\ntype PopoverSide = 'top' | 'bottom' | 'left' | 'right';\ntype PopoverAlign = 'start' | 'center' | 'end';\n\ninterface PopoverWrapperProps extends React.ComponentPropsWithoutRef<typeof PopoverContent> {\n // Trigger props\n trigger?: React.ReactNode;\n triggerAsChild?: boolean;\n triggerClassName?: string;\n\n // Header props\n showHeader?: boolean;\n title?: string;\n titleClassName?: string;\n description?: string;\n descriptionClassName?: string;\n headerClassName?: string;\n headerContent?: React.ReactNode;\n\n // Footer props\n showFooter?: boolean;\n footerContent?: React.ReactNode;\n footerClassName?: string;\n\n // Content props\n children?: React.ReactNode;\n contentClassName?: string;\n childrenClassName?: string;\n\n // Popover behavior props\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n defaultOpen?: boolean;\n modal?: boolean;\n\n // Popover positioning\n side?: PopoverSide;\n align?: PopoverAlign;\n sideOffset?: number;\n alignOffset?: number;\n\n // ScrollArea props\n height?: string;\n maxWidth?: string;\n autoHeight?: boolean;\n\n // Focus behavior\n preventAutoFocus?: boolean;\n preventInputClose?: boolean;\n}\n\nconst PopoverWrapper = React.forwardRef<\n React.ElementRef<typeof PopoverContent>,\n PopoverWrapperProps\n>(\n (\n {\n // Trigger props\n trigger,\n triggerAsChild = false,\n triggerClassName,\n\n // Header props\n showHeader = false,\n title,\n titleClassName,\n description,\n descriptionClassName,\n headerClassName,\n headerContent,\n\n // Footer props\n showFooter = false,\n footerContent,\n footerClassName,\n\n // Content props\n children,\n contentClassName,\n childrenClassName,\n\n // Popover behavior props\n open,\n onOpenChange,\n defaultOpen,\n modal,\n\n // Popover positioning\n side = 'bottom',\n align = 'center',\n sideOffset = 4,\n alignOffset,\n\n // ScrollArea props\n height = '350px',\n maxWidth = '90vw',\n autoHeight,\n\n // Focus behavior\n preventAutoFocus = false,\n preventInputClose = false,\n\n // Other props\n className,\n ...props\n },\n ref,\n ) => {\n const PopoverHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col space-y-1.5 border-b p-3 text-left', className)}\n {...props}\n />\n );\n\n const PopoverTitle = ({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) => (\n <h4 className={cn('text-sm font-medium leading-none', className)} {...props} />\n );\n\n const PopoverDescription = ({\n className,\n ...props\n }: React.HTMLAttributes<HTMLParagraphElement>) => (\n <p className={cn('text-muted-foreground text-xs', className)} {...props} />\n );\n\n const PopoverFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n 'flex flex-col-reverse border-t p-3 sm:flex-row sm:justify-end sm:space-x-2',\n className,\n )}\n {...props}\n />\n );\n\n const contentComponent = autoHeight ? (\n <div className={cn('p-3', childrenClassName)}>{children}</div>\n ) : (\n <div className=\"min-h-0 flex-1\">\n <ScrollArea className=\"h-full w-full\">\n <div className={cn('p-3', childrenClassName)}>{children}</div>\n </ScrollArea>\n </div>\n );\n\n return (\n <Popover open={open} onOpenChange={onOpenChange} defaultOpen={defaultOpen} modal={modal}>\n {trigger && (\n <PopoverTrigger asChild={triggerAsChild} className={triggerClassName}>\n {trigger}\n </PopoverTrigger>\n )}\n\n <PopoverContent\n ref={ref}\n side={side}\n align={align}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n className={cn('flex flex-col p-0', className, contentClassName)}\n style={autoHeight ? { width: maxWidth, maxWidth } : { width: maxWidth, maxWidth, height }}\n onOpenAutoFocus={\n preventAutoFocus\n ? (event) => {\n event.preventDefault();\n }\n : undefined\n }\n onCloseAutoFocus={\n preventAutoFocus\n ? (event) => {\n event.preventDefault();\n }\n : undefined\n }\n onInteractOutside={\n preventInputClose\n ? (event) => {\n // Prevent closing when interacting with input elements\n const target = event.target as Element;\n if (target && target.closest('input, textarea')) {\n event.preventDefault();\n return;\n }\n }\n : undefined\n }\n {...props}\n >\n {showHeader && (title || description || headerContent) && (\n <PopoverHeader className={cn('flex-shrink-0', headerClassName)}>\n {headerContent ? (\n headerContent\n ) : (\n <>\n {title && <PopoverTitle className={titleClassName}>{title}</PopoverTitle>}\n {description && (\n <PopoverDescription className={descriptionClassName}>\n {description}\n </PopoverDescription>\n )}\n </>\n )}\n </PopoverHeader>\n )}\n\n {contentComponent}\n\n {showFooter && footerContent && (\n <PopoverFooter className={cn('flex-shrink-0', footerClassName)}>\n {footerContent}\n </PopoverFooter>\n )}\n </PopoverContent>\n </Popover>\n );\n },\n);\n\nPopoverWrapper.displayName = 'PopoverWrapper';\n\nexport { PopoverWrapper, type PopoverWrapperProps };\n"]}