@arkyn/components 3.0.1-beta.17 → 3.0.1-beta.170

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 (417) hide show
  1. package/README.md +41 -0
  2. package/package.json +458 -20
  3. package/styles.d.ts +3 -0
  4. package/dist/bundle.js +0 -4292
  5. package/dist/bundle.umd.cjs +0 -30
  6. package/dist/documentation/src/app.d.ts +0 -3
  7. package/dist/documentation/src/app.d.ts.map +0 -1
  8. package/dist/documentation/src/app.js +0 -55
  9. package/dist/documentation/src/components/examples.alert.d.ts +0 -3
  10. package/dist/documentation/src/components/examples.alert.d.ts.map +0 -1
  11. package/dist/documentation/src/components/examples.alert.js +0 -7
  12. package/dist/documentation/src/components/examples.audioPlayer.d.ts +0 -3
  13. package/dist/documentation/src/components/examples.audioPlayer.d.ts.map +0 -1
  14. package/dist/documentation/src/components/examples.audioPlayer.js +0 -8
  15. package/dist/documentation/src/components/examples.badge.d.ts +0 -3
  16. package/dist/documentation/src/components/examples.badge.d.ts.map +0 -1
  17. package/dist/documentation/src/components/examples.badge.js +0 -9
  18. package/dist/documentation/src/components/examples.button.d.ts +0 -3
  19. package/dist/documentation/src/components/examples.button.d.ts.map +0 -1
  20. package/dist/documentation/src/components/examples.button.js +0 -9
  21. package/dist/documentation/src/components/examples.cardTab.d.ts +0 -3
  22. package/dist/documentation/src/components/examples.cardTab.d.ts.map +0 -1
  23. package/dist/documentation/src/components/examples.cardTab.js +0 -7
  24. package/dist/documentation/src/components/examples.checkbox.d.ts +0 -3
  25. package/dist/documentation/src/components/examples.checkbox.d.ts.map +0 -1
  26. package/dist/documentation/src/components/examples.checkbox.js +0 -13
  27. package/dist/documentation/src/components/examples.currencyInput.d.ts +0 -3
  28. package/dist/documentation/src/components/examples.currencyInput.d.ts.map +0 -1
  29. package/dist/documentation/src/components/examples.currencyInput.js +0 -9
  30. package/dist/documentation/src/components/examples.divider.d.ts +0 -3
  31. package/dist/documentation/src/components/examples.divider.d.ts.map +0 -1
  32. package/dist/documentation/src/components/examples.divider.js +0 -7
  33. package/dist/documentation/src/components/examples.drawer.d.ts +0 -3
  34. package/dist/documentation/src/components/examples.drawer.d.ts.map +0 -1
  35. package/dist/documentation/src/components/examples.drawer.js +0 -11
  36. package/dist/documentation/src/components/examples.iconButton.d.ts +0 -3
  37. package/dist/documentation/src/components/examples.iconButton.d.ts.map +0 -1
  38. package/dist/documentation/src/components/examples.iconButton.js +0 -9
  39. package/dist/documentation/src/components/examples.input.d.ts +0 -3
  40. package/dist/documentation/src/components/examples.input.d.ts.map +0 -1
  41. package/dist/documentation/src/components/examples.input.js +0 -9
  42. package/dist/documentation/src/components/examples.maskedInput.d.ts +0 -3
  43. package/dist/documentation/src/components/examples.maskedInput.d.ts.map +0 -1
  44. package/dist/documentation/src/components/examples.maskedInput.js +0 -9
  45. package/dist/documentation/src/components/examples.modal.d.ts +0 -3
  46. package/dist/documentation/src/components/examples.modal.d.ts.map +0 -1
  47. package/dist/documentation/src/components/examples.modal.js +0 -10
  48. package/dist/documentation/src/components/examples.multiSelect.d.ts +0 -3
  49. package/dist/documentation/src/components/examples.multiSelect.d.ts.map +0 -1
  50. package/dist/documentation/src/components/examples.multiSelect.js +0 -92
  51. package/dist/documentation/src/components/examples.phoneInput.d.ts +0 -3
  52. package/dist/documentation/src/components/examples.phoneInput.d.ts.map +0 -1
  53. package/dist/documentation/src/components/examples.phoneInput.js +0 -26
  54. package/dist/documentation/src/components/examples.radio.d.ts +0 -3
  55. package/dist/documentation/src/components/examples.radio.d.ts.map +0 -1
  56. package/dist/documentation/src/components/examples.radio.js +0 -11
  57. package/dist/documentation/src/components/examples.slider.d.ts +0 -3
  58. package/dist/documentation/src/components/examples.slider.d.ts.map +0 -1
  59. package/dist/documentation/src/components/examples.slider.js +0 -10
  60. package/dist/documentation/src/components/examples.switch.d.ts +0 -3
  61. package/dist/documentation/src/components/examples.switch.d.ts.map +0 -1
  62. package/dist/documentation/src/components/examples.switch.js +0 -20
  63. package/dist/documentation/src/components/examples.tab.d.ts +0 -3
  64. package/dist/documentation/src/components/examples.tab.d.ts.map +0 -1
  65. package/dist/documentation/src/components/examples.tab.js +0 -7
  66. package/dist/documentation/src/components/examples.texarea.d.ts +0 -3
  67. package/dist/documentation/src/components/examples.texarea.d.ts.map +0 -1
  68. package/dist/documentation/src/components/examples.texarea.js +0 -34
  69. package/dist/documentation/src/components/examples.tooltip.d.ts +0 -3
  70. package/dist/documentation/src/components/examples.tooltip.d.ts.map +0 -1
  71. package/dist/documentation/src/components/examples.tooltip.js +0 -8
  72. package/dist/documentation/src/main.d.ts +0 -3
  73. package/dist/documentation/src/main.d.ts.map +0 -1
  74. package/dist/documentation/src/main.js +0 -7
  75. package/dist/documentation/src/ui/box.d.ts +0 -8
  76. package/dist/documentation/src/ui/box.d.ts.map +0 -1
  77. package/dist/documentation/src/ui/box.js +0 -5
  78. package/dist/documentation/src/ui/row.d.ts +0 -7
  79. package/dist/documentation/src/ui/row.d.ts.map +0 -1
  80. package/dist/documentation/src/ui/row.js +0 -5
  81. package/dist/documentation/vite.config.d.ts +0 -3
  82. package/dist/documentation/vite.config.d.ts.map +0 -1
  83. package/dist/documentation/vite.config.js +0 -12
  84. package/dist/src/components/alert/alertContainer/index.d.ts +0 -44
  85. package/dist/src/components/alert/alertContainer/index.d.ts.map +0 -1
  86. package/dist/src/components/alert/alertContainer/index.js +0 -71
  87. package/dist/src/components/alert/alertContent/index.d.ts +0 -45
  88. package/dist/src/components/alert/alertContent/index.d.ts.map +0 -1
  89. package/dist/src/components/alert/alertContent/index.js +0 -47
  90. package/dist/src/components/alert/alertDescription/index.d.ts +0 -49
  91. package/dist/src/components/alert/alertDescription/index.d.ts.map +0 -1
  92. package/dist/src/components/alert/alertDescription/index.js +0 -51
  93. package/dist/src/components/alert/alertIcon/index.d.ts +0 -52
  94. package/dist/src/components/alert/alertIcon/index.d.ts.map +0 -1
  95. package/dist/src/components/alert/alertIcon/index.js +0 -66
  96. package/dist/src/components/alert/alertTitle/index.d.ts +0 -46
  97. package/dist/src/components/alert/alertTitle/index.d.ts.map +0 -1
  98. package/dist/src/components/alert/alertTitle/index.js +0 -48
  99. package/dist/src/components/audioPlayer/index.d.ts +0 -60
  100. package/dist/src/components/audioPlayer/index.d.ts.map +0 -1
  101. package/dist/src/components/audioPlayer/index.js +0 -130
  102. package/dist/src/components/badge/index.d.ts +0 -51
  103. package/dist/src/components/badge/index.d.ts.map +0 -1
  104. package/dist/src/components/badge/index.js +0 -49
  105. package/dist/src/components/button/index.d.ts +0 -60
  106. package/dist/src/components/button/index.d.ts.map +0 -1
  107. package/dist/src/components/button/index.js +0 -61
  108. package/dist/src/components/cardTab/cardTabButton/index.d.ts +0 -72
  109. package/dist/src/components/cardTab/cardTabButton/index.d.ts.map +0 -1
  110. package/dist/src/components/cardTab/cardTabButton/index.js +0 -80
  111. package/dist/src/components/cardTab/cardTabContainer/index.d.ts +0 -83
  112. package/dist/src/components/cardTab/cardTabContainer/index.d.ts.map +0 -1
  113. package/dist/src/components/cardTab/cardTabContainer/index.js +0 -88
  114. package/dist/src/components/cardTab/cardTabContext.d.ts +0 -16
  115. package/dist/src/components/cardTab/cardTabContext.d.ts.map +0 -1
  116. package/dist/src/components/cardTab/cardTabContext.js +0 -10
  117. package/dist/src/components/checkbox/index.d.ts +0 -73
  118. package/dist/src/components/checkbox/index.d.ts.map +0 -1
  119. package/dist/src/components/checkbox/index.js +0 -86
  120. package/dist/src/components/currencyInput/index.d.ts +0 -98
  121. package/dist/src/components/currencyInput/index.d.ts.map +0 -1
  122. package/dist/src/components/currencyInput/index.js +0 -140
  123. package/dist/src/components/divider/index.d.ts +0 -45
  124. package/dist/src/components/divider/index.d.ts.map +0 -1
  125. package/dist/src/components/divider/index.js +0 -45
  126. package/dist/src/components/drawer/drawerContainer/index.d.ts +0 -71
  127. package/dist/src/components/drawer/drawerContainer/index.d.ts.map +0 -1
  128. package/dist/src/components/drawer/drawerContainer/index.js +0 -75
  129. package/dist/src/components/drawer/drawerContext.d.ts +0 -12
  130. package/dist/src/components/drawer/drawerContext.d.ts.map +0 -1
  131. package/dist/src/components/drawer/drawerContext.js +0 -10
  132. package/dist/src/components/drawer/drawerHeader/index.d.ts +0 -55
  133. package/dist/src/components/drawer/drawerHeader/index.d.ts.map +0 -1
  134. package/dist/src/components/drawer/drawerHeader/index.js +0 -58
  135. package/dist/src/components/fieldError/index.d.ts +0 -29
  136. package/dist/src/components/fieldError/index.d.ts.map +0 -1
  137. package/dist/src/components/fieldError/index.js +0 -33
  138. package/dist/src/components/fieldLabel/index.d.ts +0 -38
  139. package/dist/src/components/fieldLabel/index.d.ts.map +0 -1
  140. package/dist/src/components/fieldLabel/index.js +0 -39
  141. package/dist/src/components/fieldWrapper/index.d.ts +0 -41
  142. package/dist/src/components/fieldWrapper/index.d.ts.map +0 -1
  143. package/dist/src/components/fieldWrapper/index.js +0 -41
  144. package/dist/src/components/iconButton/index.d.ts +0 -44
  145. package/dist/src/components/iconButton/index.d.ts.map +0 -1
  146. package/dist/src/components/iconButton/index.js +0 -41
  147. package/dist/src/components/input/index.d.ts +0 -81
  148. package/dist/src/components/input/index.d.ts.map +0 -1
  149. package/dist/src/components/input/index.js +0 -112
  150. package/dist/src/components/maskedInput/index.d.ts +0 -103
  151. package/dist/src/components/maskedInput/index.d.ts.map +0 -1
  152. package/dist/src/components/maskedInput/index.js +0 -130
  153. package/dist/src/components/modal/modalContainer/index.d.ts +0 -78
  154. package/dist/src/components/modal/modalContainer/index.d.ts.map +0 -1
  155. package/dist/src/components/modal/modalContainer/index.js +0 -82
  156. package/dist/src/components/modal/modalContext.d.ts +0 -12
  157. package/dist/src/components/modal/modalContext.d.ts.map +0 -1
  158. package/dist/src/components/modal/modalContext.js +0 -10
  159. package/dist/src/components/modal/modalFooter/index.d.ts +0 -72
  160. package/dist/src/components/modal/modalFooter/index.d.ts.map +0 -1
  161. package/dist/src/components/modal/modalFooter/index.js +0 -72
  162. package/dist/src/components/modal/modalHeader/index.d.ts +0 -66
  163. package/dist/src/components/modal/modalHeader/index.d.ts.map +0 -1
  164. package/dist/src/components/modal/modalHeader/index.js +0 -69
  165. package/dist/src/components/multiSelect/index.d.ts +0 -125
  166. package/dist/src/components/multiSelect/index.d.ts.map +0 -1
  167. package/dist/src/components/multiSelect/index.js +0 -169
  168. package/dist/src/components/multiSelect/multiSelectChevron/index.d.ts +0 -11
  169. package/dist/src/components/multiSelect/multiSelectChevron/index.d.ts.map +0 -1
  170. package/dist/src/components/multiSelect/multiSelectChevron/index.js +0 -13
  171. package/dist/src/components/multiSelect/multiSelectContainer/index.d.ts +0 -19
  172. package/dist/src/components/multiSelect/multiSelectContainer/index.d.ts.map +0 -1
  173. package/dist/src/components/multiSelect/multiSelectContainer/index.js +0 -11
  174. package/dist/src/components/multiSelect/multiSelectContent/index.d.ts +0 -9
  175. package/dist/src/components/multiSelect/multiSelectContent/index.d.ts.map +0 -1
  176. package/dist/src/components/multiSelect/multiSelectContent/index.js +0 -8
  177. package/dist/src/components/multiSelect/multiSelectMark/index.d.ts +0 -10
  178. package/dist/src/components/multiSelect/multiSelectMark/index.d.ts.map +0 -1
  179. package/dist/src/components/multiSelect/multiSelectMark/index.js +0 -11
  180. package/dist/src/components/multiSelect/multiSelectOption/index.d.ts +0 -11
  181. package/dist/src/components/multiSelect/multiSelectOption/index.d.ts.map +0 -1
  182. package/dist/src/components/multiSelect/multiSelectOption/index.js +0 -10
  183. package/dist/src/components/multiSelect/multiSelectOptionsContainer/index.d.ts +0 -12
  184. package/dist/src/components/multiSelect/multiSelectOptionsContainer/index.d.ts.map +0 -1
  185. package/dist/src/components/multiSelect/multiSelectOptionsContainer/index.js +0 -44
  186. package/dist/src/components/multiSelect/multiSelectOverlay/index.d.ts +0 -8
  187. package/dist/src/components/multiSelect/multiSelectOverlay/index.d.ts.map +0 -1
  188. package/dist/src/components/multiSelect/multiSelectOverlay/index.js +0 -9
  189. package/dist/src/components/multiSelect/multiSelectSpinner/index.d.ts +0 -8
  190. package/dist/src/components/multiSelect/multiSelectSpinner/index.d.ts.map +0 -1
  191. package/dist/src/components/multiSelect/multiSelectSpinner/index.js +0 -10
  192. package/dist/src/components/phoneInput/index.d.ts +0 -127
  193. package/dist/src/components/phoneInput/index.d.ts.map +0 -1
  194. package/dist/src/components/phoneInput/index.js +0 -202
  195. package/dist/src/components/phoneInput/phoneInputContainer/index.d.ts +0 -18
  196. package/dist/src/components/phoneInput/phoneInputContainer/index.d.ts.map +0 -1
  197. package/dist/src/components/phoneInput/phoneInputContainer/index.js +0 -11
  198. package/dist/src/components/phoneInput/phoneInputCountriesOverlay/index.d.ts +0 -8
  199. package/dist/src/components/phoneInput/phoneInputCountriesOverlay/index.d.ts.map +0 -1
  200. package/dist/src/components/phoneInput/phoneInputCountriesOverlay/index.js +0 -9
  201. package/dist/src/components/phoneInput/phoneInputCountryOption/index.d.ts +0 -18
  202. package/dist/src/components/phoneInput/phoneInputCountryOption/index.d.ts.map +0 -1
  203. package/dist/src/components/phoneInput/phoneInputCountryOption/index.js +0 -10
  204. package/dist/src/components/phoneInput/phoneInputCountryOptionsContainer/index.d.ts +0 -12
  205. package/dist/src/components/phoneInput/phoneInputCountryOptionsContainer/index.d.ts.map +0 -1
  206. package/dist/src/components/phoneInput/phoneInputCountryOptionsContainer/index.js +0 -40
  207. package/dist/src/components/phoneInput/phoneInputCountrySelector/index.d.ts +0 -17
  208. package/dist/src/components/phoneInput/phoneInputCountrySelector/index.d.ts.map +0 -1
  209. package/dist/src/components/phoneInput/phoneInputCountrySelector/index.js +0 -9
  210. package/dist/src/components/phoneInput/phoneInputMask/index.d.ts +0 -21
  211. package/dist/src/components/phoneInput/phoneInputMask/index.d.ts.map +0 -1
  212. package/dist/src/components/phoneInput/phoneInputMask/index.js +0 -34
  213. package/dist/src/components/radio/radioBox/index.d.ts +0 -85
  214. package/dist/src/components/radio/radioBox/index.d.ts.map +0 -1
  215. package/dist/src/components/radio/radioBox/index.js +0 -90
  216. package/dist/src/components/radio/radioContext.d.ts +0 -18
  217. package/dist/src/components/radio/radioContext.d.ts.map +0 -1
  218. package/dist/src/components/radio/radioContext.js +0 -11
  219. package/dist/src/components/radio/radioGroup/index.d.ts +0 -92
  220. package/dist/src/components/radio/radioGroup/index.d.ts.map +0 -1
  221. package/dist/src/components/radio/radioGroup/index.js +0 -100
  222. package/dist/src/components/slider/index.d.ts +0 -57
  223. package/dist/src/components/slider/index.d.ts.map +0 -1
  224. package/dist/src/components/slider/index.js +0 -97
  225. package/dist/src/components/switch/index.d.ts +0 -94
  226. package/dist/src/components/switch/index.d.ts.map +0 -1
  227. package/dist/src/components/switch/index.js +0 -99
  228. package/dist/src/components/tab/tabButton/index.d.ts +0 -72
  229. package/dist/src/components/tab/tabButton/index.d.ts.map +0 -1
  230. package/dist/src/components/tab/tabButton/index.js +0 -80
  231. package/dist/src/components/tab/tabContainer/index.d.ts +0 -83
  232. package/dist/src/components/tab/tabContainer/index.d.ts.map +0 -1
  233. package/dist/src/components/tab/tabContainer/index.js +0 -88
  234. package/dist/src/components/tab/tabContext.d.ts +0 -16
  235. package/dist/src/components/tab/tabContext.d.ts.map +0 -1
  236. package/dist/src/components/tab/tabContext.js +0 -10
  237. package/dist/src/components/textarea/index.d.ts +0 -103
  238. package/dist/src/components/textarea/index.d.ts.map +0 -1
  239. package/dist/src/components/textarea/index.js +0 -127
  240. package/dist/src/components/tooltip/index.d.ts +0 -80
  241. package/dist/src/components/tooltip/index.d.ts.map +0 -1
  242. package/dist/src/components/tooltip/index.js +0 -135
  243. package/dist/src/hooks/useForm.d.ts +0 -52
  244. package/dist/src/hooks/useForm.d.ts.map +0 -1
  245. package/dist/src/hooks/useForm.js +0 -52
  246. package/dist/src/hooks/useScopedParams.d.ts +0 -89
  247. package/dist/src/hooks/useScopedParams.d.ts.map +0 -1
  248. package/dist/src/hooks/useScopedParams.js +0 -107
  249. package/dist/src/hooks/useScrollLock.d.ts +0 -39
  250. package/dist/src/hooks/useScrollLock.d.ts.map +0 -1
  251. package/dist/src/hooks/useScrollLock.js +0 -49
  252. package/dist/src/hooks/useSlider.d.ts +0 -31
  253. package/dist/src/hooks/useSlider.d.ts.map +0 -1
  254. package/dist/src/hooks/useSlider.js +0 -49
  255. package/dist/src/index.d.ts +0 -40
  256. package/dist/src/index.d.ts.map +0 -1
  257. package/dist/src/index.js +0 -42
  258. package/dist/src/providers/formProvider.d.ts +0 -76
  259. package/dist/src/providers/formProvider.d.ts.map +0 -1
  260. package/dist/src/providers/formProvider.js +0 -69
  261. package/dist/src/services/iconRenderer.d.ts +0 -10
  262. package/dist/src/services/iconRenderer.d.ts.map +0 -1
  263. package/dist/src/services/iconRenderer.js +0 -13
  264. package/dist/src/services/maskCurrencyValues.d.ts +0 -4
  265. package/dist/src/services/maskCurrencyValues.d.ts.map +0 -1
  266. package/dist/src/services/maskCurrencyValues.js +0 -23
  267. package/dist/src/utils/phoneInputUtilities.d.ts +0 -1722
  268. package/dist/src/utils/phoneInputUtilities.d.ts.map +0 -1
  269. package/dist/src/utils/phoneInputUtilities.js +0 -99
  270. package/dist/style.css +0 -1
  271. package/dist/vite.config.d.ts +0 -3
  272. package/dist/vite.config.d.ts.map +0 -1
  273. package/dist/vite.config.js +0 -24
  274. package/dist/vitest.config.d.ts +0 -3
  275. package/dist/vitest.config.d.ts.map +0 -1
  276. package/dist/vitest.config.js +0 -4
  277. package/documentation/css/reset.css +0 -38
  278. package/documentation/css/variables.css +0 -41
  279. package/documentation/index.html +0 -13
  280. package/documentation/src/app.tsx +0 -93
  281. package/documentation/src/components/examples.alert.tsx +0 -49
  282. package/documentation/src/components/examples.audioPlayer.tsx +0 -16
  283. package/documentation/src/components/examples.badge.tsx +0 -38
  284. package/documentation/src/components/examples.button.tsx +0 -66
  285. package/documentation/src/components/examples.cardTab.tsx +0 -36
  286. package/documentation/src/components/examples.checkbox.tsx +0 -94
  287. package/documentation/src/components/examples.currencyInput.tsx +0 -263
  288. package/documentation/src/components/examples.divider.tsx +0 -12
  289. package/documentation/src/components/examples.drawer.tsx +0 -43
  290. package/documentation/src/components/examples.iconButton.tsx +0 -78
  291. package/documentation/src/components/examples.input.tsx +0 -256
  292. package/documentation/src/components/examples.maskedInput.tsx +0 -274
  293. package/documentation/src/components/examples.modal.tsx +0 -31
  294. package/documentation/src/components/examples.multiSelect.tsx +0 -320
  295. package/documentation/src/components/examples.phoneInput.tsx +0 -262
  296. package/documentation/src/components/examples.radio.tsx +0 -149
  297. package/documentation/src/components/examples.slider.tsx +0 -28
  298. package/documentation/src/components/examples.switch.tsx +0 -180
  299. package/documentation/src/components/examples.tab.tsx +0 -36
  300. package/documentation/src/components/examples.texarea.tsx +0 -188
  301. package/documentation/src/components/examples.tooltip.tsx +0 -45
  302. package/documentation/src/main.tsx +0 -12
  303. package/documentation/src/ui/box.tsx +0 -17
  304. package/documentation/src/ui/row.tsx +0 -11
  305. package/documentation/vite.config.ts +0 -13
  306. package/src/components/alert/alertContainer/index.tsx +0 -87
  307. package/src/components/alert/alertContainer/styles.css +0 -33
  308. package/src/components/alert/alertContent/index.tsx +0 -53
  309. package/src/components/alert/alertContent/styles.css +0 -5
  310. package/src/components/alert/alertDescription/index.tsx +0 -57
  311. package/src/components/alert/alertDescription/styles.css +0 -7
  312. package/src/components/alert/alertIcon/index.tsx +0 -79
  313. package/src/components/alert/alertIcon/styles.css +0 -23
  314. package/src/components/alert/alertTitle/index.tsx +0 -54
  315. package/src/components/alert/alertTitle/styles.css +0 -7
  316. package/src/components/audioPlayer/index.tsx +0 -187
  317. package/src/components/audioPlayer/styles.css +0 -50
  318. package/src/components/badge/index.tsx +0 -80
  319. package/src/components/badge/styles.css +0 -145
  320. package/src/components/button/index.tsx +0 -104
  321. package/src/components/button/styles.css +0 -208
  322. package/src/components/cardTab/cardTabButton/index.tsx +0 -114
  323. package/src/components/cardTab/cardTabButton/styles.css +0 -30
  324. package/src/components/cardTab/cardTabContainer/index.tsx +0 -121
  325. package/src/components/cardTab/cardTabContainer/styles.css +0 -9
  326. package/src/components/cardTab/cardTabContext.tsx +0 -30
  327. package/src/components/checkbox/index.tsx +0 -158
  328. package/src/components/checkbox/styles.css +0 -78
  329. package/src/components/currencyInput/index.tsx +0 -312
  330. package/src/components/currencyInput/style.css +0 -226
  331. package/src/components/divider/index.tsx +0 -58
  332. package/src/components/divider/styles.css +0 -17
  333. package/src/components/drawer/drawerContainer/index.tsx +0 -123
  334. package/src/components/drawer/drawerContainer/styles.css +0 -46
  335. package/src/components/drawer/drawerContext.tsx +0 -26
  336. package/src/components/drawer/drawerHeader/index.tsx +0 -88
  337. package/src/components/drawer/drawerHeader/styles.css +0 -38
  338. package/src/components/fieldError/index.tsx +0 -43
  339. package/src/components/fieldError/styles.css +0 -6
  340. package/src/components/fieldLabel/index.tsx +0 -52
  341. package/src/components/fieldLabel/styles.css +0 -15
  342. package/src/components/fieldWrapper/index.tsx +0 -54
  343. package/src/components/fieldWrapper/styles.css +0 -7
  344. package/src/components/iconButton/index.tsx +0 -83
  345. package/src/components/iconButton/styles.css +0 -166
  346. package/src/components/input/index.tsx +0 -233
  347. package/src/components/input/style.css +0 -226
  348. package/src/components/maskedInput/index.tsx +0 -260
  349. package/src/components/maskedInput/style.css +0 -226
  350. package/src/components/modal/modalContainer/index.tsx +0 -127
  351. package/src/components/modal/modalContainer/styles.css +0 -37
  352. package/src/components/modal/modalContext.tsx +0 -26
  353. package/src/components/modal/modalFooter/index.tsx +0 -80
  354. package/src/components/modal/modalFooter/styles.css +0 -27
  355. package/src/components/modal/modalHeader/index.tsx +0 -99
  356. package/src/components/modal/modalHeader/styles.css +0 -38
  357. package/src/components/multiSelect/index.tsx +0 -319
  358. package/src/components/multiSelect/multiSelectChevron/index.tsx +0 -26
  359. package/src/components/multiSelect/multiSelectChevron/styles.css +0 -7
  360. package/src/components/multiSelect/multiSelectContainer/index.tsx +0 -51
  361. package/src/components/multiSelect/multiSelectContainer/styles.css +0 -134
  362. package/src/components/multiSelect/multiSelectContent/index.tsx +0 -15
  363. package/src/components/multiSelect/multiSelectContent/styles.css +0 -24
  364. package/src/components/multiSelect/multiSelectMark/index.tsx +0 -32
  365. package/src/components/multiSelect/multiSelectMark/styles.css +0 -44
  366. package/src/components/multiSelect/multiSelectOption/index.tsx +0 -25
  367. package/src/components/multiSelect/multiSelectOption/styles.css +0 -37
  368. package/src/components/multiSelect/multiSelectOptionsContainer/index.tsx +0 -81
  369. package/src/components/multiSelect/multiSelectOptionsContainer/styles.css +0 -45
  370. package/src/components/multiSelect/multiSelectOverlay/index.tsx +0 -14
  371. package/src/components/multiSelect/multiSelectOverlay/styles.css +0 -8
  372. package/src/components/multiSelect/multiSelectSpinner/index.tsx +0 -22
  373. package/src/components/multiSelect/multiSelectSpinner/styles.css +0 -12
  374. package/src/components/phoneInput/index.tsx +0 -332
  375. package/src/components/phoneInput/phoneInputContainer/index.tsx +0 -46
  376. package/src/components/phoneInput/phoneInputContainer/styles.css +0 -59
  377. package/src/components/phoneInput/phoneInputCountriesOverlay/index.tsx +0 -16
  378. package/src/components/phoneInput/phoneInputCountriesOverlay/styles.css +0 -8
  379. package/src/components/phoneInput/phoneInputCountryOption/index.tsx +0 -35
  380. package/src/components/phoneInput/phoneInputCountryOption/styles.css +0 -50
  381. package/src/components/phoneInput/phoneInputCountryOptionsContainer/index.tsx +0 -77
  382. package/src/components/phoneInput/phoneInputCountryOptionsContainer/styles.css +0 -59
  383. package/src/components/phoneInput/phoneInputCountrySelector/index.tsx +0 -37
  384. package/src/components/phoneInput/phoneInputCountrySelector/styles.css +0 -26
  385. package/src/components/phoneInput/phoneInputMask/index.tsx +0 -105
  386. package/src/components/phoneInput/phoneInputMask/style.css +0 -36
  387. package/src/components/radio/radioBox/index.tsx +0 -124
  388. package/src/components/radio/radioBox/styles.css +0 -95
  389. package/src/components/radio/radioContext.tsx +0 -34
  390. package/src/components/radio/radioGroup/index.tsx +0 -150
  391. package/src/components/radio/radioGroup/styles.css +0 -5
  392. package/src/components/slider/index.tsx +0 -132
  393. package/src/components/slider/styles.css +0 -45
  394. package/src/components/switch/index.tsx +0 -156
  395. package/src/components/switch/styles.css +0 -90
  396. package/src/components/tab/tabButton/index.tsx +0 -114
  397. package/src/components/tab/tabButton/styles.css +0 -41
  398. package/src/components/tab/tabContainer/index.tsx +0 -121
  399. package/src/components/tab/tabContainer/styles.css +0 -11
  400. package/src/components/tab/tabContext.tsx +0 -28
  401. package/src/components/textarea/index.tsx +0 -193
  402. package/src/components/textarea/styles.css +0 -93
  403. package/src/components/tooltip/index.tsx +0 -172
  404. package/src/components/tooltip/styles.css +0 -112
  405. package/src/hooks/useForm.ts +0 -55
  406. package/src/hooks/useScopedParams.ts +0 -111
  407. package/src/hooks/useScrollLock.ts +0 -52
  408. package/src/hooks/useSlider.ts +0 -52
  409. package/src/index.ts +0 -44
  410. package/src/providers/formProvider.tsx +0 -88
  411. package/src/services/iconRenderer.tsx +0 -23
  412. package/src/services/maskCurrencyValues.ts +0 -54
  413. package/src/utils/phoneInputUtilities.ts +0 -138
  414. package/tsconfig.json +0 -35
  415. package/variables.css +0 -41
  416. package/vite.config.ts +0 -24
  417. package/vitest.config.ts +0 -5
@@ -1,127 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useId, useRef, useState, } from "react";
3
- import { useForm } from "../../hooks/useForm";
4
- import { FieldLabel } from "../fieldLabel";
5
- import { FieldWrapper } from "../fieldWrapper";
6
- import "./styles.css";
7
- /**
8
- * Textarea component - used for multi-line text input with customizable styling and validation
9
- *
10
- * @param props - Textarea component properties
11
- * @param props.name - Required field name for form handling and textarea identification
12
- * @param props.label - Optional label text to display above the textarea
13
- * @param props.showAsterisk - Whether to show asterisk on label for required fields
14
- * @param props.errorMessage - Error message to display below the textarea
15
- * @param props.size - Size variant of the textarea. Default: "md"
16
- * @param props.variant - Visual variant of the textarea. Default: "solid"
17
- *
18
- * **...Other valid HTML properties for textarea element (except name)**
19
- *
20
- * @returns Textarea JSX element wrapped in FieldWrapper with optional label and error message
21
- *
22
- * @example
23
- * ```tsx
24
- * // Basic textarea
25
- * <Textarea name="description" placeholder="Enter description..." />
26
- *
27
- * // Textarea with label and validation
28
- * <Textarea
29
- * name="bio"
30
- * label="Biography"
31
- * showAsterisk
32
- * placeholder="Tell us about yourself"
33
- * errorMessage="Biography is required"
34
- * />
35
- *
36
- * // Large textarea with outline variant
37
- * <Textarea
38
- * name="comments"
39
- * label="Comments"
40
- * size="lg"
41
- * variant="outline"
42
- * placeholder="Enter your comments here..."
43
- * rows={6}
44
- * />
45
- *
46
- * // Textarea with character limit and custom styling
47
- * <Textarea
48
- * name="feedback"
49
- * label="Feedback"
50
- * placeholder="Share your feedback (max 500 characters)"
51
- * maxLength={500}
52
- * rows={4}
53
- * className="feedback-textarea"
54
- * />
55
- *
56
- * // Read-only textarea for display
57
- * <Textarea
58
- * name="terms"
59
- * label="Terms and Conditions"
60
- * value={termsContent}
61
- * readOnly
62
- * rows={10}
63
- * variant="outline"
64
- * />
65
- *
66
- * // Disabled textarea
67
- * <Textarea
68
- * name="disabled_field"
69
- * label="Disabled Field"
70
- * value="This field is disabled"
71
- * disabled
72
- * placeholder="Cannot edit this field"
73
- * />
74
- *
75
- * // Textarea with controlled value and change handler
76
- * <Textarea
77
- * name="message"
78
- * label="Message"
79
- * value={message}
80
- * onChange={(e) => setMessage(e.target.value)}
81
- * placeholder="Type your message..."
82
- * rows={5}
83
- * showAsterisk
84
- * />
85
- *
86
- * // Textarea with resize control
87
- * <Textarea
88
- * name="notes"
89
- * label="Notes"
90
- * placeholder="Enter your notes..."
91
- * style={{ resize: 'vertical' }}
92
- * rows={3}
93
- * cols={50}
94
- * />
95
- * ```
96
- */
97
- function Textarea(props) {
98
- const { variant = "solid", size = "md", className: baseClassName, errorMessage: baseErrorMessage, disabled = false, readOnly = false, label, showAsterisk, name, onFocus, onBlur, title, style, id, ...rest } = props;
99
- const { fieldErrors } = useForm();
100
- const [isFocused, setIsFocused] = useState(false);
101
- const textareaRef = useRef(null);
102
- const textareaId = id || useId();
103
- const errorMessage = baseErrorMessage || fieldErrors?.[name];
104
- const isError = !!errorMessage;
105
- const errorClass = isError ? "errorTrue" : "errorFalse";
106
- const opacityClass = disabled || readOnly ? "opacityTrue" : "opacityFalse";
107
- const focusedClass = isFocused ? "focusedTrue" : "focusedFalse";
108
- const className = `arkynTextarea ${variant} ${size} ${opacityClass} ${errorClass} ${focusedClass} ${baseClassName}`;
109
- function handleSectionClick() {
110
- if (disabled || !textareaRef?.current)
111
- return;
112
- setIsFocused(true);
113
- textareaRef.current.focus();
114
- }
115
- function handleFocus(e) {
116
- setIsFocused(true);
117
- if (onFocus)
118
- onFocus(e);
119
- }
120
- function handleBlur(e) {
121
- setIsFocused(false);
122
- if (onBlur)
123
- onBlur(e);
124
- }
125
- return (_jsxs(FieldWrapper, { children: [label && _jsx(FieldLabel, { showAsterisk: showAsterisk, children: label }), _jsx("section", { title: title, style: style, onClick: handleSectionClick, className: className, children: _jsx("textarea", { id: textareaId, disabled: disabled, readOnly: readOnly, ref: textareaRef, onFocus: handleFocus, onBlur: handleBlur, ...rest }) }), errorMessage && _jsx(FieldLabel, { children: errorMessage })] }));
126
- }
127
- export { Textarea };
@@ -1,80 +0,0 @@
1
- import { HTMLAttributes, ReactNode } from "react";
2
- import "./styles.css";
3
- type TooltipProps = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
4
- text: string;
5
- children: ReactNode;
6
- orientation?: "top" | "right" | "bottom" | "left";
7
- size?: "md" | "lg";
8
- };
9
- /**
10
- * Tooltip component - displays contextual information on hover with smart positioning
11
- *
12
- * @param props - Tooltip component properties
13
- * @param props.text - Text content to display in the tooltip
14
- * @param props.children - Element that triggers the tooltip on hover
15
- * @param props.orientation - Preferred tooltip position relative to trigger element. Default: "top"
16
- * @param props.size - Tooltip size variant. Default: "lg"
17
- *
18
- * **...Other valid HTML properties for div element**
19
- *
20
- * @returns Tooltip JSX element
21
- *
22
- * @example
23
- * ```tsx
24
- * // Basic tooltip
25
- * <Tooltip text="This is a helpful tip">
26
- * <button>Hover me</button>
27
- * </Tooltip>
28
- *
29
- * // Tooltip with different orientations
30
- * <Tooltip text="Left tooltip" orientation="left">
31
- * <span>Hover for left tooltip</span>
32
- * </Tooltip>
33
- *
34
- * <Tooltip text="Right tooltip" orientation="right">
35
- * <span>Hover for right tooltip</span>
36
- * </Tooltip>
37
- *
38
- * // Different sizes
39
- * <Tooltip text="Small tooltip" size="md">
40
- * <button>Small tooltip</button>
41
- * </Tooltip>
42
- *
43
- * <Tooltip text="Large tooltip" size="lg">
44
- * <button>Large tooltip</button>
45
- * </Tooltip>
46
- *
47
- * // Smart positioning - automatically adjusts if doesn't fit
48
- * <Tooltip text="This tooltip will auto-adjust position" orientation="left">
49
- * <button className="near-edge">Smart positioning</button>
50
- * </Tooltip>
51
- *
52
- * // Complete example with custom styling
53
- * <Tooltip
54
- * text="Save your changes before proceeding"
55
- * orientation="bottom"
56
- * size="lg"
57
- * className="custom-tooltip"
58
- * >
59
- * <IconButton icon={SaveIcon} />
60
- * </Tooltip>
61
- *
62
- * // Multiple tooltips on same page
63
- * <div className="toolbar">
64
- * <Tooltip text="Create new file" orientation="bottom">
65
- * <IconButton icon={PlusIcon} />
66
- * </Tooltip>
67
- *
68
- * <Tooltip text="Open existing file" orientation="bottom">
69
- * <IconButton icon={FolderIcon} />
70
- * </Tooltip>
71
- *
72
- * <Tooltip text="Delete selected file" orientation="bottom">
73
- * <IconButton icon={TrashIcon} />
74
- * </Tooltip>
75
- * </div>
76
- * ```
77
- */
78
- declare function Tooltip(props: TooltipProps): import("react/jsx-runtime").JSX.Element;
79
- export { Tooltip };
80
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/tooltip/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EAKV,MAAM,OAAO,CAAC;AACf,OAAO,cAAc,CAAC;AAEtB,KAAK,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,GAAG;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AAEH,iBAAS,OAAO,CAAC,KAAK,EAAE,YAAY,2CAkFnC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1,135 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useId, useRef, useState, } from "react";
3
- import "./styles.css";
4
- /**
5
- * Tooltip component - displays contextual information on hover with smart positioning
6
- *
7
- * @param props - Tooltip component properties
8
- * @param props.text - Text content to display in the tooltip
9
- * @param props.children - Element that triggers the tooltip on hover
10
- * @param props.orientation - Preferred tooltip position relative to trigger element. Default: "top"
11
- * @param props.size - Tooltip size variant. Default: "lg"
12
- *
13
- * **...Other valid HTML properties for div element**
14
- *
15
- * @returns Tooltip JSX element
16
- *
17
- * @example
18
- * ```tsx
19
- * // Basic tooltip
20
- * <Tooltip text="This is a helpful tip">
21
- * <button>Hover me</button>
22
- * </Tooltip>
23
- *
24
- * // Tooltip with different orientations
25
- * <Tooltip text="Left tooltip" orientation="left">
26
- * <span>Hover for left tooltip</span>
27
- * </Tooltip>
28
- *
29
- * <Tooltip text="Right tooltip" orientation="right">
30
- * <span>Hover for right tooltip</span>
31
- * </Tooltip>
32
- *
33
- * // Different sizes
34
- * <Tooltip text="Small tooltip" size="md">
35
- * <button>Small tooltip</button>
36
- * </Tooltip>
37
- *
38
- * <Tooltip text="Large tooltip" size="lg">
39
- * <button>Large tooltip</button>
40
- * </Tooltip>
41
- *
42
- * // Smart positioning - automatically adjusts if doesn't fit
43
- * <Tooltip text="This tooltip will auto-adjust position" orientation="left">
44
- * <button className="near-edge">Smart positioning</button>
45
- * </Tooltip>
46
- *
47
- * // Complete example with custom styling
48
- * <Tooltip
49
- * text="Save your changes before proceeding"
50
- * orientation="bottom"
51
- * size="lg"
52
- * className="custom-tooltip"
53
- * >
54
- * <IconButton icon={SaveIcon} />
55
- * </Tooltip>
56
- *
57
- * // Multiple tooltips on same page
58
- * <div className="toolbar">
59
- * <Tooltip text="Create new file" orientation="bottom">
60
- * <IconButton icon={PlusIcon} />
61
- * </Tooltip>
62
- *
63
- * <Tooltip text="Open existing file" orientation="bottom">
64
- * <IconButton icon={FolderIcon} />
65
- * </Tooltip>
66
- *
67
- * <Tooltip text="Delete selected file" orientation="bottom">
68
- * <IconButton icon={TrashIcon} />
69
- * </Tooltip>
70
- * </div>
71
- * ```
72
- */
73
- function Tooltip(props) {
74
- const { text, size = "lg", children, orientation = "top", className: baseClassName = "", ...rest } = props;
75
- const tooltipId = useId();
76
- const tooltipRef = useRef(null);
77
- const [adjustedOrientation, setAdjustedOrientation] = useState(orientation);
78
- useEffect(() => {
79
- const checkTooltipPosition = () => {
80
- if (!tooltipRef.current)
81
- return;
82
- const tooltipText = document.getElementById(tooltipId);
83
- if (!tooltipText)
84
- return;
85
- setAdjustedOrientation(orientation);
86
- requestAnimationFrame(() => {
87
- const rect = tooltipText.getBoundingClientRect();
88
- const viewportWidth = window.innerWidth;
89
- const viewportHeight = window.innerHeight;
90
- let newOrientation = orientation;
91
- if (orientation === "left" && rect.left < 0) {
92
- newOrientation = "right";
93
- }
94
- else if (orientation === "right" && rect.right > viewportWidth) {
95
- newOrientation = "left";
96
- }
97
- else if (orientation === "top" && rect.top < 0) {
98
- newOrientation = "bottom";
99
- }
100
- else if (orientation === "bottom" && rect.bottom > viewportHeight) {
101
- newOrientation = "top";
102
- }
103
- if (newOrientation === "right" && rect.right > viewportWidth) {
104
- newOrientation = "left";
105
- }
106
- else if (newOrientation === "left" && rect.left < 0) {
107
- newOrientation = "right";
108
- }
109
- else if (newOrientation === "bottom" &&
110
- rect.bottom > viewportHeight) {
111
- newOrientation = "top";
112
- }
113
- else if (newOrientation === "top" && rect.top < 0) {
114
- newOrientation = "bottom";
115
- }
116
- setAdjustedOrientation(newOrientation);
117
- });
118
- };
119
- const tooltip = tooltipRef.current;
120
- if (!tooltip)
121
- return;
122
- const handleMouseEnter = () => {
123
- setTimeout(checkTooltipPosition, 1);
124
- };
125
- tooltip.addEventListener("mouseenter", handleMouseEnter);
126
- window.addEventListener("resize", checkTooltipPosition);
127
- return () => {
128
- tooltip.removeEventListener("mouseenter", handleMouseEnter);
129
- window.removeEventListener("resize", checkTooltipPosition);
130
- };
131
- }, [orientation, tooltipId]);
132
- const className = `arkynTooltip ${size} ${adjustedOrientation} ${baseClassName}`;
133
- return (_jsxs("div", { className: className.trim(), ...rest, ref: tooltipRef, children: [children, _jsx("div", { className: "arkynTooltipText", id: tooltipId, children: text })] }));
134
- }
135
- export { Tooltip };
@@ -1,52 +0,0 @@
1
- /**
2
- * useForm hook - provides access to form context data including field errors
3
- *
4
- * @returns Form context object containing:
5
- * - `fieldErrors`: Object with field validation errors indexed by field name
6
- *
7
- * @example
8
- * ```tsx
9
- * // Basic usage in a component
10
- * function MyComponent() {
11
- * const { fieldErrors } = useForm();
12
- *
13
- * return (
14
- * <Input
15
- * name="email"
16
- * errorMessage={fieldErrors?.email}
17
- * />
18
- * );
19
- * }
20
- *
21
- * // Usage with FormProvider
22
- * function App() {
23
- * const errors = { email: "Invalid email format" };
24
- *
25
- * return (
26
- * <FormProvider fieldErrors={errors}>
27
- * <MyForm />
28
- * </FormProvider>
29
- * );
30
- * }
31
- *
32
- * // Checking for specific field errors
33
- * function FormField() {
34
- * const { fieldErrors } = useForm();
35
- * const hasError = !!fieldErrors?.username;
36
- *
37
- * return (
38
- * <div>
39
- * <Input name="username" />
40
- * {hasError && <span>Error: {fieldErrors.username}</span>}
41
- * </div>
42
- * );
43
- * }
44
- * ```
45
- */
46
- declare function useForm(): {
47
- fieldErrors: {
48
- [x: string]: any;
49
- };
50
- };
51
- export { useForm };
52
- //# sourceMappingURL=useForm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../../src/hooks/useForm.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,iBAAS,OAAO;;;;EAGf;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1,52 +0,0 @@
1
- import { useContext } from "react";
2
- import { formContext } from "../providers/formProvider";
3
- /**
4
- * useForm hook - provides access to form context data including field errors
5
- *
6
- * @returns Form context object containing:
7
- * - `fieldErrors`: Object with field validation errors indexed by field name
8
- *
9
- * @example
10
- * ```tsx
11
- * // Basic usage in a component
12
- * function MyComponent() {
13
- * const { fieldErrors } = useForm();
14
- *
15
- * return (
16
- * <Input
17
- * name="email"
18
- * errorMessage={fieldErrors?.email}
19
- * />
20
- * );
21
- * }
22
- *
23
- * // Usage with FormProvider
24
- * function App() {
25
- * const errors = { email: "Invalid email format" };
26
- *
27
- * return (
28
- * <FormProvider fieldErrors={errors}>
29
- * <MyForm />
30
- * </FormProvider>
31
- * );
32
- * }
33
- *
34
- * // Checking for specific field errors
35
- * function FormField() {
36
- * const { fieldErrors } = useForm();
37
- * const hasError = !!fieldErrors?.username;
38
- *
39
- * return (
40
- * <div>
41
- * <Input name="username" />
42
- * {hasError && <span>Error: {fieldErrors.username}</span>}
43
- * </div>
44
- * );
45
- * }
46
- * ```
47
- */
48
- function useForm() {
49
- const context = useContext(formContext);
50
- return context;
51
- }
52
- export { useForm };
@@ -1,89 +0,0 @@
1
- type ParamsType = Record<string, string | number | boolean | undefined>;
2
- /**
3
- * Utility function to manage URL search parameters with optional scoping.
4
- * Provides functionality to get parameters and generate updated search strings
5
- * while maintaining existing parameters.
6
- *
7
- * @param searchString - The current URL search parameters string (e.g., "page=1&filter=active")
8
- * @param scope - Optional scope prefix for parameters. When provided, parameters will be prefixed with "scope:". Default: ""
9
- *
10
- * @returns Object containing parameter management functions:
11
- * @returns getParam - Function to get a parameter value by key (considers scope if provided)
12
- * @returns getScopedSearch - Function to generate search string with updated parameters while preserving existing ones
13
- *
14
- * @example
15
- * ```tsx
16
- * // Basic usage without scope
17
- * const searchString = "page=1&filter=active";
18
- * const { getParam, getScopedSearch } = useScopedParams(searchString);
19
- *
20
- * // Get a parameter value
21
- * const page = getParam('page'); // Returns "1"
22
- * const filter = getParam('filter'); // Returns "active"
23
- *
24
- * // Generate search string with new/updated parameters
25
- * const newSearch = getScopedSearch({ page: 2, sort: 'name' });
26
- * // Result: "?page=2&filter=active&sort=name"
27
- * ```
28
- *
29
- * @example
30
- * ```tsx
31
- * // Usage with scope
32
- * const searchString = "filters:status=active&filters:category=tech&page=1";
33
- * const { getParam, getScopedSearch } = useScopedParams(searchString, 'filters');
34
- *
35
- * // Get a scoped parameter value
36
- * const status = getParam('status'); // Gets 'filters:status' from URL, returns "active"
37
- * const category = getParam('category'); // Gets 'filters:category' from URL, returns "tech"
38
- *
39
- * // Generate search string with scoped parameters
40
- * const newSearch = getScopedSearch({
41
- * status: 'inactive',
42
- * category: 'sports',
43
- * price: 100,
44
- * discount: undefined // This will remove 'filters:discount' from URL if it exists
45
- * });
46
- * // Result: "?filters:status=inactive&filters:category=sports&filters:price=100&page=1"
47
- * ```
48
- *
49
- * @example
50
- * ```tsx
51
- * // Real-world usage with React Router
52
- * import { useLocation, useNavigate } from 'react-router-dom';
53
- *
54
- * function ProductFilter() {
55
- * const location = useLocation();
56
- * const navigate = useNavigate();
57
- * const { getParam, getScopedSearch } = useScopedParams(location.search, 'product');
58
- *
59
- * const handleFilterChange = (newFilters: Record<string, any>) => {
60
- * const searchString = getScopedSearch(newFilters);
61
- * navigate({ search: searchString });
62
- * };
63
- *
64
- * const currentCategory = getParam('category');
65
- * const currentPrice = getParam('price');
66
- *
67
- * return (
68
- * <div>
69
- * <p>Current category: {currentCategory || 'All'}</p>
70
- * <p>Current price filter: {currentPrice || 'None'}</p>
71
- *
72
- * <button onClick={() => handleFilterChange({ category: 'electronics' })}>
73
- * Electronics
74
- * </button>
75
- *
76
- * <button onClick={() => handleFilterChange({ category: undefined, price: undefined })}>
77
- * Clear Filters
78
- * </button>
79
- * </div>
80
- * );
81
- * }
82
- * ```
83
- */
84
- declare function useScopedParams(searchString: string, scope?: string): {
85
- getParam: (key: string) => string;
86
- getScopedSearch: (params: ParamsType) => string;
87
- };
88
- export { useScopedParams };
89
- //# sourceMappingURL=useScopedParams.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useScopedParams.d.ts","sourceRoot":"","sources":["../../../src/hooks/useScopedParams.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiFG;AAEH,iBAAS,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW;oBAe7C,MAAM;8BACI,UAAU;EAOvC;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1,107 +0,0 @@
1
- /**
2
- * Utility function to manage URL search parameters with optional scoping.
3
- * Provides functionality to get parameters and generate updated search strings
4
- * while maintaining existing parameters.
5
- *
6
- * @param searchString - The current URL search parameters string (e.g., "page=1&filter=active")
7
- * @param scope - Optional scope prefix for parameters. When provided, parameters will be prefixed with "scope:". Default: ""
8
- *
9
- * @returns Object containing parameter management functions:
10
- * @returns getParam - Function to get a parameter value by key (considers scope if provided)
11
- * @returns getScopedSearch - Function to generate search string with updated parameters while preserving existing ones
12
- *
13
- * @example
14
- * ```tsx
15
- * // Basic usage without scope
16
- * const searchString = "page=1&filter=active";
17
- * const { getParam, getScopedSearch } = useScopedParams(searchString);
18
- *
19
- * // Get a parameter value
20
- * const page = getParam('page'); // Returns "1"
21
- * const filter = getParam('filter'); // Returns "active"
22
- *
23
- * // Generate search string with new/updated parameters
24
- * const newSearch = getScopedSearch({ page: 2, sort: 'name' });
25
- * // Result: "?page=2&filter=active&sort=name"
26
- * ```
27
- *
28
- * @example
29
- * ```tsx
30
- * // Usage with scope
31
- * const searchString = "filters:status=active&filters:category=tech&page=1";
32
- * const { getParam, getScopedSearch } = useScopedParams(searchString, 'filters');
33
- *
34
- * // Get a scoped parameter value
35
- * const status = getParam('status'); // Gets 'filters:status' from URL, returns "active"
36
- * const category = getParam('category'); // Gets 'filters:category' from URL, returns "tech"
37
- *
38
- * // Generate search string with scoped parameters
39
- * const newSearch = getScopedSearch({
40
- * status: 'inactive',
41
- * category: 'sports',
42
- * price: 100,
43
- * discount: undefined // This will remove 'filters:discount' from URL if it exists
44
- * });
45
- * // Result: "?filters:status=inactive&filters:category=sports&filters:price=100&page=1"
46
- * ```
47
- *
48
- * @example
49
- * ```tsx
50
- * // Real-world usage with React Router
51
- * import { useLocation, useNavigate } from 'react-router-dom';
52
- *
53
- * function ProductFilter() {
54
- * const location = useLocation();
55
- * const navigate = useNavigate();
56
- * const { getParam, getScopedSearch } = useScopedParams(location.search, 'product');
57
- *
58
- * const handleFilterChange = (newFilters: Record<string, any>) => {
59
- * const searchString = getScopedSearch(newFilters);
60
- * navigate({ search: searchString });
61
- * };
62
- *
63
- * const currentCategory = getParam('category');
64
- * const currentPrice = getParam('price');
65
- *
66
- * return (
67
- * <div>
68
- * <p>Current category: {currentCategory || 'All'}</p>
69
- * <p>Current price filter: {currentPrice || 'None'}</p>
70
- *
71
- * <button onClick={() => handleFilterChange({ category: 'electronics' })}>
72
- * Electronics
73
- * </button>
74
- *
75
- * <button onClick={() => handleFilterChange({ category: undefined, price: undefined })}>
76
- * Clear Filters
77
- * </button>
78
- * </div>
79
- * );
80
- * }
81
- * ```
82
- */
83
- function useScopedParams(searchString, scope = "") {
84
- const searchParams = new URLSearchParams(searchString);
85
- const prefix = scope ? `${scope}:` : "";
86
- const updateSearchParams = (params) => {
87
- Object.entries(params).forEach(([key, value]) => {
88
- if (value === undefined) {
89
- searchParams.delete(`${prefix}${key}`);
90
- }
91
- else {
92
- searchParams.set(`${prefix}${key}`, String(value));
93
- }
94
- });
95
- };
96
- return {
97
- getParam: (key) => searchParams.get(`${prefix}${key}`),
98
- getScopedSearch: (params) => {
99
- updateSearchParams(params);
100
- let search = searchParams.toString();
101
- if (search)
102
- search = "?" + search;
103
- return search;
104
- },
105
- };
106
- }
107
- export { useScopedParams };