@pezeshk-book/modules 0.2.7 → 0.2.9

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 (346) hide show
  1. package/calendar/calendar.js +95 -0
  2. package/calendar/calendar.js.map +1 -0
  3. package/calendar/calendar.props.js +3 -0
  4. package/{dist/calendar → calendar}/config/chunk.js +5 -1
  5. package/calendar/config/chunk.js.map +1 -0
  6. package/calendar/config/create-date-range.js +17 -0
  7. package/calendar/config/create-date-range.js.map +1 -0
  8. package/calendar/config/days-in-month.en.js +36 -0
  9. package/calendar/config/days-in-month.en.js.map +1 -0
  10. package/calendar/config/days-in-month.fa.js +36 -0
  11. package/calendar/config/days-in-month.fa.js.map +1 -0
  12. package/calendar/config/index.js +13 -0
  13. package/calendar/config/index.js.map +1 -0
  14. package/{dist/calendar → calendar}/config/months.js +5 -2
  15. package/calendar/config/months.js.map +1 -0
  16. package/{dist/calendar → calendar}/config/week-day.js +6 -2
  17. package/calendar/config/week-day.js.map +1 -0
  18. package/calendar/icons/arrow-left-icon.js +9 -0
  19. package/calendar/icons/arrow-left-icon.js.map +1 -0
  20. package/calendar/icons/arrow-right-icon.js +9 -0
  21. package/calendar/icons/arrow-right-icon.js.map +1 -0
  22. package/calendar/icons/index.js +9 -0
  23. package/calendar/icons/index.js.map +1 -0
  24. package/calendar/index.js +6 -0
  25. package/calendar/index.js.map +1 -0
  26. package/calendar/shared/formatDate.js +17 -0
  27. package/calendar/shared/formatDate.js.map +1 -0
  28. package/calendar/sub-components/day/day.js +18 -0
  29. package/calendar/sub-components/day/day.js.map +1 -0
  30. package/calendar/sub-components/day/day.props.js +3 -0
  31. package/{dist/calendar → calendar}/sub-components/days/days.js +19 -17
  32. package/calendar/sub-components/days/days.js.map +1 -0
  33. package/calendar/sub-components/days/days.props.js +3 -0
  34. package/calendar/sub-components/days-head/days-head.js +45 -0
  35. package/calendar/sub-components/days-head/days-head.js.map +1 -0
  36. package/calendar/sub-components/days-head/days-head.props.js +3 -0
  37. package/countdown-timer/countdown.js +58 -0
  38. package/countdown-timer/countdown.js.map +1 -0
  39. package/countdown-timer/countdown.props.js +3 -0
  40. package/countdown-timer/index.js +6 -0
  41. package/countdown-timer/index.js.map +1 -0
  42. package/data-table/data-table.js +15 -0
  43. package/data-table/data-table.js.map +1 -0
  44. package/data-table/data-table.props.js +3 -0
  45. package/data-table/default/default-data-table.js +169 -0
  46. package/data-table/default/default-data-table.js.map +1 -0
  47. package/data-table/default/default-data-table.props.js +3 -0
  48. package/data-table/default/index.js +6 -0
  49. package/data-table/default/index.js.map +1 -0
  50. package/{dist/data-table → data-table}/hooks/use-window-dimensions.js +9 -7
  51. package/data-table/hooks/use-window-dimensions.js.map +1 -0
  52. package/data-table/icons/add.js +10 -0
  53. package/data-table/icons/add.js.map +1 -0
  54. package/data-table/icons/arrow-down.js +10 -0
  55. package/data-table/icons/arrow-down.js.map +1 -0
  56. package/data-table/icons/index.js +11 -0
  57. package/data-table/icons/index.js.map +1 -0
  58. package/data-table/icons/sort.js +10 -0
  59. package/data-table/icons/sort.js.map +1 -0
  60. package/data-table/index.js +6 -0
  61. package/data-table/index.js.map +1 -0
  62. package/data-table/simple/index.js +6 -0
  63. package/data-table/simple/index.js.map +1 -0
  64. package/data-table/simple/simple-data-table.js +118 -0
  65. package/data-table/simple/simple-data-table.js.map +1 -0
  66. package/data-table/simple/simple-data-table.props.js +3 -0
  67. package/index.js +15 -0
  68. package/index.js.map +1 -0
  69. package/package.json +1 -1
  70. package/pagination/icons/arrow-Right.js +10 -0
  71. package/pagination/icons/arrow-Right.js.map +1 -0
  72. package/pagination/icons/arrow-left.js +10 -0
  73. package/pagination/icons/arrow-left.js.map +1 -0
  74. package/pagination/icons/index.js +9 -0
  75. package/pagination/icons/index.js.map +1 -0
  76. package/pagination/index.js +6 -0
  77. package/pagination/index.js.map +1 -0
  78. package/pagination/pagination.js +55 -0
  79. package/pagination/pagination.js.map +1 -0
  80. package/pagination/pagination.props.js +3 -0
  81. package/{dist/pagination → pagination}/use-pagination.js +3 -1
  82. package/pagination/use-pagination.js.map +1 -0
  83. package/slider/index.js +6 -0
  84. package/slider/index.js.map +1 -0
  85. package/{dist/slider → slider}/slider.js +31 -29
  86. package/slider/slider.js.map +1 -0
  87. package/slider/slider.props.js +3 -0
  88. package/{dist/utils → utils}/class-names.js +3 -1
  89. package/utils/class-names.js.map +1 -0
  90. package/utils/persian-to-english-number.js +9 -0
  91. package/utils/persian-to-english-number.js.map +1 -0
  92. package/.eslintrc.json +0 -133
  93. package/calendar/calendar.props.ts +0 -25
  94. package/calendar/calendar.tsx +0 -185
  95. package/calendar/config/chunk.ts +0 -42
  96. package/calendar/config/create-date-range.ts +0 -14
  97. package/calendar/config/days-in-month.en.ts +0 -47
  98. package/calendar/config/days-in-month.fa.ts +0 -37
  99. package/calendar/config/index.ts +0 -16
  100. package/calendar/config/months.ts +0 -29
  101. package/calendar/config/week-day.ts +0 -19
  102. package/calendar/icons/arrow-left-icon.tsx +0 -14
  103. package/calendar/icons/arrow-right-icon.tsx +0 -14
  104. package/calendar/icons/index.ts +0 -7
  105. package/calendar/index.ts +0 -3
  106. package/calendar/shared/formatDate.tsx +0 -12
  107. package/calendar/sub-components/day/day.props.ts +0 -27
  108. package/calendar/sub-components/day/day.tsx +0 -31
  109. package/calendar/sub-components/days/days.props.ts +0 -51
  110. package/calendar/sub-components/days/days.tsx +0 -142
  111. package/calendar/sub-components/days-head/days-head.props.ts +0 -27
  112. package/calendar/sub-components/days-head/days-head.tsx +0 -122
  113. package/countdown-timer/countdown.props.ts +0 -18
  114. package/countdown-timer/countdown.tsx +0 -79
  115. package/countdown-timer/index.ts +0 -3
  116. package/data-table/data-table.props.ts +0 -7
  117. package/data-table/data-table.tsx +0 -17
  118. package/data-table/default/default-data-table.props.ts +0 -47
  119. package/data-table/default/default-data-table.tsx +0 -427
  120. package/data-table/default/index.ts +0 -3
  121. package/data-table/hooks/use-window-dimensions.tsx +0 -33
  122. package/data-table/icons/add.tsx +0 -10
  123. package/data-table/icons/arrow-down.tsx +0 -11
  124. package/data-table/icons/index.ts +0 -9
  125. package/data-table/icons/sort.tsx +0 -16
  126. package/data-table/index.ts +0 -3
  127. package/data-table/simple/index.ts +0 -3
  128. package/data-table/simple/simple-data-table.props.ts +0 -23
  129. package/data-table/simple/simple-data-table.tsx +0 -258
  130. package/dist/calendar/calendar.js +0 -93
  131. package/dist/calendar/calendar.js.map +0 -1
  132. package/dist/calendar/calendar.props.js +0 -2
  133. package/dist/calendar/config/chunk.js.map +0 -1
  134. package/dist/calendar/config/create-date-range.js +0 -14
  135. package/dist/calendar/config/create-date-range.js.map +0 -1
  136. package/dist/calendar/config/days-in-month.en.js +0 -32
  137. package/dist/calendar/config/days-in-month.en.js.map +0 -1
  138. package/dist/calendar/config/days-in-month.fa.js +0 -32
  139. package/dist/calendar/config/days-in-month.fa.js.map +0 -1
  140. package/dist/calendar/config/index.js +0 -6
  141. package/dist/calendar/config/index.js.map +0 -1
  142. package/dist/calendar/config/months.js.map +0 -1
  143. package/dist/calendar/config/week-day.js.map +0 -1
  144. package/dist/calendar/icons/arrow-left-icon.js +0 -7
  145. package/dist/calendar/icons/arrow-left-icon.js.map +0 -1
  146. package/dist/calendar/icons/arrow-right-icon.js +0 -7
  147. package/dist/calendar/icons/arrow-right-icon.js.map +0 -1
  148. package/dist/calendar/icons/index.js +0 -4
  149. package/dist/calendar/icons/index.js.map +0 -1
  150. package/dist/calendar/index.js +0 -3
  151. package/dist/calendar/index.js.map +0 -1
  152. package/dist/calendar/shared/formatDate.js +0 -13
  153. package/dist/calendar/shared/formatDate.js.map +0 -1
  154. package/dist/calendar/sub-components/day/day.js +0 -14
  155. package/dist/calendar/sub-components/day/day.js.map +0 -1
  156. package/dist/calendar/sub-components/day/day.props.js +0 -2
  157. package/dist/calendar/sub-components/days/days.js.map +0 -1
  158. package/dist/calendar/sub-components/days/days.props.js +0 -2
  159. package/dist/calendar/sub-components/days-head/days-head.js +0 -43
  160. package/dist/calendar/sub-components/days-head/days-head.js.map +0 -1
  161. package/dist/calendar/sub-components/days-head/days-head.props.js +0 -2
  162. package/dist/countdown-timer/countdown.js +0 -56
  163. package/dist/countdown-timer/countdown.js.map +0 -1
  164. package/dist/countdown-timer/countdown.props.js +0 -2
  165. package/dist/countdown-timer/index.js +0 -3
  166. package/dist/countdown-timer/index.js.map +0 -1
  167. package/dist/data-table/data-table.js +0 -13
  168. package/dist/data-table/data-table.js.map +0 -1
  169. package/dist/data-table/data-table.props.js +0 -2
  170. package/dist/data-table/default/default-data-table.js +0 -167
  171. package/dist/data-table/default/default-data-table.js.map +0 -1
  172. package/dist/data-table/default/default-data-table.props.js +0 -2
  173. package/dist/data-table/default/index.js +0 -3
  174. package/dist/data-table/default/index.js.map +0 -1
  175. package/dist/data-table/hooks/use-window-dimensions.js.map +0 -1
  176. package/dist/data-table/icons/add.js +0 -8
  177. package/dist/data-table/icons/add.js.map +0 -1
  178. package/dist/data-table/icons/arrow-down.js +0 -8
  179. package/dist/data-table/icons/arrow-down.js.map +0 -1
  180. package/dist/data-table/icons/index.js +0 -5
  181. package/dist/data-table/icons/index.js.map +0 -1
  182. package/dist/data-table/icons/sort.js +0 -8
  183. package/dist/data-table/icons/sort.js.map +0 -1
  184. package/dist/data-table/index.js +0 -3
  185. package/dist/data-table/index.js.map +0 -1
  186. package/dist/data-table/simple/index.js +0 -3
  187. package/dist/data-table/simple/index.js.map +0 -1
  188. package/dist/data-table/simple/simple-data-table.js +0 -116
  189. package/dist/data-table/simple/simple-data-table.js.map +0 -1
  190. package/dist/data-table/simple/simple-data-table.props.js +0 -2
  191. package/dist/index.js +0 -7
  192. package/dist/index.js.map +0 -1
  193. package/dist/pagination/icons/arrow-Right.js +0 -8
  194. package/dist/pagination/icons/arrow-Right.js.map +0 -1
  195. package/dist/pagination/icons/arrow-left.js +0 -8
  196. package/dist/pagination/icons/arrow-left.js.map +0 -1
  197. package/dist/pagination/icons/index.js +0 -4
  198. package/dist/pagination/icons/index.js.map +0 -1
  199. package/dist/pagination/index.js +0 -3
  200. package/dist/pagination/index.js.map +0 -1
  201. package/dist/pagination/pagination.js +0 -51
  202. package/dist/pagination/pagination.js.map +0 -1
  203. package/dist/pagination/pagination.props.js +0 -2
  204. package/dist/pagination/use-pagination.js.map +0 -1
  205. package/dist/slider/index.js +0 -3
  206. package/dist/slider/index.js.map +0 -1
  207. package/dist/slider/slider.js.map +0 -1
  208. package/dist/slider/slider.props.js +0 -2
  209. package/dist/stories/calendar/calendar.d.ts +0 -5
  210. package/dist/stories/calendar/calendar.js +0 -11
  211. package/dist/stories/calendar/calendar.js.map +0 -1
  212. package/dist/stories/calendar/calendar.stories.d.ts +0 -6
  213. package/dist/stories/calendar/calendar.stories.js +0 -20
  214. package/dist/stories/calendar/calendar.stories.js.map +0 -1
  215. package/dist/stories/count-down/count-down.d.ts +0 -5
  216. package/dist/stories/count-down/count-down.js +0 -11
  217. package/dist/stories/count-down/count-down.js.map +0 -1
  218. package/dist/stories/count-down/count-down.stories.d.ts +0 -6
  219. package/dist/stories/count-down/count-down.stories.js +0 -15
  220. package/dist/stories/count-down/count-down.stories.js.map +0 -1
  221. package/dist/stories/data-table/data-table-columns.d.ts +0 -12
  222. package/dist/stories/data-table/data-table-columns.js +0 -70
  223. package/dist/stories/data-table/data-table-columns.js.map +0 -1
  224. package/dist/stories/data-table/default-data-table.d.ts +0 -7
  225. package/dist/stories/data-table/default-data-table.js +0 -12
  226. package/dist/stories/data-table/default-data-table.js.map +0 -1
  227. package/dist/stories/data-table/default-data-table.stories.d.ts +0 -6
  228. package/dist/stories/data-table/default-data-table.stories.js +0 -18
  229. package/dist/stories/data-table/default-data-table.stories.js.map +0 -1
  230. package/dist/stories/data-table/dummy-data.d.ts +0 -11
  231. package/dist/stories/data-table/dummy-data.js +0 -204
  232. package/dist/stories/data-table/dummy-data.js.map +0 -1
  233. package/dist/stories/data-table/simple-data-table.d.ts +0 -7
  234. package/dist/stories/data-table/simple-data-table.js +0 -12
  235. package/dist/stories/data-table/simple-data-table.js.map +0 -1
  236. package/dist/stories/data-table/simple-data-table.stories.d.ts +0 -6
  237. package/dist/stories/data-table/simple-data-table.stories.js +0 -18
  238. package/dist/stories/data-table/simple-data-table.stories.js.map +0 -1
  239. package/dist/stories/pagination/pagination.d.ts +0 -5
  240. package/dist/stories/pagination/pagination.js +0 -11
  241. package/dist/stories/pagination/pagination.js.map +0 -1
  242. package/dist/stories/pagination/pagination.stories.d.ts +0 -6
  243. package/dist/stories/pagination/pagination.stories.js +0 -23
  244. package/dist/stories/pagination/pagination.stories.js.map +0 -1
  245. package/dist/stories/slider/slider.d.ts +0 -5
  246. package/dist/stories/slider/slider.js +0 -11
  247. package/dist/stories/slider/slider.js.map +0 -1
  248. package/dist/stories/slider/slider.stories.d.ts +0 -6
  249. package/dist/stories/slider/slider.stories.js +0 -15
  250. package/dist/stories/slider/slider.stories.js.map +0 -1
  251. package/dist/stories/wrapper.d.ts +0 -7
  252. package/dist/stories/wrapper.js +0 -8
  253. package/dist/stories/wrapper.js.map +0 -1
  254. package/dist/utils/class-names.js.map +0 -1
  255. package/dist/utils/persian-to-english-number.js +0 -5
  256. package/dist/utils/persian-to-english-number.js.map +0 -1
  257. package/index.ts +0 -13
  258. package/pagination/icons/arrow-Right.tsx +0 -22
  259. package/pagination/icons/arrow-left.tsx +0 -22
  260. package/pagination/icons/index.ts +0 -7
  261. package/pagination/index.ts +0 -3
  262. package/pagination/pagination.props.ts +0 -33
  263. package/pagination/pagination.tsx +0 -135
  264. package/pagination/use-pagination.ts +0 -49
  265. package/react-app-env.d.ts +0 -1
  266. package/slider/index.ts +0 -3
  267. package/slider/slider.props.ts +0 -39
  268. package/slider/slider.tsx +0 -292
  269. package/stories/calendar/calendar.stories.tsx +0 -25
  270. package/stories/calendar/calendar.tsx +0 -11
  271. package/stories/count-down/count-down.stories.tsx +0 -19
  272. package/stories/count-down/count-down.tsx +0 -11
  273. package/stories/data-table/data-table-columns.tsx +0 -70
  274. package/stories/data-table/default-data-table.stories.tsx +0 -22
  275. package/stories/data-table/default-data-table.tsx +0 -18
  276. package/stories/data-table/dummy-data.ts +0 -204
  277. package/stories/data-table/simple-data-table.stories.tsx +0 -22
  278. package/stories/data-table/simple-data-table.tsx +0 -18
  279. package/stories/pagination/pagination.stories.tsx +0 -35
  280. package/stories/pagination/pagination.tsx +0 -11
  281. package/stories/slider/slider.stories.tsx +0 -19
  282. package/stories/slider/slider.tsx +0 -45
  283. package/stories/wrapper.tsx +0 -11
  284. package/styles.css +0 -28
  285. package/utils/class-names.ts +0 -5
  286. package/utils/persian-to-english-number.ts +0 -4
  287. /package/{dist/calendar → calendar}/calendar.d.ts +0 -0
  288. /package/{dist/calendar → calendar}/calendar.props.d.ts +0 -0
  289. /package/{dist/calendar → calendar}/calendar.props.js.map +0 -0
  290. /package/{dist/calendar → calendar}/config/chunk.d.ts +0 -0
  291. /package/{dist/calendar → calendar}/config/create-date-range.d.ts +0 -0
  292. /package/{dist/calendar → calendar}/config/days-in-month.en.d.ts +0 -0
  293. /package/{dist/calendar → calendar}/config/days-in-month.fa.d.ts +0 -0
  294. /package/{dist/calendar → calendar}/config/index.d.ts +0 -0
  295. /package/{dist/calendar → calendar}/config/months.d.ts +0 -0
  296. /package/{dist/calendar → calendar}/config/week-day.d.ts +0 -0
  297. /package/{dist/calendar → calendar}/icons/arrow-left-icon.d.ts +0 -0
  298. /package/{dist/calendar → calendar}/icons/arrow-right-icon.d.ts +0 -0
  299. /package/{dist/calendar → calendar}/icons/index.d.ts +0 -0
  300. /package/{dist/calendar → calendar}/index.d.ts +0 -0
  301. /package/{dist/calendar → calendar}/shared/formatDate.d.ts +0 -0
  302. /package/{dist/calendar → calendar}/sub-components/day/day.d.ts +0 -0
  303. /package/{dist/calendar → calendar}/sub-components/day/day.props.d.ts +0 -0
  304. /package/{dist/calendar → calendar}/sub-components/day/day.props.js.map +0 -0
  305. /package/{dist/calendar → calendar}/sub-components/days/days.d.ts +0 -0
  306. /package/{dist/calendar → calendar}/sub-components/days/days.props.d.ts +0 -0
  307. /package/{dist/calendar → calendar}/sub-components/days/days.props.js.map +0 -0
  308. /package/{dist/calendar → calendar}/sub-components/days-head/days-head.d.ts +0 -0
  309. /package/{dist/calendar → calendar}/sub-components/days-head/days-head.props.d.ts +0 -0
  310. /package/{dist/calendar → calendar}/sub-components/days-head/days-head.props.js.map +0 -0
  311. /package/{dist/countdown-timer → countdown-timer}/countdown.d.ts +0 -0
  312. /package/{dist/countdown-timer → countdown-timer}/countdown.props.d.ts +0 -0
  313. /package/{dist/countdown-timer → countdown-timer}/countdown.props.js.map +0 -0
  314. /package/{dist/countdown-timer → countdown-timer}/index.d.ts +0 -0
  315. /package/{dist/data-table → data-table}/data-table.d.ts +0 -0
  316. /package/{dist/data-table → data-table}/data-table.props.d.ts +0 -0
  317. /package/{dist/data-table → data-table}/data-table.props.js.map +0 -0
  318. /package/{dist/data-table → data-table}/default/default-data-table.d.ts +0 -0
  319. /package/{dist/data-table → data-table}/default/default-data-table.props.d.ts +0 -0
  320. /package/{dist/data-table → data-table}/default/default-data-table.props.js.map +0 -0
  321. /package/{dist/data-table → data-table}/default/index.d.ts +0 -0
  322. /package/{dist/data-table → data-table}/hooks/use-window-dimensions.d.ts +0 -0
  323. /package/{dist/data-table → data-table}/icons/add.d.ts +0 -0
  324. /package/{dist/data-table → data-table}/icons/arrow-down.d.ts +0 -0
  325. /package/{dist/data-table → data-table}/icons/index.d.ts +0 -0
  326. /package/{dist/data-table → data-table}/icons/sort.d.ts +0 -0
  327. /package/{dist/data-table → data-table}/index.d.ts +0 -0
  328. /package/{dist/data-table → data-table}/simple/index.d.ts +0 -0
  329. /package/{dist/data-table → data-table}/simple/simple-data-table.d.ts +0 -0
  330. /package/{dist/data-table → data-table}/simple/simple-data-table.props.d.ts +0 -0
  331. /package/{dist/data-table → data-table}/simple/simple-data-table.props.js.map +0 -0
  332. /package/{dist/index.d.ts → index.d.ts} +0 -0
  333. /package/{dist/pagination → pagination}/icons/arrow-Right.d.ts +0 -0
  334. /package/{dist/pagination → pagination}/icons/arrow-left.d.ts +0 -0
  335. /package/{dist/pagination → pagination}/icons/index.d.ts +0 -0
  336. /package/{dist/pagination → pagination}/index.d.ts +0 -0
  337. /package/{dist/pagination → pagination}/pagination.d.ts +0 -0
  338. /package/{dist/pagination → pagination}/pagination.props.d.ts +0 -0
  339. /package/{dist/pagination → pagination}/pagination.props.js.map +0 -0
  340. /package/{dist/pagination → pagination}/use-pagination.d.ts +0 -0
  341. /package/{dist/slider → slider}/index.d.ts +0 -0
  342. /package/{dist/slider → slider}/slider.d.ts +0 -0
  343. /package/{dist/slider → slider}/slider.props.d.ts +0 -0
  344. /package/{dist/slider → slider}/slider.props.js.map +0 -0
  345. /package/{dist/utils → utils}/class-names.d.ts +0 -0
  346. /package/{dist/utils → utils}/persian-to-english-number.d.ts +0 -0
@@ -1,135 +0,0 @@
1
- 'use client';
2
-
3
- import { useEffect, useState } from 'react';
4
- import { Button, Div, Text, Select } from '@pezeshk-book/ui-kit';
5
- import { ArrowLeft, ArrowRight } from './icons';
6
- import { PaginationProps } from './pagination.props';
7
- import usePagination from './use-pagination';
8
-
9
- const Limits = [
10
- {
11
- id: '10',
12
- count: 10,
13
- },
14
- {
15
- id: '25',
16
- count: 25,
17
- },
18
- {
19
- id: '50',
20
- count: 50,
21
- },
22
- {
23
- id: '75',
24
- count: 75,
25
- },
26
- {
27
- id: '100',
28
- count: 100,
29
- },
30
- ];
31
- export const Pagination = ({ isLoading, currentPage = 1, lastPage, getCurrentPage, previousPage, nextPage, perPage = 10, total = 0, getLimit, hasLimit = true, showTotal = true, color = 'control', variant = 'outlined', rounded = 'medium', type = 'default' }: PaginationProps) => {
32
- const pageNumbers = usePagination(currentPage, lastPage, type);
33
- const [limit, setLimit] = useState(perPage.toString());
34
-
35
- useEffect(() => {
36
- const position = Limits.find((value) => {
37
- return perPage <= value.count;
38
- });
39
- setLimit(prevState => position?.id ? position?.id : prevState);
40
- }, [perPage]);
41
-
42
- const limitHandler = (event: string) => {
43
- setLimit(event);
44
- if (getLimit && hasLimit) {
45
- getLimit(event);
46
- }
47
- };
48
-
49
- return (
50
- <Div className={'flex-col-reverse sm:flex-row w-full justify-between items-center gap-y-2 px-4'}>
51
- <Div className={'flex justify-start items-center'}>
52
- <Div className={'items-center gap-6 justify-start md:absolute'}>
53
- {showTotal ? (
54
- <Text color={'grey.500'} className={'text-ellipsis whitespace-nowrap'}>
55
- {`نمایش ${(currentPage - 1) * parseInt(limit) + 1} تا ${lastPage === currentPage ? total : parseInt(limit) * currentPage} از ${total}`}
56
- </Text>
57
- ) : null}
58
- {hasLimit ? (
59
- <Div className={'w-20'}>
60
- <Select
61
- disabled={isLoading}
62
- id={'id'}
63
- size={'small'}
64
- value={limit}
65
- onChange={limitHandler}
66
- text={'count'}
67
- optionsList={Limits}
68
- variant={'outlined'}
69
- color={'control'}
70
- />
71
- </Div>
72
- ) : null}
73
- </Div>
74
- </Div>
75
- <ul dir={'ltr'} className={'flex flex-row gap-x-0.5 md:gap-x-2 items-center md:justify-start justify-center'}>
76
- <li>
77
- <Button
78
- disabled={currentPage === 1 || isLoading}
79
- variant={variant}
80
- shape={'square'}
81
- size={'small'}
82
- onClick={previousPage}
83
- ariaLabel={'previousPage'}
84
- loading={isLoading}
85
- color={color}
86
- rounded={rounded}
87
- className={'!px-0'}>
88
- <ArrowLeft/>
89
- </Button>
90
- </li>
91
- { type === 'default' ? pageNumbers.map((number) => {
92
- return (
93
- <li key={`pagination_${number}`}>
94
- <Button
95
- disabled={number === currentPage || number === '...' || isLoading}
96
- variant={variant}
97
- shape={'square'}
98
- rounded={rounded}
99
- size={'small'}
100
- color={color}
101
- className={'!px-0'}
102
- ariaLabel={number.toString()}
103
- onClick={() => getCurrentPage(+number)}>
104
- {number}
105
- </Button>
106
- </li>
107
- );
108
- }) : null}
109
- <li>
110
- <Button
111
- disabled={lastPage === currentPage || isLoading}
112
- variant={variant}
113
- shape={'square'}
114
- size={'small'}
115
- rounded={rounded}
116
- onClick={nextPage}
117
- ariaLabel={'nextPage'}
118
- loading={isLoading}
119
- color={color}
120
- className={'!px-0'}>
121
- <ArrowRight/>
122
- </Button>
123
- </li>
124
- {type === 'simple' ? (
125
- <Div className={'gap-2'}>
126
- <Text typography={'sm'}>{currentPage} / {lastPage}</Text>
127
- <Text typography={'sm'}>صفحه</Text>
128
- </Div>
129
- ) : null}
130
- </ul>
131
- </Div>
132
- );
133
- };
134
-
135
- export default Pagination;
@@ -1,49 +0,0 @@
1
- const usePagination = (currentPage: number, lastPage: number, type: 'simple' | 'default') => {
2
- if (type === 'simple') {
3
- return [];
4
- }
5
- let situation = 'NONE';
6
- if (lastPage > 7) {
7
- if ((currentPage <= 4)) {
8
- situation = 'BEGINNING';
9
- } else if (lastPage - currentPage <= 3) {
10
- situation = 'END';
11
- } else if (currentPage > 4 || lastPage - currentPage > 3) {
12
- situation = 'MIDDLE';
13
- }
14
- }
15
-
16
- const temp: Array<number | string> = [];
17
-
18
- switch (situation) {
19
- case 'BEGINNING': {
20
- for (let i = 1; i <= 5; i++) {
21
- temp.push(i);
22
- }
23
- temp.push('...', lastPage);
24
- return temp;
25
- }
26
-
27
- case 'MIDDLE': {
28
- temp.push(1, '...', currentPage - 1, currentPage, currentPage + 1, '...', lastPage);
29
- return temp;
30
- }
31
-
32
- case 'END': {
33
- for (let i = lastPage; i > (lastPage - 5); i--) {
34
- temp.push(i);
35
- }
36
- temp.push('...', 1);
37
- return temp.reverse();
38
- }
39
-
40
- default : {
41
- for (let i = 1; i <= lastPage; i++) {
42
- temp.push(i);
43
- }
44
- return temp;
45
- }
46
- }
47
- };
48
-
49
- export default usePagination;
@@ -1 +0,0 @@
1
- /// <reference types="react-scripts" />
package/slider/index.ts DELETED
@@ -1,3 +0,0 @@
1
- import Slider from './slider';
2
-
3
- export default Slider;
@@ -1,39 +0,0 @@
1
- import { Colors } from '@pezeshk-book/ui-kit/types';
2
-
3
- export interface SliderProps {
4
- children: any
5
-
6
- delay?: number
7
-
8
- spaceBetween?: number
9
-
10
- slides?: number
11
-
12
- tabletSlides?: number
13
-
14
- mobileSlides?: number
15
-
16
- infiniteLoop?: boolean
17
-
18
- pauseOnMouseOver?: boolean
19
-
20
- autoMove?: boolean
21
-
22
- indicator?: boolean
23
-
24
- indicatorActiveColor?: Colors
25
-
26
- navigation?: boolean
27
-
28
- nextNavigation?: (onClick: any) => any
29
-
30
- prevNavigation?: (onClick: any) => any
31
-
32
- direction?: 'ltr' | 'rtl'
33
-
34
- rows?: number
35
-
36
- navigationColor?: Colors
37
-
38
- indicatorClassName?: string
39
- }
package/slider/slider.tsx DELETED
@@ -1,292 +0,0 @@
1
- 'use client';
2
-
3
- import React, { useEffect, useState } from 'react';
4
- import { SliderProps } from './slider.props';
5
- import { Div, Button } from '@pezeshk-book/ui-kit';
6
- import classNames from '../utils/class-names';
7
-
8
- const Slider = (
9
- {
10
- children,
11
- delay = 2500,
12
- spaceBetween = 0,
13
- slides = 1,
14
- infiniteLoop = false,
15
- pauseOnMouseOver = false,
16
- autoMove = true,
17
- indicatorActiveColor = 'primary',
18
- indicator = true,
19
- navigation = true,
20
- prevNavigation,
21
- nextNavigation,
22
- direction = 'rtl',
23
- rows = 1,
24
- navigationColor = 'primary',
25
- tabletSlides = 1,
26
- mobileSlides = 1,
27
- indicatorClassName,
28
- }: SliderProps) => {
29
- const [showSlides, setShowSlides] = useState<number>(1);
30
- const [currentIndex, setCurrentIndex] = React.useState(0);
31
- const [length, setLength] = useState(Math.round(children.length / rows));
32
- const [transitionEnabled, setTransitionEnabled] = useState(true);
33
- const [touchPosition, setTouchPosition] = useState(null);
34
- const [pause, setPause] = useState(false);
35
- const [sliders, setSliders] = useState<any>([]);
36
-
37
- const timeoutRef = React.useRef<any>(null);
38
- const ref = React.useRef<any>(null);
39
-
40
- const dir = React.useMemo(() => {
41
- if (direction === 'rtl') {
42
- return '+';
43
- }
44
- return '-';
45
- }, [direction]);
46
- const limit = React.useMemo(() => {
47
- if (rows !== 1) {
48
- return showSlides * rows >= children.length + 1;
49
- }
50
- return showSlides >= children.length;
51
- }, [showSlides, rows, children]);
52
-
53
- useEffect(() => {
54
- if (window && window.screen) {
55
- if (window.screen.width > 1024) {
56
- setShowSlides(slides);
57
- } else if (window.screen.width < 640) {
58
- setShowSlides(mobileSlides);
59
- } else { setShowSlides(tabletSlides); }
60
- }
61
- }, [slides, tabletSlides, mobileSlides]);
62
-
63
- useEffect(() => {
64
- let final = [];
65
- for (let i = 0; i < length; i++) {
66
- let output = [];
67
- for (let index = i * rows; index < rows * (i + 1); index++) {
68
- output.push(children[index]);
69
- }
70
- final.push(output);
71
- }
72
- setSliders(final);
73
- }, [children, length, rows]);
74
-
75
- useEffect(() => {
76
- setLength(Math.round(children.length / rows));
77
- }, [children, infiniteLoop, showSlides]);
78
-
79
- useEffect(() => {
80
- if (currentIndex === length - 1 || currentIndex === 0) {
81
- setTransitionEnabled(true);
82
- }
83
- }, [currentIndex, showSlides, length]);
84
- // @ts-ignore
85
- useEffect(() => {
86
- if (!pause && autoMove) {
87
- resetTimeout();
88
- timeoutRef.current = setTimeout(
89
- () => next(), delay,
90
- );
91
-
92
- return () => {
93
- resetTimeout();
94
- };
95
- }
96
- }, [currentIndex, delay, pause]);
97
-
98
- useEffect(() => {
99
- if (ref.current) {
100
- for (const arg of ref.current.children) {
101
- arg.style.width = `calc((100% / ${showSlides}) - (${spaceBetween}px))`;
102
- arg.style.gap = `${spaceBetween}px`;
103
- arg.style.marginLeft = `${spaceBetween / 2}px`;
104
- arg.style.marginRight = `${spaceBetween / 2}px`;
105
- arg.style.flexShrink = 0;
106
- arg.style.flexGrow = 1;
107
- }
108
- }
109
- }, [showSlides, spaceBetween]);
110
-
111
- const resetTimeout = () => {
112
- if (timeoutRef.current) {
113
- clearTimeout(timeoutRef.current);
114
- }
115
- };
116
-
117
- const next = () => {
118
- if ((currentIndex < (length - showSlides) + 1) && currentIndex !== length) {
119
- setCurrentIndex(prevState => prevState + 1);
120
- }
121
- };
122
-
123
- const prev = () => {
124
- if ((currentIndex > 0) && currentIndex !== showSlides) {
125
- setCurrentIndex(prevState => prevState - 1);
126
- }
127
- };
128
-
129
- const handleTouchStart = (e: any) => {
130
- const touchDown = e.touches[0].clientX;
131
- setTouchPosition(touchDown);
132
- };
133
-
134
- const handleTouchMove = (e: any) => {
135
- const touchDown = touchPosition;
136
-
137
- if (touchDown === null) {
138
- return;
139
- }
140
-
141
- const currentTouch = e.touches[0].clientX;
142
- const diff = touchDown - currentTouch;
143
-
144
- if (diff > 5) {
145
- next();
146
- }
147
-
148
- if (diff < -5) {
149
- prev();
150
- }
151
-
152
- setTouchPosition(null);
153
- };
154
-
155
- const handleTransitionEnd = () => {
156
- if (currentIndex === length - showSlides) {
157
- setTimeout(
158
- () => {
159
- setTransitionEnabled(false);
160
- setCurrentIndex(0);
161
- }, delay / 2,
162
- );
163
- }
164
- };
165
-
166
- const handlePauseAutoMove = (state: boolean) => {
167
- if (pauseOnMouseOver) {
168
- setPause(state);
169
- }
170
- };
171
-
172
- return (
173
- <Div dir={direction} className={'w-full flex-col'} onMouseOver={() => handlePauseAutoMove(true)} onMouseLeave={() => handlePauseAutoMove(false)}>
174
- <Div className={'w-full relative'}>
175
- {navigation && !limit ? (
176
- <Button ariaLabel={'previousNavigation'} startAdornment={<ArrowIcon className={'rotate-180'}/>} disabled={direction === 'rtl' ? currentIndex === length - showSlides : currentIndex === 0} onClick={direction === 'rtl' ? next : prev} color={navigationColor} rounded={'full'} shape={'square'} className={'absolute flex self-center items-center justify-center z-10 left-2'}/>
177
- ) : null}
178
- {prevNavigation && currentIndex > 0 ? (
179
- <>
180
- {prevNavigation(prev)}
181
- </>
182
- ) : null}
183
- {limit ? (
184
- <div ref={ref} className={'flex shrink-0 grow w-full'}>
185
- {sliders.map((item: any, itemIndex: number) => (
186
- <Div className={'flex-col w-1/2'} key={itemIndex}>
187
- {item}
188
- </Div>
189
- ))}
190
- </div>
191
- ) : (
192
- <div className={'overflow-hidden w-full h-full'}
193
- onTouchStart={handleTouchStart}
194
- onTouchMove={handleTouchMove}
195
- >
196
- <div className={`flex transition ease-linear duration-300 shrink-0 grow w-full`}
197
- style={{
198
- transform: `translateX(${dir}${currentIndex * (100 / showSlides)}%)`,
199
- transition: !transitionEnabled ? 'none' : undefined,
200
- }}
201
- onTransitionEnd={handleTransitionEnd}
202
- ref={ref}
203
- >
204
- {sliders.map((item: any, itemIndex: number) => (
205
- <Div className={'flex-col w-full shrink-0'} key={itemIndex}>
206
- {item}
207
- </Div>
208
- ))}
209
- </div>
210
- </div>
211
- )}
212
- {navigation && !limit ? (
213
- <Button ariaLabel={'nextNavigation'} startAdornment={<ArrowIcon/>} color={navigationColor} disabled={direction === 'rtl' ? currentIndex === 0 : currentIndex === length - showSlides} onClick={direction === 'rtl' ? prev : next} rounded={'full'} shape={'square'} className={'absolute flex self-center items-center justify-center right-2'}/>
214
- ) : null}
215
- {nextNavigation && currentIndex < length ? (
216
- <>
217
- {nextNavigation(next)}
218
- </>
219
- ) : null}
220
- </Div>
221
- {indicator && !limit ? (
222
- <Div className={'self-center items-center justify-center'}>
223
- {children.length > 1 ? (
224
- <div className={`flex w-[96px] justify-start gap-x-1 mt-20 pr-11 overflow-hidden ${indicatorClassName}`}>
225
- {[...new Array(length - showSlides + 1)].map((_: any, idx: number) => {
226
- return (
227
- <Div
228
- style={{
229
- transform: `translateX(${dir}${currentIndex * (130)}%)`,
230
- transition: !transitionEnabled ? 'none' : undefined,
231
- }}
232
- key={idx}
233
- className={classNames(
234
- 'w-4 h-4 min-h-4 min-w-4 rounded-full mb-0 transition-all duration-500 justify-center items-center',
235
- currentIndex === idx ? `bg-${indicatorActiveColor}` : 'bg-transparent',
236
- )}
237
- onClick={() => {
238
- setCurrentIndex(idx);
239
- }}
240
- >
241
- <Div className={classNames(
242
- currentIndex === idx ? `bg-${indicatorActiveColor}` : 'bg-grey-100',
243
- `rounded-full transition-all duration-500 justify-center items-center`,
244
- BulletWidth(Math.abs(4 - Math.abs(currentIndex - idx))),
245
- )}
246
- />
247
- </Div>
248
- );
249
- })}
250
- </div>
251
- ) : null}
252
- </Div>
253
- ) : null}
254
- </Div>
255
- );
256
- };
257
-
258
- const ArrowIcon = ({ className }: { className?: string }) => {
259
- return (
260
- <svg
261
- xmlns="http://www.w3.org/2000/svg"
262
- width="256"
263
- height="256"
264
- viewBox="0 0 256 256"
265
- fill={'currentColor'}
266
- className={`h-3 w-3 ${className}`}
267
- >
268
- <path
269
- fill={'currentColor'}
270
- strokeMiterlimit="10"
271
- strokeWidth="0"
272
- d="M24.64 90L20.36 85.72 61.08 45 20.36 4.28 24.64 0 69.64 45z"
273
- transform="matrix(2.81 0 0 2.81 1.407 1.407)"
274
- />
275
- </svg>
276
- );
277
- };
278
-
279
- export default Slider;
280
-
281
- const BulletWidth = (w: any) => {
282
- switch (w) {
283
- case 4:
284
- return '!w-4 !h-4 !min-w-4 !min-h-4';
285
- case 3:
286
- return '!w-3 !h-3 !min-w-3 !min-h-3';
287
- case 2:
288
- return '!w-2 !h-2 !min-w-2 !min-h-2';
289
- default:
290
- return 'w-0 h-0';
291
- }
292
- };
@@ -1,25 +0,0 @@
1
- import { useState } from 'react';
2
- import { Meta, StoryObj } from '@storybook/react';
3
- import { Calendar } from './calendar';
4
-
5
- const meta: Meta<typeof Calendar> = {
6
- title: 'Calendar',
7
- component: Calendar,
8
- argTypes: {
9
- },
10
- };
11
-
12
- export default meta;
13
- type Story = StoryObj<typeof Calendar>;
14
-
15
- export const Default: Story = {
16
- render: (args) => {
17
- const [selectedDate, setSelectedDate] = useState<string>('');
18
-
19
- const handleChange = (e: any) => {
20
- setSelectedDate(e.jalaliDate);
21
- };
22
-
23
- return <Calendar {...args} selected={selectedDate} onChange={handleChange} />;
24
- },
25
- };
@@ -1,11 +0,0 @@
1
- import CustomCalendar from '../../calendar';
2
- import { CalendarProps } from '../../calendar/calendar.props';
3
-
4
- /**
5
- * Primary UI component for user interaction
6
- */
7
- export const Calendar = ({ ...props }: CalendarProps) => {
8
- return (
9
- <CustomCalendar {...props}/>
10
- );
11
- };
@@ -1,19 +0,0 @@
1
- import { CountDown } from './count-down';
2
- import { Meta, StoryObj } from '@storybook/react';
3
-
4
- const meta: Meta<typeof CountDown> = {
5
- title: 'CountDownTimer',
6
- component: CountDown,
7
- argTypes: {
8
- },
9
- };
10
-
11
- export default meta;
12
- type Story = StoryObj<typeof CountDown>;
13
-
14
- export const Default: Story = {
15
- render: (args) => {
16
- return <CountDown {...args} />;
17
- },
18
- };
19
-
@@ -1,11 +0,0 @@
1
- import CustomCountDown from '../../countdown-timer';
2
- import { CountdownProps } from '../../countdown-timer/countdown.props';
3
-
4
- /**
5
- * Primary UI component for user interaction
6
- */
7
- export const CountDown = ({ ...props }: CountdownProps) => {
8
- return (
9
- <CustomCountDown {...props} />
10
- );
11
- };
@@ -1,70 +0,0 @@
1
- import { ColumnDef } from '@tanstack/react-table';
2
- import { Chip, Text } from '@pezeshk-book/ui-kit';
3
-
4
- export const header = {
5
- id: 'ID',
6
- category_id: 'categoryId',
7
- title: 'Title',
8
- code: 'Code',
9
- environment: 'Environment',
10
- type: 'Type',
11
- status: 'Status',
12
- created_at: 'CreatedAt',
13
- };
14
-
15
- export const columns: ColumnDef<any>[] = [
16
- {
17
- id: 'id',
18
- accessorKey: 'id',
19
- header: header.id,
20
- cell: info => <Text typography={'sm'}>{info.row.original.id || '-'}</Text>,
21
- },
22
- {
23
- id: 'category_id',
24
- accessorKey: 'category_id',
25
- header: header.category_id,
26
- cell: info => <Text typography={'sm'}>{info.row.original.category_id || '-'}</Text>,
27
- },
28
- {
29
- id: 'title',
30
- accessorKey: 'title',
31
- header: header.title,
32
- cell: info => <Text typography={'sm'}>{info.row.original.title || '-'}</Text>,
33
- },
34
- {
35
- id: 'code',
36
- accessorKey: 'code',
37
- header: header.code,
38
- cell: info => <Text typography={'sm'}>{info.row.original.code || '-'}</Text>,
39
- },
40
- {
41
- id: 'environment',
42
- accessorKey: 'environment',
43
- header: header.environment,
44
- cell: info => {
45
- return <Text typography={'sm'} >{info.row.original.environment || '-'}</Text>;
46
- },
47
- },
48
- {
49
- id: 'type',
50
- accessorKey: 'type',
51
- header: header.type,
52
- cell: info => {
53
- return <Chip size={'small'} variant={'reverse'} color={info.row.original.type === 'Hardware' ? 'info' : 'secondary'} value={info.row.original.type}/>;
54
- },
55
- },
56
- {
57
- id: 'status',
58
- accessorKey: 'status',
59
- header: header.status,
60
- cell: info => {
61
- return <Chip size={'small'} variant={'reverse'} color={info.row.original.status === 'Active' ? 'green' : 'red'} value={info.row.original.status}/>;
62
- },
63
- },
64
- {
65
- id: 'created_at',
66
- accessorKey: 'created_at',
67
- header: header.created_at,
68
- cell: info => <Text typography={'sm'}>{info.row.original.created_at}</Text>,
69
- },
70
- ];
@@ -1,22 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
- import { DefaultDataTableProps } from '../../data-table/default/default-data-table.props';
3
- import { DefaultDataTable } from './default-data-table';
4
-
5
- const meta: Meta<typeof DefaultDataTable> = {
6
- title: 'DataTable',
7
- component: DefaultDataTable,
8
- argTypes: {
9
- },
10
- };
11
-
12
- export default meta;
13
- type Story = StoryObj<typeof DefaultDataTable>;
14
-
15
- export const Default: Story = {
16
- render: (args : { variant: 'default' } & DefaultDataTableProps) => {
17
- return <DefaultDataTable {...args} />;
18
- },
19
- args: {
20
- variant: 'default',
21
- },
22
- };