@codeleap/web 6.3.0 → 7.0.0

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 (900) hide show
  1. package/dist/components/ActivityIndicator/index.d.ts +6 -2
  2. package/dist/components/ActivityIndicator/index.d.ts.map +1 -0
  3. package/dist/components/ActivityIndicator/styles.d.ts +1 -0
  4. package/dist/components/ActivityIndicator/styles.d.ts.map +1 -0
  5. package/dist/components/ActivityIndicator/types.d.ts +13 -2
  6. package/dist/components/ActivityIndicator/types.d.ts.map +1 -0
  7. package/dist/components/Badge/index.d.ts +8 -1
  8. package/dist/components/Badge/index.d.ts.map +1 -0
  9. package/dist/components/Badge/styles.d.ts +1 -0
  10. package/dist/components/Badge/styles.d.ts.map +1 -0
  11. package/dist/components/Badge/types.d.ts +17 -2
  12. package/dist/components/Badge/types.d.ts.map +1 -0
  13. package/dist/components/Button/index.d.ts +12 -9
  14. package/dist/components/Button/index.d.ts.map +1 -0
  15. package/dist/components/Button/styles.d.ts +7 -4
  16. package/dist/components/Button/styles.d.ts.map +1 -0
  17. package/dist/components/Button/types.d.ts +9 -5
  18. package/dist/components/Button/types.d.ts.map +1 -0
  19. package/dist/components/Calendar/index.d.ts +18 -0
  20. package/dist/components/Calendar/index.d.ts.map +1 -0
  21. package/dist/components/Calendar/styles.d.ts +3 -0
  22. package/dist/components/Calendar/styles.d.ts.map +1 -0
  23. package/dist/components/Calendar/types.d.ts +20 -0
  24. package/dist/components/Calendar/types.d.ts.map +1 -0
  25. package/dist/components/Carousel/index.d.ts +6 -0
  26. package/dist/components/Carousel/index.d.ts.map +1 -0
  27. package/dist/components/Carousel/styles.d.ts +1 -0
  28. package/dist/components/Carousel/styles.d.ts.map +1 -0
  29. package/dist/components/Carousel/types.d.ts +14 -2
  30. package/dist/components/Carousel/types.d.ts.map +1 -0
  31. package/dist/components/Checkbox/index.d.ts +6 -2
  32. package/dist/components/Checkbox/index.d.ts.map +1 -0
  33. package/dist/components/Checkbox/styles.d.ts +4 -6
  34. package/dist/components/Checkbox/styles.d.ts.map +1 -0
  35. package/dist/components/Checkbox/types.d.ts +20 -5
  36. package/dist/components/Checkbox/types.d.ts.map +1 -0
  37. package/dist/components/Collapse/index.d.ts +5 -0
  38. package/dist/components/Collapse/index.d.ts.map +1 -0
  39. package/dist/components/Collapse/styles.d.ts +1 -0
  40. package/dist/components/Collapse/styles.d.ts.map +1 -0
  41. package/dist/components/Collapse/types.d.ts +6 -2
  42. package/dist/components/Collapse/types.d.ts.map +1 -0
  43. package/dist/components/ColorPicker/index.d.ts +6 -0
  44. package/dist/components/ColorPicker/index.d.ts.map +1 -0
  45. package/dist/components/ColorPicker/styles.d.ts +1 -0
  46. package/dist/components/ColorPicker/styles.d.ts.map +1 -0
  47. package/dist/components/ColorPicker/types.d.ts +17 -4
  48. package/dist/components/ColorPicker/types.d.ts.map +1 -0
  49. package/dist/components/CropPicker/hooks.d.ts +12 -2
  50. package/dist/components/CropPicker/hooks.d.ts.map +1 -0
  51. package/dist/components/CropPicker/index.d.ts +6 -2
  52. package/dist/components/CropPicker/index.d.ts.map +1 -0
  53. package/dist/components/CropPicker/styles.d.ts +2 -2
  54. package/dist/components/CropPicker/styles.d.ts.map +1 -0
  55. package/dist/components/CropPicker/types.d.ts +8 -4
  56. package/dist/components/CropPicker/types.d.ts.map +1 -0
  57. package/dist/components/CropPicker/utils.d.ts +10 -0
  58. package/dist/components/CropPicker/utils.d.ts.map +1 -0
  59. package/dist/components/DatePicker/index.d.ts +7 -2
  60. package/dist/components/DatePicker/index.d.ts.map +1 -0
  61. package/dist/components/DatePicker/styles.d.ts +3 -6
  62. package/dist/components/DatePicker/styles.d.ts.map +1 -0
  63. package/dist/components/DatePicker/types.d.ts +46 -50
  64. package/dist/components/DatePicker/types.d.ts.map +1 -0
  65. package/dist/components/Drawer/index.d.ts +7 -1
  66. package/dist/components/Drawer/index.d.ts.map +1 -0
  67. package/dist/components/Drawer/styles.d.ts +2 -2
  68. package/dist/components/Drawer/styles.d.ts.map +1 -0
  69. package/dist/components/Drawer/types.d.ts +8 -17
  70. package/dist/components/Drawer/types.d.ts.map +1 -0
  71. package/dist/components/Dropzone/context.d.ts +17 -0
  72. package/dist/components/Dropzone/context.d.ts.map +1 -0
  73. package/dist/components/Dropzone/elements.d.ts +32 -0
  74. package/dist/components/Dropzone/elements.d.ts.map +1 -0
  75. package/dist/components/Dropzone/index.d.ts +21 -0
  76. package/dist/components/Dropzone/index.d.ts.map +1 -0
  77. package/dist/components/Dropzone/styles.d.ts +3 -2
  78. package/dist/components/Dropzone/styles.d.ts.map +1 -0
  79. package/dist/components/Dropzone/types.d.ts +69 -33
  80. package/dist/components/Dropzone/types.d.ts.map +1 -0
  81. package/dist/components/Dropzone/useDropzone.d.ts +14 -0
  82. package/dist/components/Dropzone/useDropzone.d.ts.map +1 -0
  83. package/dist/components/EmptyPlaceholder/index.d.ts +6 -0
  84. package/dist/components/EmptyPlaceholder/index.d.ts.map +1 -0
  85. package/dist/components/EmptyPlaceholder/styles.d.ts +1 -0
  86. package/dist/components/EmptyPlaceholder/styles.d.ts.map +1 -0
  87. package/dist/components/EmptyPlaceholder/types.d.ts +12 -2
  88. package/dist/components/EmptyPlaceholder/types.d.ts.map +1 -0
  89. package/dist/components/Field/context.d.ts +26 -0
  90. package/dist/components/Field/context.d.ts.map +1 -0
  91. package/dist/components/Field/elements.d.ts +63 -0
  92. package/dist/components/Field/elements.d.ts.map +1 -0
  93. package/dist/components/Field/index.d.ts +66 -0
  94. package/dist/components/Field/index.d.ts.map +1 -0
  95. package/dist/components/Field/styles.d.ts +15 -0
  96. package/dist/components/Field/styles.d.ts.map +1 -0
  97. package/dist/components/Field/types.d.ts +46 -0
  98. package/dist/components/Field/types.d.ts.map +1 -0
  99. package/dist/components/{InputBase/useInputBase.d.ts → Field/useFieldInput.d.ts} +17 -6
  100. package/dist/components/Field/useFieldInput.d.ts.map +1 -0
  101. package/dist/components/FileInput/index.d.ts +6 -0
  102. package/dist/components/FileInput/index.d.ts.map +1 -0
  103. package/dist/components/FileInput/types.d.ts +8 -0
  104. package/dist/components/FileInput/types.d.ts.map +1 -0
  105. package/dist/components/Icon/index.d.ts +8 -1
  106. package/dist/components/Icon/index.d.ts.map +1 -0
  107. package/dist/components/Icon/styles.d.ts +1 -0
  108. package/dist/components/Icon/styles.d.ts.map +1 -0
  109. package/dist/components/Icon/types.d.ts +13 -3
  110. package/dist/components/Icon/types.d.ts.map +1 -0
  111. package/dist/components/List/context.d.ts +44 -0
  112. package/dist/components/List/context.d.ts.map +1 -0
  113. package/dist/components/List/elements.d.ts +29 -0
  114. package/dist/components/List/elements.d.ts.map +1 -0
  115. package/dist/components/List/index.d.ts +18 -2
  116. package/dist/components/List/index.d.ts.map +1 -0
  117. package/dist/components/List/scroll.d.ts +14 -0
  118. package/dist/components/List/scroll.d.ts.map +1 -0
  119. package/dist/components/List/styles.d.ts +2 -1
  120. package/dist/components/List/styles.d.ts.map +1 -0
  121. package/dist/components/List/types.d.ts +73 -13
  122. package/dist/components/List/types.d.ts.map +1 -0
  123. package/dist/components/LoadingOverlay/index.d.ts +7 -0
  124. package/dist/components/LoadingOverlay/index.d.ts.map +1 -0
  125. package/dist/components/LoadingOverlay/styles.d.ts +1 -0
  126. package/dist/components/LoadingOverlay/styles.d.ts.map +1 -0
  127. package/dist/components/LoadingOverlay/types.d.ts +8 -2
  128. package/dist/components/LoadingOverlay/types.d.ts.map +1 -0
  129. package/dist/components/MaskedTextInput/index.d.ts +7 -5
  130. package/dist/components/MaskedTextInput/index.d.ts.map +1 -0
  131. package/dist/components/MaskedTextInput/mask.d.ts +1 -0
  132. package/dist/components/MaskedTextInput/mask.d.ts.map +1 -0
  133. package/dist/components/MaskedTextInput/types.d.ts +12 -0
  134. package/dist/components/MaskedTextInput/types.d.ts.map +1 -0
  135. package/dist/components/Modal/context.d.ts +59 -0
  136. package/dist/components/Modal/context.d.ts.map +1 -0
  137. package/dist/components/Modal/elements.d.ts +38 -0
  138. package/dist/components/Modal/elements.d.ts.map +1 -0
  139. package/dist/components/Modal/index.d.ts +19 -2
  140. package/dist/components/Modal/index.d.ts.map +1 -0
  141. package/dist/components/Modal/styles.d.ts +3 -4
  142. package/dist/components/Modal/styles.d.ts.map +1 -0
  143. package/dist/components/Modal/types.d.ts +21 -36
  144. package/dist/components/Modal/types.d.ts.map +1 -0
  145. package/dist/components/NumberIncrement/index.d.ts +6 -2
  146. package/dist/components/NumberIncrement/index.d.ts.map +1 -0
  147. package/dist/components/NumberIncrement/styles.d.ts +4 -4
  148. package/dist/components/NumberIncrement/styles.d.ts.map +1 -0
  149. package/dist/components/NumberIncrement/types.d.ts +16 -4
  150. package/dist/components/NumberIncrement/types.d.ts.map +1 -0
  151. package/dist/components/NumberIncrement/useNumberIncrement.d.ts +10 -4
  152. package/dist/components/NumberIncrement/useNumberIncrement.d.ts.map +1 -0
  153. package/dist/components/Overlay/index.d.ts +7 -0
  154. package/dist/components/Overlay/index.d.ts.map +1 -0
  155. package/dist/components/Overlay/styles.d.ts +1 -0
  156. package/dist/components/Overlay/styles.d.ts.map +1 -0
  157. package/dist/components/Overlay/types.d.ts +8 -2
  158. package/dist/components/Overlay/types.d.ts.map +1 -0
  159. package/dist/components/PaginationButtons/index.d.ts +6 -0
  160. package/dist/components/PaginationButtons/index.d.ts.map +1 -0
  161. package/dist/components/PaginationButtons/styles.d.ts +1 -0
  162. package/dist/components/PaginationButtons/styles.d.ts.map +1 -0
  163. package/dist/components/PaginationButtons/types.d.ts +12 -2
  164. package/dist/components/PaginationButtons/types.d.ts.map +1 -0
  165. package/dist/components/PaginationIndicator/index.d.ts +6 -1
  166. package/dist/components/PaginationIndicator/index.d.ts.map +1 -0
  167. package/dist/components/PaginationIndicator/styles.d.ts +1 -0
  168. package/dist/components/PaginationIndicator/styles.d.ts.map +1 -0
  169. package/dist/components/PaginationIndicator/types.d.ts +11 -2
  170. package/dist/components/PaginationIndicator/types.d.ts.map +1 -0
  171. package/dist/components/Progress/Bar/Segmented.d.ts +16 -0
  172. package/dist/components/Progress/Bar/Segmented.d.ts.map +1 -0
  173. package/dist/components/Progress/Bar/index.d.ts +14 -0
  174. package/dist/components/Progress/Bar/index.d.ts.map +1 -0
  175. package/dist/components/Progress/Bar/styles.d.ts +3 -1
  176. package/dist/components/Progress/Bar/styles.d.ts.map +1 -0
  177. package/dist/components/Progress/Bar/types.d.ts +36 -6
  178. package/dist/components/Progress/Bar/types.d.ts.map +1 -0
  179. package/dist/components/Progress/Circle/Segmented.d.ts +16 -0
  180. package/dist/components/Progress/Circle/Segmented.d.ts.map +1 -0
  181. package/dist/components/Progress/Circle/index.d.ts +15 -0
  182. package/dist/components/Progress/Circle/index.d.ts.map +1 -0
  183. package/dist/components/Progress/Circle/styles.d.ts +3 -1
  184. package/dist/components/Progress/Circle/styles.d.ts.map +1 -0
  185. package/dist/components/Progress/Circle/types.d.ts +47 -7
  186. package/dist/components/Progress/Circle/types.d.ts.map +1 -0
  187. package/dist/components/Progress/index.d.ts +2 -0
  188. package/dist/components/Progress/index.d.ts.map +1 -0
  189. package/dist/components/Progress/utils.d.ts +1 -0
  190. package/dist/components/Progress/utils.d.ts.map +1 -0
  191. package/dist/components/RadioInput/index.d.ts +6 -2
  192. package/dist/components/RadioInput/index.d.ts.map +1 -0
  193. package/dist/components/RadioInput/styles.d.ts +4 -5
  194. package/dist/components/RadioInput/styles.d.ts.map +1 -0
  195. package/dist/components/RadioInput/types.d.ts +16 -7
  196. package/dist/components/RadioInput/types.d.ts.map +1 -0
  197. package/dist/components/SearchInput/index.d.ts +17 -0
  198. package/dist/components/SearchInput/index.d.ts.map +1 -0
  199. package/dist/components/SectionFilters/index.d.ts +8 -1
  200. package/dist/components/SectionFilters/index.d.ts.map +1 -0
  201. package/dist/components/SectionFilters/styles.d.ts +1 -0
  202. package/dist/components/SectionFilters/styles.d.ts.map +1 -0
  203. package/dist/components/SectionFilters/types.d.ts +28 -5
  204. package/dist/components/SectionFilters/types.d.ts.map +1 -0
  205. package/dist/components/Select/context.d.ts +61 -0
  206. package/dist/components/Select/context.d.ts.map +1 -0
  207. package/dist/components/Select/elements.d.ts +26 -0
  208. package/dist/components/Select/elements.d.ts.map +1 -0
  209. package/dist/components/Select/index.d.ts +71 -3
  210. package/dist/components/Select/index.d.ts.map +1 -0
  211. package/dist/components/Select/styles.d.ts +4 -51
  212. package/dist/components/Select/styles.d.ts.map +1 -0
  213. package/dist/components/Select/types.d.ts +79 -101
  214. package/dist/components/Select/types.d.ts.map +1 -0
  215. package/dist/components/Select/useTriggerWidth.d.ts +8 -0
  216. package/dist/components/Select/useTriggerWidth.d.ts.map +1 -0
  217. package/dist/components/Slider/index.d.ts +6 -2
  218. package/dist/components/Slider/index.d.ts.map +1 -0
  219. package/dist/components/Slider/styles.d.ts +4 -4
  220. package/dist/components/Slider/styles.d.ts.map +1 -0
  221. package/dist/components/Slider/types.d.ts +18 -4
  222. package/dist/components/Slider/types.d.ts.map +1 -0
  223. package/dist/components/Switch/index.d.ts +6 -2
  224. package/dist/components/Switch/index.d.ts.map +1 -0
  225. package/dist/components/Switch/styles.d.ts +4 -6
  226. package/dist/components/Switch/styles.d.ts.map +1 -0
  227. package/dist/components/Switch/types.d.ts +20 -5
  228. package/dist/components/Switch/types.d.ts.map +1 -0
  229. package/dist/components/Tag/index.d.ts +6 -0
  230. package/dist/components/Tag/index.d.ts.map +1 -0
  231. package/dist/components/Tag/styles.d.ts +1 -0
  232. package/dist/components/Tag/styles.d.ts.map +1 -0
  233. package/dist/components/Tag/types.d.ts +15 -2
  234. package/dist/components/Tag/types.d.ts.map +1 -0
  235. package/dist/components/Text/index.d.ts +8 -0
  236. package/dist/components/Text/index.d.ts.map +1 -0
  237. package/dist/components/Text/styles.d.ts +2 -1
  238. package/dist/components/Text/styles.d.ts.map +1 -0
  239. package/dist/components/Text/types.d.ts +18 -2
  240. package/dist/components/Text/types.d.ts.map +1 -0
  241. package/dist/components/TextEditor/index.d.ts +7 -1
  242. package/dist/components/TextEditor/index.d.ts.map +1 -0
  243. package/dist/components/TextEditor/styles.d.ts +1 -0
  244. package/dist/components/TextEditor/styles.d.ts.map +1 -0
  245. package/dist/components/TextEditor/types.d.ts +10 -2
  246. package/dist/components/TextEditor/types.d.ts.map +1 -0
  247. package/dist/components/TextInput/index.d.ts +6 -0
  248. package/dist/components/TextInput/index.d.ts.map +1 -0
  249. package/dist/components/TextInput/styles.d.ts +4 -6
  250. package/dist/components/TextInput/styles.d.ts.map +1 -0
  251. package/dist/components/TextInput/types.d.ts +20 -11
  252. package/dist/components/TextInput/types.d.ts.map +1 -0
  253. package/dist/components/TextInput/useTextInput.d.ts +22 -14
  254. package/dist/components/TextInput/useTextInput.d.ts.map +1 -0
  255. package/dist/components/Tooltip/index.d.ts +6 -0
  256. package/dist/components/Tooltip/index.d.ts.map +1 -0
  257. package/dist/components/Tooltip/styles.d.ts +1 -0
  258. package/dist/components/Tooltip/styles.d.ts.map +1 -0
  259. package/dist/components/Tooltip/types.d.ts +12 -2
  260. package/dist/components/Tooltip/types.d.ts.map +1 -0
  261. package/dist/components/Touchable/index.d.ts +13 -9
  262. package/dist/components/Touchable/index.d.ts.map +1 -0
  263. package/dist/components/Touchable/styles.d.ts +1 -0
  264. package/dist/components/Touchable/styles.d.ts.map +1 -0
  265. package/dist/components/Touchable/types.d.ts +14 -3
  266. package/dist/components/Touchable/types.d.ts.map +1 -0
  267. package/dist/components/View/index.d.ts +13 -9
  268. package/dist/components/View/index.d.ts.map +1 -0
  269. package/dist/components/View/styles.d.ts +1 -0
  270. package/dist/components/View/styles.d.ts.map +1 -0
  271. package/dist/components/View/types.d.ts +15 -2
  272. package/dist/components/View/types.d.ts.map +1 -0
  273. package/dist/components/components.d.ts +3 -4
  274. package/dist/components/components.d.ts.map +1 -0
  275. package/dist/index.d.ts +1 -0
  276. package/dist/index.d.ts.map +1 -0
  277. package/dist/lib/ListMasonry.d.ts +1 -0
  278. package/dist/lib/ListMasonry.d.ts.map +1 -0
  279. package/dist/lib/ThemeVariables.d.ts +10 -0
  280. package/dist/lib/ThemeVariables.d.ts.map +1 -0
  281. package/dist/lib/WebStyleRegistry.d.ts +21 -0
  282. package/dist/lib/WebStyleRegistry.d.ts.map +1 -0
  283. package/dist/lib/hooks/index.d.ts +4 -0
  284. package/dist/lib/hooks/index.d.ts.map +1 -0
  285. package/dist/lib/hooks/useAnimatedStyle.d.ts +8 -0
  286. package/dist/lib/hooks/useAnimatedStyle.d.ts.map +1 -0
  287. package/dist/lib/hooks/useAnimatedVariantStyles.d.ts +7 -0
  288. package/dist/lib/hooks/useAnimatedVariantStyles.d.ts.map +1 -0
  289. package/dist/lib/hooks/useAsyncSelect.d.ts +71 -0
  290. package/dist/lib/hooks/useAsyncSelect.d.ts.map +1 -0
  291. package/dist/lib/hooks/useBreakpointMatch.d.ts +12 -0
  292. package/dist/lib/hooks/useBreakpointMatch.d.ts.map +1 -0
  293. package/dist/lib/hooks/useClick.d.ts +7 -0
  294. package/dist/lib/hooks/useClick.d.ts.map +1 -0
  295. package/dist/lib/hooks/useClickOutside.d.ts +10 -1
  296. package/dist/lib/hooks/useClickOutside.d.ts.map +1 -0
  297. package/dist/lib/hooks/useFileInput.d.ts +8 -2
  298. package/dist/lib/hooks/useFileInput.d.ts.map +1 -0
  299. package/dist/lib/hooks/useIsomorphicEffect.d.ts +5 -0
  300. package/dist/lib/hooks/useIsomorphicEffect.d.ts.map +1 -0
  301. package/dist/lib/hooks/useKeydown.d.ts +9 -0
  302. package/dist/lib/hooks/useKeydown.d.ts.map +1 -0
  303. package/dist/lib/hooks/useListFocus.d.ts +19 -0
  304. package/dist/lib/hooks/useListFocus.d.ts.map +1 -0
  305. package/dist/lib/hooks/useMediaQuery.d.ts +8 -0
  306. package/dist/lib/hooks/useMediaQuery.d.ts.map +1 -0
  307. package/dist/lib/hooks/usePageExitBlocker.d.ts +11 -0
  308. package/dist/lib/hooks/usePageExitBlocker.d.ts.map +1 -0
  309. package/dist/lib/hooks/usePagination.d.ts +20 -5
  310. package/dist/lib/hooks/usePagination.d.ts.map +1 -0
  311. package/dist/lib/hooks/usePopState.d.ts +12 -0
  312. package/dist/lib/hooks/usePopState.d.ts.map +1 -0
  313. package/dist/lib/hooks/usePopoverDismiss.d.ts +20 -0
  314. package/dist/lib/hooks/usePopoverDismiss.d.ts.map +1 -0
  315. package/dist/lib/hooks/useRefresh.d.ts +12 -2
  316. package/dist/lib/hooks/useRefresh.d.ts.map +1 -0
  317. package/dist/lib/hooks/useScrollEffect.d.ts +7 -1
  318. package/dist/lib/hooks/useScrollEffect.d.ts.map +1 -0
  319. package/dist/lib/hooks/useSearchParams.d.ts +14 -0
  320. package/dist/lib/hooks/useSearchParams.d.ts.map +1 -0
  321. package/dist/lib/hooks/useStaticAnimationStyles.d.ts +7 -0
  322. package/dist/lib/hooks/useStaticAnimationStyles.d.ts.map +1 -0
  323. package/dist/lib/hooks/useStylesFor.d.ts +12 -2
  324. package/dist/lib/hooks/useStylesFor.d.ts.map +1 -0
  325. package/dist/lib/hooks/useTouchableEvents.d.ts +19 -0
  326. package/dist/lib/hooks/useTouchableEvents.d.ts.map +1 -0
  327. package/dist/lib/hooks/useWindowFocus.d.ts +6 -0
  328. package/dist/lib/hooks/useWindowFocus.d.ts.map +1 -0
  329. package/dist/lib/hooks/useWindowSize.d.ts +8 -1
  330. package/dist/lib/hooks/useWindowSize.d.ts.map +1 -0
  331. package/dist/lib/index.d.ts +2 -0
  332. package/dist/lib/index.d.ts.map +1 -0
  333. package/dist/lib/tools/index.d.ts +1 -0
  334. package/dist/lib/tools/index.d.ts.map +1 -0
  335. package/dist/lib/tools/localStorage.d.ts +13 -0
  336. package/dist/lib/tools/localStorage.d.ts.map +1 -0
  337. package/dist/lib/tools/mediaQuery.d.ts +10 -3
  338. package/dist/lib/tools/mediaQuery.d.ts.map +1 -0
  339. package/dist/lib/tools/modal.d.ts +12 -0
  340. package/dist/lib/tools/modal.d.ts.map +1 -0
  341. package/dist/lib/utils/attributes.d.ts +15 -0
  342. package/dist/lib/utils/attributes.d.ts.map +1 -0
  343. package/dist/lib/utils/cache.d.ts +5 -2
  344. package/dist/lib/utils/cache.d.ts.map +1 -0
  345. package/dist/lib/utils/index.d.ts +2 -0
  346. package/dist/lib/utils/index.d.ts.map +1 -0
  347. package/dist/lib/utils/pollyfils/scroll.d.ts +7 -0
  348. package/dist/lib/utils/pollyfils/scroll.d.ts.map +1 -0
  349. package/dist/lib/utils/stopPropagation.d.ts +6 -0
  350. package/dist/lib/utils/stopPropagation.d.ts.map +1 -0
  351. package/dist/lib/utils/test.d.ts +6 -0
  352. package/dist/lib/utils/test.d.ts.map +1 -0
  353. package/dist/types/index.d.ts +1 -0
  354. package/dist/types/index.d.ts.map +1 -0
  355. package/dist/types/utility.d.ts +19 -0
  356. package/dist/types/utility.d.ts.map +1 -0
  357. package/package.json +37 -23
  358. package/src/components/ActivityIndicator/index.tsx +8 -12
  359. package/src/components/ActivityIndicator/types.ts +12 -2
  360. package/src/components/Badge/index.tsx +8 -2
  361. package/src/components/Badge/types.ts +16 -2
  362. package/src/components/Button/index.tsx +28 -14
  363. package/src/components/Button/styles.ts +8 -4
  364. package/src/components/Button/types.ts +11 -5
  365. package/src/components/Calendar/index.tsx +121 -0
  366. package/src/components/Calendar/styles.ts +14 -0
  367. package/src/components/Calendar/types.ts +23 -0
  368. package/src/components/Carousel/index.tsx +5 -0
  369. package/src/components/Carousel/types.ts +13 -2
  370. package/src/components/Checkbox/index.tsx +62 -134
  371. package/src/components/Checkbox/styles.ts +3 -15
  372. package/src/components/Checkbox/types.ts +21 -7
  373. package/src/components/Collapse/index.tsx +4 -1
  374. package/src/components/Collapse/types.ts +5 -2
  375. package/src/components/ColorPicker/index.tsx +11 -4
  376. package/src/components/ColorPicker/types.ts +16 -4
  377. package/src/components/CropPicker/hooks.ts +9 -0
  378. package/src/components/CropPicker/index.tsx +28 -37
  379. package/src/components/CropPicker/styles.ts +1 -5
  380. package/src/components/CropPicker/types.ts +7 -4
  381. package/src/components/CropPicker/utils.ts +9 -0
  382. package/src/components/DatePicker/index.tsx +77 -130
  383. package/src/components/DatePicker/styles.ts +2 -22
  384. package/src/components/DatePicker/types.ts +45 -57
  385. package/src/components/Drawer/index.tsx +55 -167
  386. package/src/components/Drawer/styles.ts +4 -7
  387. package/src/components/Drawer/types.ts +9 -21
  388. package/src/components/Dropzone/context.tsx +52 -0
  389. package/src/components/Dropzone/elements.tsx +79 -0
  390. package/src/components/Dropzone/index.tsx +67 -213
  391. package/src/components/Dropzone/styles.ts +7 -12
  392. package/src/components/Dropzone/types.ts +92 -39
  393. package/src/components/Dropzone/useDropzone.ts +18 -0
  394. package/src/components/EmptyPlaceholder/index.tsx +6 -1
  395. package/src/components/EmptyPlaceholder/types.ts +11 -2
  396. package/src/components/Field/context.tsx +66 -0
  397. package/src/components/Field/elements.tsx +159 -0
  398. package/src/components/Field/index.tsx +55 -0
  399. package/src/components/Field/styles.ts +18 -0
  400. package/src/components/Field/types.ts +51 -0
  401. package/src/components/{InputBase/useInputBase.ts → Field/useFieldInput.ts} +13 -10
  402. package/src/components/FileInput/index.tsx +7 -2
  403. package/src/components/FileInput/types.ts +9 -2
  404. package/src/components/Icon/index.tsx +33 -5
  405. package/src/components/Icon/types.ts +14 -5
  406. package/src/components/List/context.tsx +97 -0
  407. package/src/components/List/elements.tsx +173 -0
  408. package/src/components/List/index.tsx +37 -74
  409. package/src/components/List/scroll.ts +83 -0
  410. package/src/components/List/styles.ts +1 -1
  411. package/src/components/List/types.ts +83 -19
  412. package/src/components/LoadingOverlay/index.tsx +6 -0
  413. package/src/components/LoadingOverlay/types.ts +7 -2
  414. package/src/components/MaskedTextInput/index.tsx +6 -4
  415. package/src/components/MaskedTextInput/types.ts +11 -0
  416. package/src/components/Modal/context.tsx +48 -0
  417. package/src/components/Modal/elements.tsx +119 -0
  418. package/src/components/Modal/index.tsx +38 -325
  419. package/src/components/Modal/styles.ts +4 -14
  420. package/src/components/Modal/types.ts +23 -45
  421. package/src/components/NumberIncrement/index.tsx +87 -88
  422. package/src/components/NumberIncrement/styles.ts +3 -8
  423. package/src/components/NumberIncrement/types.ts +16 -4
  424. package/src/components/NumberIncrement/useNumberIncrement.ts +7 -2
  425. package/src/components/Overlay/index.tsx +20 -3
  426. package/src/components/Overlay/types.ts +7 -2
  427. package/src/components/PaginationButtons/index.tsx +5 -0
  428. package/src/components/PaginationButtons/types.ts +11 -2
  429. package/src/components/PaginationIndicator/index.tsx +4 -0
  430. package/src/components/PaginationIndicator/types.ts +11 -3
  431. package/src/components/Progress/Bar/Segmented.tsx +66 -0
  432. package/src/components/Progress/Bar/index.tsx +31 -15
  433. package/src/components/Progress/Bar/styles.ts +6 -1
  434. package/src/components/Progress/Bar/types.ts +39 -7
  435. package/src/components/Progress/Circle/Segmented.tsx +114 -0
  436. package/src/components/Progress/Circle/index.tsx +89 -39
  437. package/src/components/Progress/Circle/styles.ts +7 -1
  438. package/src/components/Progress/Circle/types.ts +49 -7
  439. package/src/components/Progress/index.tsx +1 -0
  440. package/src/components/RadioInput/index.tsx +63 -56
  441. package/src/components/RadioInput/styles.ts +3 -7
  442. package/src/components/RadioInput/types.ts +16 -8
  443. package/src/components/SearchInput/index.tsx +31 -10
  444. package/src/components/SectionFilters/index.tsx +6 -0
  445. package/src/components/SectionFilters/types.ts +27 -5
  446. package/src/components/Select/context.tsx +262 -0
  447. package/src/components/Select/elements.tsx +126 -0
  448. package/src/components/Select/index.tsx +64 -494
  449. package/src/components/Select/styles.ts +7 -169
  450. package/src/components/Select/types.ts +68 -101
  451. package/src/components/Select/useTriggerWidth.ts +29 -0
  452. package/src/components/Slider/index.tsx +118 -116
  453. package/src/components/Slider/styles.ts +4 -9
  454. package/src/components/Slider/types.ts +19 -6
  455. package/src/components/Switch/index.tsx +60 -96
  456. package/src/components/Switch/styles.ts +3 -14
  457. package/src/components/Switch/types.ts +22 -7
  458. package/src/components/Tag/index.tsx +18 -5
  459. package/src/components/Tag/types.ts +15 -2
  460. package/src/components/Text/index.tsx +35 -3
  461. package/src/components/Text/styles.ts +1 -1
  462. package/src/components/Text/types.ts +19 -2
  463. package/src/components/TextEditor/index.tsx +7 -1
  464. package/src/components/TextEditor/types.ts +9 -2
  465. package/src/components/TextInput/index.tsx +94 -109
  466. package/src/components/TextInput/styles.ts +4 -8
  467. package/src/components/TextInput/types.ts +24 -11
  468. package/src/components/TextInput/useTextInput.ts +33 -17
  469. package/src/components/Tooltip/index.tsx +5 -3
  470. package/src/components/Tooltip/types.ts +11 -2
  471. package/src/components/Touchable/index.tsx +23 -25
  472. package/src/components/Touchable/types.ts +31 -19
  473. package/src/components/View/index.tsx +7 -5
  474. package/src/components/View/types.ts +14 -2
  475. package/src/components/components.ts +3 -4
  476. package/src/css.d.ts +10 -0
  477. package/src/lib/ThemeVariables.tsx +38 -0
  478. package/src/lib/WebStyleRegistry.ts +27 -0
  479. package/src/lib/hooks/index.ts +4 -0
  480. package/src/lib/hooks/useAnimatedStyle.ts +7 -0
  481. package/src/lib/hooks/useAnimatedVariantStyles.ts +6 -0
  482. package/src/lib/hooks/useAsyncSelect.ts +126 -0
  483. package/src/lib/hooks/useBreakpointMatch.ts +11 -0
  484. package/src/lib/hooks/useClick.ts +7 -1
  485. package/src/lib/hooks/useClickOutside.ts +8 -0
  486. package/src/lib/hooks/useFileInput.ts +5 -0
  487. package/src/lib/hooks/useIsomorphicEffect.ts +4 -0
  488. package/src/lib/hooks/useKeydown.ts +8 -0
  489. package/src/lib/hooks/useListFocus.ts +59 -0
  490. package/src/lib/hooks/useMediaQuery.ts +7 -0
  491. package/src/lib/hooks/usePageExitBlocker.ts +10 -0
  492. package/src/lib/hooks/usePagination.ts +14 -0
  493. package/src/lib/hooks/usePopState.ts +11 -0
  494. package/src/lib/hooks/usePopoverDismiss.ts +42 -0
  495. package/src/lib/hooks/useRefresh.ts +9 -0
  496. package/src/lib/hooks/useScrollEffect.ts +5 -0
  497. package/src/lib/hooks/useSearchParams.ts +13 -0
  498. package/src/lib/hooks/useStaticAnimationStyles.ts +6 -0
  499. package/src/lib/hooks/useStylesFor.ts +32 -21
  500. package/src/lib/hooks/useTouchableEvents.ts +41 -0
  501. package/src/lib/hooks/useWindowFocus.ts +5 -0
  502. package/src/lib/hooks/useWindowSize.ts +21 -6
  503. package/src/lib/index.ts +1 -0
  504. package/src/lib/tools/localStorage.ts +12 -0
  505. package/src/lib/tools/mediaQuery.ts +9 -3
  506. package/src/lib/tools/modal.ts +11 -0
  507. package/src/lib/utils/attributes.ts +53 -0
  508. package/src/lib/utils/cache.ts +2 -0
  509. package/src/lib/utils/index.ts +1 -0
  510. package/src/lib/utils/pollyfils/scroll.ts +6 -0
  511. package/src/lib/utils/stopPropagation.ts +5 -0
  512. package/src/lib/utils/test.ts +5 -0
  513. package/src/types/utility.ts +18 -2
  514. package/dist/components/ActionIcon/index.d.ts +0 -12
  515. package/dist/components/ActionIcon/index.js +0 -88
  516. package/dist/components/ActionIcon/index.js.map +0 -1
  517. package/dist/components/ActionIcon/styles.d.ts +0 -5
  518. package/dist/components/ActionIcon/styles.js +0 -3
  519. package/dist/components/ActionIcon/styles.js.map +0 -1
  520. package/dist/components/ActionIcon/types.d.ts +0 -11
  521. package/dist/components/ActionIcon/types.js +0 -3
  522. package/dist/components/ActionIcon/types.js.map +0 -1
  523. package/dist/components/ActivityIndicator/index.js +0 -74
  524. package/dist/components/ActivityIndicator/index.js.map +0 -1
  525. package/dist/components/ActivityIndicator/styles.js +0 -3
  526. package/dist/components/ActivityIndicator/styles.js.map +0 -1
  527. package/dist/components/ActivityIndicator/types.js +0 -3
  528. package/dist/components/ActivityIndicator/types.js.map +0 -1
  529. package/dist/components/Badge/index.js +0 -100
  530. package/dist/components/Badge/index.js.map +0 -1
  531. package/dist/components/Badge/styles.js +0 -3
  532. package/dist/components/Badge/styles.js.map +0 -1
  533. package/dist/components/Badge/types.js +0 -3
  534. package/dist/components/Badge/types.js.map +0 -1
  535. package/dist/components/Button/index.js +0 -91
  536. package/dist/components/Button/index.js.map +0 -1
  537. package/dist/components/Button/styles.js +0 -3
  538. package/dist/components/Button/styles.js.map +0 -1
  539. package/dist/components/Button/types.js +0 -3
  540. package/dist/components/Button/types.js.map +0 -1
  541. package/dist/components/Carousel/index.js +0 -168
  542. package/dist/components/Carousel/index.js.map +0 -1
  543. package/dist/components/Carousel/styles.js +0 -3
  544. package/dist/components/Carousel/styles.js.map +0 -1
  545. package/dist/components/Carousel/types.js +0 -3
  546. package/dist/components/Carousel/types.js.map +0 -1
  547. package/dist/components/Checkbox/index.js +0 -129
  548. package/dist/components/Checkbox/index.js.map +0 -1
  549. package/dist/components/Checkbox/styles.js +0 -3
  550. package/dist/components/Checkbox/styles.js.map +0 -1
  551. package/dist/components/Checkbox/types.js +0 -3
  552. package/dist/components/Checkbox/types.js.map +0 -1
  553. package/dist/components/Collapse/index.js +0 -62
  554. package/dist/components/Collapse/index.js.map +0 -1
  555. package/dist/components/Collapse/styles.js +0 -3
  556. package/dist/components/Collapse/styles.js.map +0 -1
  557. package/dist/components/Collapse/types.js +0 -3
  558. package/dist/components/Collapse/types.js.map +0 -1
  559. package/dist/components/ColorPicker/index.js +0 -84
  560. package/dist/components/ColorPicker/index.js.map +0 -1
  561. package/dist/components/ColorPicker/styles.js +0 -3
  562. package/dist/components/ColorPicker/styles.js.map +0 -1
  563. package/dist/components/ColorPicker/types.js +0 -3
  564. package/dist/components/ColorPicker/types.js.map +0 -1
  565. package/dist/components/CropPicker/components/CropPickerFooter.d.ts +0 -11
  566. package/dist/components/CropPicker/components/CropPickerFooter.js +0 -12
  567. package/dist/components/CropPicker/components/CropPickerFooter.js.map +0 -1
  568. package/dist/components/CropPicker/hooks.js +0 -184
  569. package/dist/components/CropPicker/hooks.js.map +0 -1
  570. package/dist/components/CropPicker/index.js +0 -66
  571. package/dist/components/CropPicker/index.js.map +0 -1
  572. package/dist/components/CropPicker/styles.js +0 -3
  573. package/dist/components/CropPicker/styles.js.map +0 -1
  574. package/dist/components/CropPicker/types.js +0 -3
  575. package/dist/components/CropPicker/types.js.map +0 -1
  576. package/dist/components/CropPicker/utils.js +0 -117
  577. package/dist/components/CropPicker/utils.js.map +0 -1
  578. package/dist/components/DatePicker/components/DayContent.d.ts +0 -11
  579. package/dist/components/DatePicker/components/DayContent.js +0 -43
  580. package/dist/components/DatePicker/components/DayContent.js.map +0 -1
  581. package/dist/components/DatePicker/components/Header.d.ts +0 -3
  582. package/dist/components/DatePicker/components/Header.js +0 -50
  583. package/dist/components/DatePicker/components/Header.js.map +0 -1
  584. package/dist/components/DatePicker/components/OuterInput.d.ts +0 -2
  585. package/dist/components/DatePicker/components/OuterInput.js +0 -36
  586. package/dist/components/DatePicker/components/OuterInput.js.map +0 -1
  587. package/dist/components/DatePicker/components/YearContent.d.ts +0 -9
  588. package/dist/components/DatePicker/components/YearContent.js +0 -33
  589. package/dist/components/DatePicker/components/YearContent.js.map +0 -1
  590. package/dist/components/DatePicker/components/index.d.ts +0 -4
  591. package/dist/components/DatePicker/components/index.js +0 -21
  592. package/dist/components/DatePicker/components/index.js.map +0 -1
  593. package/dist/components/DatePicker/index.js +0 -102
  594. package/dist/components/DatePicker/index.js.map +0 -1
  595. package/dist/components/DatePicker/styles.js +0 -3
  596. package/dist/components/DatePicker/styles.js.map +0 -1
  597. package/dist/components/DatePicker/types.js +0 -3
  598. package/dist/components/DatePicker/types.js.map +0 -1
  599. package/dist/components/Drawer/index.js +0 -139
  600. package/dist/components/Drawer/index.js.map +0 -1
  601. package/dist/components/Drawer/styles.js +0 -3
  602. package/dist/components/Drawer/styles.js.map +0 -1
  603. package/dist/components/Drawer/types.js +0 -3
  604. package/dist/components/Drawer/types.js.map +0 -1
  605. package/dist/components/Dropzone/index.js +0 -167
  606. package/dist/components/Dropzone/index.js.map +0 -1
  607. package/dist/components/Dropzone/styles.js +0 -3
  608. package/dist/components/Dropzone/styles.js.map +0 -1
  609. package/dist/components/Dropzone/types.js +0 -3
  610. package/dist/components/Dropzone/types.js.map +0 -1
  611. package/dist/components/EmptyPlaceholder/index.js +0 -86
  612. package/dist/components/EmptyPlaceholder/index.js.map +0 -1
  613. package/dist/components/EmptyPlaceholder/styles.js +0 -3
  614. package/dist/components/EmptyPlaceholder/styles.js.map +0 -1
  615. package/dist/components/EmptyPlaceholder/types.js +0 -3
  616. package/dist/components/EmptyPlaceholder/types.js.map +0 -1
  617. package/dist/components/FileInput/index.js +0 -136
  618. package/dist/components/FileInput/index.js.map +0 -1
  619. package/dist/components/FileInput/types.js +0 -3
  620. package/dist/components/FileInput/types.js.map +0 -1
  621. package/dist/components/Icon/index.js +0 -73
  622. package/dist/components/Icon/index.js.map +0 -1
  623. package/dist/components/Icon/styles.js +0 -3
  624. package/dist/components/Icon/styles.js.map +0 -1
  625. package/dist/components/Icon/types.js +0 -3
  626. package/dist/components/Icon/types.js.map +0 -1
  627. package/dist/components/InputBase/index.d.ts +0 -7
  628. package/dist/components/InputBase/index.js +0 -120
  629. package/dist/components/InputBase/index.js.map +0 -1
  630. package/dist/components/InputBase/styles.d.ts +0 -30
  631. package/dist/components/InputBase/styles.js +0 -73
  632. package/dist/components/InputBase/styles.js.map +0 -1
  633. package/dist/components/InputBase/types.d.ts +0 -37
  634. package/dist/components/InputBase/types.js +0 -3
  635. package/dist/components/InputBase/types.js.map +0 -1
  636. package/dist/components/InputBase/useInputBase.js +0 -54
  637. package/dist/components/InputBase/useInputBase.js.map +0 -1
  638. package/dist/components/InputBase/useInputBasePartialStyles.d.ts +0 -2
  639. package/dist/components/InputBase/useInputBasePartialStyles.js +0 -39
  640. package/dist/components/InputBase/useInputBasePartialStyles.js.map +0 -1
  641. package/dist/components/InputBase/utils.d.ts +0 -18
  642. package/dist/components/InputBase/utils.js +0 -63
  643. package/dist/components/InputBase/utils.js.map +0 -1
  644. package/dist/components/List/index.js +0 -138
  645. package/dist/components/List/index.js.map +0 -1
  646. package/dist/components/List/styles.js +0 -3
  647. package/dist/components/List/styles.js.map +0 -1
  648. package/dist/components/List/types.js +0 -3
  649. package/dist/components/List/types.js.map +0 -1
  650. package/dist/components/LoadingOverlay/index.js +0 -63
  651. package/dist/components/LoadingOverlay/index.js.map +0 -1
  652. package/dist/components/LoadingOverlay/styles.js +0 -3
  653. package/dist/components/LoadingOverlay/styles.js.map +0 -1
  654. package/dist/components/LoadingOverlay/types.js +0 -3
  655. package/dist/components/LoadingOverlay/types.js.map +0 -1
  656. package/dist/components/MaskedTextInput/index.js +0 -69
  657. package/dist/components/MaskedTextInput/index.js.map +0 -1
  658. package/dist/components/MaskedTextInput/mask.js +0 -37
  659. package/dist/components/MaskedTextInput/mask.js.map +0 -1
  660. package/dist/components/MaskedTextInput/types.js +0 -3
  661. package/dist/components/MaskedTextInput/types.js.map +0 -1
  662. package/dist/components/Modal/index.js +0 -217
  663. package/dist/components/Modal/index.js.map +0 -1
  664. package/dist/components/Modal/styles.js +0 -3
  665. package/dist/components/Modal/styles.js.map +0 -1
  666. package/dist/components/Modal/types.js +0 -3
  667. package/dist/components/Modal/types.js.map +0 -1
  668. package/dist/components/NumberIncrement/index.js +0 -102
  669. package/dist/components/NumberIncrement/index.js.map +0 -1
  670. package/dist/components/NumberIncrement/styles.js +0 -3
  671. package/dist/components/NumberIncrement/styles.js.map +0 -1
  672. package/dist/components/NumberIncrement/types.js +0 -3
  673. package/dist/components/NumberIncrement/types.js.map +0 -1
  674. package/dist/components/NumberIncrement/useNumberIncrement.js +0 -114
  675. package/dist/components/NumberIncrement/useNumberIncrement.js.map +0 -1
  676. package/dist/components/Overlay/index.js +0 -71
  677. package/dist/components/Overlay/index.js.map +0 -1
  678. package/dist/components/Overlay/styles.js +0 -3
  679. package/dist/components/Overlay/styles.js.map +0 -1
  680. package/dist/components/Overlay/types.js +0 -3
  681. package/dist/components/Overlay/types.js.map +0 -1
  682. package/dist/components/PaginationButtons/index.js +0 -131
  683. package/dist/components/PaginationButtons/index.js.map +0 -1
  684. package/dist/components/PaginationButtons/styles.js +0 -3
  685. package/dist/components/PaginationButtons/styles.js.map +0 -1
  686. package/dist/components/PaginationButtons/types.js +0 -3
  687. package/dist/components/PaginationButtons/types.js.map +0 -1
  688. package/dist/components/PaginationIndicator/index.js +0 -63
  689. package/dist/components/PaginationIndicator/index.js.map +0 -1
  690. package/dist/components/PaginationIndicator/styles.js +0 -3
  691. package/dist/components/PaginationIndicator/styles.js.map +0 -1
  692. package/dist/components/PaginationIndicator/types.js +0 -3
  693. package/dist/components/PaginationIndicator/types.js.map +0 -1
  694. package/dist/components/Progress/Bar/index.js +0 -76
  695. package/dist/components/Progress/Bar/index.js.map +0 -1
  696. package/dist/components/Progress/Bar/styles.js +0 -3
  697. package/dist/components/Progress/Bar/styles.js.map +0 -1
  698. package/dist/components/Progress/Bar/types.js +0 -3
  699. package/dist/components/Progress/Bar/types.js.map +0 -1
  700. package/dist/components/Progress/Circle/index.js +0 -82
  701. package/dist/components/Progress/Circle/index.js.map +0 -1
  702. package/dist/components/Progress/Circle/styles.js +0 -3
  703. package/dist/components/Progress/Circle/styles.js.map +0 -1
  704. package/dist/components/Progress/Circle/types.js +0 -3
  705. package/dist/components/Progress/Circle/types.js.map +0 -1
  706. package/dist/components/Progress/index.js +0 -19
  707. package/dist/components/Progress/index.js.map +0 -1
  708. package/dist/components/Progress/utils.js +0 -7
  709. package/dist/components/Progress/utils.js.map +0 -1
  710. package/dist/components/RadioInput/index.js +0 -83
  711. package/dist/components/RadioInput/index.js.map +0 -1
  712. package/dist/components/RadioInput/styles.js +0 -3
  713. package/dist/components/RadioInput/styles.js.map +0 -1
  714. package/dist/components/RadioInput/types.js +0 -3
  715. package/dist/components/RadioInput/types.js.map +0 -1
  716. package/dist/components/SearchInput/index.js +0 -101
  717. package/dist/components/SearchInput/index.js.map +0 -1
  718. package/dist/components/SectionFilters/index.js +0 -179
  719. package/dist/components/SectionFilters/index.js.map +0 -1
  720. package/dist/components/SectionFilters/styles.js +0 -3
  721. package/dist/components/SectionFilters/styles.js.map +0 -1
  722. package/dist/components/SectionFilters/types.js +0 -3
  723. package/dist/components/SectionFilters/types.js.map +0 -1
  724. package/dist/components/SegmentedControl/index.d.ts +0 -12
  725. package/dist/components/SegmentedControl/index.js +0 -149
  726. package/dist/components/SegmentedControl/index.js.map +0 -1
  727. package/dist/components/SegmentedControl/styles.d.ts +0 -4
  728. package/dist/components/SegmentedControl/styles.js +0 -3
  729. package/dist/components/SegmentedControl/styles.js.map +0 -1
  730. package/dist/components/SegmentedControl/types.d.ts +0 -39
  731. package/dist/components/SegmentedControl/types.js +0 -3
  732. package/dist/components/SegmentedControl/types.js.map +0 -1
  733. package/dist/components/Select/index.js +0 -383
  734. package/dist/components/Select/index.js.map +0 -1
  735. package/dist/components/Select/styles.js +0 -96
  736. package/dist/components/Select/styles.js.map +0 -1
  737. package/dist/components/Select/types.js +0 -3
  738. package/dist/components/Select/types.js.map +0 -1
  739. package/dist/components/Slider/index.js +0 -193
  740. package/dist/components/Slider/index.js.map +0 -1
  741. package/dist/components/Slider/styles.js +0 -3
  742. package/dist/components/Slider/styles.js.map +0 -1
  743. package/dist/components/Slider/types.js +0 -3
  744. package/dist/components/Slider/types.js.map +0 -1
  745. package/dist/components/Switch/index.js +0 -108
  746. package/dist/components/Switch/index.js.map +0 -1
  747. package/dist/components/Switch/styles.js +0 -3
  748. package/dist/components/Switch/styles.js.map +0 -1
  749. package/dist/components/Switch/types.js +0 -3
  750. package/dist/components/Switch/types.js.map +0 -1
  751. package/dist/components/Tag/index.js +0 -86
  752. package/dist/components/Tag/index.js.map +0 -1
  753. package/dist/components/Tag/styles.js +0 -3
  754. package/dist/components/Tag/styles.js.map +0 -1
  755. package/dist/components/Tag/types.js +0 -3
  756. package/dist/components/Tag/types.js.map +0 -1
  757. package/dist/components/Text/index.js +0 -102
  758. package/dist/components/Text/index.js.map +0 -1
  759. package/dist/components/Text/styles.js +0 -3
  760. package/dist/components/Text/styles.js.map +0 -1
  761. package/dist/components/Text/types.js +0 -3
  762. package/dist/components/Text/types.js.map +0 -1
  763. package/dist/components/TextEditor/index.js +0 -114
  764. package/dist/components/TextEditor/index.js.map +0 -1
  765. package/dist/components/TextEditor/styles.js +0 -3
  766. package/dist/components/TextEditor/styles.js.map +0 -1
  767. package/dist/components/TextEditor/types.js +0 -3
  768. package/dist/components/TextEditor/types.js.map +0 -1
  769. package/dist/components/TextInput/index.js +0 -141
  770. package/dist/components/TextInput/index.js.map +0 -1
  771. package/dist/components/TextInput/styles.js +0 -3
  772. package/dist/components/TextInput/styles.js.map +0 -1
  773. package/dist/components/TextInput/types.js +0 -3
  774. package/dist/components/TextInput/types.js.map +0 -1
  775. package/dist/components/TextInput/useTextInput.js +0 -65
  776. package/dist/components/TextInput/useTextInput.js.map +0 -1
  777. package/dist/components/Tooltip/index.js +0 -134
  778. package/dist/components/Tooltip/index.js.map +0 -1
  779. package/dist/components/Tooltip/styles.js +0 -3
  780. package/dist/components/Tooltip/styles.js.map +0 -1
  781. package/dist/components/Tooltip/types.js +0 -3
  782. package/dist/components/Tooltip/types.js.map +0 -1
  783. package/dist/components/Touchable/index.js +0 -125
  784. package/dist/components/Touchable/index.js.map +0 -1
  785. package/dist/components/Touchable/styles.js +0 -3
  786. package/dist/components/Touchable/styles.js.map +0 -1
  787. package/dist/components/Touchable/types.js +0 -3
  788. package/dist/components/Touchable/types.js.map +0 -1
  789. package/dist/components/View/index.js +0 -74
  790. package/dist/components/View/index.js.map +0 -1
  791. package/dist/components/View/styles.js +0 -3
  792. package/dist/components/View/styles.js.map +0 -1
  793. package/dist/components/View/types.js +0 -3
  794. package/dist/components/View/types.js.map +0 -1
  795. package/dist/components/VirtualList/context.d.ts +0 -3
  796. package/dist/components/VirtualList/context.js +0 -93
  797. package/dist/components/VirtualList/context.js.map +0 -1
  798. package/dist/components/VirtualList/index.d.ts +0 -5
  799. package/dist/components/VirtualList/index.js +0 -14
  800. package/dist/components/VirtualList/index.js.map +0 -1
  801. package/dist/components/VirtualList/list.d.ts +0 -3
  802. package/dist/components/VirtualList/list.js +0 -102
  803. package/dist/components/VirtualList/list.js.map +0 -1
  804. package/dist/components/VirtualList/types.d.ts +0 -33
  805. package/dist/components/VirtualList/types.js +0 -3
  806. package/dist/components/VirtualList/types.js.map +0 -1
  807. package/dist/components/components.js +0 -60
  808. package/dist/components/components.js.map +0 -1
  809. package/dist/index.js +0 -21
  810. package/dist/index.js.map +0 -1
  811. package/dist/lib/ListMasonry.js +0 -103
  812. package/dist/lib/ListMasonry.js.map +0 -1
  813. package/dist/lib/WebStyleRegistry.js +0 -70
  814. package/dist/lib/WebStyleRegistry.js.map +0 -1
  815. package/dist/lib/hooks/index.js +0 -36
  816. package/dist/lib/hooks/index.js.map +0 -1
  817. package/dist/lib/hooks/useAnimatedStyle.js +0 -20
  818. package/dist/lib/hooks/useAnimatedStyle.js.map +0 -1
  819. package/dist/lib/hooks/useAnimatedVariantStyles.js +0 -17
  820. package/dist/lib/hooks/useAnimatedVariantStyles.js.map +0 -1
  821. package/dist/lib/hooks/useBreakpointMatch.js +0 -124
  822. package/dist/lib/hooks/useBreakpointMatch.js.map +0 -1
  823. package/dist/lib/hooks/useClick.js +0 -36
  824. package/dist/lib/hooks/useClick.js.map +0 -1
  825. package/dist/lib/hooks/useClickOutside.js +0 -27
  826. package/dist/lib/hooks/useClickOutside.js.map +0 -1
  827. package/dist/lib/hooks/useFileInput.js +0 -17
  828. package/dist/lib/hooks/useFileInput.js.map +0 -1
  829. package/dist/lib/hooks/useIsomorphicEffect.js +0 -6
  830. package/dist/lib/hooks/useIsomorphicEffect.js.map +0 -1
  831. package/dist/lib/hooks/useKeydown.js +0 -37
  832. package/dist/lib/hooks/useKeydown.js.map +0 -1
  833. package/dist/lib/hooks/useMediaQuery.js +0 -21
  834. package/dist/lib/hooks/useMediaQuery.js.map +0 -1
  835. package/dist/lib/hooks/usePageExitBlocker.js +0 -41
  836. package/dist/lib/hooks/usePageExitBlocker.js.map +0 -1
  837. package/dist/lib/hooks/usePagination.js +0 -82
  838. package/dist/lib/hooks/usePagination.js.map +0 -1
  839. package/dist/lib/hooks/usePopState.js +0 -24
  840. package/dist/lib/hooks/usePopState.js.map +0 -1
  841. package/dist/lib/hooks/useRefresh.js +0 -115
  842. package/dist/lib/hooks/useRefresh.js.map +0 -1
  843. package/dist/lib/hooks/useScrollEffect.js +0 -27
  844. package/dist/lib/hooks/useScrollEffect.js.map +0 -1
  845. package/dist/lib/hooks/useSearchParams.js +0 -55
  846. package/dist/lib/hooks/useSearchParams.js.map +0 -1
  847. package/dist/lib/hooks/useStaticAnimationStyles.js +0 -24
  848. package/dist/lib/hooks/useStaticAnimationStyles.js.map +0 -1
  849. package/dist/lib/hooks/useStylesFor.js +0 -41
  850. package/dist/lib/hooks/useStylesFor.js.map +0 -1
  851. package/dist/lib/hooks/useWindowFocus.js +0 -31
  852. package/dist/lib/hooks/useWindowFocus.js.map +0 -1
  853. package/dist/lib/hooks/useWindowSize.js +0 -19
  854. package/dist/lib/hooks/useWindowSize.js.map +0 -1
  855. package/dist/lib/index.js +0 -22
  856. package/dist/lib/index.js.map +0 -1
  857. package/dist/lib/tools/index.js +0 -20
  858. package/dist/lib/tools/index.js.map +0 -1
  859. package/dist/lib/tools/localStorage.js +0 -158
  860. package/dist/lib/tools/localStorage.js.map +0 -1
  861. package/dist/lib/tools/mediaQuery.js +0 -34
  862. package/dist/lib/tools/mediaQuery.js.map +0 -1
  863. package/dist/lib/tools/modal.js +0 -62
  864. package/dist/lib/tools/modal.js.map +0 -1
  865. package/dist/lib/utils/cache.js +0 -15
  866. package/dist/lib/utils/cache.js.map +0 -1
  867. package/dist/lib/utils/index.js +0 -21
  868. package/dist/lib/utils/index.js.map +0 -1
  869. package/dist/lib/utils/pollyfils/scroll.js +0 -66
  870. package/dist/lib/utils/pollyfils/scroll.js.map +0 -1
  871. package/dist/lib/utils/stopPropagation.js +0 -19
  872. package/dist/lib/utils/stopPropagation.js.map +0 -1
  873. package/dist/lib/utils/test.js +0 -13
  874. package/dist/lib/utils/test.js.map +0 -1
  875. package/dist/types/index.js +0 -18
  876. package/dist/types/index.js.map +0 -1
  877. package/dist/types/utility.js +0 -3
  878. package/dist/types/utility.js.map +0 -1
  879. package/package.json.bak +0 -65
  880. package/src/components/ActionIcon/index.tsx +0 -93
  881. package/src/components/ActionIcon/styles.ts +0 -8
  882. package/src/components/ActionIcon/types.ts +0 -15
  883. package/src/components/CropPicker/components/CropPickerFooter.tsx +0 -39
  884. package/src/components/DatePicker/components/DayContent.tsx +0 -52
  885. package/src/components/DatePicker/components/Header.tsx +0 -79
  886. package/src/components/DatePicker/components/OuterInput.tsx +0 -17
  887. package/src/components/DatePicker/components/YearContent.tsx +0 -39
  888. package/src/components/DatePicker/components/index.tsx +0 -4
  889. package/src/components/InputBase/index.tsx +0 -138
  890. package/src/components/InputBase/styles.ts +0 -109
  891. package/src/components/InputBase/types.ts +0 -42
  892. package/src/components/InputBase/useInputBasePartialStyles.ts +0 -37
  893. package/src/components/InputBase/utils.ts +0 -84
  894. package/src/components/SegmentedControl/index.tsx +0 -223
  895. package/src/components/SegmentedControl/styles.ts +0 -12
  896. package/src/components/SegmentedControl/types.ts +0 -44
  897. package/src/components/VirtualList/context.tsx +0 -93
  898. package/src/components/VirtualList/index.tsx +0 -11
  899. package/src/components/VirtualList/list.tsx +0 -85
  900. package/src/components/VirtualList/types.ts +0 -38
@@ -1,30 +1,38 @@
1
1
  import { Option } from '@codeleap/types'
2
- import { InputBaseProps } from '../InputBase'
3
- import { ReactNode } from 'react'
4
- import { ICSS, StyledProp } from '@codeleap/styles'
2
+ import { ICSS, StyleProp } from '@codeleap/styles'
5
3
  import { RadioInputComposition } from './styles'
6
4
  import { SelectableField } from '@codeleap/form'
5
+ import { FieldProps } from '../Field'
7
6
 
8
7
  type RadioOption<T extends string | number> = Option<T> & {
9
8
  disabled?: boolean
10
9
  }
11
10
 
11
+ export interface RadioInputStyleDef {
12
+ __internal: Record<RadioInputComposition, ICSS>
13
+ }
14
+
15
+ /**
16
+ * Props for `RadioInput`.
17
+ * `options` is the full ordered list of choices; individual options may carry a `disabled` flag that overrides the top-level `disabled`.
18
+ */
12
19
  export type RadioInputProps<T extends string | number> =
13
- Omit<InputBaseProps, 'style'> &
14
- {
20
+ Pick<FieldProps, 'label' | 'helper' | 'leftSection' | 'rightSection'> & {
15
21
  options: RadioOption<T>[]
16
- label: ReactNode
17
- style?: StyledProp<RadioInputComposition>
22
+ style?: StyleProp<RadioInputComposition, keyof RadioInputStyleDef>
18
23
  field?: SelectableField<T, any>
19
24
  value?: T
20
25
  onValueChange?: (value: T) => void
26
+ disabled?: boolean
27
+ debugName?: string
21
28
  }
22
29
 
30
+ /** Internal props for the per-option row rendered inside `RadioInput`. */
23
31
  export type RadioOptionProps<T extends string | number> = {
24
32
  item: RadioOption<T>
25
33
  selected: boolean
26
34
  onSelect(): void
27
- styles?: Record<RadioInputComposition, ICSS>
35
+ styles: Record<RadioInputComposition, ICSS>
28
36
  debugName?: string
29
37
  disabled?: boolean
30
38
  separator?: boolean
@@ -2,6 +2,7 @@ import React, { useState } from 'react'
2
2
  import { TextInput, TextInputProps } from '../TextInput'
3
3
  import { AnyFunction, TypeGuards } from '@codeleap/types'
4
4
  import { AppIcon } from '@codeleap/styles'
5
+ import { FieldSectionProps } from '../Field'
5
6
 
6
7
  export type SearchInputProps = {
7
8
  placeholder: string
@@ -9,14 +10,26 @@ export type SearchInputProps = {
9
10
  debugName: string
10
11
  clearIcon?: AppIcon
11
12
  searchIcon?: AppIcon
13
+ /** Delay in milliseconds before `onSearchChange` fires after the user stops typing; pass `null` to disable debouncing. */
12
14
  debounce?: number
15
+ /** Called with the current search string after the debounce delay (or immediately if `debounce` is `null`). */
13
16
  onSearchChange: (search: string) => void
17
+ /** Called with `true` when the user starts typing and `false` once the debounce timer fires. */
14
18
  onTypingChange?: (isTyping: boolean) => void
19
+ /** Controlled value setter; provide together with `value` to make the input fully controlled. */
15
20
  onValueChange?: (search: string) => void
16
21
  onClear?: AnyFunction
22
+ /** Replaces the default clear button; receives field section props plus a `clear()` callback. */
23
+ renderClearButton ?: (props: FieldSectionProps&{clear: () => void}) => React.ReactNode
17
24
  defaultValue?: string
18
25
  } & Partial<TextInputProps>
19
26
 
27
+ /**
28
+ * Text input specialised for search with optional debouncing, a clearable state, and typing-state callbacks.
29
+ * Operates as an uncontrolled input by default (`defaultValue`); pass `value` + `onValueChange` to make it controlled.
30
+ * The clear button is only shown while the field has non-whitespace content and `clearable` is true.
31
+ * Uses: `TextInput`
32
+ */
20
33
  export const SearchInput = (props: SearchInputProps) => {
21
34
  const {
22
35
  debugName,
@@ -30,6 +43,7 @@ export const SearchInput = (props: SearchInputProps) => {
30
43
  debounce,
31
44
  value,
32
45
  onValueChange,
46
+ renderClearButton,
33
47
  defaultValue,
34
48
  ...rest
35
49
  } = {
@@ -40,7 +54,7 @@ export const SearchInput = (props: SearchInputProps) => {
40
54
  const hasStateProps = !TypeGuards.isNil(value) && TypeGuards.isFunction(onValueChange)
41
55
 
42
56
  const [search, setSearch] = hasStateProps ? [value, onValueChange] : useState(defaultValue)
43
- const setSearchTimeout = React.useRef<NodeJS.Timer | null>(null)
57
+ const setSearchTimeout = React.useRef<ReturnType<typeof setTimeout> | null>(null)
44
58
 
45
59
  const handleChangeSearch = (value: string) => {
46
60
  setSearch(value)
@@ -65,6 +79,16 @@ export const SearchInput = (props: SearchInputProps) => {
65
79
 
66
80
  const showClearIcon = !!String(search)?.trim() && clearable
67
81
 
82
+
83
+ let rightSection = (props:FieldSectionProps) => {
84
+ if(!showClearIcon) return null
85
+
86
+ return renderClearButton?.({
87
+ ...props,
88
+ clear: handleClear
89
+ }) ?? null
90
+ }
91
+
68
92
  return (
69
93
  <TextInput
70
94
  value={search}
@@ -74,15 +98,12 @@ export const SearchInput = (props: SearchInputProps) => {
74
98
  handleChangeSearch(value)
75
99
  }}
76
100
  debugName={`Search ${debugName}`}
77
- rightIcon={showClearIcon && {
78
- debugName: `Search ${debugName} right icon`,
79
- name: clearIcon,
80
- onPress: handleClear,
81
- }}
82
- leftIcon={{
83
- debugName: `Search ${debugName} left icon`,
84
- name: searchIcon,
85
- }}
101
+ type='search'
102
+
103
+ rightSection={
104
+ props?.rightSection ?? rightSection
105
+ }
106
+
86
107
  {...rest}
87
108
  />
88
109
  )
@@ -60,6 +60,12 @@ const ItemOption = (props: OptionProps) => {
60
60
  )
61
61
  }
62
62
 
63
+ /**
64
+ * Grouped filter panel that lets users toggle labelled options across multiple sections,
65
+ * with a two-stage draft/commit flow and an Apply / Clear footer.
66
+ * Renders nothing when `data` is empty.
67
+ * Uses: `View`, `Text`, `Button`
68
+ */
63
69
  export const SectionFilters = (props: SectionFiltersProps) => {
64
70
  const {
65
71
  data,
@@ -1,14 +1,17 @@
1
- import { ButtonComposition, ButtonProps } from '../Button'
2
- import { StylesOf } from '@codeleap/types'
1
+ import { ButtonProps } from '../Button'
3
2
  import { SectionFiltersComposition } from './styles'
4
- import { StyledProp } from '@codeleap/styles'
3
+ import { ICSS, StyleProp } from '@codeleap/styles'
5
4
 
5
+ export interface SectionFiltersStyleDef {}
6
+
7
+ /** A selectable option within a `SectionFilters` item; `label` falls back to `value` when omitted. */
6
8
  export type ItemOptionProps = {
7
9
  label?: string | number
8
10
  value: string | number
9
11
  itemProps?: Omit<ButtonProps, 'debugName'>
10
12
  }
11
13
 
14
+ /** Internal payload passed to the selection handler when an option button is pressed. */
12
15
  export type OnPressOptionProps = {
13
16
  item: ItemProps
14
17
  option: ItemOptionProps
@@ -16,17 +19,23 @@ export type OnPressOptionProps = {
16
19
  hasMultipleOptions: boolean
17
20
  }
18
21
 
22
+ /** Describes a filter section with its own group of options; items without `options` are treated as single-value toggles. */
19
23
  export type ItemProps = {
20
24
  id: string | number
21
25
  label?: string | number
26
+ /** When `true`, multiple `options` within this item can be active simultaneously. */
22
27
  canSelectMultiple?: boolean
23
28
  descriptionLabel?: string
29
+ /** When `false`, the `descriptionLabel` / `label` heading above the options is hidden. Defaults to `true`. */
24
30
  showDescriptionLabel?: boolean
25
31
  options?: ItemOptionProps[]
32
+ /** Extra `Button` props applied to all option buttons in this item (overridden by `ItemOptionProps.itemProps`). */
26
33
  itemProps?: Omit<ButtonProps, 'debugName'>
34
+ /** Extra `Button` props applied to an option button only while that option is selected. */
27
35
  selectedItemProps?: Omit<ButtonProps, 'debugName'>
28
36
  }
29
37
 
38
+ /** Payload delivered to the `onSelectItem` callback whenever any option button is pressed. */
30
39
  export type onSelectItemProps = {
31
40
  id: ItemProps['id']
32
41
  option: ItemOptionProps
@@ -35,36 +44,49 @@ export type onSelectItemProps = {
35
44
  type ApplyFunction = (items?: ItemProps[]) => void
36
45
  type ClearFunction = () => void
37
46
 
47
+ /** Props injected into the footer component (default or custom via `renderFooterComponent`). */
38
48
  export type SectionFilterFooterProps = {
39
49
  onClear: ClearFunction
40
50
  onApply: ApplyFunction
51
+ /** `true` when both the draft and committed selections are empty; use to disable Apply / Clear buttons. */
41
52
  shouldDisableActions: boolean
42
53
  }
43
54
 
44
55
  type Item = Record<string, any> | Array<any>
45
56
 
57
+ /**
58
+ * Props for `SectionFilters`.
59
+ * Selections are managed through an internal two-stage draft/commit model:
60
+ * changes accumulate in the draft and are only promoted to `selectedItems` when the apply action fires,
61
+ * unless `filterOnOptionPress` is `true`, in which case each press also commits immediately.
62
+ */
46
63
  export type SectionFiltersProps = {
47
64
  data?: ItemProps[]
65
+ /** Committed (applied) selection state; provide with `setSelectedItems` for controlled usage. */
48
66
  selectedItems?: Item
49
67
  setSelectedItems?: (value: Item) => void
68
+ /** Draft (pending) selection state; provide with `setDraftItems` for controlled usage. */
50
69
  draftItems?: Item
51
70
  setDraftItems?: (value: Item) => void
71
+ /** Called immediately after any option is pressed, before the draft is updated. */
52
72
  onSelectItem?: (item: onSelectItemProps) => void
53
73
  onClearItems?: ClearFunction
54
74
  onApplyItems?: ApplyFunction
75
+ /** Replaces the default Apply / Clear footer; receives `SectionFilterFooterProps`. */
55
76
  renderFooterComponent?: (props: SectionFilterFooterProps) => React.ReactElement
56
77
  applyFilterButtonProps?: Omit<ButtonProps, 'debugName'>
57
78
  clearFilterButtonProps?: Omit<ButtonProps, 'debugName'>
79
+ /** When `true`, each option press also commits the draft immediately (bypasses the two-stage model). Defaults to `false`. */
58
80
  filterOnOptionPress?: boolean
59
81
  applyButtonText?: string
60
82
  clearButtonText?: string
61
- style?: StyledProp<SectionFiltersComposition>
83
+ style?: StyleProp<SectionFiltersComposition, keyof SectionFiltersStyleDef>
62
84
  }
63
85
 
64
86
  export type OptionProps = {
65
87
  option: ItemOptionProps
66
88
  item: ItemProps
67
- styles: StylesOf<ButtonComposition>
89
+ styles: ICSS
68
90
  selectedItems: object
69
91
  onPress: () => void
70
92
  canSelectMultiple: boolean
@@ -0,0 +1,262 @@
1
+ import { createContext, useCallback, useContext, useId, useImperativeHandle, useRef, useState, type RefObject } from 'react'
2
+ import { logger } from '@codeleap/logger'
3
+ import { TypeGuards } from '@codeleap/types'
4
+ import { useValidate } from '@codeleap/form'
5
+ import { type Key, type Selection } from 'react-aria-components'
6
+ import { useListFocus, type ListFocusHandle, type ListFocusStrategy } from '../../lib/hooks/useListFocus'
7
+ import { usePopoverDismiss } from '../../lib/hooks/usePopoverDismiss'
8
+ import { useStylesFor } from '../../lib/hooks/useStylesFor'
9
+ import { useTriggerWidth } from './useTriggerWidth'
10
+ import { toDataAttrs } from '../../lib'
11
+ import { Field } from '../Field'
12
+ import { getFieldIds } from '../Field/context'
13
+ import { type SelectComposition } from './styles'
14
+ import { type SelectProps, type SelectFieldContext } from './types'
15
+
16
+ function joinLabels<T extends { label: string; value: any }>(
17
+ values: T['value'][],
18
+ options: T[],
19
+ separator: string
20
+ ): string {
21
+ return (values ?? [])
22
+ .map(v => options?.find(o => o.value === v)?.label ?? String(v))
23
+ .join(separator)
24
+ }
25
+
26
+ /** Shape of the value carried by `SelectContext`; consumed by `SelectTrigger`, `SelectPopover`, and `SelectList`. */
27
+ export type SelectContextValue = {
28
+ isOpen: boolean
29
+ isFocused: boolean
30
+ hasValue: boolean
31
+ displayLabel: string
32
+ selectedKeys: Set<string>
33
+ fieldContext: SelectFieldContext
34
+ stateAttrs: Record<string, string>
35
+
36
+ triggerRef: RefObject<HTMLElement | null>
37
+ popoverRef: RefObject<HTMLElement | null>
38
+ listBoxDOMRef: RefObject<HTMLDivElement | null>
39
+ listAutoFocusRef: RefObject<boolean | undefined>
40
+ triggerWidthStyle: React.CSSProperties
41
+
42
+ handleFocus: () => void
43
+ handleBlur: () => void
44
+ handleOpenChange: (open: boolean) => void
45
+ handleSelectionChange: (keys: Selection) => void
46
+ focusList: (strategy?: ListFocusStrategy) => void
47
+ openDropdown: (focus?: boolean) => void
48
+ closeDropdown: () => void
49
+
50
+ styles: Record<SelectComposition, any>
51
+
52
+ fieldId: string
53
+ labelId: string
54
+ helperId: string
55
+ helperContent: React.ReactNode
56
+
57
+ options: any[]
58
+ value: any
59
+ multiple: boolean
60
+ disabled: boolean
61
+ placement: SelectProps['placement']
62
+ debugName?: string
63
+ listRef?: RefObject<ListFocusHandle | null>
64
+ }
65
+
66
+ /** React context that shares `SelectContextValue` across all sub-components of a `Select`. */
67
+ export const SelectContext = createContext<SelectContextValue | null>(null)
68
+
69
+ /**
70
+ * Reads the nearest `SelectContext` value.
71
+ * Must be called inside a `SelectProvider` tree; throws if the context is absent.
72
+ */
73
+ export const useSelectContext = (): SelectContextValue => {
74
+ const ctx = useContext(SelectContext)
75
+ if (!ctx) throw new Error('useSelectContext must be used inside Select.Provider')
76
+ return ctx
77
+ }
78
+
79
+ /**
80
+ * Derives the full `SelectContextValue` from `SelectProps`, encapsulating open/focus state, validation,
81
+ * key-based selection, display-label construction, and trigger-width measurement.
82
+ * Intended for use inside `SelectProvider`; consume the result via `useSelectContext` in sub-components.
83
+ */
84
+ export function useSelectProvider(props: SelectProps<any, any>): SelectContextValue {
85
+ const {
86
+ options = [],
87
+ value,
88
+ onValueChange,
89
+ multiple,
90
+ limit,
91
+ placeholder,
92
+ disabled,
93
+ focused: _focused,
94
+ error,
95
+ validate,
96
+ onBlur,
97
+ onFocus,
98
+ placement = 'bottom start',
99
+ separatorMultiValue = ', ',
100
+ listRef,
101
+ onOpenChange: onOpenChangeProp,
102
+ helper,
103
+ debugName,
104
+ style,
105
+ } = props
106
+
107
+ const validation = useValidate(value, validate)
108
+ const hasError = validation?.showError || !!error
109
+ const errorMessage = validation?.message || error
110
+
111
+ const [isFocused, setIsFocused] = useState(false)
112
+ const [isOpen, setIsOpen] = useState(false)
113
+
114
+ const triggerRef = useRef<HTMLElement | null>(null)
115
+ const popoverRef = useRef<HTMLElement | null>(null)
116
+ const listBoxDOMRef = useRef<HTMLDivElement | null>(null)
117
+ const listAutoFocusRef = useRef<boolean | undefined>(undefined)
118
+
119
+ useImperativeHandle(props.ref as any, () => ({
120
+ focus: () => triggerRef.current?.focus(),
121
+ }), [])
122
+
123
+ const listFocus = useListFocus(listBoxDOMRef, listRef)
124
+
125
+ const focusList = useCallback((strategy?: ListFocusStrategy) => {
126
+ if (!listBoxDOMRef.current) {
127
+ logger.warn('[Select] focusList called before list is mounted')
128
+ return
129
+ }
130
+ listFocus.focus(strategy)
131
+ }, [listFocus])
132
+
133
+ const handleOpenChange = useCallback((open: boolean) => {
134
+ setIsOpen(open)
135
+ onOpenChangeProp?.(open)
136
+ }, [onOpenChangeProp])
137
+
138
+ usePopoverDismiss({ popoverRef, triggerRef, isOpen, onClose: () => handleOpenChange(false) })
139
+
140
+ const hasValue = multiple
141
+ ? ((value as any[])?.length ?? 0) > 0
142
+ : !TypeGuards.isNil(value)
143
+
144
+ const activeFocused = isFocused || !!_focused
145
+
146
+ const fieldContext: SelectFieldContext = {
147
+ disabled: !!disabled,
148
+ hasValue,
149
+ error: !!hasError,
150
+ focused: activeFocused,
151
+ multiple: !!multiple,
152
+ }
153
+
154
+ const styles = useStylesFor('Select', style, fieldContext) as Record<SelectComposition, any>
155
+ const stateAttrs = toDataAttrs(fieldContext) as Record<string, string>
156
+
157
+ const handleFocus = useCallback(() => { setIsFocused(true); onFocus?.() }, [onFocus])
158
+ const handleBlur = useCallback(() => {
159
+ validation?.onInputBlurred()
160
+ setIsFocused(false)
161
+ onBlur?.()
162
+ }, [validation?.onInputBlurred, onBlur])
163
+
164
+ const handleSelectionChange = useCallback((keys: Selection) => {
165
+ if (multiple) {
166
+ const newValues = [...(keys as Set<Key>)].map(k =>
167
+ options.find(o => String(o.value) === String(k))?.value ?? k
168
+ )
169
+ if (TypeGuards.isNumber(limit) && newValues.length > ((value as any[])?.length ?? 0) && newValues.length > limit) return
170
+ onValueChange?.(newValues as any)
171
+ } else {
172
+ const key = [...(keys as Set<Key>)][0]
173
+ if (!TypeGuards.isNil(key)) {
174
+ onValueChange?.(key as any)
175
+ setIsOpen(false)
176
+ }
177
+ }
178
+ }, [multiple, options, limit, value, onValueChange])
179
+
180
+ const openDropdown = useCallback((focus?: boolean) => {
181
+ listAutoFocusRef.current = focus
182
+ setIsOpen(true)
183
+ }, [])
184
+
185
+ const closeDropdown = useCallback(() => setIsOpen(false), [])
186
+
187
+ const fieldId = useId()
188
+ const { label: labelId, helper: helperId } = getFieldIds(fieldId)
189
+ const helperContent = hasError ? errorMessage : helper
190
+
191
+ const selectedKeys: Set<string> = multiple
192
+ ? new Set(((value as any[]) ?? []).map((v: any) => String(v)))
193
+ : hasValue ? new Set([String(value)]) : new Set()
194
+
195
+ const displayLabel = multiple
196
+ ? (hasValue ? joinLabels(value as any[], options, separatorMultiValue) : (placeholder ?? ''))
197
+ : (hasValue
198
+ ? (options.find(o => String(o.value) === String(value))?.label ?? String(value))
199
+ : (placeholder ?? ''))
200
+
201
+ const triggerWidthStyle = useTriggerWidth(triggerRef)
202
+
203
+ return {
204
+ isOpen,
205
+ isFocused,
206
+ hasValue,
207
+ displayLabel,
208
+ selectedKeys,
209
+ fieldContext,
210
+ stateAttrs,
211
+ triggerRef,
212
+ popoverRef,
213
+ listBoxDOMRef,
214
+ listAutoFocusRef,
215
+ triggerWidthStyle,
216
+ handleFocus,
217
+ handleBlur,
218
+ handleOpenChange,
219
+ handleSelectionChange,
220
+ focusList,
221
+ openDropdown,
222
+ closeDropdown,
223
+ styles,
224
+ fieldId,
225
+ labelId,
226
+ helperId,
227
+ helperContent,
228
+ options,
229
+ value,
230
+ multiple: !!multiple,
231
+ disabled: !!disabled,
232
+ placement,
233
+ debugName,
234
+ listRef,
235
+ }
236
+ }
237
+
238
+ type SelectProviderProps = React.PropsWithChildren<SelectProps<any, any>>
239
+
240
+ /**
241
+ * Wires up `Field.Provider` and `SelectContext.Provider` so that all `Select` sub-components
242
+ * receive both field layout state and select-specific state.
243
+ * Must wrap `SelectTrigger`, `SelectPopover`, and `SelectList` when composing a custom select UI.
244
+ */
245
+ export const SelectProvider = ({ children, ...props }: SelectProviderProps) => {
246
+ const value = useSelectProvider(props)
247
+ return (
248
+ <Field.Provider
249
+ id={value.fieldId}
250
+ context={value.fieldContext}
251
+ label={props.label}
252
+ helper={value.helperContent}
253
+ leftSection={props.leftSection}
254
+ rightSection={props.rightSection}
255
+ componentName='select'
256
+ >
257
+ <SelectContext.Provider value={value}>
258
+ {children}
259
+ </SelectContext.Provider>
260
+ </Field.Provider>
261
+ )
262
+ }
@@ -0,0 +1,126 @@
1
+ import { useCallback, type RefObject } from 'react'
2
+ import {
3
+ ListBox,
4
+ ListBoxItem,
5
+ Popover,
6
+ type ListBoxItemRenderProps,
7
+ } from 'react-aria-components'
8
+ import { ICSS } from '@codeleap/styles'
9
+ import { Field } from '../Field'
10
+ import { View } from '../View'
11
+ import { Text } from '../Text'
12
+ import { Touchable } from '../Touchable'
13
+ import { useSelectContext } from './context'
14
+ import { type ItemRenderState, type SelectListProps } from './types'
15
+
16
+ /**
17
+ * Clickable trigger button that opens or closes the `SelectPopover`.
18
+ * Reads all state from `SelectContext`; must be rendered inside a `SelectProvider`.
19
+ * Uses: `Field.Box`, `Field.SectionSlot`, `Text`, `Touchable`
20
+ */
21
+ export const SelectTrigger = () => {
22
+ const {
23
+ styles, triggerRef, disabled, handleFocus, handleBlur,
24
+ isOpen, handleOpenChange, labelId, helperId, helperContent,
25
+ displayLabel, hasValue, stateAttrs, debugName,
26
+ } = useSelectContext()
27
+
28
+ return (
29
+ <Field.Box
30
+ component={Touchable}
31
+ ref={triggerRef as RefObject<HTMLElement>}
32
+ style={styles.trigger}
33
+ disabled={disabled}
34
+ onPress={() => handleOpenChange(!isOpen)}
35
+ onFocus={handleFocus}
36
+ onBlur={handleBlur}
37
+ aria-labelledby={labelId}
38
+ aria-describedby={helperContent ? helperId : undefined}
39
+ {...stateAttrs}
40
+ >
41
+ <Field.SectionSlot position='left' />
42
+ <Text
43
+ text={displayLabel}
44
+ debugName={debugName}
45
+ style={hasValue ? styles.value : styles.placeholder}
46
+ />
47
+ <Field.SectionSlot position='right' />
48
+ </Field.Box>
49
+ )
50
+ }
51
+
52
+ /**
53
+ * Non-modal `react-aria-components` `Popover` anchored to `SelectTrigger` and sized to match its width.
54
+ * Must be rendered inside a `SelectProvider`; wrap `SelectList` or custom list content as children.
55
+ */
56
+ export const SelectPopover = ({ children }: React.PropsWithChildren) => {
57
+ const { styles, isOpen, handleOpenChange, triggerRef, popoverRef, triggerWidthStyle, placement } = useSelectContext()
58
+
59
+ return (
60
+ <Popover
61
+ triggerRef={triggerRef}
62
+ isOpen={isOpen}
63
+ ref={popoverRef}
64
+ onOpenChange={handleOpenChange}
65
+ css={(styles as any).popover}
66
+ isNonModal
67
+ style={triggerWidthStyle}
68
+ placement={placement}
69
+ >
70
+ {children}
71
+ </Popover>
72
+ )
73
+ }
74
+
75
+ /**
76
+ * Accessible list box that renders the selectable options, with support for single and multi-select modes.
77
+ * Accepts optional `renderItem` and `renderEmpty` overrides; falls back to default `Text`-based rendering.
78
+ * Must be rendered inside a `SelectProvider`.
79
+ * Uses: `Text`, `View`
80
+ */
81
+ export const SelectList = <T extends { label: string; value: any } = { label: string; value: any }>({
82
+ renderItem,
83
+ renderEmpty,
84
+ }: SelectListProps<T>) => {
85
+ const {
86
+ styles, options, selectedKeys, handleSelectionChange,
87
+ multiple, listBoxDOMRef, listAutoFocusRef, debugName, focusList, labelId,
88
+ } = useSelectContext()
89
+
90
+ const renderListItem = useCallback((item: T) => (
91
+ <ListBoxItem
92
+ key={String(item.value)}
93
+ id={String(item.value)}
94
+ textValue={item.label}
95
+ css={(styles as any).listItem}
96
+ >
97
+ {({ isSelected, isFocused: isItemFocused }: ListBoxItemRenderProps) => {
98
+ const state: ItemRenderState = { isSelected, isFocused: isItemFocused }
99
+ if (renderItem) return <>{renderItem(item, state, focusList)}</>
100
+ return <Text text={item.label} debugName={debugName} style={styles.listItemText} />
101
+ }}
102
+ </ListBoxItem>
103
+ ), [renderItem, styles, debugName, focusList])
104
+
105
+ const renderEmptyState = useCallback(() => {
106
+ if (renderEmpty) return <>{renderEmpty({ style: styles.emptyState as ICSS, focusList })}</>
107
+ return <View style={styles.emptyState}><Text text='No results' debugName={debugName} /></View>
108
+ }, [renderEmpty, styles, debugName, focusList])
109
+
110
+ return (
111
+ <ListBox
112
+ ref={listBoxDOMRef}
113
+ selectionMode={multiple ? 'multiple' : 'single'}
114
+ selectedKeys={selectedKeys}
115
+ onSelectionChange={handleSelectionChange}
116
+ items={options as T[]}
117
+ autoFocus={listAutoFocusRef.current}
118
+ css={(styles as any).list}
119
+ renderEmptyState={renderEmptyState}
120
+ aria-labelledby={labelId}
121
+ >
122
+ {renderListItem}
123
+ </ListBox>
124
+ )
125
+ }
126
+